以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]专业报表中的关联行问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95413) |
-- 作者:viking -- 发布时间:2017/1/18 23:57:00 -- [求助]专业报表中的关联行问题 Dim rx As prt.RenderText Dim rt As prt.RenderTable Dim Rows As List(Of DataRow) Dim tbl As new List(of DataRow) tbl = DataTables("日记账").SQLSelect("[公司编码] = \'" & _UserGsbm & "\'and [日期] = \'" & pzrq.Value & "\'") For i As Integer = 0 To tbl.Count - 1 rx = New prt.RenderText rx.Style.FontSize = 12 rx.Style.FontBold = True rx.Style.Spacing.Bottom = 5 rx.Text = "流水编号: " & tbl(i)("流水编号") & "日期:" & tbl(i)("日期") & "收入:" & tbl(i)("收入") & "支出:" & tbl(i)("支出") & "流水状态:" & tbl(i)("流水状态") & "记账人:" & tbl(i)("记账_负责") & "记账日期:" & tbl(i)("记账_日期") doc.Body.Children.Add(rx)
rt = New prt.RenderTable rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center rt.Style.TextAlignVert = prt.AlignVertEnum.Center rt.Style.Borders.Bottom = New prt.LineDef(0.3,Color.LightGray) rt.CellStyle.Spacing.All = 1 rt.Cols.Count = 4 rt.Cells(0,0).Text = "明细编号" rt.Cells(0,1).Text = "摘要日期" rt.Cells(0,2).Text = "摘要对象" rt.Cells(0,3).Text = "摘要事件" rt.Cells(0,4).Text = "收支方式" rt.Cells(0,5).Text = "凭证编号" rt.Cells(0,6).Text = "收入" rt.Cells(0,7).Text = "支出" rt.Cells(0,8).Text = "订单编号" rt.rows(0).Style.Borders.Top = New prt.LineDef(1,Color.LightGray) rt.rows(0).Style.Borders.Bottom = New prt.LineDef(1,Color.LightGray)
Rows = tbl(i).GetChildRows("明细账") For r As Integer = 0 To Rows.Count - 1 rt.Cells(r+1,0).Text = rows(r)("明细编号") rt.Cells(r+1,1).Text = rows(r)("摘要日期") rt.Cells(r+1,2).Text = rows(r)("摘要对象") rt.Cells(r+1,3).Text = rows(r)("摘要事件") rt.Cells(r+1,4).Text = rows(r)("收支方式") rt.Cells(r+1,5).Text = rows(r)("凭证编号") rt.Cells(r+1,6).Text = rows(r)("收入") rt.Cells(r+1,7).Text = rows(r)("支出") rt.Cells(r+1,8).Text = rows(r)("订单编号") Next doc.Body.Children.Add(rt) rx = New prt.RenderText rx.Style.FontBold = True rx.Style.Spacing.Top = 3 rx.Text = "笔数: " & Rows.Count rx.Style.TextAlignHorz = prt.AlignHorzEnum.Right doc.Body.Children.Add(rx) Next 想问下,这个求 关联表子表的怎么写? |
-- 作者:有点色 -- 发布时间:2017/1/19 0:43:00 -- 现在有什么问题?红色的,改成你子表的表名。
Rows = tbl(i).GetChildRows("明细账") |
-- 作者:viking -- 发布时间:2017/1/19 10:46:00 -- 这个就是我改完的,报表中子表没有数据 |
-- 作者:有点色 -- 发布时间:2017/1/19 10:58:00 -- 加入代码 msgbox(rows.Count)
如果弹出的是0,说明,并没有找到对应的子表的内容,你数据匹配有问题。
如果还有问题,做个实例上来测试。 |
-- 作者:viking -- 发布时间:2017/1/19 23:00:00 -- 就是找不到子表数据,数据匹配问题总那里能检查下 不是代码写得不对?
[此贴子已经被作者于2017/1/19 23:21:18编辑过]
|
-- 作者:viking -- 发布时间:2017/1/19 23:23:00 -- 是代码问题,不会写!!! tbl 是 集合 rows 也是集合 怎么写呢?
|
-- 作者:有点色 -- 发布时间:2017/1/20 0:28:00 -- 试试改成这样
Rows = DataTables("明细账").Select("第一列 = \'" & tbl(i)("第一列") & "\' And 第二列 = \'" & tbl(i)("第二列") & "\'")
|
-- 作者:有点蓝 -- 发布时间:2017/1/20 9:10:00 -- 关联子表的数据是不是没有加载出来? |
-- 作者:viking -- 发布时间:2017/1/22 20:51:00 -- 是的,没有加载,就是红色这行的问题 |
-- 作者:有点色 -- 发布时间:2017/1/22 23:00:00 -- 方法一:先把数据加载出来;
方法二: 用7楼的方法,直接sqlSelect查数据。 |