找回密码
 立即注册

QQ登录

只需一步,快速开始

brainmao

论坛元老

6

主题

38

帖子

1万

积分

论坛元老

积分
13656

活字格认证

[已处理] 报表布局问题

brainmao
论坛元老   /  发表于:2013-8-21 14:29  /   查看:19161  /  回复:28
目标报表:


现在:




这是现在设置完columnCount 为2时显示的样式,但是details部分的第二列数据显示不能和前面相齐,我所能解决的办法是将报表右侧往前拉升,直至两列正好紧凑,但目标报表最后还有一列需要显示,所以
想请问怎么调整到和目标报表一样,最后一列该怎么布局,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

28 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-8-21 16:52:00
沙发
brainmao 你好

能将你的报表模板发给我调试一下,应该是分栏宽度设置的问题,具体解决方法需要调试之后才能得到。
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-8-22 09:03:00
板凳

布局代码

HI DOF

我想要的效果是在detail 中的columnCount 设置为2迭代显示时样式如下图所示




现在的效果是下图,不能调制整齐




最后:
在上述基础上,我想在最后加上一列如效果图片一样,该怎么添加,好像在设置了columnCount为2时在最后添加就不能显示了


A4纸张的设置上下左右的余白一致,通过属性样式设置上下左右距离相同还是要通过代码去控制,可否提供一个实例


下面附上代码:


谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-8-22 16:24:00
地板
brainmao 你好

在分栏报表中有几个值是需要你注意的
1、纸张大小,通过Me.PageSettings.PaperKind属性设置
2、页边距大小,通过Me.PageSettings.Margins设置
3、大于宽度,通过PrintWidth设置
4、分栏数量,通过ColumnCount设置
5、栏间距,通过ColumnSpacing设置

要实现效果图的样子,你需要计算每栏中控件宽度之和刚好等于  (纸张宽度-左边距-有边距-栏间距)/ 分栏数量

具体请参考附件中的示例
  1. Public Class SectionReport1

  2.     Private Sub SectionReport1_ReportStart(sender As System.Object, e As System.EventArgs) Handles MyBase.ReportStart
  3.         Me.PageSettings.PaperKind = Printing.PaperKind.A4
  4.         Me.PageSettings.Margins.Top = 0.5
  5.         Me.PageSettings.Margins.Bottom = 0.5
  6.         Me.PageSettings.Margins.Left = 0.5
  7.         Me.PageSettings.Margins.Right = 0.5
  8.     End Sub
  9. End Class
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-8-22 16:44:00
5#
Hi Dof

感谢,现在就剩下最后一列 该如何添加呢
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-8-22 17:32:00
6#
brainmao

这是你该报表的全部截图吗,报表中是否还有其它内容,因为从3楼的截图来看,在最右侧添加一个空白列的需求已经超出了区域报表的使用范围,如果3楼截图是报表的全部内容,我需要尝试其它方法来实现该报表的功能。
回复 使用道具 举报
adolfgzb
初级会员   /  发表于:2013-8-22 18:09:00
7#
回复 6楼dof的帖子

帮忙回答一下,3楼截图的空白列是程序要求要添加的。
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-8-23 08:13:00
8#
回复 7楼adolfgzb的帖子

就是想知道 该如何添加,因为设置了columncount的迭代的时候 后面再自定义textbox 没法显示,若是代码手动添加,该如何取得,怎么添加,谢谢
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-8-23 11:53:00
9#
最后一列只能在报表的 ReportEnd事件中来进行代码绘制,基本方法如下:
  1.     Private Sub SectionReport1_ReportEnd(sender As System.Object, e As System.EventArgs) Handles MyBase.ReportEnd
  2.         Dim dt As System.Data.DataTable
  3.         dt = DirectCast(DataSource, System.Data.DataTable)
  4.         For index = 0 To (dt.Rows.Count / 2)
  5.             Me.Document.Pages(0).DrawRect(6.5, 0.58 + 0.2 * index, 1, 0.2)
  6.         Next
  7.     End Sub
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-8-23 12:43:00
10#
回复 9楼dof的帖子

OK 谢谢DOF
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部