跳到主要内容

Call

call 控制语句可调用必须由先前的 sub 语句定义的子例程。

语法:  

Call name ( [ paramlist ])

 

参数:  

参数
参数 说明
name 子例程的名称。
paramlist 实际参数逗号分隔符列表,用以发送至子例程。此列表中每个项目都可为字段名,变量或任意表达式。

由一条 call 语句调用的子例程必须由在脚本执行期间更先遇到的 sub 语句定义。

参数会复制到子例程中,此外,如果在 call 语句中的参数是一个变量而非表达式,重新将其复制到现有子例程中。

限制:  

  • 由于该 call 语句是一个控制语句,以分号或换行符结束,因此不能跨越行边界。

  • 当在控制语句中用 Sub..end sub 定义子例程时,例如 if..then,则只能从同一控制语句中调用该子例程。

示例:  

该示例列出文件夹及其子文件夹中所有和 Qlik 相关的文件,并将文件信息存储在表格中。假设您已创建了指向文件夹的名为 Apps 的连接。

参考文件夹调用了 DoDir 子例程,将 'lib://Apps' 作为参数。在子例程内,存在递归调用 Call DoDir (Dir),让函数在子文件夹中递归式查找文件。

sub DoDir (Root) For Each Ext in 'qvw', 'qvo', 'qvs', 'qvt', 'qvd', 'qvc', 'qvf' For Each File in filelist (Root&'\*.' &Ext) LOAD '$(File)' as Name, FileSize( '$(File)' ) as Size, FileTime( '$(File)' ) as FileTime autogenerate 1; Next File Next Ext For Each Dir in dirlist (Root&'\*' ) Call DoDir (Dir) Next Dir End Sub Call DoDir ('lib://Apps')

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!