Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Ноябрь 15, 2018, 08:55:29 am

Автор Тема: Помогите правильно организовать загрузку данных  (Прочитано 542 раз)

Оффлайн Валерий

  • Новичок
  • *
  • Сообщений: 22
  • Страна: ua
  • Рейтинг: +3/-0
    • Просмотр профиля
Доброго времени суток!
Столкнулся с выгрузкой из 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 $                                         Проживание в отеле





           

Оффлайн Maestro

  • Новичок
  • *
  • Сообщений: 8
  • Страна: ru
  • Рейтинг: +2/-0
    • Просмотр профиля
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;

Без циклов вряд ли что-то придумается(

Оффлайн Валерий

  • Новичок
  • *
  • Сообщений: 22
  • Страна: ua
  • Рейтинг: +3/-0
    • Просмотр профиля
Спасибо. Сейчас попробую :)

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


Оффлайн Валерий

  • Новичок
  • *
  • Сообщений: 22
  • Страна: ua
  • Рейтинг: +3/-0
    • Просмотр профиля
Всё вышло, благодарю.
Но, как вы знаете, аппетит приходит во время еды :)
Скажите, а у 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 $                                         Проживание в отеле

Ну и т.д, если больше сотрудников.
Заранее спасибо.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
https://help.qlik.com/ru-RU/qlikview/November2017/Subsystems/Client/Content/Scripting/ScriptRegularStatements/Store.htm

Скрипт выгружает данные оператором Store в форматы qvd и текстовый с разделителями.

Оффлайн Maestro

  • Новичок
  • *
  • Сообщений: 8
  • Страна: ru
  • Рейтинг: +2/-0
    • Просмотр профиля
Тут, скорее, нужно смотреть в сторону макросов.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Тут, скорее, нужно смотреть в сторону макросов.
Проще и быстрее в 1с отчет подправить.
А если делать с прицелом на будущее - то извлечение из БД напрямую будет оптимальным решением.
Есть еще новый механизм в 1с - oData. Можно его потестировать, заодно с народом поделиться опытом  ;)

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


Оффлайн Maestro

  • Новичок
  • *
  • Сообщений: 8
  • Страна: ru
  • Рейтинг: +2/-0
    • Просмотр профиля
Если нет программиста 1С, то вряд ли будет проще и быстрее  ;D
Насколько я понял, ТС нужно один отчет из 1С раскидать по нескольким файлам.
А данные, да, проще и удобнее тянуть напрямую из базы 1С.

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

Оффлайн Валерий

  • Новичок
  • *
  • Сообщений: 22
  • Страна: ua
  • Рейтинг: +3/-0
    • Просмотр профиля
Если нет программиста 1С, то вряд ли будет проще и быстрее  ;D
Насколько я понял, ТС нужно один отчет из 1С раскидать по нескольким файлам.
А данные, да, проще и удобнее тянуть напрямую из базы 1С.

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

На верхнее цитирование нажимай, а не на нижнее :)

Оффлайн Maestro

  • Новичок
  • *
  • Сообщений: 8
  • Страна: ru
  • Рейтинг: +2/-0
    • Просмотр профиля
Получилось. Благодарю :)

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