Советы и рекомендации по QlikView
В этой статье мы рассмотрим следующие ключевые темы:
- Несколько советов по написанию кода
- Удивительные источники данных
- Включаемые файлы
- Журналы изменений
Несколько советов по написанию кода
Есть несколько способов улучшить QlikView. Есть определенные техники, или просто полезные вещи, которые нужно знать или делать. Вот несколько наших любимых.
Не меняйте свой стиль написания кода
На самом деле это не просто аккуратный стиль разработки. Рекомендуем вам всегда применять один и тот же подход в именовании функций, не важно, какой стиль вы используете (если только у вас нет стандартов, которые требуют определенного стиля). Например, вы можете использовать MonthStart(), monthstart() или MONTHSTART(). Все они работают одинаково, но для единообразия выберите один принцип и придерживайтесь его.
Используйте MUST_INCLUDE вместо INCLUDE
Эту функцию вообще не документировали до позднего релиза v11.2; однако она очень полезна. Если вы используете INCLUDE, а файл, который вы пытаетесь включить, не удается найти, QlikView проигнорирует его. Последствия этого непредсказуемы, от странного поведения до полного отказа скрипта. Если вы используете MUST_INCLUDE, QlikView будет жаловаться на отсутствие включенного файла, и вы можете решить проблему, прежде чем она потянет за собой другие проблемы. На самом деле кажется странным, что INCLUDE этого не делает, но у Qlik, наверное, есть на то свои причины. Тем не менее, лучше всегда использовать MUST_INCLUDE, чтобы сэкономить время и силы.
Вставляйте номера версий в свой код
В QlikView нет системы управления версиями как таковой, и нам еще предстоит увидеть такую, которая бы эффективно работала с QlikView. Так что со стороны разработчика потребуются некоторые усилия. Разработайте систему управления версиями и всегда вставляйте номер версии в переменную, которая отображается где-нибудь в приложении. Обновляете ли вы этот номер каждый раз при внесении изменений, или нет, в любом случае убедитесь, что он актуален для текущего релиза и связан с вашими собственными журналами выпуска.
Удивительные источники данных
QlikView будет считывать таблицы базы данных, электронные таблицы, файлы XML и текстовые файлы, а вы знали, что он также может получать данные прямо из веб-страницы? Если вам нужны данные из Интернета, создавать собственную их версию не нужно. Просто достаньте их с веб-страницы. Как насчет ISO кодов стран? Вот вам пример.
Откройте скрипт и щелкните Web files… (Веб-файлы…) под Data from Files (Данные из файлов) в правой части нижней части экрана. Это откроет диалог File Wizard: Source (Мастер работы с файлами: источник), как показано на следующем скриншоте.
Введите URL-адрес, по которому находится таблица с данными:
Затем нажмите Next (Далее) и в этом случае выберите @2 в Tables (Таблицы), как показано на следующем скриншоте:
Нажмите Finish (Завершить), и ваш скрипт будет выглядеть примерно так:
LOAD F1, Country, A2, A3, Number FROM [http://www.airlineupdate.com/content_public/codes/misc_codes/icao_nat.htm] (html, codepage is 1252, embedded labels, table is @2);
Примерно за 30 секунд у вас появится отличная таблица соответствия; потребуется еще несколько секунд, чтобы подчистить ее для ваших целей. Одно небольшое предостережение: веб-страницы могут менять адрес, контент и структуру, поэтому стоит проводить проверку, если вы считаете, что возможны какие-либо изменения.
Включаемые файлы
Мы уже говорили, что вам следует использовать MUST_INCLUDE, а не INCLUDE, но нас всегда удивлял тот факт, что многие разработчики вообще никогда не используют включаемые файлы. Если один и тот же код нужно использовать более чем в одном месте, он должен быть во включаемом файле.
Предположим, у вас есть несколько документов, которые используют файл C:QlikFilesFinanceBudgets.xlsx, и имя папки жестко запрограммировано в каждом из них. Как только файл перенесут в другое место, вам придется вносить целый ряд изменений, и можно легко пропустить изменение документа, потому что вы можете даже не знать, что там используется файл.
Решение в этом случае простое, очень эффективное и гарантированно избавит вас от многих сбоев перезагрузки.
Вместо того, чтобы прописывать полное имя папки, создайте что-то вроде этого:
LET vBudgetFolder='C:QlikFilesFinance';
Поместите строку во включаемый файл, например, FolderNames.inc.
Затем введите это в каждый скрипт следующим образом:
$(MUST_INCLUDE=FolderNames.inc)
Теперь, если вы хотите обратиться к своей таблице Budgets.xlsx, введите следующий код:
$(vBudgetFolder)Budgets.xlsx
Теперь, если путь к папке меняется, вам нужно изменить только одну строку кода во включаемом файле, и все будет работать нормально, если вы реализуете включаемые файлы во всех своих документах.
Обратите внимание, что это работает и для папок, которые содержат файлы QVD и так далее. Вы также можете использовать эту технику для включения LOAD из QVD или электронных таблиц, потому что вы всегда должны стремиться получить только одну версию истины.
Журнал изменений
К сожалению, одна из вещей, в которых QlikView не очень преуспел – это контроль версий. Бывает сложно заметить, что именно сделано в следующих версиями документа, а использование функции папки -prj может быть чрезвычайно утомительным и не обязательно даст результат. Это означает, что вам, как разработчику, необходимо поддерживать некоторую дисциплину в отношении контроля версий.
Для этого убедитесь, что у вас есть область комментариев прямо в верхней части вашего скрипта, она выглядит примерно так:
// Demo.qvw // // Roger Stone - One QV Ltd - 04-Jul-2015 // // PURPOSE // Sample code for QlikView Unlocked - Chapter 6 // // CHANGE LOG // Initial version 0.1 // - Pull in ISO table from Internet and local Excel data // // Version 0.2 // Remove unused fields and rename incoming ISO table fields to // match local spreadsheet //
Убедитесь, что вы обновляете ее каждый раз, когда вносите изменения. Вы можете сделать её ещё полезнее, объяснив, почему было внесено изменение, а не только то, что именно изменилось. Вы также должны прокомментировать выражения в диаграммах при их изменении.