Перейти к основному содержимому

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')

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!