以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 专业报表,数量和日期为空值,如何实现不显示? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192388) |
-- 作者:lin98 -- 发布时间:2024/6/20 14:35:00 -- 专业报表,数量和日期为空值,如何实现不显示? 数量和日期为空值,专业报表显示0,000,如何实现不显示? |
-- 作者:有点蓝 -- 发布时间:2024/6/20 14:48:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626 |
-- 作者:lin98 -- 发布时间:2024/6/20 16:35:00 -- Dim doc As New PrintDoc \'定义一个报表 Dim rt As New prt.RenderTable() \'定义一个表格对象 Dim rx As New prt.RenderText \'定义一个文本对象 Dim CurRow As Row = Tables("员工").Current \'加入标题 rx.text = "员工资料卡" rx.Style.FontBold = True \'字体加粗 rx.Style.FontSize = 16 \'大体大小为16磅 rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列 rx.Style.Spacing.Bottom = 3 \'和下面的对象(表格)距离3毫米 doc.Body.Children.Add(rx) \'加入到报表中 \'指定行数、列数、列宽、行高 rt.Rows.Count = 7 \'设置总行数 rt.Cols.Count = 5 \'设置总列数 rt.Height = 80 \'设置表格的高度为80毫米 rt.Rows(6).Height = 40 \'设置第7行(显示备注的行)的高度为40毫米,剩余高度被平均分排到其他行 rt.Cols(0).Width = 24 \'设置前四列的宽度,剩余的宽度被分配给5列(显示图片的那列) rt.Cols(1).Width = 35 rt.Cols(2).Width = 24 rt.Cols(3).Width = 40 \'设置合并单元格 rt.Cells(0,4).SpanRows = 6 \'第1行第5个单元格向下合并6行(用于显示照片) rt.Cells(4,1).SpanCols = 3 \'第5行第2个单元格向右合并3列(用于显示地址) rt.Cells(6,0).SpanCols = 5 \'第7行第1个单元格向右合并5列(用于显示备注) \'设置表格样式 rt.CellStyle.Spacing.All = 1 \'单元格内容缩进1毫米 rt.Style.GridLines.All = New prt.Linedef \'设置网格线 rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中 rt.Rows(6).Style.TextAlignVert = prt.AlignVertEnum.Top \'唯独第7行是备注,内容靠上对齐 \'下面很简单,指定每一个单元格的内容 rt.Cells(0,0).Text= "姓名" rt.Cells(0,1).Text = CurRow("姓名") rt.Cells(0,2).Text= "出生日期" rt.Cells(0,3).Text = CurRow("出生日期") rt.Cells(1,0).Text= "部门" rt.Cells(1,1).Text = CurRow("部门") rt.Cells(1,2).Text= "雇佣日期" rt.Cells(1,3).Text = CurRow("雇佣日期") rt.Cells(2,0).Text= "性别" rt.Cells(2,1).Text = CurRow("性别") rt.Cells(2,2).Text= "职务" rt.Cells(2,3).Text = CurRow("职务") rt.Cells(3,0).Text= "城市" rt.Cells(3,1).Text = CurRow("城市") rt.Cells(3,2).Text= "数量" rt.Cells(3,3).Text = CurRow("数量") rt.Cells(0,4).Image = GetImage(CurRow("照片")) doc.Body.Children.Add(rt) \'将表格对象加入到报表中 Doc.Preview() \'预览报表 这里的"数量","雇佣日期"为空值时,专业报表是显示,00或00000,如何实现有数据显示数据,空值为不显示
|
-- 作者:有点蓝 -- 发布时间:2024/6/20 16:49:00 -- if CurRow.isnull("雇佣日期")=false rt.Cells(1,3).Text = CurRow("雇佣日期") end if
|
-- 作者:lin98 -- 发布时间:2024/6/21 9:02:00 -- 三楼的代码+下面代码,有二个图是可以正常执行,当只有一个图或无图时,就报错: 索引超出范围。必须为非负值并小于集合大小。 参数名: index 如何解决? Dim fls As List(Of String) rt.Style.ImageAlign.StretchHorz = False \'禁止图片水平拉伸 rt.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'\'Center:居中显示\'Left: 靠左\'Right: 靠右\' fls = CurRow.DataRow.Lines("照片") rt.Cells(7, 0).Image = GetImage(fls(0)) rt.Cells(8, 0).Image = GetImage(fls(1)) |
-- 作者:有点蓝 -- 发布时间:2024/6/21 10:26:00 -- 建议把编程基础这章内容好好学学,都是一些基础的语法 if fls.count> 1 then rt.Cells(8, 0).Image = GetImage(fls(1)) end if
[此贴子已经被作者于2024/6/21 10:25:51编辑过]
|