Вступление: Скриптинг в QlikView

С третьего номера я решил добавить в Альманах новый раздел, который будет освещать интересные приемы в скрипте QlikView при загрузке приложения. При разработке скрипта есть не менее интересные и полезные «фишки». Некоторые из них мы рассмотрим в этой статье.

Пример первый: Как узнать, сколько свободного места осталось на жестком диске

Рассмотрим один из способов работы со скриптом с использованием возможностей PowerShell.

Сначала нам потребуется несколько переменных (это путь до временного каталога, имя временного файла и переменная, в которую запишем размер свободного места на жестком диске).

Перед собственно командой для PowerShell удостоверимся, на всякий случай, что временного файла нет. Для этого выполним его удаление.

НА ЗАМЕТКУ! Даже если файла уже нет, то никакой ошибки не произойдет.

Само же удаление выполним через стандартную командную строку.

Далее запускаем тот самый скрипт, который с помощью PowerShell вернёт нам размер свободного места на жестком диске.

НА ЗАМЕТКУ! Не забудьте в настройках пользователя включить опцию Script (меню Settings\ User Preferences, вкладка «Security»:Allow Database, Write and Execute Statements).

А теперь обработаем полученный результат.

Понятно, что мы можем заменить константу строку C: на переменную, которая будет содержать нужный нам диск, на котором мы хотим узнать свободное место. Само свободное место в моем примере вычисляется в гигабайтах, поэтому оно ещё делится на 1024³.

НА ЗАМЕТКУ! Вместо команд TRACE можно написать свои обработчики ошибок.

Пример второй: Как узнать, какие сервисы запущены и, каковы их статусы

Опять воспользуемся готовой возможностью, используя PowerShell.

Сначала определим две переменные. Это путь до временного каталога и имя временного файла.

Опять же выполним удаление временного файла, чтобы не взять из него старую, предыдущую информацию.

Ну, и теперь запускаем скрипт с помощью PowerShell:

И загрузка полученного результата для анализа.

Получили для дальнейшего анализа вот такую таблицу: «Services» (пример А).

QlikView Scripting

Пример А

Пример третий: Как, имея список названий городов или адресов, найти их GPS координаты

Если в вашем приложении есть справочник каких-либо адресов или даже просто список названий городов, и вам хотелось бы показать их на карте, но нет привязки к GPS координатам, в этом случае выручит данный скрипт.

Сначала добавим в начало скрипта вот такую процедуру:

И предположим у нас уже есть в макете загруженная таблица, в одном из полей которой хранятся адреса и/или названия городов. Для примера просто создам список, используя INLINE:

Вот, что мы получим (пример Б):
QlikView Scripting
Пример (Б)

Продолжаем…

А теперь сам скрипт использования процедуры GetGEO.

Для каждого уникального значения адреса вызовем процедуру поиска GPS-координат:

После чего очищаем временные переменные и присоединяем найденный результат к исходной таблице:

Замечу, что когда адрес или город однозначно определяется процедурой поиска, то в возвращаемой GetGEO.Found будет 1, а если адрес не полный или не совсем точен, то система выдаст в переменную GetGEO.Found количество похожих адресов. Этот факт можно использовать, чтобы точно понимать корректный адрес или надо его уточнить подробнее.

НА ЗАМЕТКУ! Небольшое ограничение: в бесплатной версии «API Яндекс.Карт» можно делать не более 25000 запросов к геокодеру в сутки.

Ну, а теперь, полученные GPS-координаты легко отобразить на карте (пример В).

QlikView Scripting

Пример (В)

Коллеги, на этом сегодня все! До новых встреч в эфире!