1 окт. 2012 г.

QlikView + 1С, сохранение в QVD

Продолжаем изучать взаимодействие QlikView и 1С. Сегодня рассмотрим выгрузку данных в файл QVD. В дальнейшем, эти файлы можно подключать к другим проектам QlikView. Файлы QVD имеют меньший размер по сравнению с другими файлами данных, что несомненно является весомым аргументом для их использования при больших объемах данных. Для сравнения, .csv - больше примерно в два раза, .xls - три, .xml - 5-7 раз.

Некоторые модификации скрипта загрузки: определяем имя таблицы (my_vars), используем ADD LOAD.

Принцип формирования следующий:
1. Создание пустой таблицы.
2. Загрузка данных.
3. Использование частичной загрузки.

Переписываем код прошлого примера:
 sql_string = ПолучитьSQLСтроку();
 
 Qlik = Новый COMОбъект("QlikTech.QlikView");
 QlikDoc = Qlik.OpenDoc("d:\test1C.qvw");
 
 QlikParams = QlikDoc.GetProperties();
 QlikParams.Script =  
 "SET ThousandSep=' ';
 |SET DecimalSep=',';
 |SET MoneyThousandSep=' ';
 |SET MoneyDecimalSep=',';
 |SET MoneyFormat='# ##0,00р.;-# ##0,00р.';
 |SET TimeFormat='h:mm:ss';
 |SET DateFormat='DD.MM.YYYY';
 |SET TimestampFormat='DD.MM.YYYY h:mm:ss[.fff]';
 |SET MonthNames='янв;фев;мар;апр;май;июн;июл;авг;сен;окт;ноя;дек';
 |SET DayNames='Пн;Вт;Ср;Чт;Пт;Сб;Вс';
 |
 |my_vars:
 |ADD LOAD * INLINE [
 |    Data, Firma, Partner, Tovar, Quantity, Summa, Cost
 |];
 |
 |IF IsPartialReload() THEN
 | STORE my_vars Into mVars.qvd;
 |ENDIF";
 
 QlikDoc.SetProperties(QlikParams);
 //Запуск скрипта загрузки, создание пустой таблицы my_vars
 QlikDoc.Reload(); 
 //загрузка данных в QlikView
 QlikDoc.DynamicUpdateCommand(sql_string);
 //Запуск частичной загрузки, 
 //использование ADD LOAD не очищает таблицу my_vars
 //выполняется условие IsPartialReload() -> сохранение в QVD
 QlikDoc.DoReload(2, true);
 
После выполнения кода в каталоге с файлом .qvw появится файл .qvd.

Комментариев нет:

Отправить комментарий