Foxtable(狐表)用户栏目专家坐堂 → 专业报表中固定位置插入对象


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

主题:专业报表中固定位置插入对象

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


加好友 发短信
等级:狐神 帖子:6831 积分:43213 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/3/24 9:20:00 [只看该作者]

我学习一下。

 回到顶部
美女呀,离线,留言给我吧!
yangming
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/3/24 12:22:00 [只看该作者]

加上这几行红色部分,表格就好看了

Dim doc As New PrintDoc
Dim tb As Table = Tables("表A")
For p As Integer = 0 To math.Ceiling(tb.Rows.Count / 5) - 1 '每页5行
    Dim rx As New prt.RenderText
    rx.Text = "人事工资表"
rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rx.Style.Font = New Font("宋体", 16, FontStyle.Bold) '设置字体
rx.Style.Spacing.Bottom = 6 '设置下间隔为3毫米
    doc.Body.Children.Add(rx)
    Dim rt As New prt.RenderTable
    rt.Style.Gridlines.All = New prt.Linedef(Color.Gray)
    rt.CellStyle.Spacing.All = 0.5
    rt.Cells(0,0).Text = "第一列"
    rt.Cells(0,1).text = "第二列"
    For r As Integer = p * 5 To math.min(tb.Rows.Count - 1,(p+1) * 5 - 1)
        rt.Cells(r - p * 5 + 1,0).Text = tb.rows(r)("第一列")
        rt.Cells(r - p * 5 + 1,1).text = tb.rows(r)("第二列")
    Next
    If p < math.Ceiling(tb.Rows.Count / 5) - 1
          rt.BreakAfter = prt.BreakEnum.Page
    End If
rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '水平居中
rt.Style.TextAlignVert = prt.AlignVertEnum.Center '垂直居中

    doc.Body.Children.Add(rt)
Next
doc.Preview()


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


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2011/3/24 20:09:00 [只看该作者]

1、需要每页打印副标题:第一页有以后没有(代码红色部分)


图片点击可在新窗口打开查看此主题相关图片如下:2011-3-24 19-42-16.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:2011-3-24 19-44-12.png
图片点击可在新窗口打开查看
2、自动列宽不是等宽

Dim Filter As String
Dim cma As WinForm.ComboBox=e.Form.Controls("ComboBox1")
If cma.Value IsNot Nothing Then
    If Filter > "" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "乡名= '" & cma.Value & "'"
End If
Dim cmb As WinForm.ComboBox=e.Form.Controls("ComboBox2")
If cmb.Value IsNot Nothing Then
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "村名 = '" & cmb.Value & "'"
End If
Dim cmc As WinForm.ComboBox=e.Form.Controls("ComboBox3")
If cmc.Value IsNot Nothing Then
    Filter = "组别= '" & cmc.Value & "'"
End If

If cma.Value IsNot Nothing AndAlso cmb.Value IsNot Nothing  Then
    Dim doc As New PrintDoc
    Dim rt As New prt.RenderTable
    Dim rs As New prt.RenderText()
    doc.PageSetting.Landscape = True  '横向打印方向
    doc.PageSetting.PaperKind = 9 '纸张类型为A3
    Doc.PageSetting.LeftMargin = 5 '设置左边距
    Doc.PageSetting.RightMargin = 5  '设置右边距
    Doc.PageSetting.TopMargin = 10  '设置上边距
    Doc.PageSetting.BottomMargin = 10   '设置下边距
   
    Dim cmd As New SQLCommand '定义一个SQL命令
    cmd.C
    Dim dt As DataTable '定义一个数据表变量
    Dim Count As Integer = 0
    If cma.Value IsNot Nothing AndAlso cmb.Value IsNot Nothing AndAlso cmc.Value IsNot Nothing   Then
        cmd.CommandText = "Select 村名,组别,宗地序号,申请单位,小班号,小地名,四至界限_东至,四至界限_南至,四至界限_西至,四至界限_北至,林种,申请单位 AS 林木所有权, 申请单位 AS 林木使用权 From {申请表} Where  乡名 ='" & cma.Value & "' and  村名= '" & cmb.Value & "' and 组别= '" & cmc.Value & "'"
    Else
        cmd.CommandText = "Select 村名,组别,宗地序号,申请单位,小班号,小地名,四至界限_东至,四至界限_南至,四至界限_西至,四至界限_北至,林种,申请单位 AS 林木所有权, 申请单位 AS 林木使用权 From {申请表} Where  乡名 ='" & cma.Value & "' and  村名= '" & cmb.Value & "'"
    End If
    dt = cmd.ExecuteReader() '生成一个临时表
    For Each Col AS DataCol In Dt.DataCols
        rt.Cells(0,Count).Text = Col.Name
        For r As Integer = 0 To dt.DataRows.Count - 1
            rt.Cells(r +1,Count).Text = dt.DataRows(r)(Col.Name)
        Next
        Count = Count + 1
    Next
   
    If cmb.Value  IsNot Nothing  Then
        rs.Text = "" & cmb.Value & "集体林权改革林地林权登记公布表"
    End If
    rs.Style.Font = New Font("宋体",16,FontStyle.Bold)
    rs.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本内容水平居中
    rt.Width = "Parent.Width"
    rt.Style.Spacing.Top = 4 '表格和前面对象的垂直间隔为4毫米
   
    Doc.PageHeader = rs '作为页眉使用 '设置页眉
    Dim rt1 As prt.RenderText '定义一个文本对象
    rt1 = New prt.RenderText '设置文本对象的内容
    rt1.Text = "乡名:" & cma.Value & "                                                                                                                                                                                                单位:亩" '设置文本内容
    rt1.Style.TextAlignHorz = prt.AlignHorzEnum.Center '靠右对齐
    rt1.Style.Borders.Bottom = New prt.LineDef(0.3, Color.Green) '设置底边框
    rt1.Style.Padding.Bottom = 0.5 '底端内容缩进0.5毫米
    rt1.Style.FontSize = 10 '字体大小为8磅
    doc.Body.Children.Add(rt1) '将文本对象加入到表格中
   
    Dim rx1 As New prt.RenderTable
    rx1.Cells(0,0).Text = "第[PageNo]页  共[PageCount]页                                         打印日期:[date.now]"
    rx1.Style.TextAlignHorz = prt.AlignHorzEnum.Center
    rx1.CellStyle.Spacing.Bottom = 0.5 '底端内容缩进0.5毫米
    rx1.Style.FontSize = 10 '字体大小为8磅
    Doc.PageFooter = rx1 '作为页脚使用
    rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All '将第一行作为表头
    rt.RowGroups(0,1).Style.Font = New Font("宋体",10,FontStyle.Bold) '字体大小
    rt.Style.Gridlines.All = New prt.Linedef(Color.Gray) '灰色网格线
    rt.CellStyle.Spacing.All = 1 '内容距离网格线1毫米
    rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
    doc.Body.Children.Add(rt)
    doc.Preview()
   
Else
    MessageBox.show("同时选择年度乡名")
End If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/24 22:09:00 [只看该作者]

参考10楼方法,修改自己的打印代码。
[此贴子已经被作者于2011-3-24 22:09:05编辑过]

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


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2011/3/25 8:53:00 [只看该作者]

以下是引用狐狸爸爸在2011-3-24 22:09:00的发言:
参考10楼方法,修改自己的打印代码。
[此贴子已经被作者于2011-3-24 22:09:05编辑过]

10楼好象没有可比性,标题已经实现了每页打印。关键是副标题(图中红框部分)参考了几种方法都不能实现每页打印。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/25 9:13:00 [只看该作者]

呵呵,10楼一样可以设置副标题啊,标题可以加一个,自然也可以加两个的呢。

 

如果你不想用10楼的办法,可以考虑下面的办法:

 

将主标题和副标题,都放在一个容器(RenderArea)对象中, 将页眉设置为这个容器对象即可。

 

有关容器对象,参考:

 

http://help.foxtable.com/topics/1185.htm

 

 


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/3/25 11:45:00 [只看该作者]

狐表的专业报表不但可以随意设置主标题、副标题,同样可以自己设计出相当专业、功能强劲、多样化的报表设置(专业报表管理器),给一个录像给大家看看,也许可以为大家拓展设计思路提供帮助:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:录像2.part1.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:录像2.part2.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:录像6.part1.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:录像6.part2.rar

 

记得这个思路曾经在论坛发过了,等以后有时间了可以考虑将这段实例从系统中抠出来与大家共享!

 


 

[此贴子已经被作者于2011-3-25 12:01:19编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/25 11:53:00 [只看该作者]

顶老程

图片点击可在新窗口打开查看


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


加好友 发短信
等级:狐神 帖子:6831 积分:43213 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/3/25 12:59:00 [只看该作者]

以下是引用程兴刚在2011-3-25 11:45:00的发言:

狐表的专业报表不但可以随意设置主标题、副标题,同样可以自己设计出相当专业、功能强劲、多样化的报表设置(专业报表管理器),给一个录像给大家看看,也许可以为大家拓展设计思路提供帮助:

 

 下载信息  [文件大小:3.8 MB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:录像2.part1.rar

 下载信息  [文件大小:2.6 MB  下载次数:3]
图片点击可在新窗口打开查看点击浏览该文件:录像2.part2.rar

 下载信息  [文件大小:3.8 MB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件:录像6.part1.rar

 下载信息  [文件大小:1.7 MB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件:录像6.part2.rar

 

记得这个思路曾经在论坛发过了,等以后有时间了可以考虑将这段实例从系统中抠出来与大家共享!

 


 

[此贴子已经被作者于2011-3-25 12:01:19编辑过]
我的电脑打不开的。

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/3/25 16:06:00 [只看该作者]

是不是您没有winrar解压软件?

 

       我这是.exe可执行视频文件,应该可以直接双击自动运行吧?


 回到顶部
总数 20 上一页 1 2