创建 RTF 文档访问报告模板
RTF 模板用于 Windows 的 LN Mobile Service,因此不适用于 Android/iOS 版本。Android/iOS 版本使用 HTML 模板。
占位符 RTF 文档
在 RTF 文档访问报告模板中,占位符通过在标记内使用文本来定义。占位符有四种类型。所有占位符都通过在标记内使用文本来定义。
表示法 | 占位符类型 |
---|---|
<<标签名称>> | 标签 |
##占位符名称## | 数据集中的数据项 |
%%占位符名称%% | 数据集中的图像 |
[[数据集标识]] | 数据集标识 |
##DepartmentName## | <<Order>> | ##ServiceOrder## |
---|---|---|
##DepartmentAddress## |
<<OrderReference>> <<StartTime>> <<ServiceEngineer>> |
##ReferenceA## ##StartTime## ##Engineer## |
在此示例中,<<Order>>、<<OrderReference>> 等都是标签(可翻译文本占位符)。##DepartmentName##、##ServiceOrder## 等都是数据项。在这种情况下,这些数据项检索自文档级别数据集。由于此文档数据集普遍可用,这些占位符可以用于文档中的任意位置。如需所有占位符的清单,请参阅附录 访问报告模板的占位符。
NL Service Department | Service Order | SOO001407 |
---|---|---|
Het Torentje Binnenhof 19 2513 AA Den Haag, Zuid Holland The Netherlands |
Reference Start Time Service Engineer |
CUST_B_00012 15-8-2016 10:28 John Doe |
布局
通常,占位符可以置于 RTF 文档中的任意位置。因此,类似服务订单编号 ##ServiceOrder## 的起始日期为 ##StartDate##的结构完全有效。
为了对齐要素,可以使用标签或表格。可以插入表格。栏和行可以合并。例如,如下表格有效:具有两行,第一行具有一个单元格,第二行具有三个单元格。
<<SomeTranslatedText>> | ||
##FieldA## | ##FieldB## | ##FieldC## |
上面显示的布局将从文档数据集检索字段 A、B 和 C。
若要显示任意其他数据集的数据,必须遵循布局惯例。所有数据集相依的占位符必须在一个表格中。数据集标识是布局惯例的关键。标识必须置于第一行的第一个单元格作为此表格的第一个文本。
数据集布局惯例:
[[DataSetIdentifier]] | ||
<<HeaderTextA>> | <<HeaderTextB>> | <<HeaderTextC>> |
##FieldA## | ##FieldB## | ##FieldC## |
数据集惯例定义三个或更多行。
- 第一行必须包含数据集标识(带有 [[ ]] 标记)。另请参阅文档中之前提供的数据集定义。找不到数据集标识时,该表格会作为布局表格处理。请参阅上文。执行合并之后,数据集标识行将被删除。
- 数据集包含多少条记录就会将最后一行复制多少次。每个已复制行的数据占位符都会取代为相应数据集记录的值。如果布局行包含与数据集属性不对应的数据占位符,则会使用父数据集进行取代。如果在父数据集中找不到匹配项,则占位符会与文档数据集值匹配,并可能会被其取代。
- 所有其他行为页眉行(零、一或多个)页眉行通常包含可翻译的文本占位符 (<< >>)。如果页眉行包含数据占位符,则会从父数据集取代数据。如果不适用,则会使用文档数据集中的数据取代占位符。
数据集表格的最低要求是两行。页眉行为可选项。
带有两个页眉行的示例:
[[MaterialCost]] | |||
<<Materials>> | |||
<<Quantity>> | <<ItemCode>> | <<ItemDescription>> | <<Amount>> |
##Quantity## | ##Item## | ##Description## | ##AmountOrCoverage## |
没有页眉行的示例:
[[MaterialCost]] | |||
##Quantity## | ##Item## | ##Description## | ##AmountOrCoverage## |
嵌套布局
为了能够显示父/子关系,定义了额外的惯例。对于活动和材料而言,如果必须显示每个活动的材料,则必须将材料表嵌套在活动表中。数据集具有可以识别是否用作子集的结构。在嵌套材料表中,只会显示当前活动的材料,而不会显示访问的所有材料。
在最后一行中插入嵌套表时要谨慎。如果需要多个表(例如,材料、人工和其他成本),则可以将表格插入在同一单元格中,并在中间使用段落结束标记(回车)。另请参阅,附录 访问报告的默认模板中的 Materials - LaborCost - OtherCost 布局。
在 Word 中,这很容易实现。将光标置于表格单元格中,并从“插入”标签中选择“添加表格”。
嵌套数据集布局惯例:
[[DataSetIdentifier]] | ||
<<HeaderTextA>> | <<HeaderTextB>> | <<HeaderTextC>> |
##FieldA## | ##FieldB## | ##FieldC## |
[[DataSetIdentifier]] | ||
<<HeaderTextX>> | <<HeaderTextY>> | <<HeaderTextZ>> |
##FieldX## | ##FieldY## | ##FieldZ## |
嵌套数据集布局示例:
[[Activities]] | ||
“<<Activity>> ##Description##” | ||
[[MaterialCost]] | ||
“<<Materials>>” | ||
“<<Quantity>>” | “<<ItemCode>>” | “<<Description>>” |
##Quantity## | ##Item## | ##ItemDescription## |
在上述示例中,在活动数据集 [[Activities]] 中插入了材料成本数据集 [[MaterialCost]]。##Description## 检索自活动数据集。##Quantity##、##Item## 和 ##ItemDescription## 检索自 MaterialCost 数据集。
嵌套数据集布局结果示例:
“活动维修框” | ||
“材料” | ||
“数量” | “物料代码” | “说明” |
6 件 | AVDK17 | 刨花板 |
3 箱 | AVDK1501 | 钉子 |
合计
针对显示成本的每个数据集,都会计算合计。在默认模板中,这些合计会显示在摘要段落中。
占位符 Totalxxx 和 GrandTotal 显示选定活动的所有成本值。这些成本的详细行不必显示在报告中。TotalDetailxxx 和 GrandDetailTotal 占位符仅包含来自详细成本行的值。
通过这种方式,您可以决定仅显示不含明细的合计值,还是显示明细并显示这些明细的合计值。
编辑模板的工具
模板必须存储为 RTF 文件。Microsoft Word 可以处理此类型的文件,此外还有其他文本处理应用程序可以编辑此类型的文件。创建模板之后,该文件必须存储为 .rtf 文档。
尽管屏幕上的布局看起来可能相同,但是在不同文本处理器(以及应用程序)的打印输出中还是会有不同。所以,如果您使用预印的纸张,请使用真实数据测试模板,然后存储为 PDF。
编辑模板的工具
模板必须存储为 RTF 文件。Microsoft Word 可以处理此类型的文件,此外还有其他文本处理应用程序可以编辑此类型的文件。创建模板之后,该文件必须存储为 .rtf 文档。
尽管屏幕上的布局看起来可能相同,但是在不同文本处理器(以及应用程序)的打印输出中还是会有不同。所以,如果您使用预印的纸张,请使用真实数据测试模板,然后存储为 PDF。
提示:编辑占位符
添加或更改占位符时,在一次动作中键入整个占位符,不要更改任何个别字符,因为有时候 Word 会在 RTF 文档中添加某些看不见的标记。如果是这样,报告合并器无法立即解释模板,占位符也无法在访问报告中得到取代。对于拼写正确,但是并没有显示合并值的占位符,请编辑模板文档,并重新键入从开始到结束的占位符,包括前端和后端标记。
提示:MS Word 设置中的 Web 布局视图
当使用 Word 作为编辑器时,建议使用 Web 布局视图。从菜单栏,选择“视图”标签,然后单击“Web 布局视图”。纸张右边距外面的表边框将会显示出来并可以编辑。
提示:查看网格线
单元格网格线也可以显示出来。默认情况下,此功能未启用。使用“主页”标签中的边框布局选项,然后单击“查看网格线”。不具有可见边线的边框会显示为虚线。