通用单据打印控件问题集
1.
介绍一下格式设计器的大体情况
格式设计器的界面分为以下几部分:
菜单与工具条、
页面设计器、
代码编辑器、
对象查看器、
报表结构树、
数据树、
工具箱等。
l 报表结构树:树形展示报表的层次结构,最顶级是Report对象,Report对象的下级是Page对象,可以有多个Page。Page对象上可以容纳各种Band对象,Band上可以放置各种基本对象,基本对象可以定义取数表达式。
l 页面设计器:页面设计器对应报表结构树中的Page对象,是设计的主要区域。
l 代码编辑器:代码编辑器中可以对各种对象的事件编写代码,这样就能对报表的生产做灵活控制。
l 对象查看器:可以查看并修改报表结构树中的每一个对象的属性以及事件。
l 数据树:数据树包括数据、函数、变量,有关其使用方法参考以下具体章节。
l 工具箱:从工具箱里面选取各种对象,从而在页面设计器上设计。
2.
格式设计器的基本原理是怎样的
结构化布局、主-从式数据模型是通用单据打印控件的基本特点。报表渲染引擎首先从布局的对象中找到链接到主数据上的对象,然后根据主数据中的记录条数逐条渲染这些对象,每渲染一条主数据后要接着渲染与其关联的从数据。这个过程是递归的。
3.
介绍一下工具箱中的各种对象
l 总体上分为三类:各种Band,各种基本对象,辅助工具(如格式刷)。
i. Text对象:即文本框对象,可以输入文本或者取数公式
ii. Picture对象:图像
iii. Line:线条
iv. Chart:图表
v. RechText:富文本对象,rtf格式
vi. BarCode:条码对象
vii. Draw对象:各种几何图形
viii. SubReport对象:比较特殊的一类对象,子报表对象。表示嵌入一个页对象。
l 报表标题(ReportTitle):报表的标题,整个报表只能有一个标题,只显示在第一页。并且显示在页眉对象之前。
l 页眉、页脚(PageHeader、PageFooter):固定显示在每页的上部与下部。可以设置“首页显示”、“末页显示”等选项。页眉位置由上边距确定。页脚的位置由下边距减去页脚高度来确定。
l 主数据、明细数据……第六级数据:连续的六级数据都可以相应的连结到具备主-从约束的后台关系记录集上。他们必须连续使用在同一页上,例如不能在一页上使用了主数据、次明细数据,而没有使用明细数据。我们称这六种Band为DataBand.
l 表头(Header)、表尾(Footer):每一种DataBand的前、后都可以放置表头、表尾。再表尾上放置文本对象,在文本对象内就可以定义包含聚合函数的取数公式。
l 重叠对象(Overlay):一类特殊的区域,放置在其上的对象采取绝对定位的方式,重叠对象代表了整个纸张去掉页边距所余的区域。所以我们可以用重叠对象设计一些单据的固定表格。
l 分组头、分组尾:分组头可以定义分组的依据,分组尾可以实现组内合计。
l 栏目头、栏目尾:报表可以在一张纸上进行分栏,实现多栏式报表。
4.
为什么我的数据(库)中有多条记录,但打印(预览)的时候,却仅仅显示了一条数据?
请检查你对象是否放到DataBand上了,从报表结构树可以查看层次结构。还要检查该DataBand是否链接到一个数据模型上了(可以从蓝色标题栏上检查,或者从对象查看器中检查DataSet属性是否正确设置)。
5.
如何实现某一字段合计?
可以在表尾上放置系统变量对象(西格玛符号对应的对象),然后双击使用其向导来设置即可。选择聚合数,函数使用sum,然后选择Band,再选择字段。如果需要把合计放到表头上,需要用脚本来辅助实现,可以参考后面相关介绍。
6.
如何设计两级主
-
从式报表(一个表头、多条分录)?
l 第一种方式:分别放置主数据Band和明细数据Band,并链接到相应的数据模型上。然后把需要显示的字段从主数据模型拖到主数据Band上、把分录上的数据从数据模型拖到明细数据Band上。也可以把文本对象放到DataBand上后,再选取字段。
l 第二种方式:设置页对象(Page)的属性DataSet为主数据模型,在页上放置页眉和页脚。然后添加主数据Band(MasterDataBand),把主数据字段放到页眉和页脚,把分录数据放到主数据band上。这种方式反映了一个事实:可以链接到记录集上的对象有七个层次。
7.
我定义的公式报错,如何解决?
l 检查你的表达是否存在括号是否不配对的现象,尤其要检查是否存在嵌套的中括号。
l 检查是否选择数据模型中不存在的字段
l 检查是否使用了不存在的函数
l 检查字符串常量的书写,注意要用单引号,不要写成双引号
8.
中文大写数字如何实现?
l 格式化函数中以下几个函数可以提供此功能:FiscalCurrencyCN,FiscalNumberCN,FormatToChMoney,FormatToChUpper
9.
把打印预览中的内容导出
Excel
,不美观,如何解决?
l 分录数据设计时要对齐一行,并且高度一致,边框左右一次连接
l 表格线使用边框来组合,不要使用Line对象来画格子。
l 导出时建议不要导出背景等。
10.
待续
….