Foxtable(狐表)用户栏目专家坐堂 → 待办事项表里面想实现根据承办人名字的不同 将该名字下面的所有待办事项显示出来 为什么只有一行呢?


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

主题:待办事项表里面想实现根据承办人名字的不同 将该名字下面的所有待办事项显示出来 为什么只有一行呢?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)ra有同样的问题。另外ra是干嘛用的  发帖心情 Post By:2021/6/18 9:27:00 [只看该作者]

ra是定义的一个容器  

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/18 9:29:00 [只看该作者]

这个容器干嘛用的,添加到什么地方了?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)这个容器干嘛用的,添加到什么地方了...  发帖心情 Post By:2021/6/18 10:49:00 [只看该作者]

是定义的rx文本 和rt表格 全部都装入这个ra容器里  然后打印出来

将红色部分代码放入For Each Region As String In Regions循环内解决了  谢谢老师!

额外再请教一下  怎么实现Rows = tb.DataTable.Select("[待办人] = '" & Region & "'") 这个结果为0的时候  不打印这个待办人的内容呢

Dim rg As prt.RenderGraphics
Dim i As Integer
Dim doc As New PrintDoc '定义一个报表
Dim tb As Table = Tables("待办事项")
Dim rw As Row = tb.Rows(i)

Dim Rows As List(Of DataRow)
Dim Regions As List(Of String) = tb.DataTable.GetValues("待办人")
doc.Pagesetting.LandScape = True

Dim ColNames As New List(Of String)
For Each cl As Col In tb.Cols '排除隐藏列
    If cl.Visible Then
        ColNames.Add(cl.Name)
    End If
Next
For Each Region As String In Regions
    '加入标题
    Dim ra As New prt.RenderArea '定义一个容器
    Dim rt As New prt.RenderTable() '定义一个表格对象
    Dim rx As New prt.RenderText '定义一个文本对象
    rx =new prt.RenderText
    rx.text = "党史学习教育领导小组工作提示单"
    rx.Style.FontBold = True '字体加粗
    rx.Style.FontSize = 24 '大体大小为16磅
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中排列
    rx.Style.Spacing.Top = 3 '和下面的对象(表格)距离3毫米
    ra.Children.Add(rx) '加入到容器中
    
    
    rx =new prt.RenderText
    rx.text = Region & ":"
    rx.Style.FontBold = True '字体加粗
    rx.Style.FontSize = 14 '大体大小为16磅
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.left '水平居中排列
    rx.Style.Spacing.Top = 5 '和下面的对象(表格)距离3毫米
    ra.Children.Add(rx) '加入到容器中
    
    rx =new prt.RenderText
    rx.text = "        请速度完成如下待办事项."
    rx.Style.FontBold = True '字体加粗
    rx.Style.FontSize = 14 '大体大小为16磅
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.left '水平居中排列
    rx.Style.Spacing.Top = 5 '和下面的对象(表格)距离3毫米
    ra.Children.Add(rx) '加入到容器中
    
    
    rt.Style.Font = tb.Font
    
    rt.Rows.Count = 1 '设置总行数
    rt.Cols.Count = 5   '
    
    rt.Cols(0).Width = 20  '设置列宽
    rt.Cols(1).Width = 25  '设置列宽
    rt.Cols(2).Width = 40  '设置列宽
    rt.Cols(3).Width = 70  '设置列宽
    rt.Cols(4).Width = 20  '设置列宽
    '''设置表格样式
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center '内容垂直居中
    rt.Style.GridLines.All = New prt.Linedef '设置网格线
    '''下面很简单,指定每一个单元格的内容
    rt.Cells(0,0).Text=  "时间"
    rt.Cells(0,1).Text=  "事项类别"
    rt.Cells(0,2).Text=  "事项名称"
    rt.Cells(0,3).Text=  "事项内容"
    '
    rt.Cells(0,4).Text=  "完成情况"
    
    Rows = tb.DataTable.Select("[待办人] = '" & Region & "'")
    For r As Integer = 0 To Rows.Count -1 '开始填入该列内容
        rt.Rows(r).Height = 15 '设置行高
        rt.Rows(r+1).Height = 15 '设置行高
        rt.Cells(r + 1, 0).Text = Rows(r)("应办时间")
        rt.Cells(r + 1, 0).Style.TextAlignVert = prt.AlignHorzEnum.Center
        rt.Cells(r + 1, 1).Text = Rows(r)("事项类别")
        rt.Cells(r + 1, 1).Style.TextAlignVert = prt.AlignHorzEnum.Center
        rt.Cells(r + 1, 2).Text = Rows(r)("事项名称")
        rt.Cells(r + 1, 2).Style.TextAlignVert = prt.AlignHorzEnum.Center
        rt.Cells(r + 1, 3).Text = Rows(r)("事项内容")
        rt.Cells(r + 1, 4).Text = Rows(r)("完成情况")
        rt.Cells(r + 1, 4).Style.TextAlignHorz=prt.AlignHorzEnum.Center
    Next
rt.BreakAfter = prt.BreakEnum.page
    rt.Style.Gridlines.All = New prt.Linedef(Color.Gray) '灰色网格线
    rt.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
    rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
    ra.Children.Add(rt) '加入到容器中
    doc.Body.Children.Add(ra)
Next
doc.Preview()
[此贴子已经被作者于2021/6/18 11:08:46编辑过]

 回到顶部
总数 23 上一页 1 2 3