20250319 工作随笔 水晶报表的修改(.rpx)

以现有的水晶报表为基础上进行修改  test.rpx

再操作之前你必须安装了 ActiveReports

并且必须有对应的许可证,如果你破解了,当我没说

ActiveReports 是一款功能强大的报表工具,提供了丰富的组件和灵活的自定义功能。以下是一些常用组件及其对应功能,以及 ReportInfo 组件和它的 FormatString 属性的详细介绍。

一、ActiveReports 常用组件及功能

  1. Label(标签)

    • 功能:显示静态文本。
    • 常用属性
      • Text:显示的文字内容。
      • Font:设置字体样式。
      • ForeColor:字体颜色。
      • BackColor:背景颜色。
      • Alignment:文本对齐方式。
  2. TextBox(文本框)

    • 功能:用于显示动态数据。
    • 常用属性
      • DataField:绑定数据库字段。
      • Text:可显示自定义文本或绑定数据。
      • SummaryType:用于汇总数据,如求和、计数等。
      • SummaryGroup:设置分组汇总的依据。
  3. Line(线条)

    • 功能:用于绘制直线,通常用于分割或强调内容。
    • 常用属性
      • X1, Y1, X2, Y2:线的起点和终点坐标。
      • LineStyle:实线、虚线等。
      • LineWeight:线的粗细。
  4. Shape(形状)

    • 功能:绘制矩形或椭圆形等简单图形。
    • 常用属性
      • ShapeType:矩形、椭圆等。
      • BackColor:背景颜色。
      • BorderColor:边框颜色。
  5. Picture(图片)

    • 功能:插入静态图片或从数据源加载图片。
    • 常用属性
      • Image:静态图片路径或二进制数据。
      • SizeMode:图片缩放方式。
  6. ReportInfo(报表信息)

    • 功能:显示报表的基本信息,如页码、打印日期等。
    • 常用属性
      • FormatString:用于自定义显示格式。
      • ReportInfoType:可选择显示页码、总页数、打印时间等。
      • Font:设置字体样式。
      • Alignment:文本对齐方式。

二、ReportInfo 组件的详细讲解

ReportInfo 是 ActiveReports 中用于显示报表状态信息的组件,例如页码、打印时间等。它通常用于页眉、页脚中。以下是其主要功能和属性解析。

1. ReportInfoType 属性

  • 该属性决定 ReportInfo 显示的信息类型,常用的值包括:
    • PageNumber:当前页码。
    • PageCount:总页数。
    • PrintDateTime:打印时间。
  • 示例ReportInfo.ReportInfoType = PageNumber

2. FormatString 属性

  • 功能:通过 FormatString 属性自定义显示文本的格式。类似于 C# 中的字符串格式化,使用 {0} 表示具体的值。
  • 示例用法
    • 当前页码"当前第 {0} 页"
    • 总页数"共 {0} 页"
    • 页码和总页数"第 {0} 页 / 共 {1} 页"
    • 打印时间"打印时间:{0:yyyy-MM-dd HH:mm:ss}"

FormatString 中,{0} 表示 ReportInfoType 的值,例如:

  • PageNumber{0} 显示当前页码。
  • PageCount{0} 显示总页数。
  • PrintDateTime{0} 显示当前打印时间。

复杂示例

ReportInfo reportInfo = new ReportInfo(); reportInfo.ReportInfoType = ReportInfoType.PageNumber; 
reportInfo.FormatString = "页码:{0} / 共 {1} 页";
页码:3 / 共 10 页

三、编辑函数

你甚至可以再水晶报表中编辑对应的函数

例.(一个获取当前日期并赋值给文本控件的text值)

public void ページヘッダーセクション_Format()
{
	DateTime currentDate = DateTime.Now;
	string formattedDate = currentDate.ToString("yyyy/MM/dd");
	this.outDate.Text = formattedDate;
}

提示!!!

        当我我修改水晶报表,删掉不需要的控件的时候,出现一个问题,就是,代码部分还在调用原控件,因此出现找不到控件的错误提示,这个就是报错的原因。(删除控件前先看一下代码部分是否被引用)

为何数据会循环显示?

  1. Detail 区域的特性

    • Detail 区域 会根据数据源的行数自动重复。每读取一行数据,就会在报表中生成一份 Detail 区域的内容。
    • location 控件绑定了数据字段 location,所以它会在每一行数据中展示对应的 location 值。
  2. DataField 属性的作用

    • location 控件的 DataField 属性设置为 location,它会自动获取数据源中名为 location 的字段值。
    • 每次遍历数据源时,ActiveReports 会将当前行的 location 字段值填充到这个控件中。
  3. CanGrow 属性

    • 控件的 CanGrow 属性设置为 True,这意味着如果数据内容较长,它会自动调整控件的高度以完整显示内容,而不会被截断。
  4. Summary 属性未启用

    • SummaryType 设置为 None,因此它不是用于数据汇总的控件,仅用于单行数据展示。
  • ActiveReports 的数据循环是由 Detail 区域 触发的。每行数据都会对应一份 Detail 区域的内容。
  • 如果你希望进一步自定义显示效果,可以在 DataField 中绑定其他字段,或者在 FormatString 中设置特定的格式。

五、总结

  • LabelTextBox:用于静态文本和动态数据。
  • LineShape:用于分割和装饰。
  • Picture:用于插入图片。
  • ReportInfo:用于显示页码、总页数和打印时间等报表信息。
  • 使用 FormatString 可以灵活定制 ReportInfo 的显示格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值