Foxtable(狐表)用户栏目专家坐堂 → 专业报表,数量和日期为空值,如何实现不显示?


  共有1636人关注过本帖树形打印复制链接

主题:专业报表,数量和日期为空值,如何实现不显示?

帅哥哟,离线,有人找我吗?
lin98
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
专业报表,数量和日期为空值,如何实现不显示?  发帖心情 Post By:2024/6/20 14:35:00 [只看该作者]

数量和日期为空值,专业报表显示0,000,如何实现不显示?

图片点击可在新窗口打开查看此主题相关图片如下:显示问题png.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/20 14:48:00 [只看该作者]

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By: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,如何实现有数据显示数据,空值为不显示

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/20 16:49:00 [只看该作者]

if CurRow.isnull("雇佣日期")=false
rt.Cells(1,3).Text = CurRow("雇佣日期")
end if

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By: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))



 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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编辑过]

 回到顶部