以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 重新总结。 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=42077) |
||||
-- 作者:jinzhengbe -- 发布时间:2013/11/3 19:46:00 -- 重新总结。 这个页面是我最终想要的界面,(只筛选 接收单位为 ems的数据)
曾经发贴,经过多次测试也没有解决,所以只能厚着脸皮重新发一下。虽然比较嫩,还希望各位前辈不吝赐教啊 |
||||
-- 作者:有点甜 -- 发布时间:2013/11/3 21:01:00 -- 弄死了,楼主你学一下吧。自食其力,丰衣足食吖
\'DataTables("公斤数录入1").deletefor("[公斤数] is Null") \'DataTables("发货单号1").deletefor("[客户名] is Null") Dim doc As New PrintDoc Dim rt As New prt.RenderTable() Dim tbl As Table = Tables("公斤数录入1") Dim tb As Table = Tables("发货单号1") doc.PageSetting.Width = 400 \'纸张宽度为100毫米 doc.PageSetting.Landscape = True \'横向打印 Doc.PageSetting.LeftMargin = 5 \'设置左边距 Doc.PageSetting.RightMargin = 5 \'设置右边距 Doc.PageSetting.TopMargin = 10 \'设置上边距 Doc.PageSetting.BottomMargin = 5 \'设置下边距 Doc.PrinterName = "HP Officejet 6500 E710n-z" Dim rx As New prt.RenderTable rx.Cells(0,0).Text = Date.Today rx.Cells(0,1).Text = "T R J list" rx.Cells(0,2).Text = "第[PageNo]页,共[PageCount]页" rx.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Left rx.Cols(1).Style.TextAlignHorz = prt.AlignHorzEnum.Center rx.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.right rx.Style.Borders.Bottom = New prt.LineDef \'设置底边框 rx.CellStyle.Spacing.Bottom = 0.5 \'底端内容缩进0.5毫米 rx.Style.FontSize = 15 \'字体大小为8磅 Doc.PageHeader = rx \'作为页眉使用 rt.Style.Font = New Font("宋体", 15 , FontStyle.Bold) \'设置文本对象的字体 rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中 rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 rt.Style.Borders.All = New prt.Linedef(0, Color.Lavender) \'设置边框 rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中 rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'垂直居中 doc.Body.Children.Add(rt) rt.Style.GridLines.All = New prt.Linedef rt.cells(1,0).text = "地区" rt.cells(1,1).text = "客户名" rt.cells(1,2).text = "C/T" rt.cells(1,3).text = "Total" rt.cells(1,4).text = "重量1" rt.cells(1,5).text = "重量2" rt.cells(1,6).text = "重量3" rt.cells(1,7).text = "重量4" rt.cells(1,8).text = "重量5" rt.cells(1,9).text = "重量6" rt.cells(1,10).text = "重量7" rt.cells(1,11).text = "重量8" rt.cells(1,12).text = "重量9" rt.cells(1,13).text = "重量10" rt.cells(1,14).text = "接收单位" rt.Cols(14).Width = 30 For i As Integer = tb.TopPosition To tb.BottomPosition Dim dr As DataRow = Tables("发货单号1").Rows(i).DataRow Dim crs As List(of DataRow) = tbl.DataTable.Select("发货单号 = \'" & dr("发货单") & "\' and 接收单位 = \'ems\'") Dim Total As Integer = tbl.Compute("sum(公斤数)", "发货单号 = \'" & dr("发货单") & "\' and 接收单位 = \'ems\'") Dim st As Integer = rt.Rows.count - 1 \'起始行位置 Dim nt As Integer = st \'当前行位置 Dim cp As Integer = 4 \'当前列位置 Dim pdr As DataRow = dr.GetParentRow("用户") If pdr IsNot Nothing Then For n As Integer = 0 To crs.count - 1 rt.cells(nt+1,cp).text = cint(crs(n)("公斤数")) If crs(n)("包") = True Then rt.cells(nt+2,cp).text = "yes" End If If crs(n)("鞋子") Then rt.cells(nt+3,cp).text = "yes" End If If crs(n)("饰品") Then rt.cells(nt+4,cp).text = "yes" End If rt.cells(nt+1,0).text = pdr("city") rt.cells(nt+1,1).text = pdr("name") rt.cells(nt+1,2).text = crs.count rt.cells(nt+1,3).text = total rt.cells(nt+1,14).text = crs(n)("接收单位") rt.Cells(st+2, 3).Text = "包" rt.Cells(st+3, 3).Text = "鞋子" rt.Cells(st+4, 3).Text = "饰品" cp = cp + 1 If cp = 7 Then cp=2 nt = nt + 2 End If Next rt.cells(st+5,0).SpanCols = 2 rt.cells(st+5,0).text = pdr("phone") rt.cells(st+5,2).SpanCols = 2 rt.cells(st+5,2).text = pdr("phone1") rt.cells(st+5,4).SpanCols = 6 rt.cells(st+5,4).text = pdr("address") End If Next doc.Preview() \'预览报表 |
||||
-- 作者:jinzhengbe -- 发布时间:2013/11/4 15:16:00 -- 学是学了 不是学不会吗,真是太感谢这位恩人了!!!!! |
||||
-- 作者:jinzhengbe -- 发布时间:2013/11/5 8:01:00 -- 发现个问题,还望不吝赐教啊
如图,筛选后,其他不想关的情报也会出现在,被打印的表格内,怎么才能不显示,被显示为多余的信息呢? 还有怎么才能控制小数点的位数呢?
代码如下
\'DataTables("公斤数录入1").deletefor("[公斤数] is Null")
For i As Integer = Tables("发货单号1").TopPosition To Tables("发货单号1").BottomPosition |
||||
-- 作者:有点甜 -- 发布时间:2013/11/5 21:57:00 -- 无法重现你的问题,把数据也弄上来,说明如何操作。 |