>>打印应用显示列标题布局 用 IGRDisplayViewer 的 PostColumnLayout 方法提交报表的当前列布局状况,实现打印输出应用当前的列布局状况。 当报表在查询显示时调整了列的宽度与顺序,如果希望随后进行的打印任务也按改变的列布局进行输出,只要在打印与打印预览执行之前调用 IGRDisplayViewer 的 PostColumnLayout 方法就可以实现我们的目标。 >>计算字段 根据其它的数据字段以一定的运算规则得到某个数据字段的值,或在某一列直接显示这样的值。 方式1:在报表的 BeforePostRecord 事件中,计算出字段值,并将此值赋给要几算的字段。任何类型的字段都可以给出运算值,如数字进行四则运算,字符串进行部分截取或拼接等。 方式2:用综合文字框的表达式,在综合文字框中定义算术四则运算表达式,这种方式只能进行数字类型的计算,对其它数据类型不适用,但不用进行编程处理。如果数据要显示在明细行的列中,则要将列的内容格定义为自由格,然后插入一个综合文字框,一般将综合文字框的‘停靠’属性设为‘充满’。 当然在报表之外还有很多的方式可以实现计算字段,如在查询SQL语句中写计算数据列,在你的程序中进行计算等。 >>负数红字显示 实现报表在查询显示时按会计财务要求的负数用红字显示并不显示负号。在打印输出时,为了适应黑白打印机,负数还是按正常方式显示。本示例实现了数据列的负数红字显示与分组尾中统计数据的负数红字显示。用报表的 DisplayMode 属性判断报表是在查询显示状态中还是在打印页面生成状态中,从而实现报表在打印输出时不要进行负数红字显示方面的特殊处理。 在实现数据列的负数红字显示时,用报表的 SectionFormat 事件改变文字的显示颜色,用 FieldGetDisplayText 事件为字段提供自定义的显示文字,将负数的显示文字前面的负号去掉。用 TextBoxGetDisplayText 事件为文字类部件框提供自定义的显示文字,将统计值为负数的显示文字前面的负号去掉。 >>文字突出显示 在报表的 SectionFormat 事件改变列的内容格的显示外观,根据一定的条件实现文字的突出显示。用报表的 DisplayMode 属性判断报表是在查询显示状态中还是在打印页面生成状态中,实现报表在查询显示与打印输出两种状态下显示不同。 >>复选框(CheckBox) 实现复选框在报表表格中的显示,并能通过点击复选框实现其选中状态的改变,通过程序代码能够得到复选框的选中状态。 用图像框显示 Grid++Report 内部的系统图像来实现复选框的外观显示,图像框关联字段,通过字段值的改变为显示出复选框的选中与非选中状态。通过查询显示器控件的 ContentCellClick 事件改变字段的值,从而实现复选框的状态切换。 在内容格中定义图像框:首先将内容格的‘自由格’属性设为‘是’,将内容格设为自由格。删掉格中已经存在的部件框,插入一个新图像框,将其‘停靠’属性设为‘充满’。 >>按列重排序并重新分组 只要设置报表查询器控件的‘Resortable’属性就可以实现报表在查询显示时通过点击列标题进行按列排序的功能。在本示例中,通过在报表的 BeforeSort 事件中指定新的分组依据字段实现按列重排序并重新分组的功能。