以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  生成以时由纵轴为横轴的统计表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117826)

--  作者:SMXTB
--  发布时间:2018/4/19 15:51:00
--  生成以时由纵轴为横轴的统计表
制作了一个出差登记表,现在想从表中取数输出统计报表,不知道如何设置这个模板。表的结构是这样:
图片点击可在新窗口打开查看
需要生成以时间为横轴的统计表,如下:
图片点击可在新窗口打开查看
求哪位大师指点,原来也提出了相关的问题,是以姓名字段为横轴,得到了解决,但换为“时间”字段后,代码就出错了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table



[此贴子已经被作者于2018/4/19 17:25:24编辑过]

--  作者:有点甜
--  发布时间:2018/4/19 15:52:00
--  
上传具体可以测试的实例。贴出你所写代码。
--  作者:SMXTB
--  发布时间:2018/4/19 16:03:00
--  生成以时由纵轴为横轴的统计表

Dim ndt As new DataTableBuilder("临时")
ndt.AddDef(“日期",Gettype(Date))
Dim ls As new List(Of String)
For Each dr As DataRow In DataTables("出差登记").datarows
    For Each s As String In (dr("姓名") & "," & dr("同行人员")).split(",")
        If s > "" AndAlso ls.Contains(s) = False Then
            ls.add(s)
            ndt.AddDef(s, Gettype(String))
        End If
    Next
Next
ndt.Build

For Each dr As DataRow In DataTables("表A").datarows
    Dim fdr As DataRow = DataTables("临时").find("时间 = #" & dr("时间") & "#")
    If fdr Is Nothing Then
        fdr = DataTables("临时").AddNew
        fdr("时间") = dr("时间")
    End If
    For Each s As String In (dr("姓名") & "," & dr("同行人员")).split(",")
        If s > "" AndAlso ls.Contains(s) Then
            fdr(s) = dr("地点")
        End If
    Next
Next



[此贴子已经被作者于2018/4/19 16:49:42编辑过]

--  作者:有点甜
--  发布时间:2018/4/19 16:05:00
--  
上传具体可以测试的实例。贴出你所写代码。
--  作者:SMXTB
--  发布时间:2018/4/19 16:06:00
--  
现需要把时间与姓名字段转换统计表
--  作者:有点甜
--  发布时间:2018/4/19 16:49:00
--  
要说多少次? 请,上传具体可以测试的实例。贴出你所写代码。
--  作者:SMXTB
--  发布时间:2018/4/19 17:02:00
--  
上传的附件,乍看不到
--  作者:有点甜
--  发布时间:2018/4/19 17:04:00
--  

请使用ie浏览器访问论坛和上次附件

 

Dim ndt As new DataTableBuilder("临时")
ndt.AddDef("姓名",Gettype(String))
For Each s As String In DataTables("出差登记").GetValues("日期")
    If s > "" Then
        ndt.AddDef(s, Gettype(String),999)
    End If
Next
ndt.Build

Dim ls As new List(Of String)
For Each dr As DataRow In DataTables("出差登记").datarows
    For Each s As String In (dr("姓名") & "," & dr("同行人员")).split(",")
        If s > "" AndAlso ls.Contains(s) = False Then
            ls.add(s)
            Dim ndr As DataRow = DataTables("临时").AddNew
            ndr("姓名") = s
            For Each c As DataCol In  DataTables("临时").datacols
                If c.name <> "姓名" Then
                    ndr(c.name) = DataTables("出差登记").GetComboListString("出差地点", "(姓名 like \'%" & s & "%\' or 同行人员 like \'%" & s & "%\') and 出差日期=\'" & c.name & "\'")
                End If
            Next
        End If
    Next
Next

 

 

[此贴子已经被作者于2018/4/20 10:50:39编辑过]

--  作者:SMXTB
--  发布时间:2018/4/20 8:57:00
--  
语法错误:“日期”运算符后缺少操作数
--  作者:有点甜
--  发布时间:2018/4/20 9:31:00
--  
以下是引用SMXTB在2018/4/20 8:57:00的发言:
语法错误:“日期”运算符后缺少操作数

 

请使用ie浏览器访问论坛和上传具体项目