以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  字符超过长度  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133371)

--  作者:lfz123
--  发布时间:2019/4/12 21:54:00
--  字符超过长度
错误如图:

图片点击可在新窗口打开查看此主题相关图片如下:凭证打印错误提示.png
图片点击可在新窗口打开查看

代码如下:
Dim t As Table = Tables("凭证打印_table1")
\'t.DefaultRowHeight = 35
Dim b As New GroupTableBuilder("统计表1",DataTables("凭证明细"))
b.Filter = "[凭证ID] = \'"& tables("凭证").Current("凭证ID") & "\' "
b.Groups.AddDef("会计科目_一级科目") \'添加客户列用于分组
b.Groups.AddDef("会计科目_明细科目") \'添加客户列用于分组
b.Totals.AddDef("借方金额") \'添加数量列用于统计
b.Totals.AddDef("贷方金额") \'添加数量列用于统计
t.DataSource = b.BuildDataSource

Dim dt As DataTable = DataTables("凭证打印_Table1")
dt.DataCols("借方金额").SetFormat("0.00")
dt.DataCols("贷方金额").SetFormat("0.00")

dt.dataCols.Add("摘要",Gettype(String),240)

Dim b1 As New GroupTableBuilder("统计表1",DataTables("凭证明细"))
b1.Filter = "[凭证ID] = \'"& tables("凭证").Current("凭证ID") & "\' "
b1.Groups.AddDef("会计科目_一级科目") \'添加客户列用于分组
b1.Groups.AddDef("会计科目_明细科目") \'添加客户列用于分组
b1.Groups.AddDef("摘要") \'添加客户列用于分组
Dim dt1 As DataTable = b1.Build(True)
t.Sort = " 借方金额 DESC"

For Each dr1 As DataRow In dt1.DataRows \'遍历只显示摘要的表 dt1 的所有行
    For Each dr3 As DataRow In dt.DataRows \'遍历统计表dt的所有行
        If dr3.IsNull("会计科目_明细科目") Then
            Dim dr2 As DataRow = dt1.Find("[会计科目_一级科目] = \'"& dr3("会计科目_一级科目") & "\' ")
            dr3("摘要") = dr2("摘要")
        Else
            Dim dr2 As DataRow = dt1.Find("[会计科目_一级科目] = \'"& dr3("会计科目_一级科目") & "\' and [会计科目_明细科目] = \'"& dr3("会计科目_明细科目") & "\'")
            dr3("摘要") = dr2("摘要")
        End If
    Next
Next
t.SetColVisibleWidth("摘要|240|会计科目_一级科目|110|会计科目_明细科目|120|借方金额|120|贷方金额|120")

--  作者:有点蓝
--  发布时间:2019/4/12 22:10:00
--  
增加摘要列的字符长度,或者改为备注列。