PC-DMIS的报告语言允许在报告中使用Variable() 函数式显示变量的值。这个功能有如下语法:
变量(变量名称), [<optional command id or uid>])
第一个参数,字符型,代表变量的名称。第二个参数被当作变量的值使用。
例如,假定此代码位于测量例程中:
ASSIGN/V1=2
F1=FEAT/CIRCLE...
ASSIGN/V1=F1.X
COMMENT/OPER,“一些注释文本”
样例的目的,确定注释有个标识或是245的UID。
参照以上代码参见下例:
=VARIABLE("V1") - 若报告中没有其他语句将值设为 V1,这个值可以是 0 或 2,或者与特征 F1 的质心 X 测量值相同。它完全取决于在计算报告表达式时已执行了哪些命令,报告中又有哪些命令当前正在进行处理。
=VARIABLE("V1", "F1") - 若测量例程中只要一个名称为 "F1" 的特征,那么该表达式的结果应为 2,因为 V1 已直接指定给了特征 F1 上方的 2。
=VARIABLE("V1", 245) - 此种情况使用的是 UID;因此报告上这个表达式的值应与 F1.X 相同。
GridControlObject 的单个单元格不能从测量例程获取变量的值。在大部分情况中,需采用文本对象。
通常情况下,不能在报告的文件标头中显示变量值,因为 PC-DMIS 会在测量例程中执行语句前计算文件标头的值。因此,如果文件标头试图引用尚未创建的变量,PC-DMIS 将显示 0 值。然而,确实有一些选项可用于从测量例程获取标头的信息:
选项 1 - 使用跟踪字段代替变量
在测量例程中使用跟踪字段代替变量来捕获信息,使用标题标签模板的 GridControlObject 中所需单元格内的 =TRACEFIELD() 函数来参考。跟踪字段强制模板根据让跟踪字段显示的新信息重新评估报告。
优点\弊端
优点 - 设置相对简单。
缺点 - 您实际上使用的并非变量。而是跟踪字段,这存在其本身的限制。
选项 2 - 嵌入报告模板
在定义 ASSIGN 语句之后,嵌入报告模板到测量例程中,然后将变量值作为参数发送到标签模板上。根据需要在添加的单元格顶部添加另一行或另一单元格,对要显示的每个变量添加 Text 对象并固定其大小。最后,通过如下 REPORT/TEMPLATE 命令参数修改 Text 属性:
ASSIGN/V1="A String Value to Pass"
CS1 =REPORT/TEMPLATE,FILENAME=TEXTONLY.RTP,AUTOPRINT=NO,Section= -1
PARAM/TEXT1.TEXT=V1
参数/=
ENDREPORT/
因为标号模板被嵌入到报告模板中,所以可以更改标号模板中的某一参数。
优点\弊端
优点 - 现在变量将显示在最终报告的页眉中。
缺点 - 设置略显繁琐,因为除了要编写代码将报告模板嵌入测量例程,还需添加 Text 对象到标签模板。然而,这种方法的主要缺点是报告会一个接一个地产生两次(一次来自 PC-DMIS 的默认功能,另一次来自嵌入的 REPORT/TEMPLATE 代码块)。
选项 3 - 将页眉信息直接放入报告
从报告模板内的页眉标签模板中直接重新创建 GridControlObject,而不是使用页眉外部标签模板的报告模板,例如 File_Header.lbl。根据需要在添加的单元格顶部添加另一行或另一单元格,对要显示的每个变量添加 Text 对象并固定其大小。每个 Text 对象使用 =VARIABLE() 函数来拖动变量信息。例如 =VARIABLE("V1")。
在报告模板中应用更改。
在 TextReportObject 中更改规则,不使用页眉标签。
设置属性为当前部分,部分1
Command Set = 所有命令
Maximum Number of Pages = 1
添加第二章节 Section2,同样为其添加 TextReportObject,再次更改规则,不使用页眉标签。
设置属性为部分2
Command Set = 续上一章节
Maximum Number of Pages = 0(表示没有最大值)
优/缺点
优点 - 现在变量将显示在最终报告的页眉中。
缺点 - 由于必须在报告模板中重建 GridControlObject,为每个变量添加 Text 对象,以及添加其他报告章节,因此设置略显繁琐。此外,对报告所作的任何编辑,如打开“显示特征”或将尺寸更改为“仅超出公差”,需要执行两次,一次是对第 1 页(章节 1)执行,一次是对其他页面(章节 2)执行。
选项 4 - 使用一般特征强制报告的生成
此选项使用空的一般特征,强制标签模板重新评估报告,并将需求的变量值引入最终报告。
在测量例程中,创建一个空的一般特征,并为其指定说明性名称,如:
REPORTHEADER=GENERIC/NONE,DEPENDENT,CARTESIAN,OUT,$
下一步,修改页眉标签模板,依据需要向 GridControlObject 添加其他单元格,然后在添加的单元格的上方,为要显示的每个变量添加一个文本对象并调整该对象的大小。现在将每个 Text 对象的 Text 属性设为使用 =VARIABLE() 函数以提取变量信息。但在该选项中,需在 =VARIABLE() 函数中使用额外的参数以引用一般特征。例如,=VARIABLE("V1","REPORTHEADER")
优点\弊端
优点 - 这可能是最通用的方法。现在变量将显示在最终报告的页眉中。您无需像选项 2 一样两次编辑最终报告。
缺点 - 设置略显繁琐,因为需要在测量例程中加入一般特征,还要为标签模板中的每个变量添加 Text 对象。