Результаты поиска для

    Show / Hide Table of Contents

    Построение отчёта

    В этой статье рассмотрен процесс построения отчёта из шаблона с помощью процессора отчётов МоиОтчеты Корпоративный Сервер.

    Приступая к работе

    Вам понадобятся следующие инструменты и возможности:

    1. Знания по использованию API key в МоиОтчеты Корпоративный Сервер.

      В этой статье будет пропущена дополнительная информация по аутентификации и авторизации.

    2. Инструмент curl.

      Подойдёт любой другой REST клиент, но примеры будут построены для curl.

    3. Шаблон отчёта.

      Как загрузить шаблон отчёта можно узнать в статье Загрузка нового шаблона.

    4. Активная подписка МоиОтчеты Корпоративный Сервер.

    5. Доступ в интернет.

    Инструкция

    1. Вам необходим идентификатор шаблона для его построения. Сделайте GET запрос на {your_host_name}/api/rp/v1/Templates/Root для получения корневой директории.

      Пример запроса.

      curl -X GET "{your_host_name}/api/rp/v1/Templates/Root" -H "accept: text/plain"
      

      Пример ответа.

      {
        "name": "RootFolder",
        "parentId": null,
        "tags": [],
        "icon": "",
        "type": "Folder",
        "size": 16384,
        "subscriptionId": "5fa919fa292a8300019349bc",
        "status": "None",
        "id": "5fa919f9292a8300019349b9",
        "createdTime": "2020-11-09T10:29:13.928Z",
        "creatorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491",
        "editedTime": "2020-11-13T15:58:45.69Z",
        "editorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491"
      }
      

      Идентификатор директории из примера выше 5fa919f9292a8300019349b9.

    2. Для получения списка файлов в директории выполните GET запрос на {your_host_name}/api/rp/v1/Templates/Folder/{id}/ListFiles?skip=0&take=10, где вместо {id} следует подставить идентификатор директории.

      Пример запроса.

      curl -X GET "{your_host_name}/api/rp/v1/Templates/Folder/5fa919f9292a8300019349b9/ListFiles?skip=0&take=10" -H "accept: text/plain"
      

      Пример ответа.

      [
        {
          "reportInfo": {
            "author": null,
            "created": "2020-12-04T10:58:57Z",
            "creatorVersion": "20.20.4.1",
            "description": null,
            "modified": "2020-12-04T11:00:20Z",
            "name": null,
            "picture": null,
            "previewPictureRatio": 0,
            "saveMode": "All",
            "savePreviewPicture": false,
            "tag": null,
            "version": null
          },
          "name": "template.frx",
          "parentId": "5fa919f9292a8300019349b9",
          "tags": null,
          "icon": null,
          "type": "File",
          "size": 17159,
          "subscriptionId": "5fa919fa292a8300019349bc",
          "status": "Success",
          "id": "5fc9ece6b792c90001d94b13",
          "createdTime": "2020-12-04T08:01:42.708Z",
          "creatorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491",
          "editedTime": "2020-12-04T08:01:42.708Z",
          "editorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491"
        }
      ]
      

      Идентификатор шаблона из примера выше 5fc9ece6b792c90001d94b13.

    3. Для построения отчёта вам понадобится директория, в которую можно положить отчёт. Запросите корневую директорию отчётов, для этого сделайте GET запрос на {your_host_name}/api/rp/v1/Reports/Root.

      Пример запроса.

      curl -X GET "{your_host_name}/api/rp/v1/Reports/Root" -H "accept: text/plain"
      

      Пример ответа.

      {
        "name": "RootFolder",
        "parentId": null,
        "tags": null,
        "icon": null,
        "type": "Folder",
        "size": 16384,
        "subscriptionId": "5fa919fa292a8300019349bc",
        "status": "None",
        "id": "5fa919f9292a8300019349ba",
        "createdTime": "2020-11-09T10:29:13.993Z",
        "creatorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491",
        "editedTime": "0001-01-01T00:00:00Z",
        "editorUserId": null
      }
      

      Идентификатор директории из примера выше 5fa919f9292a8300019349ba.

    4. Для построения отчёта сделайте POST запрос на {your_host_name}/api/rp/v1/Templates/File/{id}/Prepare, где вместо {id} следует подставить идентификатор шаблона.

      В теле запроса передайте JSON по схеме ниже.

      {
        "name": "string",
        "folderId": "string",
        "reportParameters": {
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      }
      
      • folderId — идентификатор директории куда будет помещён отчёт.
      • name — название результирующего файла. Добавите расширение .fpx вручную.
      • reportParameters — параметры, которые указаны в самом отчёте с помощью дизайнера отчёта, в этом примере они не нужны.

      Если не указать folderId, то подготовленный отчёт будет сохранён в корневую папку.

      Пример запроса.

      curl -X POST "{your_host_name}/api/rp/v1/Templates/File/5fc9ece6b792c90001d94b13/Prepare" -H "accept: text/plain" -H "Content-Type: application/json-patch+json" -d "{ \"name\": \"awesome_report.fpx\", \"folderId\": \"5fa919f9292a8300019349ba\"}"
      

      Пример ответа.

      {
        "templateId": "5fc9ece6b792c90001d94b13",
        "reportInfo": null,
        "name": "awesome_report.fpx",
        "parentId": "5fa919f9292a8300019349ba",
        "tags": null,
        "icon": null,
        "type": "File",
        "size": 16384,
        "subscriptionId": "5fa919fa292a8300019349bc",
        "status": "InQueue",
        "id": "5fe4614bcd7c55000148e4c6",
        "createdTime": "2020-12-24T09:37:15.7169531+00:00",
        "creatorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491",
        "editedTime": "2020-12-24T09:37:15.7169582+00:00",
        "editorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491"
      }
      

      Обратите внимание на статус файла InQueue, он означает, что была создана задача на построение и в дальнейшем попала в очередь построителя. Уже на этом этапе отчёт получил свой идентификатор для работы 5fe4614bcd7c55000148e4c6.

    Следует подождать некоторое время, пока отчёт будет построен. Можно вызывать метод получения отчёта в цикле каждые несколько миллисекунд и проверять статус.

    1. Для получения информации об отчёте сделайте GET запрос на {your_host_name}/api/rp/v1/Reports/File/{id}, где вместо {id} следует указать идентификатор отчёта.

      Пример запроса.

      curl -X GET "{your_host_name}/api/rp/v1/Reports/File/5fe4614bcd7c55000148e4c6" -H "accept: text/plain"
      

      Пример ответа.

      {
        "templateId": "5fc9ece6b792c90001d94b13",
        "reportInfo": null,
        "name": "awesome_report.fpx",
        "parentId": "5fa919f9292a8300019349ba",
        "tags": null,
        "icon": null,
        "type": "File",
        "size": 16927,
        "subscriptionId": "5fa919fa292a8300019349bc",
        "status": "Success",
        "id": "5fe4614bcd7c55000148e4c6",
        "createdTime": "2020-12-24T09:37:15.716Z",
        "creatorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491",
        "editedTime": "2020-12-24T09:37:15.716Z",
        "editorUserId": "5af5a8dc-8cb0-40f9-ac99-ca2533fa4491"
      }
      

      Обратите внимание на статус файла Success. Отчёт был успешно построен.

    2. Для скачивания отчёта сделайте GET запрос на {your_host_name}/download/r/{id}, где вместо {id} следует передать идентификатор отчёта.

      Пример запроса.

      curl -X GET "{your_host_name}/download/r/5fe4614bcd7c55000148e4c6" -H "accept: text/plain"
      

      В ответе будет получен файл.

    Что дальше?

    • Экспорт отчёта в PDF.
    Вверх 2025.2.6 © 1998-2025 ООО «Быстрые отчеты»