Foxtable(狐表)用户栏目专家坐堂 → 填充不为空值的列名并打印


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

主题:填充不为空值的列名并打印

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


加好友 发短信
等级:小狐 帖子:364 积分:3491 威望:0 精华:0 注册:2012/7/24 7:15:00
填充不为空值的列名并打印  发帖心情 Post By:2024/5/19 12:08:00 [只看该作者]

从表A中选择有值的列,将列名填充到表B的C列(表B的其他列均空白)列名前加一个复选框,列名后加两个空格分隔或一个分隔符分隔。如下图:
表A:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20240519115432.png
图片点击可在新窗口打开查看
表B:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20240519120216.png
图片点击可在新窗口打开查看
打印表B的效果。
现在代码如下;
'页面设置
Dim doc As New PrintDoc '定义一个报表
Doc.PageSetting.LeftMargin = 15
Doc.PageSetting.BottomMargin = 15
Doc.PageSetting.TopMargin = 15
Doc.PageSetting.rightMargin = 15
Dim rx8 As prt.RenderText
'设置二级标题
rx8 = New prt.RenderText
rx8.Style.Font = New Font("宋体", 16)
rx8.Style.Spacing.Bottom = 3
Dim dr As String = Forms("mainform").controls("劳保发放企业名称").value
rx8.text = dr & vbcrlf & "劳动防护用品发放记录" '表标题显示企业名称
rx8.Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题水平居中
doc.Body.Children.Add(rx8)

Dim rt As New prt.RenderTable '定义一个新表格
rt.Rows.Count = 24 '设置总行数
rt.Height = 240 '设置表格的高度
rt.Cols(0).Width = 13 '设置列的宽度
rt.Cols(1).Width = 62
rt.Cols(2).Width = 10
rt.Cols(3).Width = 15
Dim ColNames As String() = New String(){"发放日期","劳动防护用品名称","数量","领取人签字"}
rt.Style.Font = New Font("仿宋", 13)
For c As Integer = 0 To ColNames.Length - 1 '逐列设置和填入内容
    rt.Cells(0,c).Text = ColNames(c) '列名作为标题
    rt.Cells(0,c).Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题内容水平居中
    rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.center '数据水平靠右
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center '垂直居中
Next
rt.Style.Gridlines.All = New prt.Linedef(Color.black) '灰色网格线
rt.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All '利用行组,将第一行设为表头.
doc.Body.Children.Add(rt) '将表格加入到报表
doc.Preview()

如何向表B的第二列填充表A不为空列的列名,不会写代码,请老师帮忙,谢谢!

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


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

dim s as string
for each c as col in tables("某表").cols
if c.name like "一般防护用品_*" then
if tables("某表").comoute("count(" & c.name & ")", c.name & " is not null") > 0 then
s = s & ";" & c.name
end if
end if
next
msgbox(s)

 回到顶部