...

Создание отчета Excel из данных приложения с учетом статусов

Тема в разделе "Вопросы по платформе", создана пользователем v.sabirov, 19 окт 2022.

  1. v.sabirov

    v.sabirov Участник

    Здравствуйте, прошу помочь с одной задачей. Создал раздел в котором создаю исходящие поручения (задачи), на основе системного раздела "Задачи", то есть воспроизвел системный раздел в своём приложении для получения возможности, в первую очередь организовать канбан-доску поручений (задач). Сейчас исходящие поручения (задачи) в качестве элементов приложения отображаются на канбан-доске и это очень удобно для мониторинга. Так вот. Не хватает отчета (лучше в привычном Excel), чтобы элементы приложения (поле название, а может и другие) могли выгружаться в разбивке по статусам. Стандартный экспорт не выгружает статусы совсем. Пробую через генератор документа по шаблону, но код для сценария написать не получается. Может иду сложным путем - не знаю даже.
  2. Codain

    Codain Активный участник

    Вариант тут только написать руками дешборд с мониторингом по статусам.
    Костыли ради костылей !
  3. v.sabirov

    v.sabirov Участник

    Дашборд по статусам есть уже. Нужен отчет этих статусов в Excel, в разбивке по элементам приложения (то есть задачам)
  4. pushkarev

    pushkarev Эксперт

    Можно попробовать сделать хак и завести вычислимое поле типа строка, в которую записывать статус, но не факт что получится, я так не пробовал. Если не получится через стандартное вычисление то в модуле можно сделать обработчик события изменения объекта и там сценарием прописывать текущий статус в дополнительное строковое поле. Это строковое поле уже будет в экспорте.
    Но более правильный путь это конечно сделать бизнес-процесс с формированием эксель файла по шаблону, в процессе предварительно отобрать данные и сложить в нужную структуру.
  5. krivonos

    krivonos Техническая поддержка

    Можно создать бизнес-процесс который будет экспортировать нужные данные по статусу с приложения в Excel, по-такому принципу:
    В процессе создать переменную с этим приложением типа "Несколько", в элементе "Сценарий" находим всем элементы нужного статуса приложения и записываем в эту переменную:
    Пример:
    async function data(): Promise<void> {
    const Status = Application.fields.__status.variants.STATUS
    Context.data.ELEMENTS = await Application.search().where((f, g) => g.and(
    f.__deletedAt.eq(null),
    f.__status.eq(Status)
    )).size(10000).all()

    const Status2 = Application.fields.__status.variants.STATUS2
    Context.data.ELEMENTS2 = await Application.search().where((f, g) => g.and(
    f.__deletedAt.eq(null),
    f.__status.eq(Status2)
    )).size(10000).all()
    }
    Далее в элементе "Генерация по шаблону" добавляем шаблон Excel, в котором пишем цикл вывода нужных колонок.
    Пример шаблона:
    upload_2022-10-27_11-0-57.png
    doc - принимает значение приложения, куда записаны элементы первого статуса.(Context.data.ELEMENTS)
    doc2 - принимает значение приложения, куда записаны элементы первого статуса.(Context.data.ELEMENTS2)

    Также можно реализовать, чтобы для каждого статуса создавалась своя таблица, тогда надо просто создать отдельные блоки Генерации по шаблону и поместить туда поля типа Приложения.

    После реализации данного бизнес-процесса, можно разместить кнопку экспорта в приложении, и привязать к ней его запуск.
  6. v.sabirov

    v.sabirov Участник

    Спасибо огромное! Все получилось. Полезный форум)