通用单据打印控件问题集

来源:互联网 发布:美丽档案淘宝官网 编辑:程序博客网 时间:2024/04/29 16:35
通用单据打印控件问题集
1.        介绍一下格式设计器的大体情况
格式设计器的界面分为以下几部分:菜单与工具条页面设计器代码编辑器对象查看器报表结构树数据树工具箱等。
l         报表结构树:树形展示报表的层次结构,最顶级是Report对象,Report对象的下级是Page对象,可以有多个PagePage对象上可以容纳各种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         主数据、明细数据……第六级数据:连续的六级数据都可以相应的连结到具备主-从约束的后台关系记录集上。他们必须连续使用在同一页上,例如不能在一页上使用了主数据、次明细数据,而没有使用明细数据。我们称这六种BandDataBand.
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为主数据模型,在页上放置页眉和页脚。然后添加主数据BandMasterDataBand),把主数据字段放到页眉和页脚,把分录数据放到主数据band上。这种方式反映了一个事实:可以链接到记录集上的对象有七个层次。
7.        我定义的公式报错,如何解决?
l         检查你的表达是否存在括号是否不配对的现象,尤其要检查是否存在嵌套的中括号。
l         检查是否选择数据模型中不存在的字段
l         检查是否使用了不存在的函数
l         检查字符串常量的书写,注意要用单引号,不要写成双引号
8.        中文大写数字如何实现?
l         格式化函数中以下几个函数可以提供此功能:FiscalCurrencyCNFiscalNumberCNFormatToChMoneyFormatToChUpper
9.        把打印预览中的内容导出Excel,不美观,如何解决?
l         分录数据设计时要对齐一行,并且高度一致,边框左右一次连接
l         表格线使用边框来组合,不要使用Line对象来画格子。
l         导出时建议不要导出背景等。
10.    待续….
 
原创粉丝点击