以下黄色代码怎么修改呀?以下代码分三种情况写标签,一是只有一个子项则把相关信息直接写入标签中;二是无户名无账号的按交易内容分类并写入相应的标签中;三是明细较多则增加附表:
Dim doc As New PrintDoc '定义一个报表
doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight '设置排列方式
Dim tb As Table =Tables("交易汇总")
Dim tb1 As Table =Tables("交易明细")
Dim lis As List (of String) = tb.DataTable.GetValues("户名","户名 is not null","[_sortkey]")
Dim lis1 As List (of String) = tb1.DataTable.GetValues("交易内容","对方户名 = '无户名无账号'","[_sortkey]")
Dim drs As List(Of DataRow)
For i As Integer = 0 To lis.Count-1
Dim ra As New prt.RenderArea
Dim rt As prt.RenderText
ra.Width = 60 '宽度53毫米
ra.Height = 15 '高度24毫米
ra.Style.Spacing.All = 1
ra.Style.Borders.All = New prt.Linedef(0.3, Color.Red) '设置边框
ra.SplitHorzBehavior = prt.SplitBehaviorEnum.Never '禁止水平分割
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never '禁止垂直分割
Doc.Body.ChildRen.Add(ra) '将容器加入到报表中
drs = tb.DataTable.DataRows(i).GetChildRows("交易明细")
If drs.Count = 1 Then
rt = New prt.RenderText
rt.Text = drs(0)("交易日期")
rt.X = 2
rt.Y = 2
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = drs(0)("借方金额")/10000 & "万"
rt.X = 30
rt.Y = "Prev.top" '垂直坐标位于迁移对象之下的2毫米
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = drs(0)("对方账号")
rt.X = 2
rt.Y = "Prev.Bottom + 2"
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = drs(0)("对方户名")
rt.X = 40
rt.Y = "Prev.Top" '垂直坐标和前一对象相同
ra.Children.Add(rt)
ElseIf lis(i) = "无户名无账号" Then
For n As Integer = 0 To lis1.Count - 1
rt = New prt.RenderText
rt.Text = lis1(n)
rt.X = 2
rt.Y = 2
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = tb1.DataTable.Compute("sum(借方金额)","交易内容 = '" & lis1(n) & "'")/10000 & "万"
rt.X = 30
rt.Y = "Prev.top" '垂直坐标位于迁移对象之下的2毫米
ra.Children.Add(rt)
Next
Else
rt = New prt.RenderText
rt.Text = tb(i)("户名")
rt.X = 2
rt.Y = 2
ra.Children.Add(rt)
rt = New prt.RenderText
rt.Text = tb(i)("银行明细_借方金额")/10000 & "万"
rt.X = 30
rt.Y = "Prev.top" '垂直坐标位于迁移对象之下的2毫米
ra.Children.Add(rt)
End If
Next
doc.PageSetting.Landscape = True
Doc.Preview() '预览报表