TX Text Control X10新功能大揭秘(4):报表功能中的基本概念

发布时间:2013/10/24 00:10 发布者:jian

返回博客中心

TX Text Control X9 产品发布至今已有近一年时间,在此期间葡萄城控件作为 Text Control GmbH 中国总代理,我们不仅为 TX Text Control 中文用户提供了丰富的产品中文资料中文资源包中文演示程序,我们还不断收集中文用户对产品的功能需求和用户案例,并以此为依据同厂商展开 TX Text Control X10 新功能的讨论和研究。

TX Text Control X10 将会在201311月底正式发布,在发布之前葡萄城控件与 TX 厂商一起,为广大的中文用户提供 TX Text Control X10 新功能介绍的系列文章。同时,敬请大家关注葡萄城技术博客中关于 TX Text Control 产品相关的更多文章。

报表功能中的基本概念

1.       合并域(Merge Fields

合并域是 Text Control 报表引擎中的最基本概念

合并域是模板中格式化的文本占位符,通过合并域可以将数据源中的数据与模板建立对应关系。而且,Text Control 报表功能中的合并域与通过MS Word创建的模板具有良好的兼容能力。

提示:合并域有一个特殊的名称,该名称用于与数据源中的列名进行匹配,Text Control 报表功能会自动完成这一匹配操作。

您可以从 Mailings菜单中的“Insert Merge Field”下拉列表中选择所需要的域,并通过点击操作来将其插入到模板中。

animation_reporting_9

域的格式设置在数据合并之后同样可以保存下来,这就为设计器以所见即所得(WYSIWYG)的方式创建模板提供了完美的支持。

除此之外,您还可以通过合并域选项对话框,对合并域进行更细粒度的选项设置。

image

域的样式定义了合并域的字符串显示格式,可选样式如下:

l  none

l  UPPERCASE

l  lowercase

l  First capital

l  Title Case

除此,还可以根据需要在合并操作过程中,在合并域的首/尾插入文本。

相关事件:

l  DocumentServer.MailMerge.FieldMerged

l  DocumentServer.MailMerge.DataRowMerged

2.       合并块(Merge Blocks

合并块是一个用于循环显示数据源中的数据的一个区域。

合并块根据数据源中的数据行数进行循环显示,每个合并块可以包含多个合并域对象,并通过合并域来显示数据源中的数据。

合并块内容设置并没有特殊的限制,它可以包含一个表格行、完整的表格、段落、图片或者文本框。

在模板设计器中选定数据源之后,可以通过以下操作来插入合并块:

1)        打开 TX Text Control Words,并打开示例数据库。

2)        点击“Insert Merge Block”下拉按钮,以打开可选的数据表,然后选择您需要的数据表。

3)        在出现的对话框中,选择您需要的数据列,并点击OK按钮。

animation_reporting_10

模板设计器自动插入一个表格行,并在该表格行的起止位置分别插入了用于定义合并块的书签。

提示:书签具有特殊的命名方式,TX Text ControlMailMerge类型将找到合并块,并建立于数据的连接关系。合并块起始书签名为方式为 BlockStart_ 加上名称。比如:BlockStart_Items$,与之对应的截止书签名为BlockEnd_items$

在插入合并块之后,您还可以对合并域进行格式设置。

相关事件:

l  DocumentServer.MailMerge.BlockRowMerged

l  DocumentServer.MailMerge.FieldMerged

l  DocumentServer.MailMerge.DataRowMerged

3.       -从级联数据报表合并块(Master-Detail

-从关系是一种1:n(一对多)类型的关系。

订单以及订单明细是一个一个非常典型的主-从关系数据结构,一个订单中可以包含若干条明细数据。在TX Text Control您可以非常方便的创建具有复杂结构的级联报表。

提示:TX Text Control 中的重复块没有级联层次数量的限制,使用方式与通常的合并块完全一致。

每个块都拥有唯一的名称,该名称用于与数据源中的DataTable名称进行匹配,如果级联块与已经存在的 DataRelation 所识别,他们将会自动完成合并操作,以下截图展示了级联块与数据关系的基本概念:

image

从绿颜色的起始书签到绿颜色的截止书签时最外层的块,用于显示Article分组;蓝颜色区域的书签时内层块,用于显示详细数据。

用于合并的数据源结构图如下:

image

模板与数据合并之后的结果:

image

相关事件:

l  DocumentServer.MailMerge.BlockRowMerged

l  DocumentServer.MailMerge.FieldMerged

l  DocumentServer.MailMerge.DataRowMerged

4.       条件域(Conditional Fields

条件域 IF 用于在特定条件下插入文本。

Text Control 报表引擎会比较两个���,并根据比较结果插入相应的文本。条件合并域的第一个表达式必须是合并域名称。在合并文档时,合并域的值与第二个表达式进行比较,由此来决定应该插入的文本值,条件域格式如下:

{ IF Expression1 Operator Expression2 TrueText FalseText }

运算符可选值有:

l  等于(Equal to

l  不等于(Not equal to

l  大于(Greater than

l  小于(Less than

l  大于等于(Greater than or equal to

l  小于等于(Less than or equal to

要在文档中插入条件域,你可以从Mailings菜单中的“Insert Special Field”下拉框中选择 IF 菜单项。输入域名称、条件、以及truefalse文本,然后点击OK按钮。

animation_reporting_11

相关事件:

l  DocumentServer.MailMerge.BlockRowMerged

l  DocumentServer.MailMerge.FieldMerged

5.       包含文本域(Include Text Fields),可用于插入子模板

包含文本域是一个指向外部文档的引用,该外部文档会在邮件合并过程中包含到主文档。

通过包含文本域,可以实现子模板的分离存储,以此来实现文档的复用。包含文本域引用的子模板名称必须存在与 SearchPath 属性所指定的路径中。

要在文档中插入包含文本域,你可以从Mailings菜单中的“Insert Special Field”下拉框中选择 IncludeText 菜单项。输入子模板名称,然后点击OK按钮。

animation_reporting_12

相关事件:

l  DocumentServer.MailMerge.IncludeTextMerging

6.       日期域(Date Fields

日期域是以一种指定的格式显示当前日期。

在模板合并时,当前日期被合并到该域中,并且可以通过格式化字符串控制日期的显示格式。可以从Mailings菜单中的“Insert Special Field”下拉框中选择 Date 菜单项插入日期域。

image

相关事件:

l  DocumentServer.MailMerge.FieldMerged

以上只是 TX Text Control X10 诸多新功能中的冰山一角,更多新功能介绍请关注葡萄城技术博客中的 TX Text Control X10 新功能大揭秘 系列文章。

关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网