一。 报表控件摆放的区段
作为报表,它通常有一个固定的模式,最常见的报表主要是由以下六部分组成:
PageHeader:页眉,每页均会出现
Title:标题, 只出现在第一页
ColumnHeader:所有列的标题,即报表文件的字段区域,每页只会出现一次
Detail:记录的内容,一个字段一列,即报表的文本区域(重复区)
Summary:摘要(只出现在最后一页)
PageFooter:页脚,每页均会出现
GroupHeader:
GroupFooter:
二。TQREcprMemo 组件:
在报表中是TQRExpr 和 TQRMemo 的混合组件 ,应用时一般放在QrDetail上,应用QrDetail上的数据字段做为参加运算的表达式,例如:
Lines属性:{Company}
{Addr1}
{Addr2}
{City}{IF(tbCustomer.State<>'',', ', '')}{State} {Zip}
{Country}
AutoStretch设置为true,自动扩展
三。TQRSysData控件
Data属性是一个枚举类型变量,它有七个取值,如下表:
系统功能类型表(Data取值表)
系统功能类型 |
功能描述 |
qrsTime |
系统时间 |
qrsDateTime |
系统日期和时间 |
qrsDetailCount |
需要打印的记录数量 |
qrsDetailNo |
正在打印的记录索引 |
qrsPageNumber |
正在打印的页 |
qrsReportTitle |
报表标题 |
qrsDate |
系统日期 |
Text属性是字符串类型变量,用来构成完整的系统功能字符串。
Data和Text这两个属性通常是一起使用的。如果将Text设置为“打印时间:”,而将Data设置为qrsDataTime,则系统打印结果为“打印时间:2003-9-21 13:08:12”的形式。
Text属性是字符串类型变量,用来构成完整的系统功能字符串。
Data和Text这两个属性通常是一起使用的。如果将Text设置为“打印时间:”,而将Data设置为qrsDataTime,则系统打印结果为“打印时间:2003-9-21 13:08:12”的形式。
许多情况下,我们更想打印如“第1页”这样格式的页码,使用上面的属性是不能实现的,这就要我们编写代码来实现。在打印/显示报表时,应用程序将触发OnPrint事件句柄。
这样我们只要在报表运算组件TQRExpr或系统功能组件TQRSysData的OnPrint中写下如下代码就可以实现了:
TForm1::TQRExpr1Print(TObject *sender, AnsiString &Value)
{
Value="第"+Value+"页";
}
TForm1::TQRSysData1Print(TObject *sender, AnsiString &Value)
{
Value="第"+Value+"页";
}通过这两段代码我们可以知道,原来这两个组件显示或起作用的就是Value,如果我们不修改Value的值,则直接打印Value内容。由于我们在OnPrint事件中修改了她的值,
从而改变了打印的内容。