-- 作者:jinzhengbe
-- 发布时间:2012/5/2 12:37:00
-- 报表问题。
项目下载地址http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&replyID=122711&ID=19077&skin=1
上次做过,但是不允许重复提交,只好新开一个帖子,望版主海涵!!
上次想到不够周全,实际用到之后才发现,还有一点问题,还望大师继续指点。
如图,项目中添加一个《接受单位》列,希望能够按日期+接受单位生成报表,并自动保存报表,
自己也努力过,毕竟功力不深,搞定乱七八糟。所以还得请大师指点阿。
附带自己改编的代码,仅用以表示努力过,见笑了
Dim doc As New PrintDoc Dim rt As New prt.RenderTable() doc.Body.Children.Add(rt) rt.Style.GridLines.All = New prt.Linedef rt.cells(0,0).text = "客户名" rt.cells(0,1).text = "地区" rt.cells(0,2).text = "重量1" rt.cells(0,3).text = "重量2" rt.cells(0,4).text = "重量3" rt.cells(0,5).text = "重量4" rt.cells(0,6).text = "重量5"
For i As Integer = Tables("发货单表").TopPosition To Tables("发货单表").BottomPosition Dim dr As DataRow = Tables("发货单表").Rows(i).DataRow Dim crs As List(of DataRow) = dr.GetChildRows("公斤数录入") If crs.count > 0 Then rt.Rows.Count = rt.Rows.count +1 Dim st As Integer = rt.Rows.count - 1 \'起始行位置 Dim nt As Integer = st \'当前行位置 Dim cp As Integer = 2 \'当前列位置 rt.cells(st,0).text = dr("客户名") rt.cells(st,1).text =dr("联系方式") rt.cells(st,2).text =dr("联系方式2") rt.cells(st,3).text =dr("剩余地址") rt.cells(st,4).text = dr("地区") For n As Integer = 0 To crs.count -1 rt.cells(nt,cp).text = crs(n)("公斤数") cp = cp + 1 If cp = 7 Then cp=2 nt = nt +1 End If Next rt.cells(st,0).SpanRows = nt -st +1 rt.cells(st,1).SpanRows = nt -st +1 End If Next doc.Preview() \'预览报表
此主题相关图片如下:报表样本.png
[此贴子已经被作者于2012-5-2 12:37:05编辑过]
|