Foxtable(狐表)用户栏目专家坐堂 → [分享] 专业报表设计巧用rows.Count


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

主题:[分享] 专业报表设计巧用rows.Count

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2013/4/22 16:27:00 [只看该作者]

以下是引用cxabc123在2013-4-19 11:43:00的发言:


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

 

像照片所占位置的单元格如何利用上述的方法合并,请指教以下。如果能用上述方法处理,就可以制定模版,简化专业报表的设计


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/22 21:34:00 [只看该作者]

这个很简单的,明天给您代码!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/23 1:04:00 [只看该作者]

专业报表用习惯了其实很简单,很多时候可以用它来代替临时表,只要您的基础数据权限设置好了不被篡改,随时生成即可,暂时给您几个带图标的报表截图:

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名3.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2013/4/23 8:23:00 [只看该作者]

那就太感谢您了,期待中

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


加好友 发短信
等级:狐精 帖子:3358 积分:24758 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2013/4/23 10:37:00 [只看该作者]

收藏

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/23 20:47:00 [只看该作者]

这是专业报表截图:

 
图片点击可在新窗口打开查看此主题相关图片如下:未命名5.jpg
图片点击可在新窗口打开查看
 

这是代码:

 

If Tables("员工").Current IsNot Nothing
    Dim dr As DataRow = Tables("员工").Current.DataRow
    Dim doc As New PrintDoc() '定义一个报表
    doc.AutoRotate = False '禁止自动旋转打印内容
    doc.PageSetting.Height = "175mm" ' 纸张高度为93毫米
    doc.PageSetting.Width = "120mm" ' '纸张宽度为248毫米
    doc.PageSetting.Landscape = True '横向打印
    Doc.PageSetting.LeftMargin = 15'设置左边距
    Doc.PageSetting.RightMargin = 15 '设置右边距
    Doc.PageSetting.TopMargin = 10 '设置上边距
    Doc.PageSetting.BottomMargin = 10 '设置下边距
    '-----------------------------------------------------------------
    Dim rt As New prt.RenderTable() '定义一个表格对象
    rt.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
    rt.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文字默认水平居中
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center '文字默认垂直居中
    rt.Style.Spacing.Top = 4 '表格和前面对象的垂直间隔为4毫米
    rt.Style.Spacing.Bottom = 3 '表和和后续对象的垂直间隔为3毫米
    rt.Style.Spacing.All = 1
    rt.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
    rt.Style.GridLines.All = New Prt.LineDef(0.6,Color.Gray)
    rt.Width =150
    '-----------------------------------------------------------------
    rt.Rows.Count = 1 '设置行数
    rt.Cols.Count = 11 '设置列数
    rt.Cols(0).Width = "35mm"
    rt.Cols(1).Width = "50mm"
    rt.Cols(2).Width = "35mm"
    rt.Cols(3).Width = "55mm"
    rt.Cols(4).Width = "20mm"
    rt.Cols(5).Width = "20mm"
    rt.Cols(6).Width = "20mm"
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,0).Text = "员工资料卡"
    rt.Cells(rt.Rows.Count-1,0).SpanCols = 7 '向右合并列
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.Rows(rt.Rows.Count-1).Style.GridLines.All = new Prt.LineDef(0,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.Font = New Font("宋体", 16,FontStyle.Bold) '设置字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,4).Text = "编号:"
    rt.Cells(rt.Rows.Count-1,4).SpanCols = 2
    rt.Rows(rt.Rows.Count-1).Height = "6mm"
    rt.cells(rt.Rows.Count-1,4).Style.TextAlignHorz = prt.AlignHorzEnum.right '水平靠右
    rt.rows(rt.Rows.Count-1).Style.GridLines.All = new Prt.LineDef(0,Color.Black)
    rt.Cells(rt.Rows.Count-1,4).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,6).Text = right("000" & dr("编号"),3)
    rt.cells(rt.Rows.Count-1,6).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平靠右
    rt.Cells(rt.Rows.Count-1,6).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "姓名"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.top = new Prt.LineDef(0.6,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("姓名")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "出生日期"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = format(dr("出生日期"),"yyyy年mm月dd日")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "部门"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("部门")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "雇佣日期"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = format(dr("雇佣日期"),"yyyy年mm月dd日")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "性别"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("性别")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "职务"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = dr("职务")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "地址"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("地址")
    rt.Cells(rt.Rows.Count-1,1).SpanCols = 3
    rt.cells(rt.Rows.Count-1,1).Style.TextAlignHorz = prt.AlignHorzEnum.left
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count,0).Text = "家庭电话"
    rt.Rows(rt.Rows.Count-1).Height = "8mm"
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.Cells(rt.Rows.Count-1,0).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,1).Text = dr("家庭电话")
    rt.Cells(rt.Rows.Count-1,1).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,2).Text = "办公电话"
    rt.Cells(rt.Rows.Count-1,2).Style.Font = New Font("宋体", 11,FontStyle.Regular) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.cells(rt.Rows.Count-1,3).Text = dr("办公电话")
    rt.Cells(rt.Rows.Count-1,3).Style.Font = New Font("宋体", 11,FontStyle.bold) '设置文本对象的字体
    '-----------------------------------------------------------------
    rt.Rows(rt.Rows.Count).Height = "30mm"
    rt.Cells(rt.Rows.Count-1,0).SpanCols = 7
    rt.cells(rt.Rows.Count-1,4).Style.TextAlignHorz = prt.AlignHorzEnum.left '水平靠右
    rt.rows(rt.Rows.Count-1).Style.GridLines.left = new Prt.LineDef(0.6,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.GridLines.Bottom = new Prt.LineDef(0.6,Color.Black)
    rt.rows(rt.Rows.Count-1).Style.GridLines.right = new Prt.LineDef(0.6,Color.Black)
    '-----------------------------------------------------------------
    rt.Cells(rt.Rows.Count-6,4).SpanCols = 3
    rt.Cells(rt.Rows.Count-6,4).Spanrows = 5
    rt.Cells(rt.Rows.Count-6,4).CellStyle.Spacing.All = 0 '单元格内距设为0.5毫米
   
    rt.Cells(rt.Rows.Count-6,4).Style.GridLines.right = new Prt.LineDef(0.6,Color.Black)
    '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Dim ra As prt.RenderArea
    Dim rm As New prt.RenderImage
    ra = rt.Cells(rt.Rows.Count-6,4).Area
    rm = New prt.RenderImage
    rm.Image =  GetImage(dr("照片"))
    rm.Height = 43
    ra.Children.Add(rm)
     doc.Body.Children.Add(rt) '将表格对象加入到报表中
    Doc.Preview() '预览报表
End If

 

 

说明:之所以在最后给多留了2列,用代码来合并,目的是突出合并示例!

[此贴子已经被作者于2013-4-23 21:09:36编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/4/23 20:53:00 [只看该作者]

再附上文件:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目17.zip

 

至此,完成了我对您的承诺!

[此贴子已经被作者于2013-4-23 20:54:08编辑过]

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2013/4/24 10:53:00 [只看该作者]

以下是引用程兴刚在2013-4-23 20:53:00的发言:

再附上文件:

 

 下载信息  [文件大小:1.5 MB  下载次数:6]
图片点击可在新窗口打开查看点击浏览该文件:管理项目17.zip

 

至此,完成了我对您的承诺!

[此贴子已经被作者于2013-4-23 20:54:08编辑过]

非常感谢!


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2013/4/24 11:33:00 [只看该作者]

用老程的专业报表设计巧用rows方法和思路,可以制作一个专业报表设计窗体,实现傻瓜化专业报表设计,那位有成熟的办法。
[此贴子已经被作者于2013-4-24 11:33:10编辑过]

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2013/4/25 11:01:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:专业报表.table

自己的技术太菜了,报表的标题始终不合适,那位请知道一下。专业报表在员工表


 回到顶部
总数 34 上一页 1 2 3 4 下一页