вывести в pdf-отчёт количество записей в разделе

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Sab0tajue
    Senior Member
    • Jul 2019
    • 315

    вывести в pdf-отчёт количество записей в разделе

    скажите, мне требуется вывести количество записей в pdf-форму из раздела + подсчитать сумму значений в одном из полей в разделе (там только цифры) как это можно сделать?
  • Alexan Parsamyan
    Junior Member
    • Feb 2020
    • 3

    #2
    Добрый день, есть у вас скриншоты ?

    Comment

    • Sab0tajue
      Senior Member
      • Jul 2019
      • 315

      #3
      Скриншотов нет, но хотел бы через формулу понять. Раздел buildings считать буду по полю objectId

      Comment

      • Maximus
        Senior Member
        • Nov 2018
        • 2731

        #4
        здравствуйте.
        слишком мало информации.

        какие именно записи требуют выведения в pdf форму (связующая сущность или нет)?

        нужно понять что надо считать чтоб было ясно посильно ли это формулой сделать или нет.

        Comment

        • Sab0tajue
          Senior Member
          • Jul 2019
          • 315

          #5
          у меня есть раздел "контрагенты" к нему прицеплены и к нему зацеплены раздел "окс", раздел "зу", раздел "оцди" каждый из в отношениях "один-ко-многим". хотел бы в карточку контрагента вывести количество записей в каждом разделе в поле в режиме "для чтения" и отдельно в pdf-отчёт

          Comment

          • Maximus
            Senior Member
            • Nov 2018
            • 2731

            #6
            Ну раз имеется отношения типа "один-ко-многим" то можно сделать следующее:
            1. В сущность Контрагенты добавляем 3 поля типа Integer (простое число) по одному для каждой связующей сущности для хранения количества записей.
            2. Для каждой из связующих сущьностей ("окс", "зу", "оцди") пишем формулу типа: если поле AccountId не пусто, то обновить связующий
            Code:
            ifThen(
                accountId,
                record\update(
                    'Account',
                    accountId,
                    'your-int-type-field',
                    entity\sumRelated('your-link-with-entity')
               )
            );
            Ссылки на документацию по использованным функциям:
            - https://docs.espocrm.com/administrat.../#recordupdate
            - https://docs.espocrm.com/administrat...titysumrelated

            После установки формулы запустите пересчет формулы для всех записей сущьностей "окс", "зу" и "оцди".

            3. В шаблон PDF просто добавляете поля которые содержат количество связующих сущьностей.

            P.S. Почему я определил формулу не для Контрагента, а для каждой из "окс", "зу" и "оцди". Дело в том, что когда создается связующая запись в "окс", "зу" и "оцди", формула Контрагента не запускается, поскольку это не входит в перечень изменений самого Контрагента. Поэтому правильно это делать способом указанным выше.

            Comment

            • Sab0tajue
              Senior Member
              • Jul 2019
              • 315

              #7
              1. Сделано
              2. в ОКС пишу такую формулу (в ЗУ и ОЦДИ я так понимаю нужно делать по аналогии с ОКС)

              PHP Code:
              ifThen(
              accountId,
              record\update(
              Account,
              accountId,
              ColOks,
              entity\sumRelated(buildingss)
              )
              ); 
              
              Не мог ли бы Вы подробнее расписать как правильно? Я в приложении вставил скриншоты зависимостей и новых полей в контрагентах
              Attached Files

              Comment

              • Maximus
                Senior Member
                • Nov 2018
                • 2731

                #8

                Здравствуйте.
                Отношения Контрагента к другим сущьностям такие как надо (Один-ко-Многим).
                Обратите внимание на вашу формулу:
                1. ColOks. Ключ поля может быть только с маленькой буквы. Поэтому скорее всего должно быть так: 'сolOks'. Обратите внимание что значение взфто в кавычки.
                2. entity\sumRelated(buildingss). Название ссылки должно быть в кавычках: entity\sumRelated('buildingss')
                3. В ЗУ и ОЦДИ нужно делать по аналогии с ОКС.

                Comment

                • Sab0tajue
                  Senior Member
                  • Jul 2019
                  • 315

                  #9
                  Не работает

                  PHP Code:
                  ifThen(
                  accountId,
                  record\update(
                  Account,
                  accountId,
                  'colOks',
                  entity\sumRelated('buildingss')
                  )
                  ); 
                  

                  Comment

                  • Maximus
                    Senior Member
                    • Nov 2018
                    • 2731

                    #10
                    Ок. Попытка №2.
                    1. Откройте Администрирование -> Управление объектами -> Контрагент -> Поля -> проверьте такой ли ключ colOks у интересующего нас поля.
                    2. В формуле напишите ключ поля без кавычек (нужно попробовать).
                    3. Как вариант можно в строке entity\sumRelated('buildingss') внести изменения типа entity\sumRelated('buildingss', 'id'). Но чесно на сколько я помню я делал это просто указав ключ Отношения.
                    4. Также после каждой неудачи заглядывайте в лог. Может написать типа ошибка синтаксиса, типа данных и т.п. Так быстрее сможете наладить функцию.

                    Comment

                    • Sab0tajue
                      Senior Member
                      • Jul 2019
                      • 315

                      #11
                      1. Верно
                      2. Попробовал без ковычек, но увы.
                      3. Попробовал, но нет
                      4. Логи ничего не показывают

                      Comment

                      • Sab0tajue
                        Senior Member
                        • Jul 2019
                        • 315

                        #12
                        Удалил логи старые. Перепроверил. Вот что выводится в лог после пересчета. Указано entity\sumRelated('buildingss')

                        [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ERROR: Formula failed: sumRelated: Too few arguments. [] [] [2021-03-21 09:54:48] ......

                        а при entity\sumRelated('buildingss', 'id')

                        [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] [] [2021-03-21 09:57:34] ERROR: Formula failed: [] []

                        Кстати а для подсчёта количества записей разве нужно указываться entity\sumRelated а не entity\countRelated ?
                        Last edited by Sab0tajue; 03-21-2021, 10:13 AM.

                        Comment

                        • Maximus
                          Senior Member
                          • Nov 2018
                          • 2731

                          #13
                          > Кстати а для подсчёта количества записей разве нужно указываться entity\sumRelated а не entity\countRelated ?

                          Верно подмечено. для возврата количества записей вам нужно entity\countRelated а не entity\sumRelated Попробуйте его вставить в формулу вместо entity\sumRelated.

                          Comment

                          • Sab0tajue
                            Senior Member
                            • Jul 2019
                            • 315

                            #14
                            К сожалению не работает. В логах


                            [2021-03-23 08:04:59] ERROR: Formula failed: [] []


                            Количество посчитал простой формулой colOks = record\count('Buildings', 'open') и планирую вывести это поле уже в PDF, но как увязать фильтр по контрагентам? Чтобы можно было бы отсеивать информацию по каждому контрагенту.
                            Last edited by Sab0tajue; 03-23-2021, 08:49 AM.

                            Comment

                            • Maximus
                              Senior Member
                              • Nov 2018
                              • 2731

                              #15
                              Вы имеете виду атрибут фильтра для формулы?

                              Если так то вы уже наверное могли прочитать, что фильтром являются:
                              1. Встроенные системные фильтры типа "Won", и т.п. для Opportunity, и так далее.
                              2. Добавленные вручную через код https://docs.espocrm.com/development...select-manager
                              3. При наличии Advanced Pack реализовать через Report filter:
                              - https://docs.espocrm.com/user-guide/...report-filters
                              - https://docs.espocrm.com/administration/formula/#filter

                              Таким образом вы можете создать свой фильтр.

                              Comment

                              Working...