Foxtable(狐表)用户栏目专家坐堂 → 临时表,运行时报错


  共有2112人关注过本帖树形打印复制链接

主题:临时表,运行时报错

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 17:56:00 [显示全部帖子]


For Each dc As Col In t1.Cols
    For Each dr As Row In t1.Rows
        flt = "类号 = '" & dr("类号") & "' and 材料名称 = '" & dr("材料名称") & "' and 出生日期  = '" & dr("出生日期") & "'"
        If dic.containskey(dr("审核内容")) Then
            Select Case dc.name
                Case "材料最早形成时间"
                    exp = "Min(" & dic(dr("审核内容")) & ")"
                    dr(dc.name) =dt.Compute(exp,flt)
                Case "材料最新形成时间"
                    exp = "Max(" & dic(dr("审核内容")) & ")"
                    dr(dc.name) =dt.Compute(exp,flt)
            End Select
        End If
    Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 18:03:00 [显示全部帖子]

不是这段代码有问题

 

http://www.foxtable.com/webhelp/scr/1485.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/20 22:24:00 [显示全部帖子]

Dim dtb As New DataTableBuilder("三龄审核表")
dtb.AddDef("审核内容", Gettype(String), 10)
dtb.AddDef("出生日期", Gettype(Date))
dtb.AddDef("类号", Gettype(String))
dtb.AddDef("材料名称", Gettype(String))
dtb.AddDef("材料最早形成时间", Gettype(String))
dtb.AddDef("材料最新形成时间", Gettype(String))

dtb.Build()
'--------
Dim dic As new Dictionary(of String, String)
For Each c As Col In Tables("档案文件目录").cols
    dic.add(c.caption, c.name)
    '--------
Next
Dim exp,flt As String
Dim dt As DataTable =DataTables("档案文件目录")
Dim t As Table = Tables("档案文件目录")
Dim t1 As Table =Tables("三龄审核表")


Dim bjs As List(of String()) = dt.Getvalues("类号|材料名称|出生日期", "类号 is not null and 出生日期 is not null")
For Each bj As String() In bjs
    Dim f As New Filler
    f.SourceTable =DataTables("审核内容")
    f.DataTable = t1.DataTable
    f.Fill()
    t1.DataTable.ReplaceFor("出生日期",bj(2),"出生日期 Is null")
    t1.DataTable.ReplaceFor("类号",bj(0),"类号 Is null")
    t1.DataTable.ReplaceFor("材料名称",bj(1),"材料名称 Is null")
    't1.DataTable.ReplaceFor("材料形成时间",bj(4),"形成日期 Is null")
Next
msgbox(1)
For Each dc As Col In t1.Cols
    For Each dr As Row In t1.Rows
        flt = "类号 = '" & dr("类号") & "' and 材料名称 = '" & dr("材料名称") & "' and 出生日期  = '" & dr("出生日期") & "'"
        If dic.containskey(dr("审核内容")) Then
            Select Case dc.name
                Case "材料最早形成时间"
                    exp = "Min(" & dic(dr("审核内容")) & ")"
                    dr(dc.name) =dt.Compute(exp,flt)
                Case "材料最新形成时间"
                    exp = "Max(" & dic(dr("审核内容")) & ")"
                    dr(dc.name) =dt.Compute(exp,flt)
            End Select
        End If
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/21 16:02:00 [显示全部帖子]

 

请上传正确的实例,看不到你所说的表格。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/21 17:24:00 [显示全部帖子]

看不懂你的逻辑是什么,请截图具体说明如何提取数据。

 

10楼的代码没问题啊。提取的数据都是正确的数据啊


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/21 23:12:00 [显示全部帖子]

参考

 

Dim dtb As New DataTableBuilder("三龄审核表")
dtb.AddDef("审核内容", Gettype(String), 10)
dtb.AddDef("材料最早记载_日期", Gettype(String))
dtb.AddDef("材料最早记载_类号", Gettype(String))
dtb.AddDef("材料最早记载_材料名称", Gettype(String))
dtb.AddDef("材料最早记载_形成时间", Gettype(String))
dtb.AddDef("材料最新记载_日期", Gettype(String))
dtb.AddDef("材料最新记载_类号", Gettype(String))
dtb.AddDef("材料最新记载_材料名称", Gettype(String))
dtb.AddDef("材料最新记载_形成时间", Gettype(String))
dtb.AddDef("日期是否涂改_是", Gettype(Boolean))
dtb.AddDef("日期是否涂改_否", Gettype(Boolean))
dtb.AddDef("两次记载是否一致_是", Gettype(Boolean))
dtb.AddDef("两次记载是否一致_否", Gettype(Boolean))


dtb.Build()


Dim exp,flt As String
Dim dt As DataTable =DataTables("档案文件目录")
Dim t As Table = Tables("档案文件目录")
Dim t1 As Table =Tables("三龄审核表")


For Each r As Row In Tables("审核内容").Rows
    Dim s As String = r("审核内容").Substring(2)
    Dim drs As List(Of DataRow) = dt.Select(s & " is not null", s)
    If drs.Count > 0 Then
        Dim dr As DataRow = drs(0)
        Dim nr As Row = t1.AddNew()
        nr("审核内容") = r("审核内容")
        nr("材料最早记载_日期") = dr(s)
        nr("材料最早记载_类号") = dr("类号")
        nr("材料最早记载_材料名称") = dr("材料名称")
        nr("材料最早记载_形成时间") = dr("形成日期")
        Dim dr2 As DataRow = drs(drs.Count - 1)
        nr("材料最新记载_日期") = dr2(s)
        nr("材料最新记载_类号") = dr2("类号")
        nr("材料最新记载_材料名称") = dr2("材料名称")
        nr("材料最新记载_形成时间") = dr2("形成日期")
    End If
Next
MainTable = t1

[此贴子已经被作者于2019/3/22 12:30:53编辑过]

 回到顶部