以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  报表第二行为0  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108622)

--  作者:aaacc
--  发布时间:2017/10/26 10:13:00
--  报表第二行为0
Dim doc As New PrintDoc \'定义一个报表
Doc.PageSetting.LeftMargin = 10 \'设置左边距
Doc.PageSetting.RightMargin = 10 \'设置右边距
Doc.PageSetting.TopMargin = 10 \'设置上边距
Doc.PageSetting.BottomMargin = 10 \'设置下边距
Dim tbl As Table = Tables("最终")

\'设置页眉
Dim rx1 As New prt.RenderTable
rx1.Cells(0,0).Text = "1008-1014"
rx1.Cells(0,1).Text = "销售排行榜前20名"
rx1.Cells(0,2).Text = "第[PageNo]页,共[PageCount]页" 
rx1.Cols(0).Style.TextAlignHorz = prt.AlignHorzEnum.Left
rx1.Cols(1).Style.TextAlignHorz = prt.AlignHorzEnum.Center
rx1.Cols(2).Style.TextAlignHorz = prt.AlignHorzEnum.right
rx1.Style.Spacing.Bottom = 4 \'底端内容缩进0.5毫米
rx1.Cells(0,1).Style.Font = New Font("宋体", 16, FontStyle.Bold) \'字体大小为8磅
rx1.Style.FontBold = True 
Doc.PageHeader = rx1 \'作为页眉使用


For i As Integer = tbl.TopRow To 19 \'tbl.TopRow表示第一行,tbl.BottomRow表示第二行,若只想显示前100条记录,则将tbl.BottomRow 直接改为 100 即可.
Dim rw As Row = tbl.Rows(i)
Dim rt As New prt.RenderTable() \'定义一个表格对象
Dim rx As New prt.RenderText \'定义一个文本对象
Dim ra As New prt.RenderArea \'定义一个容器
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center
ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never \'禁止容器因为分页而被垂直分割
\'指定行数.列数.列宽.行高
rt.Rows.Count = 6 \'设置总行数
rt.Cols.Count = 9 \'设置总列数
rt.Height = 60 \'设置表格的高度为80毫米
rt.Rows(0).Height = 10 \'设置表格的高度为80毫米

rt.Cols(8).Width = 50
rt.Rows(0).Style.Font = New Font("宋体", 14, FontStyle.Bold)
\'设置合并单元格
rt.Cells(0,0).SpanCols =9 \'
rt.Cells(1,8).SpanRows = 7 \'第1行第5个单元格向下合并6行(用于显示照片)
\'设置表格样式
rt.CellStyle.Spacing.All = 0.5 \'单元格内容缩进1毫米
rt.Style.GridLines.All = New prt.Linedef \'设置网格线
rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
\' 设置第一行
\'下面很简单,指定每一个单元格的内容
rt.Cells(0,0).Text= " 货号:"+CStr( rw ("货号"))+ "   零售价:"+ CStr(rw ("零售价"))+"    总销量:"+ CStr(rw ("数量总计"))+"   总排名:"+ CStr(rw ("排行"))
rt.Cells(1,0).Text= "颜色"
rt.Cells(1,1).Text= "排名"
rt.Cells(1,2).Text= "销售数量"
rt.Cells(1,3).Text= "总仓"
rt.Cells(1,4).Text= "门店"
rt.Cells(1,5).Text= "补货未到"
rt.Cells(1,6).Text= "分布店铺"
rt.Cells(1,7).Text= "销售店铺"
rt.Cells(2,0).Text = rw ("颜色1")
rt.Cells(2,1).Text = rw ("排名")
rt.Cells(2,2).Text = rw ("1数量")
rt.Cells(2,3).Text = rw ("总仓")
rt.Cells(2,4).Text = rw ("门店")
rt.Cells(2,5).Text = rw ("补货未到1")
rt.Cells(2,6).Text = rw ("分布店铺")
rt.Cells(2,7).Text = rw ("销售店铺")
rt.Cells(3,0).Text = rw ("颜色2")
rt.Cells(3,1).Text = rw ("排名1")
rt.Cells(3,2).Text = rw ("2数量")
rt.Cells(3,3).Text = rw ("总仓1")
rt.Cells(3,4).Text = rw ("门店1")
rt.Cells(3,5).Text = rw ("补货未到2")
rt.Cells(3,6).Text = rw ("分布店铺1")
rt.Cells(3,7).Text = rw ("销售店铺1")
rt.Cells(4,0).Text = rw ("颜色3")
rt.Cells(4,1).Text = rw ("排名2")
rt.Cells(4,2).Text = rw ("3数量")
rt.Cells(4,3).Text = rw ("总仓2")
rt.Cells(4,4).Text = rw ("门店2")
rt.Cells(4,5).Text = rw ("补货未到3")
rt.Cells(4,6).Text = rw ("分布店铺2")
rt.Cells(4,7).Text = rw ("销售店铺2")
rt.Cells(5,0).Text = rw ("颜色4")
rt.Cells(5,1).Text = rw ("排名3")
rt.Cells(5,2).Text = rw ("4数量")
rt.Cells(5,3).Text = rw ("总仓3")
rt.Cells(5,4).Text = rw ("门店3")
rt.Cells(5,5).Text = rw ("补货未到4")
rt.Cells(5,6).Text = rw ("分布店铺3")
rt.Cells(5,7).Text = rw ("销售店铺3")
rt.Cells(6,0).Text = rw ("颜色5")
rt.Cells(6,1).Text = rw ("排名4")
rt.Cells(6,2).Text = rw ("5数量")
rt.Cells(6,3).Text = rw ("总仓4")
rt.Cells(6,4).Text = rw ("门店4")
rt.Cells(6,5).Text = rw ("补货未到5")
rt.Cells(6,6).Text = rw ("分布店铺4")
rt.Cells(6,7).Text = rw ("销售店铺4")
rt.Cells(7,0).Text = rw ("颜色6")
rt.Cells(7,1).Text = rw ("排名5")
rt.Cells(7,2).Text = rw ("6数量")
rt.Cells(7,3).Text = rw ("总仓5")
rt.Cells(7,4).Text = rw ("门店5")
rt.Cells(7,5).Text = rw ("补货未到6")
rt.Cells(7,6).Text = rw ("分布店铺5")
rt.Cells(7,7).Text = rw ("销售店铺5")
rt.Cells(1,8).Image = GetImage(rw("图片"))
ra.Children.Add(rt) \'加入到容器中
doc.Body.Children.Add(ra) \'将表格对象加入到报表中
Next
doc.SaveImage("d:\\test2\\ph.jpg",300)
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171026101125.png
图片点击可在新窗口打开查看

--  作者:aaacc
--  发布时间:2017/10/26 10:14:00
--  
我想问一下  本来是没有第二行的  但是这个第二行出来的都是0是什么原因  怎么才能不显示0   谢谢
--  作者:aaacc
--  发布时间:2017/10/26 10:15:00
--  
中间那条只有一行  但是强行出来两行 还显示为0   实在不知道问题在哪里
--  作者:aaacc
--  发布时间:2017/10/26 10:29:00
--  
有没有大神 帮忙解决一下啊图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
--  作者:有点甜
--  发布时间:2017/10/26 10:36:00
--  

加上判断,如

 

If rw ("颜色2") <> nothing Then

rt.Cells(3,0).Text = rw ("颜色2")
rt.Cells(3,1).Text = rw ("排名1")
rt.Cells(3,2).Text = rw ("2数量")
rt.Cells(3,3).Text = rw ("总仓1")
rt.Cells(3,4).Text = rw ("门店1")
rt.Cells(3,5).Text = rw ("补货未到2")
rt.Cells(3,6).Text = rw ("分布店铺1")
rt.Cells(3,7).Text = rw ("销售店铺1")
End If
 

--  作者:aaacc
--  发布时间:2017/10/26 10:48:00
--  
不行啊  还是没变  
--  作者:aaacc
--  发布时间:2017/10/26 10:48:00
--  
还是跟原来一样的  没有变化
--  作者:有点甜
--  发布时间:2017/10/26 11:10:00
--  

那试试,如果不行,做个具体例子发上来测试

 

msgbox(rw ("颜色2") & " " & (rw ("颜色2")=nothing))

If rw ("颜色2") <> nothing Then

rt.Cells(3,0).Text = rw ("颜色2")
rt.Cells(3,1).Text = rw ("排名1")
rt.Cells(3,2).Text = rw ("2数量")
rt.Cells(3,3).Text = rw ("总仓1")
rt.Cells(3,4).Text = rw ("门店1")
rt.Cells(3,5).Text = rw ("补货未到2")
rt.Cells(3,6).Text = rw ("分布店铺1")
rt.Cells(3,7).Text = rw ("销售店铺1")
else
rt.Cells(3,0).Text = ""
rt.Cells(3,1).Text = ""
rt.Cells(3,2).Text = ""
rt.Cells(3,3).Text = ""
rt.Cells(3,4).Text = ""
rt.Cells(3,5).Text = ""
rt.Cells(3,6).Text = ""
rt.Cells(3,7).Text = ""
End If

--  作者:aaacc
--  发布时间:2017/10/26 11:12:00
--  
可以了  谢谢有点甜老师   图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看