找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] 报表布局问题

ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-8-23 16:36:00
11#
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-8-26 09:04:00
12#
回复 11楼dof的帖子

Hi dof
像上面这种动态绘制的话,边框有没有相关绘制的方法呢,边框能够绘制成自定义的粗细大小

通过colum的设置的话 第二列的边框我如果想不一样,那怎么能够取得迭代出来的第二列,来操作它的样式
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-8-26 15:39:00
13#
Page类型下提供了多种绘图方法,比如以下代码:
  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.         Dim b As New GrapeCity.ActiveReports.Border
  5.         b.BottomColor = System.Drawing.Color.Black
  6.         b.BottomStyle = GrapeCity.ActiveReports.BorderLineStyle.ThickSolid
  7.         b.LeftColor = System.Drawing.Color.Black
  8.         b.LeftStyle = GrapeCity.ActiveReports.BorderLineStyle.ThickSolid
  9.         b.RightColor = System.Drawing.Color.Black
  10.         b.RightStyle = GrapeCity.ActiveReports.BorderLineStyle.ThickSolid
  11.         b.TopColor = System.Drawing.Color.Black
  12.         b.TopStyle = GrapeCity.ActiveReports.BorderLineStyle.ThickSolid

  13.         For index = 0 To (dt.Rows.Count / 2)
  14.             Me.Document.Pages(0).DrawBorder(b, 6.5, 0.58 + 0.2 * index, 1, 0.2)
  15.         Next
  16.     End Sub
复制代码


关于分栏中第一栏和第二栏格式不一样的问题,可以在Detail的Format事件中根据当前行的行号来进行控制,比如一页最多打印50行,如果当前行是30行则是第一栏中的样式,如果当前行是60行则是第二栏中的样式;
或者根据行号的奇偶来判断。
  1.     Dim page As Integer
  2.     Private Sub Detail1_Format(sender As System.Object, e As System.EventArgs) Handles Detail1.Format
  3.         page = page + 1
  4.         If page Mod 2 = 0 Then
  5.             TextBox4.Border.TopColor = Color.Red
  6.         Else
  7.             TextBox4.Border.TopColor = Color.Black
  8.         End If
  9.     End Sub
复制代码
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-8-30 13:04:00
14#
回复 13楼dof的帖子

HI dof
Document.Pages(0).DrawBorder这个方法能能不能绘制整个文档的边框,现在基于区域报表去做,我有三爷数据显示,但是每页的最后一行数据的线条都是不同的,直接在detail中设置bottom线条3页显示都一样,请问,这个该如何处理,若要计算行数或者页数,怎么取最后一行,或者有更好的办法
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-8-30 15:23:00
15#
回复 13楼dof的帖子

Hi dof
activereport报表不预览,直接打印? 有什么方法么
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-8-30 15:33:00
16#
  1.     GrapeCity.ActiveReports.SectionReport rpt = new GrapeCity.ActiveReports.SectionReport();
  2.     rpt.Run();
  3.     rpt.Document.Print();
复制代码
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-8-30 15:46:00
17#
回复 16楼dof的帖子

这个方法没有用,已经试过了,查找发现好多类似这样的:
rpt.Document.Print(false,false);
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-8-30 16:09:00
18#
回复 16楼dof的帖子

谢谢dof 已经解决Me.Document.Printer.Print()直接跳过了能打印    希望dof再看下

Document.Pages(0).DrawBorder这个方法能能不能绘制整个文档的边框,现在基于区域报表去做,我有三页数据显示,但是每页的最后一行数据的线条都是不同的,直接在detail中设置bottom线条3页显示都一样,请问,这个该如何处理,若要计算行数或者页数,怎么取最后一行,或者有更好的办法
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-8-30 17:54:00
19#
第二个需求,我会在调试之后给你答复
回复 使用道具 举报
brainmao
论坛元老   /  发表于:2013-9-3 08:29:00
20#
回复 19楼dof的帖子

dof:
如何控制Textbox的字符串显示数,现在通过shiftfit会缩小文字,有么有相关属性能够直接设几个字符?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部