Net.Data 允许您在 Net.Data 宏中定义和引用变量。另外,也可以将这些变量从宏 传送给语言环境,反之亦然。
可以根据变量类型和是否具有预定义值来定义 Net.Data 变量。可以根据变量的定义将这些变量 分为以下类型:
一个标识符(它是一个变量或函数调用)成为可见,意味着当它被说明 或例示之后就可被引用。 标识符可见的区域称为它的作用域。作用域有 5 种类型:
如果您可以在一个宏文件中的任何地方引用一个标识符,则该标识符就具有全局作用域。 具有全局作用域的标识符有:
如果一个标识符的说明出现在任何块的外面,则它有此作用域。一个块以左括号 ({) 开始,以百分号加右括号 (%}) 结束。(注意,DEFINE 块是此定义的例外,应当将它作为独立的 DEFINE 语句处理)。具有宏文件作用域的标识符从说明点到宏文件结束都是可见的。
如果在函数定义的参数表中说明一个标识符,则该标识符具有函数块作用 域。如果一个标识符在函数定义的外面已经存在相同名称,Net.Data 将使用函数块中的参数表中的 标识符。Net.Data 不使用或修改函数块外面的标识符及其值。
如果一个标识符在函数外已 被说明或初始化并且没有在函数参数表中说明,则该标识符不具有函数块作用域。在函数块中使用 此标识符时,它保持函数调用前指定的值。在函数块中更新之后,此标识符在函数调用之后保持新 值。
如果在参数表中没有定义并且在函数调用之前没有说明或初始化一个标识符,则该标识符具有函数块作用 域。 不能在函数块之外引用它。
如果一个标识符只可以在 REPORT 块中被引用(例如表列名 N1、N2、 ...、Nn),则它具有报表块作用域。只有 Net.Data 隐式定义为表处理的一部分 的那些变量才可以具有报表块作用域。例示的任何其它变量都具有函数块作用域。
如果只可以从 ROW 块中调用一个标识符(例如表值名 V1、V2、...、Vn),则该标识 符具有行块作用域。 只有 Net.Data 隐式定义为表处理的一部分的那些变量才可以具有行块作用域。 例示的任何其它变量都具有函数块作用域。
引用一个标识符时,它被替换以标识符的值。如果对变量的引用没有值与它关联,或 函数调用没有返回值,则此引用就被替换以空字符串。
以下各节描述如何定义和引用变量,并描述不同的变量类型以及使用方法。