以现有的水晶报表为基础上进行修改 test.rpx
再操作之前你必须安装了 ActiveReports
并且必须有对应的许可证,如果你破解了,当我没说
ActiveReports 是一款功能强大的报表工具,提供了丰富的组件和灵活的自定义功能。以下是一些常用组件及其对应功能,以及 ReportInfo
组件和它的 FormatString
属性的详细介绍。
一、ActiveReports 常用组件及功能
-
Label(标签)
- 功能:显示静态文本。
- 常用属性:
Text
:显示的文字内容。Font
:设置字体样式。ForeColor
:字体颜色。BackColor
:背景颜色。Alignment
:文本对齐方式。
-
TextBox(文本框)
- 功能:用于显示动态数据。
- 常用属性:
DataField
:绑定数据库字段。Text
:可显示自定义文本或绑定数据。SummaryType
:用于汇总数据,如求和、计数等。SummaryGroup
:设置分组汇总的依据。
-
Line(线条)
- 功能:用于绘制直线,通常用于分割或强调内容。
- 常用属性:
X1, Y1, X2, Y2
:线的起点和终点坐标。LineStyle
:实线、虚线等。LineWeight
:线的粗细。
-
Shape(形状)
- 功能:绘制矩形或椭圆形等简单图形。
- 常用属性:
ShapeType
:矩形、椭圆等。BackColor
:背景颜色。BorderColor
:边框颜色。
-
Picture(图片)
- 功能:插入静态图片或从数据源加载图片。
- 常用属性:
Image
:静态图片路径或二进制数据。SizeMode
:图片缩放方式。
-
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;
}
提示!!!
当我我修改水晶报表,删掉不需要的控件的时候,出现一个问题,就是,代码部分还在调用原控件,因此出现找不到控件的错误提示,这个就是报错的原因。(删除控件前先看一下代码部分是否被引用)
四、为何数据会循环显示?
-
Detail 区域的特性
- Detail 区域 会根据数据源的行数自动重复。每读取一行数据,就会在报表中生成一份 Detail 区域的内容。
location
控件绑定了数据字段location
,所以它会在每一行数据中展示对应的location
值。
-
DataField 属性的作用
location
控件的DataField
属性设置为location
,它会自动获取数据源中名为location
的字段值。- 每次遍历数据源时,ActiveReports 会将当前行的
location
字段值填充到这个控件中。
-
CanGrow 属性
- 控件的
CanGrow
属性设置为True
,这意味着如果数据内容较长,它会自动调整控件的高度以完整显示内容,而不会被截断。
- 控件的
-
Summary 属性未启用
SummaryType
设置为None
,因此它不是用于数据汇总的控件,仅用于单行数据展示。
- ActiveReports 的数据循环是由 Detail 区域 触发的。每行数据都会对应一份
Detail
区域的内容。 - 如果你希望进一步自定义显示效果,可以在
DataField
中绑定其他字段,或者在FormatString
中设置特定的格式。
五、总结
- Label 和 TextBox:用于静态文本和动态数据。
- Line 和 Shape:用于分割和装饰。
- Picture:用于插入图片。
- ReportInfo:用于显示页码、总页数和打印时间等报表信息。
- 使用
FormatString
可以灵活定制ReportInfo
的显示格式。