Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: Валерий от 22 октября 2018, 02:25:07

Название: Помогите правильно организовать загрузку данных
Отправлено: Валерий от 22 октября 2018, 02:25:07
Доброго времени суток!
Столкнулся с выгрузкой из 1С и никак не придумаю как правильно организовать загрузку данных, прошу вашей помощи.

Исходные данные допустим такие:

Дата.ФИО                  Расходы                                  Описание
01.10.2018                80 $                                         Командировочные
02.10.2018                300 $                                        Проживание в отеле
10.10.2018                150 $                                        Обед с клиентом
13.10.2018                 20 $                                         Такси
Итого                         450$
Иванов И.И.
03.10.2018                 60 $                                         Аренда авто
04.10.2018                200 $                                        Затраты на семинар
10.10.2018                 50 $                                         Обед с клиентом
13.10.2018                 90 $                                         Проживание в отеле
Итого                         400$
Петров П.П.           

Хотелось бы получить таблицу в привычном виде. Заранее спасибо.

ФИО                   Дата                Расходы                                            Описание
Иванов И.И.        01.10.2018            80 $                                         Командировочные
Иванов И.И.         02.10.2018           300 $                                        Проживание в отеле
Иванов И.И.        10.10.2018           150 $                                        Обед с клиентом
Иванов И.И.        13.10.2018             20 $                                        Такси
Петров П.П.         03.10.2018            60 $                                         Аренда авто
Петров П.П.         04.10.2018            200 $                                       Затраты на семинар
Петров П.П.         10.10.2018             50 $                                        Обед с клиентом
Петров П.П.         13.10.2018            90 $                                         Проживание в отеле





           
Название: Re: Помогите правильно организовать загрузку данных
Отправлено: Maestro от 22 октября 2018, 05:53:06

tmp:
LOAD * Inline [
Дата.ФИО, Расходы, Описание
01.10.2018, 80, Командировочные
02.10.2018, 300, Проживание в отеле
10.10.2018, 150, Обед с клиентом
13.10.2018, 20, Такси
Итого, 450$
Иванов И.И.
03.10.2018, 60, Аренда авто
04.10.2018, 200, Затраты на семинар
10.10.2018, 50, Обед с клиентом
13.10.2018, 90, Проживание в отеле
Итого, 400$
Петров П.П.
];

LET y = 0;

for i=0 to NoOfRows('tmp') - 1
let userID = $(i) + 1;
let id = 0;
LET dt = null;
LET amount = 0;
let descrypt = '';


DO WHILE 1 = 1
let id = $(y) + 1;
let dt = Peek('Дата.ФИО', $(y), 'tmp');
let amount = Peek('Расходы', $(y), 'tmp');
let descrypt = Peek('Описание', $(y), 'tmp');
Расходы:
LOAD * Inline [
Id,UserID, TheDate, Amount, Descr
$(id), $(userID), $(dt), $(amount), $(descrypt)
];
y = $(y) + 1;
if trim(Peek('Дата.ФИО', $(y), 'tmp')) = 'Итого' THEN
EXIT DO
ENDIF
LOOP

LET userName = Peek('Дата.ФИО', $(y)+1, 'tmp');
Сотрудники:
LOAD * Inline [
UserID, UserName
$(userID), $(userName)
];
y = $(y) + 2;
if(IsNull(Peek('Дата.ФИО', $(y), 'tmp'))) then
EXIT FOR
ENDIF
NEXT

DROP Table tmp;


Без циклов вряд ли что-то придумается(
Название: Re: Помогите правильно организовать загрузку данных
Отправлено: Валерий от 23 октября 2018, 08:48:23
Спасибо. Сейчас попробую :)
Название: Re: Помогите правильно организовать загрузку данных
Отправлено: Валерий от 24 октября 2018, 03:52:46
Всё вышло, благодарю.
Но, как вы знаете, аппетит приходит во время еды :)
Скажите, а у QS есть возможность сохранить эту таблицу, предварительно разбив по каждому сотруднику в отдельный xls файл?

Т.е. должно получиться:

1й файл: Иванов.xls
В файле:
ФИО                   Дата                Расходы                                            Описание
Иванов И.И.        01.10.2018            80 $                                         Командировочные
Иванов И.И.         02.10.2018           300 $                                        Проживание в отеле
Иванов И.И.        10.10.2018           150 $                                        Обед с клиентом
Иванов И.И.        13.10.2018             20 $                                        Такси

2й файл: Петров.xls
В файле:
ФИО                   Дата                Расходы                                            Описание
Петров П.П.         03.10.2018            60 $                                         Аренда авто
Петров П.П.         04.10.2018            200 $                                       Затраты на семинар
Петров П.П.         10.10.2018             50 $                                        Обед с клиентом
Петров П.П.         13.10.2018            90 $                                         Проживание в отеле

Ну и т.д, если больше сотрудников.
Заранее спасибо.
Название: Re: Помогите правильно организовать загрузку данных
Отправлено: admin от 24 октября 2018, 05:20:16
https://help.qlik.com/ru-RU/qlikview/November2017/Subsystems/Client/Content/Scripting/ScriptRegularStatements/Store.htm

Скрипт выгружает данные оператором Store в форматы qvd и текстовый с разделителями.
Название: Re: Помогите правильно организовать загрузку данных
Отправлено: Maestro от 25 октября 2018, 09:51:21
Тут, скорее, нужно смотреть в сторону макросов.
Название: Re: Помогите правильно организовать загрузку данных
Отправлено: admin от 25 октября 2018, 12:27:25
Цитата: Maestro от 25 октября  2018, 09:51:21  
Тут, скорее, нужно смотреть в сторону макросов.
Проще и быстрее в 1с отчет подправить.
А если делать с прицелом на будущее - то извлечение из БД напрямую будет оптимальным решением.
Есть еще новый механизм в 1с - oData. Можно его потестировать, заодно с народом поделиться опытом  ;)
Название: Re: Помогите правильно организовать загрузку данных
Отправлено: Maestro от 25 октября 2018, 03:25:20
Если нет программиста 1С, то вряд ли будет проще и быстрее  ;D
Насколько я понял, ТС нужно один отчет из 1С раскидать по нескольким файлам.
А данные, да, проще и удобнее тянуть напрямую из базы 1С.

P.S. Как использовать цитирование? выделяю текст, нажимаю на "Цитата" и... Ничего не происходит. ЧЯДНТ?
Название: Re: Помогите правильно организовать загрузку данных
Отправлено: Валерий от 26 октября 2018, 03:11:15
Цитата: Maestro от 25 октября  2018, 03:25:20  
Если нет программиста 1С, то вряд ли будет проще и быстрее  ;D
Насколько я понял, ТС нужно один отчет из 1С раскидать по нескольким файлам.
А данные, да, проще и удобнее тянуть напрямую из базы 1С.

P.S. Как использовать цитирование? выделяю текст, нажимаю на "Цитата" и... Ничего не происходит. ЧЯДНТ?

На верхнее цитирование нажимай, а не на нижнее :)
Название: Re: Помогите правильно организовать загрузку данных
Отправлено: Maestro от 26 октября 2018, 04:42:04
Получилось. Благодарю :)