Поделиться через


Создание нового решения ER для печати пользовательского отчета

В следующих шагах описывается, как пользователь с ролью "системный администратор", "разработчик электронной отчетности" или "функционального консультанта по электронной отчетности" может настроить параметры структуры ER, разработать необходимые конфигурации электронной отчетности для нового решения ER для доступа к данным определенного бизнес-домена и создать пользовательский отчет в формате Microsoft Office. Эти шаги можно выполнить в компании USMF.

В этом примере будет создано новое решение ER для модуля Анкета. Новое решение ER позволяет создавать отчеты с помощью листа Microsoft Excel в качестве шаблона. Затем можно создать отчет Анкета в формате Excel или PDF, а также создавать существующие отчеты служб SQL Server Reporting Services (SSRS). Позднее можно изменить новый отчет по запросу. Написание кода не требуется.

  1. Чтобы выполнить существующий отчет, перейдите к Анкета>Разработка>Отчет "Анкеты".

    Выбор пункта меню

  2. В диалоговом окне Отчет "Анкеты" укажите критерии выбора. Примените фильтр, чтобы отчет включал только анкету SBCCrsExam.

    Указание критерии выбора в диалоговом окне Отчет

На следующем рисунке показана созданная версия отчета SSRS для анкеты SBCCrsExam.

Созданный отчет SSRS.

Настройка платформы электронной отчетности

В качестве пользователя в роли Разработчика электронной отчетности вам необходимо настроить минимальный набор параметров ER, прежде чем можно будет начать использовать платформу электронной отчетности для создания вашего решения электронной отчетности.

Настройка параметров ER

  1. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.

  2. В рабочей области Электронная отчетность выберите Параметры электронной отчетности.

  3. На странице Параметры электронной отчетности на вкладке Общие сведения задайте для параметра Включить режим конструктора значение Да.

  4. На вкладке Вложения установите следующие параметры.

    • Задайте поле Конфигурации на Файл для компании USMF.
    • Задайте поля Архив заданий, Временный, Базовый и Другие на Файл.

Дополнительные сведения о настройке параметров электронной отчетности см. в разделе Настройка платформы электронной отчетности.

Активация поставщика конфигураций электронной отчетности

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

Примечание

Только владелец конфигурации электронной отчетности может редактировать ее. Поэтому перед редактированием конфигурации электронной отчетности необходимо активировать соответствующего поставщика конфигурации электронной отчетности в рабочей области Электронная отчетность.

Просмотр списка поставщиков конфигурации электронной отчетности

  1. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.
  2. В рабочей области Электронная отчетность в разделе Связанные ссылки выберите Поставщики конфигурации.
  3. На странице Поставщики конфигурации каждая запись поставщика конфигурации имеет уникальное имя и URL-адрес. Проверьте содержимое данной страницы. Если запись для Litware, Inc. (https://www.litware.com) уже существует, пропустите следующую процедуру, Добавление нового поставщика конфигурации электронной отчетности.

Добавление нового поставщика конфигурации электронной отчетности

  1. На странице Поставщики конфигураций выберите Создать.
  2. В поле Имя введите Litware, Inc.
  3. В поле Интернет-адрес введите https://www.litware.com.
  4. Нажмите Сохранить.

Активация поставщика конфигураций электронной отчетности

  1. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.
  2. В рабочей области Электронная отчетность выберите поставщика конфигурации Litware, Inc..
  3. Выберите Установить активные.

Дополнительные сведения о поставщиках конфигурации электронной отчетности см. в разделе Создание поставщиков конфигураций и пометка их как активных.

Проектирование модели данных для конкретного домена

Необходимо создать новую конфигурацию электронной отчетности, которая содержит компонент модели данных для бизнес-домена Анкета. Эта модель данных позднее будет использоваться в качестве источника данных при разработке формата ER для создания отчета Анкета.

Выполнив шаги раздела Импорт новой конфигурации модели данных, можно импортировать требуемую модель данных из предоставленного XML-файла. В качестве альтернативы можно выполнить действия, указанные в разделе Создание новой конфигурации модели данных для создания этой модели данных "с нуля".

Импорт новой конфигурации модели данных

  1. Загрузка файла Questionnaires model.version.1.xml и сохранение его на локальном компьютере.
  2. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.
  3. В рабочей области Электронная отчетность выберите Конфигурации отчетности.
  4. На панели действий выберите пункт Обмен>Загрузить из XML-файла.
  5. Выберите Обзор, затем найдите и выберите файл Questionnaires model.version.1.xml.
  6. Выберите ОК, чтобы импортировать конфигурацию.

Чтобы продолжить, пропустите следующую процедуру, создать новую конфигурацию модели данных.

Создать новой конфигурации модели данных

  1. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.
  2. В рабочей области Электронная отчетность выберите Конфигурации отчетности.
  3. Выберите Создать конфигурацию.
  4. В диалоговом окне в раскрывающемся списке в поле Имя введите Модель анкеты.
  5. Выберите Создать конфигурацию, чтобы создать конфигурацию.

Задание имени модели данных

  1. На странице Конфигурации в дереве конфигурации выберите Модель анкеты.
  2. Выберите Конструктор.
  3. На странице конструктор модели данных на экспресс-вкладке Общие в поле Имя введите Анкеты.

Добавление новых полей модели данных

  1. На странице конструктор модели данных нажмите Создать.

  2. В раскрывающемся диалоговом окне для добавления узла модели данных выполните следующие шаги:

    1. Выберите Корень модели в качестве типа нового узла.
    2. В поле Имя введите Корень.
    3. Чтобы добавить новый узел, выберите Добавить.

    Этот корневой дескриптор будет использоваться для предоставления данных для отчета Анкета. Одна модель данных может иметь несколько дескрипторов. Каждый дескриптор может быть указан для одного формата ER, чтобы идентифицировать данные, необходимые для создания отчета.

  3. Выберите Создать вновь, и затем в раскрывающемся диалоговом окне для добавления узла модели данных выполните следующие шаги:

    1. Выберите дочерний элемент активного узла в качестве типа нового узла.
    2. В поле Имя введите CompanyName.
    3. В поле Тип элемента выберите Строка.
    4. Чтобы добавить новое поле, выберите Добавить.

    Это поле требуется для передачи имени текущей компании в отчет ER, в котором эта модель данных используется в качестве источника данных.

  4. Выберите Создать вновь, и затем в раскрывающемся диалоговом окне для добавления узла модели данных выполните следующие шаги:

    1. Выберите дочерний элемент активного узла в качестве типа нового узла.
    2. В поле Имя введите Анкета.
    3. В поле Тип элемента выберите Список записей.
    4. Чтобы добавить новое поле, выберите Добавить.

    Это поле используется для передачи списка анкет в отчет ER, в котором эта модель данных используется в качестве источника данных.

  5. Выберите узел Анкета.

  6. Продолжайте добавлять необходимые поля редактируемой модели данных тем же способом, пока не будет завершена следующая структура модели данных.

    Путь к полю Тип данных Обозначение поля/возвращаемое значение
    Корневой Опорная точка для запроса данных анкеты.
    Root\CompanyName Строка Имя текущей компании.
    Root\ExecutionContext Запись Сведения о выполнении формата.
    Root\ExecutionContext\FormatName Строка Имя формата ER, который выполняется в данный момент.
    Root\Questionnaire Список записей Список анкет
    Root\Questionnaire\Active Строка Статус текущей анкеты.
    Root\Questionnaire\Code Строка Код текущей анкеты.
    Root\Questionnaire\Description Строка Описание текущей анкеты.
    Root\Questionnaire\QuestionnaireType Строка Тип текущей анкеты.
    Root\Questionnaire\QuestionOrder Строка Числовой порядок текущей анкеты.
    Root\Questionnaire\ResultsGroup Запись Параметры результата текущей анкеты.
    Root\Questionnaire\ResultsGroup\Code Строка Идентификационный код текущей группы результатов.
    Root\Questionnaire\ResultsGroup\Description Строка Описание текущей группы результатов.
    Root\Questionnaire\ResultsGroup\MaxNumberOfPoints Действующий Максимальное количество баллов, которое можно получить.
    Root\Questionnaire\Question Список записей Список вопросов для текущей анкеты.
    Root\Questionnaire\Question\CollectionSequenceNumber Целое число Порядковый номер текущей коллекции ответов.
    Root\Questionnaire\Question\Id Строка Идентификационный код текущего вопроса.
    Root\Questionnaire\Question\MustBeCompleted Строка Флаг, который указывает, должен ли быть дан ответ на текущий вопрос.
    Root\Questionnaire\Question\PrimaryQuestion Строка Флаг, который указывает, является ли текущий вопрос основным.
    Root\Questionnaire\Question\SequenceNumber Целое число Порядковый номер текущего вопроса.
    Root\Questionnaire\Question\Text Строка Текст текущего вопроса.
    Root\Questionnaire\Question\Answer Список записей Список ответов для текущего вопроса.
    Root\Questionnaire\Question\Answer\CorrectAnswer Строка Флаг, который указывает, является ли текущий ответ верным.
    Root\Questionnaire\Question\Answer\Points Действующий Баллы, заработанные при выборе текущего ответа.
    Root\Questionnaire\Question\Answer\SequenceNumber Целое число Порядковый номер текущего ответа.
    Root\Questionnaire\Question\Answer\Text Строка Текст текущего ответа.

    На следующем рисунке показана завершенная редактируемая модель данных на странице конструктор моделей данных.

    Настроенная модель данных в конструкторе модели данных ER.

  7. Сохраните изменения.

  8. Закройте страницу Конструктор модели данных.

Завершение создания модели данных

  1. Перейдите в раздел Администрирование организации>Электронная отчетность>Конфигурации.
  2. На странице Конфигурации в дереве конфигурации выберите Модель анкеты.
  3. На экспресс-вкладке Версии выберите версию конфигурации со статусом Черновик.
  4. Выберите Изменить статус>Завершено.

Статус версии 1 этой конфигурации изменяется с черновик на завершено. Версия 1 больше не может быть изменена. Эта версия содержит настроенную модель данных и может использоваться в качестве основы для других конфигураций ER. Версия 2 этой конфигурации создана и имеет статус черновик. Эту версию можно изменить для корректировки модели данных Анкета.

Версии редактируемой конфигурации на странице конфигурации.

Дополнительные сведения об управлении версиями для конфигураций ER см. в Обзор электронной отчетности (ER).

Примечание

Настроенная модель данных является абстрактным представлением бизнес-домена Анкета и не содержит связей с артефактами, относящимися к Microsoft Dynamics 365 Finance.

Разработка сопоставления модели для настроенной модели данных

В качестве пользователя в роли разработчика электронной отчетности необходимо создать новую конфигурацию электронной отчетности, которая содержит компонент сопоставления модели для модели данных Анкета. Так как этот компонент реализует настроенную модель данных для Финансы, она предназначена только для Финансы. Необходимо настроить компонент "сопоставление моделей", чтобы указать объекты приложения, которые должны использоваться для заполнения настроенной модели данных данными приложения в среда выполнения. Чтобы выполнить эту задачу, необходимо знать информацию о реализации структуры данных в бизнес-домене Анкета в Финансы.

Выполнив шаги раздела Импорт новой конфигурации сопоставления модели, можно импортировать требуемую конфигурацию сопоставления модели из предоставленного XML-файла. В качестве альтернативы можно выполнить действия, указанные в разделе Создание новой конфигурации сопоставления модели для создания этой сопоставления модели "с нуля".

Импорт новой конфигурации сопоставления модели

  1. Загрузка файла Questionnaires mapping.version.1.1.xml и сохранение его на локальном компьютере.
  2. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.
  3. В рабочей области Электронная отчетность выберите Конфигурации отчетности.
  4. На панели действий выберите пункт Обмен>Загрузить из XML-файла.
  5. Выберите Обзор, затем найдите и выберите файл Questionnaires mapping.version.1.1.xml.
  6. Выберите ОК, чтобы импортировать конфигурацию.

Чтобы продолжить, пропустите следующую процедуру, создать новую конфигурацию сопоставления модели.

Создайте конфигурацию сопоставления модели

  1. Перейдите в раздел Администрирование организации>Электронная отчетность>Конфигурации.

  2. На странице Конфигурации в дереве конфигурации выберите Модель анкеты.

  3. Выберите Создать конфигурацию.

  4. В раскрывающемся диалоговом окне выполните следующие действия:

    1. В поле Создать выберите Сопоставление модели, основанное на модели данных Анкеты.
    2. В поле Имя введите Сопоставление анкеты.
    3. В поле Определение модели данных выберите определение Корень.
    4. Выберите Создать конфигурацию, чтобы создать конфигурацию.

Создание нового компонента сопоставления модели

  1. На странице Конфигурации в дереве конфигурации выберите Сопоставление анкеты.
  2. Выберите конструктор, чтобы открыть список сопоставлений.
  3. Выбор сопоставления сопоставления анкеты, которое было автоматически добавлено для определения Корень
  4. Выберите конструктор, чтобы начать настройку выбранного сопоставления.

Для определения Корень автоматически добавляется новое сопоставление. Это сопоставление имеет направление В модель. Поэтому это сопоставление может использоваться для заполнения модели данных требуемыми данными.

Добавление источников данных для доступа к таблицам приложений

Необходимо настроить источники данных для доступа к таблицам приложений, содержащим сведения об анкете.

  1. На странице Конструктор сопоставления модели в области Типы источников данных выберите Dynamics 365 for Operations\Записи таблицы.

  2. Добавление нового источника данных, который будет использоваться для доступа к таблице KMCollection, в которой каждая запись соответствует одной анкете:

    1. В области источники данных выберите Добавить корень.
    2. В диалоговом окне в поле Имя введите Анкета.
    3. В поле Таблица введите KMCollection.
    4. Для параметра Запросить запрос выберите значение Да. После этого можно будет указать параметры фильтрации для этой таблицы в диалоговом окне системного запроса в среде выполнения.
    5. Нажмите ОК, чтобы добавить новый источник данных.
  3. В области типы источников данных выберите Dynamics 365 for Operations\Записи таблицы.

  4. Добавление нового источника данных, который будет использоваться для доступа к таблице KMQuestion, в которой каждая запись соответствует одному вопросу:

    1. В области источники данных выберите Добавить корень.
    2. В диалоговом окне в поле Имя введите Вопрос.
    3. В поле Таблица введите KMQuestion.
    4. Нажмите ОК, чтобы добавить новый источник данных.
  5. В области типы источников данных выберите Dynamics 365 for Operations\Записи таблицы.

  6. Добавление нового источника данных, который будет использоваться для доступа к таблице KMAnswer, в которой каждая запись соответствует одному ответу на вопрос в анкете:

    1. В области источники данных выберите Добавить корень.
    2. В поле Имя введите Ответ.
    3. В поле Таблица введите KMAnswer.
    4. Нажмите ОК, чтобы добавить новый источник данных.
  7. В области типы источников данных выберите Функции\Вычисляемое поле.

  8. Добавьте новое вычисляемое поле, которое будет использоваться для доступа к записи таблицы KMQuestionResultGroup из каждой записи родительской таблицы KMCollection:

    1. В области источники данных выберите Анкета.
    2. Выберите Добавить.
    3. В диалоговом окне в поле Имя введите $ResultGroup.
    4. Выберите Изменить формулу.
    5. В редакторе формул ER в поле Формула введите FIRSTORNULL(@.'<Relations'.KMQuestionResultGroup) для использования пути связи "один ко многим" между таблицами KMCollection и KMQuestionResultGroup.
    6. Выберите Сохранить и закройте редактор формул.
    7. Нажмите ОК, чтобы добавить новый вычисляемое поле.
  9. В области типы источников данных выберите Функции\Вычисляемое поле.

  10. Добавьте новое вычисляемое поле, которое будет использоваться для доступа к записям вопроса таблицы KMQuestion из каждой записи родительской таблицы KMCollectionQuestion:

    1. В области источники данных выберите Анкета.
    2. Разверните узел <отношения, содержащий связи "один ко многим" с таблицей KMCollection.
    3. Выберите соответствующую таблицу KMCollectionQuestion и нажмите кнопку Добавить.
    4. В диалоговом окне в поле Имя введите $Question.
    5. Выберите Изменить формулу.
    6. В редакторе формул в поле Формула введите FIRSTORNULL (FILTER(Question, Question.kmQuestionId = @.kmQuestionId)), чтобы вернуть соответствующие записи вопроса из таблицы KMQuestion.
    7. Выберите Сохранить и закройте редактор формул.
    8. Нажмите ОК, чтобы добавить новый вычисляемое поле.
  11. В области типы источников данных выберите Функции\Вычисляемое поле.

  12. Добавьте новое вычисляемое поле, которое будет использоваться для доступа к записям ответа таблицы KMAnswer из каждой записи родительской таблицы KMQuestion:

    1. В области Источники данных выберите Questionnaire.<Relations.KMCollectionQuestion.$Question, а затем выберите Добавить.
    2. В диалоговом окне в поле Имя введите $Answer.
    3. Выберите Изменить формулу.
    4. В редакторе формул в поле Формула введите FILTER (Answer, Answer.kmAnswerCollectionId = @.kmAnswerCollectionId), чтобы вернуть соответствующие записи ответа из таблицы KMAnswer.
    5. Выберите Сохранить и закройте редактор формул.
    6. Нажмите ОК, чтобы добавить новый вычисляемое поле.
  13. В области типы источников данных выберите Dynamics 365 for Operations\Таблица.

  14. Добавление нового источника данных, который будет использоваться для доступа к методам таблицы CompanyInfo. Обратите внимание, что метод find() этой таблицы возвращает запись, представляющую компанию текущего экземпляра Finance, с помощью которой это сопоставление вызывается в контексте.

    1. В области источники данных выберите Добавить корень.
    2. В диалоговом окне в поле Имя введите CompanyInfo.
    3. В поле Таблица введите CompanyInfo.
    4. Нажмите ОК, чтобы добавить новый источник данных.

Добавление источников данных для доступа к перечислениям приложений

Необходимо настроить источники данных для доступа к перечислениям приложений и сравнить их значения со значениями полей типа перечисления в таблицах приложений. Результат сравнения должен использоваться для заполнения соответствующих полей модели данных.

  1. На странице Конструктор сопоставления модели в области Типы источников данных выберите Dynamics 365 for Operations\Перечисление.

  2. Добавление нового источника данных, который будет использоваться для доступа к значениям перечисления EnumAppNoYes.

    1. В области источники данных выберите Добавить корень.
    2. В диалоговом окне в поле Имя введите EnumAppNoYes.
    3. В поле перечисление введите NoYes.
    4. Нажмите ОК, чтобы добавить новый источник данных.
  3. В области типы источников данных выберите Dynamics 365 for Operations\Перечисление.

  4. Добавление нового источника данных, который будет использоваться для доступа к значениям перечисления KMCollectionQuestionMode:

    1. В области источники данных выберите Добавить корень.
    2. В диалоговом окне, в поле Имя, введите EnumAppQuestionOrder.
    3. В поле перечисление введите KMCollectionQuestionMode.
    4. Нажмите ОК, чтобы добавить новый источник данных.

Добавление меток ER для создания отчета на определенном языке

Можно добавить метки ER для настройки некоторых источников данных, чтобы они возвращали значения, которые зависят от языка, определенного в контексте вызова сопоставления модели.

  1. На странице Конструктор сопоставления модели в области Источники данных выберите Ответ, а затем выберите Изменить.

  2. Активируйте поле Метка.

  3. Выберите Перевести.

  4. В диалоговом окне Перевод текста выполните следующие действия:

    1. В поле Код метки введите PositiveAnswer.
    2. В поле Текст на языке по умолчанию введите Да.
    3. Выберите Перевести.
    4. В поле Код метки введите NegativeAnswer.
    5. В поле Текст на языке по умолчанию введите Нет.
    6. Выберите Перевести.
  5. Закройте диалоговое окно Преобразование текста.

  6. Выберите Отмена.

Добавление меток ER для сопоставления редактируемых моделей.

Метки ER введены только для языка по умолчанию. Сведения о том, как можно переводить метки ER на другие языки, см. в разделе Разработка многоязычных отчетов.

Добавление источника данных для преобразования результатов сравнения значений перечисления с текстовым значением

Поскольку необходимо несколько раз преобразовать результаты сравнения значений перечислений и текстовых значений для источников отличий, рекомендуется настроить эту логику как единый источник данных. Однако, чтобы сделать этот источник данных пригодным для повторного использования, его необходимо настроить как источник параметризованных данных. Дополнительные сведения см. в Поддержка параметризованных вызовов источников данных электронной отчетности для рассчитанного типа поля.

  1. На странице Конструктор сопоставления модели в области Типы источников данных выберите Общее\Пустой контейнер.

  2. Добавление нового источника данных контейнера:

    1. В области источники данных выберите Добавить корень.
    2. В диалоговом окне в поле Имя введите Помощник.
    3. Нажмите ОК, чтобы добавить новый источник данных контейнера.
  3. В области типы источников данных выберите Функции\Вычисляемое поле.

  4. Добавление нового источника данных:

    1. В области источники данных выберите Помощник.

    2. Выберите Добавить.

    3. В диалоговом окне, в поле Имя, введите NoYesEnumToString.

    4. Выберите Изменить формулу.

    5. В редакторе формул выберите Параметры.

    6. Чтобы указать параметры для настроенного выражения, необходимо выполнить следующие действия:

      1. Выберите Создать.
      2. В диалоговом окне в поле Имя введите аргумент.
      3. В поле Тип выберите тип данных логический.
      4. Нажмите ОК.
    7. В поле Формула введите IF (Argument = true, @"GER_LABEL:PositiveAnswer", @"GER_LABEL:NegativeAnswer"), чтобы вернуть текст соответствующей метки ER, в зависимости от языка контекста выполнения и значения указанного параметра.

    8. Выберите Сохранить и закройте редактор формул.

    9. Нажмите ОК, чтобы добавить новый источник данных.

Настроенное сопоставление модели в конструкторе сопоставления модели ER.

Привязка источников данных к полям модели данных

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

  1. На странице Конструктор сопоставления модели в области Модель данных выберите CompanyName.

  2. В области Источники данных разверните узел CompanyInfo и выполните следующие действия:

    1. Разверните узел CompanyInfo.find(), который представляет метод find() таблицы CompanyInfo.
    2. Выберите CompanyInfo.find().Name.
    3. Выберите Связать для заполнения названия компании, для которой настроено сопоставление модели в контексте среды выполнения.
  3. В области Модель данных выберите Анкета.

  4. В области источники данных выберите Анкета, а затем выберите Связать, чтобы заполнить записи анкеты.

  5. В области Модель данных разверните узел Анкета и выполните следующие действия:

    1. В области Модель данных выберите Активный.
    2. В области Модель данных выберите Изменить.
    3. В поле Формула введите Helper.NoYesEnumToString (@.Active = EnumAppNoYes.Yes), чтобы заполнить результаты сравнения значений перечислений, зависящих от текста и языка.
  6. Продолжайте привязывать источники данных к полям модели данных одинаковым образом, пока не получите следующий результат.

    Путь к полю Тип данных Действие Выражение связывания
    CompanyName Строка Связать CompanyInfo.'find()'.Name
    Анкета Список записей Связать Анкета
    Questionnaire\Active Строка Изменить Helper.NoYesEnumToString(@.active = EnumAppNoYes.Yes)
    Questionnaire\Code Строка Связать @.kmCollectionId
    Questionnaire\Description Строка Связать @.Description
    Questionnaire\QuestionnaireType Строка Связать @.'>Relations'.kmCollectionTypeId.Description
    Questionnaire\QuestionOrder Строка Изменить CASE (@.questionMode,
    EnumAppQuestionOrder.Conditional, "Условный",
    EnumAppQuestionOrder.Random, "Случайно (процент в анкете)",
    EnumAppQuestionOrder.RandomGroup, "Случайно (процент в группах результатов)",
    EnumAppQuestionOrder.Sequence, "Последовательный",
    "")
    Questionnaire\ResultsGroup Запись
    Questionnaire\ResultsGroup\Code Строка Связать @.'$ResultGroup'.kmQuestionResultGroupId
    Questionnaire\ResultsGroup\Description Строка Связать @.'$ResultGroup'.description
    Questionnaire\ResultsGroup\MaxNumberOfPoints Действующий Связать @.'$ResultGroup'.maxPoint
    Questionnaire\Question Список записей Связать @.'<Relations'.KMCollectionQuestion
    Questionnaire\Question\CollectionSequenceNumber Целое число Связать @.answerCollectionSequenceNumber
    Questionnaire\Question\Id Строка Связать @.kmQuestionId
    Questionnaire\Question\MustBeCompleted Строка Изменить Helper.NoYesEnumToString(@.mandatory = EnumAppNoYes.Yes)
    Questionnaire\Question\PrimaryQuestion Строка Связать @.parentQuestionId
    Questionnaire\Question\SequenceNumber Целое число Связать @.SequenceNumber
    Questionnaire\Question\Text Строка Связать @.'$Question'.text
    Questionnaire\Question\Answer Список записей Связать @.'$Question'.'$Answer'
    Questionnaire\Question\Answer\CorrectAnswer Строка Изменить Helper.NoYesEnumToString(@.correctAnswer = EnumAppNoYes.Yes)
    Questionnaire\Question\Answer\Points Действующий Связать @.point
    Questionnaire\Question\Answer\SequenceNumber Целое число Связать @.sequenceNumber
    Questionnaire\Question\Answer\Text Строка Связать @.text

    На следующем рисунке показано конечное состояние настроенного сопоставления модели на странице конструктор сопоставления моделей.

    Полностью настроенное сопоставление модели в конструкторе сопоставления модели ER.

  7. Сохраните изменения.

  8. Закройте страницу Конструктор сопоставления модели.

Завершение разработки сопоставления модели

  1. Перейдите в раздел Администрирование организации>Электронная отчетность>Конфигурации.
  2. На странице Конфигурации в дереве конфигурации выберите Сопоставление анкеты.
  3. На экспресс-вкладке Версии выберите версию конфигурации со статусом Черновик.
  4. Выберите Изменить статус>Завершено.

Статус версии 1.1 этой конфигурации изменяется с черновик на завершено. Версия 1.1 больше не может быть изменена. Эта версия содержит настроенное сопоставление модели и может использоваться в качестве основы для других конфигураций ER. Версия 1.2 этой конфигурации создана и имеет статус черновик. Эту версию можно изменить для корректировки конфигурации Сопоставление анкеты.

Версии редактируемой конфигурации ER на странице конфигурации.

Примечание

Настроенное сопоставление модели — это предназначенная для Финансы реализация модели абстрактных данных, которая представляет собой бизнес-домен анкета.

Создание шаблона для пользовательского отчета

Платформа ER использует предопределенные шаблоны для создания отчетов в форматах Microsoft Office (книги Excel или документы Word). В процессе создания обязательного отчета шаблон заполняется необходимыми данными в соответствии с настроенным потоком данных. Поэтому сначала необходимо создать шаблон для пользовательского отчета. Этот шаблон должен быть создан в качестве рабочей книги Excel, структура которого представляет макет пользовательского отчета. Необходимо присвоить имя каждому объекту Excel, который планируется заполнить требуемыми данными.

  1. Загрузка файла Questionnaires report template.xlsx и сохранение его на локальном компьютере.
  2. Откройте файл в Excel и проверьте структуру книги.

Как показано на следующем рисунке, загруженный шаблон предназначен для печати указанных анкет, которые представляют вопросы анкеты вместе с соответствующими ответами.

Шаблон Excel для печати указанных анкет.

В этот шаблон были добавлены имена Excel для заполнения сведений анкеты. Для просмотра имен Excel можно использовать Диспетчер имен.

Использование диспетчера имен для просмотра имен Excel в предоставленном шаблоне Excel.

Метки отчетов были добавлены в виде фиксированного текста на английском языке. Можно заменить метки отчетов новыми именами Excel, которые заполняют этикетки текстом, зависящим от языка, используя метки формата ER, как и в случае выражений, зависящих от языка, в настроенном сопоставлении модели. В этом случае метки ER должны быть добавлены в редактируемый формат ER.

Как показано на следующем рисунке, для включения разбиения по страницам в Excel был указан пользовательский заголовок отчета.

Пользовательский заголовок отчета в предоставленном шаблоне Excel.

Разработка формата

В качестве пользователя в роли функционального консультанта по электронной отчетности необходимо создать новую конфигурацию ER, которая содержит компонент формата. Необходимо настроить компонент формата, чтобы указать, как будет заполнен шаблон отчета обязательными данными в среде выполнения.

Выполнив шаги раздела Импорт конфигурации созданного формата, можно импортировать требуемый формат из предоставленного XML-файла. В качестве альтернативы можно выполнить действия, указанные в разделе Создание новой конфигурации формата для создания этой формата "с нуля".

Импорт созданной конфигурации формата

  1. Загрузка файла Questionnaires format.version.1.1.xml и сохранение его на локальном компьютере.
  2. Перейдите в раздел Управление организацией>Рабочие области>Электронная отчетность.
  3. В рабочей области Электронная отчетность выберите Конфигурации отчетности.
  4. На панели действий выберите пункт Обмен>Загрузить из XML-файла.
  5. Выберите Обзор, затем найдите и выберите файл Questionnaires format.version.1.1.xml.
  6. Выберите ОК, чтобы импортировать конфигурацию.

Чтобы продолжить, пропустите следующую процедуру, создать новую конфигурацию формата.

Создание новой конфигурации формата

  1. Перейдите в раздел Администрирование организации>Электронная отчетность>Конфигурации.

  2. На странице Конфигурации в дереве конфигурации выберите Модель анкеты.

  3. Выберите Создать конфигурацию.

  4. В раскрывающемся диалоговом окне выполните следующие действия:

    1. В поле Создать выберите Формат, основанное на модели данных Анкеты.

    2. В поле Имя введите Отчет "Анкета".

    3. В поле Версия модели данных выберите 1.

      Примечание

      • При выборе определенной версии базовой модели данных структура соответствующей версии модели данных будет представлена в виде структуры источника данных модели в созданном формате.
      • Данное поле можно оставить пустым. В этом случае структура черновой версии модели данных будет представлена в виде структуры источника данных модели в созданном формате. Затем можно откорректировать модель и сразу увидеть изменения в своем формате. Такой подход может повысить эффективность разработки решения ER при настройке одновременно модели данных, сопоставления модели и формата.
      • При выборе определенной версии базовой модели данных можно переключаться на использование черновой версии позже при запуске редактирования формата.
    4. В поле Определение модели данных выберите определение Корень.

  5. Выберите Создать конфигурацию, чтобы создать конфигурацию.

Импортируйте шаблон отчета

  1. На странице Конфигурации в дереве конфигурации выберите Отчет "Анкета".

  2. Чтобы начать настройку пользовательского формата, выберите Конструктор.

  3. На странице Конструктор форматов в области действий выберите Импорт>Импорт из Excel.

  4. В диалоговом окне выполните следующие действия:

    1. Выберите Добавить шаблон.
    2. Найдите и выберите локально сохраненный файл Questionnaires report template.xslx и нажмите кнопку открыть.
    3. Выберите ОК, чтобы импортировать шаблон.

    Импортирование шаблона отчета.

Элемент формата Excel\File автоматически добавляется к редактируемому формату как корневой элемент. Кроме того, элемент формата Excel\Range или Excel\Cell автоматически добавляется для каждого распознаваемого имени Excel импортированного шаблона. Формат Excel\Header, в котором имеется вложенный элемент Строка, автоматически добавляется для отображения настроек заголовка импортированного шаблона.

Структура формата, которая включает автоматически добавленные элементы в конструкторе операций ER.

Настройка формата

  1. На странице конструктор формата в дереве формата выберите корневой элемент Excel.

  2. На вкладке Формат в правой части страницы в поле Имя введите отчет.

  3. В поле Выбор языка выберите Пользовательские предпочтения, чтобы выполнить отчет в выбранном пользователем языке.

  4. В поле Предпочтения языкового стандарта выберите Пользовательские предпочтения, чтобы выполнить отчет в выбранном пользователем языковом стандарте.

    Сведения об указании языков и региональных параметров для процесса ER см. в разделе Разработка многоязычных отчетов.

    Настройка параметров языка и региональных параметров для созданного отчета в конструкторе операций ER.

  5. В дереве формата разверните корневой узел, а затем выберите ResultsGroup.

  6. На вкладке Формат в поле направление репликации выберите Без репликации, так как для одной анкеты не предполагается наличие нескольких групп результатов.

    Определение направления репликации для элементов формата диапазона в конструкторе операции ER.

  7. Нажмите Сохранить.

Определение привязки данных для заголовка отчета

Необходимо указать привязку данных для элемента формата, который используется для заполнения заголовка созданного отчета.

  1. На странице Конструктор форматов на вкладке сопоставление справа выберите элемент Report\ReportTitle.

  2. Выберите Изменить формулу.

  3. В редакторе формул выберите Перевести.

  4. В диалоговом окне Перевод текста выполните следующие действия:

    1. В поле Код метки введите ReportTitle.
    2. В поле Текст на языке по умолчанию введите Отчет "Анкеты".
    3. Выберите Перевести, затем выберите Сохранить.
    4. Выберите перевести, чтобы закрыть диалоговое окно Перевод текста.
  5. Закройте редактор формул.

    Настройка привязки для заполнения заголовка созданного отчета.

Этот метод можно использовать для создания любых других меток, зависящих от языка текущего шаблона. Сведения о том, как можно перевести метки одной конфигурации ER на все поддерживаемые языки, см. в разделе Разработка многоязычных отчетов.

Просмотр источника данных модели

  1. На странице конструктор формата на вкладке Сопоставление выберите источник данных модель, представляющий базовую модель данных для этого формата ER.
  2. Выберите Правка.
  3. Просмотрите сведения в диалоговом окне Свойства источника данных. Этот источник данных представляет версию 1 компонента модели данных анкеты, которая находится в конфигурации ER Модель Анкеты.

Свойства источника данных модели в конструкторе операций электронной отчетности.

Привязка элементов формата к полям источника данных

Чтобы указать способ заполнения шаблона в среде выполнения, необходимо связать каждый элемент формата, связанный с соответствующим именем Excel, с одним полем источника данных этого формата.

  1. На странице конструктор формата в дереве формата выберите элемент формата Report\CompanyName.

  2. На вкладке Сопоставление выберите поле источника данных model.CompanyName типа строка.

  3. Выберите Связать для ввода названия компании в шаблон.

  4. В дереве формата выберите элемент Report\Questionnaire.

  5. На вкладке Сопоставление выберите поле источника данных model.Questionnaire типа Список записей.

  6. Выберите Связать.

  7. Выберите Показать сведения для просмотра сведений об элементах формата.

    Элемент формата диапазона анкета настраивается как реплицируемый по вертикали. При привязке к источнику данных типа списка записей соответствующий диапазон анкета шаблона Excel повторяется для каждой записи связанного источника данных.

    Привязка элемента формата диапазона Анкета к соответствующим источникам данных Список записей в конструкторе операций ER.

    Поскольку диапазон анкета шаблона Excel определяется между строками с 5 по 14, эти строки повторяются для каждой отчетной анкеты.

    Строки в шаблоне Excel, которые будут повторяться в сформированном отчете для каждой записи источников данных Список записей.

  8. Настройте аналогичные привязки для остальных элементов формата, как описано в следующей таблице.

    Примечание

    В этой таблице информация в столбце "путь источника данных" предполагает, что функция ER относительный путь включена.

    Путь к элементу формата Путь иcточника данных
    Excel\ReportTitle @"GER_LABEL:ReportTitle"
    Excel\CompanyName model.CompanyName
    Excel\Questionnaire model.Questionnaire
    Excel\Questionnaire\Active @.Active, где @ — это model.Questionnaire
    Excel\Questionnaire\Code @.Code
    Excel\Questionnaire\Description @.Description
    Excel\Questionnaire\QuestionnaireType @.QuestionnaireType
    Excel\Questionnaire\QuestionOrder @.QuestionOrder
    Excel\Questionnaire\ResultsGroup\Code_ @.ResultsGroup.Code
    Excel\Questionnaire\ResultsGroup\Description_ @.ResultsGroup.Description
    Excel\Questionnaire\ResultsGroup\MaxNumberOfPoints @.ResultsGroup.MaxNumberOfPoint
    Excel\Questionnaire\Question @.Question
    Excel\Questionnaire\Question\CollectionSequenceNumber @.CollectionSequenceNumber, где @ — это model.Questionnaire.Question
    Excel\Questionnaire\Question\Id @.Id
    Excel\Questionnaire\Question\MustBeCompleted @.MustBeCompleted
    Excel\Questionnaire\Question\PrimaryQuestion @.PrimaryQuestion
    Excel\Questionnaire\Question\SequenceNumber @.SequenceNumber
    Excel\Questionnaire\Question\Text @.Text
    Excel\Questionnaire\Question\Answer @.Answer
    Excel\Questionnaire\Question\Answer\CorrectAnswer @.CorrectAnswer, где @ — это model.Questionnaire.Answer
    Excel\Questionnaire\Question\Answer\Points @.Points
    Excel\Questionnaire\Question\Answer\Text @.Text
  9. Закончив, выберите Сохранить.

На следующем рисунке показано конечное состояние настроенных привязок данных на странице конструктор формата.

Настроенные привязи данных в конструкторе операций ER.

Важно

Вся коллекция указанных источников данных и привязок представляет компонент сопоставления формата для настроенного формата. Это сопоставление формата вызывается при выполнении настроенного формата для создания отчета.

Выполните созданный формат из ER

Теперь можно запустить созданный формат для целей тестирования на странице конфигурации.

  1. Перейдите в раздел Администрирование организации>Электронная отчетность>Конфигурации.
  2. На странице Конфигурации в дереве конфигураций разверните Модель анкеты, и затем выберите Отчет "Анкета".
  3. Выберите конструктор для версии формата, имеющей статус черновик.
  4. На странице Конструктор формата выберите Выполнить.
  5. В диалоговом окне Параметры ER на экспресс-вкладке Включаемые записи настройте параметры фильтрации таким образом, чтобы включалась только анкета SBCCrsExam.
  6. Выберите ОК, чтобы подтвердить параметр фильтрации.
  7. Выберите OK, чтобы выполнить отчет.
  8. Просмотрите созданный отчет.

По умолчанию, созданный отчет доставляется в виде файла Excel, который можно загрузить. На следующем рисунке показаны две страницы созданного отчета в формате Excel.

Пример созданного отчета в формате Excel, страница 1.

Пример созданного отчета в формате Excel, страница 2.

Настройте созданный формат

Изменение формата для изменения имени созданного документа

По умолчанию созданный документ называется с использованием псевдонима текущего пользователя. Изменяя формат, можно изменить это поведение, чтобы имя созданного документа основывалось на пользовательской логике. Например, имя созданного документа может основываться на текущих дате и времени сеанса и на заголовке отчета.

  1. На странице Конструктор формата выберите корневого элемента Отчет.
  2. На вкладке Сопоставление выберите редактировать имя файла.
  3. В поле Формула введите CONCATENATE (@"GER_LABEL:ReportTitle", " - ", DATETIMEFORMAT(SESSIONNOW(), "yyyy-MM-dd hh-mm-ss")).
  4. Выберите Сохранить и закройте редактор формул.
  5. Нажмите Сохранить.

Изменение формата для изменения порядка вопросов

Вопросы в сформированном отчете неправильно упорядочены. Заказ можно изменить, изменив формат.

  1. На странице Конструктор формата выберите корневого элемента Отчет.

  2. На вкладке Сопоставление в дереве формата разверните Report\Questionnaire\Question.

    Элемент формата вопроса типа диапазона в конструкторе операции ER.

  3. На вкладке Сопоставление выберите model.Questionnaire.

  4. Выберите Добавить>Функции\вычисляемое поле, а затем в поле Имя введите OrderedQuestions.

  5. Выберите Изменить формулу.

  6. В редакторе формул в поле Формула введите ORDERBY (model.Questionnaire.Question, model.Questionnaire.Question.SequenceNumber) для упорядочения списка вопросов по текущей анкете по порядковому номеру заказа.

  7. Выберите Сохранить и закройте редактор формул.

  8. Нажмите кнопку ОК, чтобы завершить ввод нового вычисляемого поля.

  9. На вкладке Сопоставление выберите model.Questionnaire.OrderedQuestions.

  10. В дереве формата выберите Excel\Questionnaire\Question.

  11. Выберите Связать, а затем подтвердите, что текущий путь model.Questionnaire.Questions заменяется новым путем model.Questionnaire.OrderedQuestions во всех привязках вложенных элементов.

  12. Нажмите Сохранить.

Привязка элемента формата вопроса к настроенному источнику данных OrderedQuestions в конструкторе операций ER.

Выполните измененный формат из ER

Теперь для целей тестирования можно запустить измененный формат из платформы ER.

  1. На странице Конструктор формата выберите Выполнить.
  2. В диалоговом окне Параметры ER на экспресс-вкладке Включаемые записи настройте параметры фильтрации таким образом, чтобы включалась только анкета SBCCrsExam.
  3. Выберите ОК, чтобы подтвердить параметр фильтрации.
  4. Выберите OK, чтобы выполнить отчет.
  5. Просмотрите созданный отчет.

На следующем рисунке показан созданный отчет в формате Excel, в котором вопросы правильно упорядочены.

Сформированный отчет в формате Excel, в котором правильно упорядочены вопросы.

Завершение разработки формата

  1. Перейдите в раздел Администрирование организации>Электронная отчетность>Конфигурации.
  2. На странице Конфигурации в дереве конфигураций разверните Модель анкеты, и затем выберите Отчет "Анкета".
  3. На экспресс-вкладке Версии выберите версию конфигурации со статусом Черновик.
  4. Выберите Изменить статус>Завершено.

Статус версии 1.1 этой конфигурации изменяется с черновик на завершено. Версия 1.1 больше не может быть изменена. Эта версия содержит настроенный формат и может использоваться для печати пользовательского отчета. Версия 1.2 этой конфигурации создана и имеет статус черновик. Эту версию можно изменить для корректировки формата вашего отчета Анкета.

Редактируемая конфигурация электронной отчетности на странице конфигурации.

Примечание

Настроенный формат является макетом отчета Анкета и не содержит связей с артефактами, предназначенными только для Финансы.

Разработка артефактов приложений для вызова созданного отчета

Пользователь, работающий в роли системного администратора, должен разработать новую логику, чтобы настроенный формат ER можно было вызывать из пользовательского интерфейса приложения для создания пользовательского отчета. В настоящее время в ER не предусмотрена возможность настройки этого типа логики. Поэтому требуются некоторые технологические работы.

Чтобы разработать новую логику, необходимо развернуть топологию, которая поддерживает непрерывную сборку. Дополнительные сведения см. в разделе Развертывание топологий, которые поддерживают непрерывное построение и автоматизацию тестирования. Кроме того, необходим доступ к среде разработки для этой топологии. Дополнительные сведения о доступном API электронной отчетности см. в разделе API платформы электронной отчетности.

Изменение исходного кода

Добавление класса контракта данных

Добавьте новый класс QuestionnairesErReportContract в проект Microsoft Visual Studio и создайте код, который определяет контракт данных, который должен использоваться для выполнения настроенного формата ER.

/// <summary>
///     This class is the data contract class for the <c>QuestionnairesErReportDP</c> class.
/// </summary>
/// <remarks>
///    This is the data contract class for the Questionnaires ER report.
/// </remarks>
[
    DataContractAttribute,
    SysOperationContractProcessingAttribute(classStr(QuestionnairesErReportUIBuilder))
    ]
    public class QuestionnairesErReportContract extends ERFormatMappingRunBaseContract implements SysOperationValidatable
{
    ERFormatMappingId formatMapping;

    /// <summary>
    ///    Validates the report parameters.
    /// </summary>
    /// <returns>
    ///    true if no errors; otherwise, false.
    /// </returns>
    public boolean validate()
    {
        boolean ret = true;
        if (!formatMapping)
        {
            ret = checkFailed(strFmt("@SYS26332", new SysDictType(extendedTypeNum(ERFormatMappingId)).label()));
        }
        return ret;
    }
    [
        DataMemberAttribute('FormatMapping'),
        SysOperationLabelAttribute(literalstr("@ElectronicReporting:FormatMapping")),
        SysOperationHelpTextAttribute(literalstr("@ElectronicReporting:FormatMapping"))
    ]
    public ERFormatMappingId parmFormatMapping(ERFormatMappingId _formatMapping = formatMapping)
    {
        formatMapping = _formatMapping;
        return formatMapping;
    }
}

Добавление класса конструктора пользовательского интерфейса

Добавьте новый класс QuestionnairesErReportUIBuilder в проект Visual Studio и напишите код для создания диалогового окна среды выполнения, которое будет использоваться для поиска кода сопоставления формата для формата ER, который должен быть выполнен. Предоставленный код выполняет поиск только в тех форматах ER, которые содержат источник данных типа модели данных , относящегося к модели данных Анкеты с использованием определения Корень.

Примечание

Кроме того, можно использовать точки интеграции ER для фильтрации форматов ER. Дополнительные сведения см. в API для отображения поиска сопоставления формата.

/// <summary>
/// The UIBuilder class for Questionnaires ER report
/// </summary>
class QuestionnairesErReportUIBuilder extends SysOperationAutomaticUIBuilder
{
    public const str ERQuestionnairesModel = 'Questionnaires';
    public const str ERQuestionnairesDataContainer = 'Root';

    /// <summary>
    /// Action after build of the dialog UI.
    /// </summary>
    public void postBuild()
    {
        DialogField formatMapping;
        super();
        formatMapping = this.bindInfo().getDialogField(this.dataContractObject(),
            methodStr(QuestionnairesErReportContract, parmFormatMapping));
        formatMapping.registerOverrideMethod(
            methodStr(FormReferenceControl, lookupReference),
            methodStr(QuestionnairesErReportUIBuilder, formatMappingLookup),
            this);
    }

    /// <summary>
    /// Performs the lookup form for format mapping.
    /// </summary>
    /// <param name="_referenceGroupControl">
    /// The control to perform lookup form.
    /// </param>
    public void formatMappingLookup(FormReferenceControl _referenceGroupControl)
    {
        ERObjectsFactory::createFormatMappingTableLookupForControlAndModel(
            _referenceGroupControl,
            ERQuestionnairesModel,
            ERQuestionnairesDataContainer).performFormLookup();
    }
}

Добавление класса поставщика данных

Добавьте новый класс QuestionnairesErReportDP в проект Visual Studio и напишите код, который вводит поставщика данных, который должен использоваться для выполнения настроенного формата ER. Предоставленный код включает только контракт данных для этого поставщика данных.

/// <summary>
/// Data provider class for Questionnaires ER report.
/// </summary>
public class QuestionnairesErReportDP
{
    QuestionnairesErReportContract contract;
    public static QuestionnairesErReportDP construct()
    {
        QuestionnairesErReportDP  dataProvider;
        dataProvider = new QuestionnairesErReportDP();
        return dataProvider;
    }
}

Добавление файла меток

Добавьте новый файл меток QuestionnairesErReportLabels_en-US в проект Visual Studio и укажите следующие метки для новых ресурсов пользовательского интерфейса:

  • Метка @QuestionnairesReport для нового пункта меню, которая содержит следующий текст на американском английском (en-US): Отчет "Анкеты" (на платформе ER)
  • Метка @QuestionnairesReportBatchJobDescription для заголовка пакетного задания, если выбранный формат ER запланирован на выполнение в виде пакетного задания

Добавление класса службы отчетов

Добавьте новый класс QuestionnairesErReportService в свой проект Visual Studio и напишите код, который вызывает формат ER, идентифицирует его по коду сопоставления формата и предоставляет контракт данных в качестве параметра.

using Microsoft.Dynamics365.LocalizationFramework;
/// <summary>
/// The electronic reporting service class for Questionnaires ER report
/// </summary>
class QuestionnairesErReportService extends SysOperationServiceBase
{
    public const str ERModelDataSourceName = 'model';
    public const str DefaultExportedFileName = 'Questionnaires report';
    public const str ParametersDataSourceName = 'RunTimeParameters';

    /// <summary>
    /// Generates report by using Electronic reporting framework
    /// </summary>
    /// <param name = "_contract">The Questionnaires report contract</param>
    public void generateReportByGER(QuestionnairesErReportContract _contract)
    {
        ERFormatMappingId formatMappingId;
        QuestionnairesErReportDP  dataProvider;
        dataProvider = QuestionnairesErReportDP::construct();
        formatMappingId = _contract.parmFormatMapping();
        if (formatMappingId)
        {
            try
            {
                ERIModelDefinitionParamsAction parameters = new ERModelDefinitionParamsUIActionComposite()
                    .add(new ERModelDefinitionObjectParameterAction(ERModelDataSourceName, ParametersDataSourceName, _contract, true));

                // Call ER to generate the report.
                ERIFormatMappingRun formatMappingRun = ERObjectsFactory::createFormatMappingRunByFormatMappingId(formatMappingId, DefaultExportedFileName);
                if (formatMappingRun.parmShowPromptDialog(true))
                {
                    formatMappingRun.withParameter(parameters);
                    formatMappingRun.withFileDestination(_contract.getFileDestination());
                    formatMappingRun.run();
                }
            }
            catch
            {
                // An error occurred while exporting data.
                error("@SYP4861341");
            }
        }
        else
        {
            // There is no data available.
            info("@SYS300117");
        }
    }
}

Если необходимо использовать формат ER, который использует данные приложений, необходимо настроить источник данных типа модели данных, в сопоставлении формата. Этот источник данных ссылается на определенную часть указанной модели данных, используя одно определение корня. При выполнении формата ER он вызывает этот источник данных для получения соответствующего сопоставления модели ER, которое настроено для данной модели и определения корня.

Все сведения, которые могут быть подготовлены в исходном коде и магазине в рамках контракта данных, можно передавать в выполняемый формат ER с помощью сопоставления модели ER с этим типом. В сопоставлении модели ER необходимо настроить источник данных типа объекта, относящегося к классу QuestionnairesErReportContract. Чтобы определить сопоставление модели, необходимо указать источник данных, вызывающий это сопоставление модели. В указанном коде — это источник данных, указанный константой ERModelDataSourceName, которая имеет значение модели. Чтобы определить источник данных, используемый для предоставления контракта данных в сопоставлении модели, необходимо указать имя источника данных. В указанном коде — это имя, указанный константой ParametersDataSourceName, которая имеет значение RunTimeParameters.

Примечание

В новой среде может потребоваться обновление метаданных ER таким образом, чтобы класс данного типа был доступен в конструкторе сопоставления моделей ER. Дополнительные сведения см. в разделе Настройка платформы электронной отчетности.

Добавление класса controller отчетов

Добавьте новый класс QuestionnairesErReportController в проект Visual Studio и напишите код, который запускает формат ER в синхронном режиме или в пакетном режиме, согласно предпочтениям, в диалоговом окне, созданном на основе логики предоставленного класса QuestionnairesErReportUIBuilder.

/// <summary>
/// The controller for Questionnaires ER report
/// </summary>
class QuestionnairesErReportController extends ERFormatMappingRunBaseController
{
    /// <summary>
    /// The main entrance of the controller
    /// </summary>
    /// <param name = "args">The arguments</param>
    public static void main(Args args)
    {
        QuestionnairesErReportController operation;
        operation = new QuestionnairesErReportController(
            classStr(QuestionnairesErReportService),
            methodStr(QuestionnairesErReportService, generateReportByGER),
            SysOperationExecutionMode::Synchronous);
        operation.startOperation();
    }

    /// <summary>
    /// Gets caption of the dialog.
    /// </summary>
    /// <returns>Caption of the dialog</returns>
    public ClassDescription defaultCaption()
    {
        ClassDescription batchDescription;
        batchDescription = "Questionnaires report (powered by ER)";
        return batchDescription;
    }
}

Добавьте новый пункт меню QuestionnairesErReport в проект Visual Studio. В свойстве объекта этот пункт меню относится к классу QuestionnairesErReportController и используется для указания разрешения пользователя для выбора и выполнения формата ER. В свойстве Метка этот пункт меню относится к метке @QuestionnairesReport, которая была создана ранее, так что правильный текст представлен в пользовательском интерфейсе приложения.

Добавьте существующее меню KM в проект Visual Studio. В это меню необходимо добавить новую номенклатуру QuestionnairesErReport типа Выпуск. Эта номенклатура должна ссылаться на пункт меню QuestionnairesErReport, который описан в предыдущем разделе.

Сборка проекта Visual Studio

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

Выполните формат из приложения

  1. Перейдите к Анкета>Разработка>Отчет "Анкеты" (на платформе ER).

    Выбор пункта меню

  2. В диалоговом окне в поле сопоставление формата выберите Отчет "Анкеты".

  3. Нажмите ОК.

  4. В диалоговом окне Параметры электронной отчетности на экспресс-вкладке Включаемые записи настройте параметры фильтрации таким образом, чтобы включалась только анкета SBCCrsExam.

  5. Выберите ОК, чтобы подтвердить параметр фильтрации.

  6. Выберите OK, чтобы выполнить отчет.

    Указание критерии выбора в диалоговом окне электронной отчетности.

  7. Просмотрите созданный отчет.

Настройка созданного решения ER

Можно изменить настроенное решение ER таким образом, чтобы оно использовало класс поставщика данных, который был создан для доступа к сведениям о выполняемом формате электронной отчетности, и таким образом, и чтобы оно вводило имя этого формата ER в созданный отчет.

Изменение сопоставления модели

Добавление источников данных для доступа к объекту контракта данных

  1. Перейдите в раздел Администрирование организации>Электронная отчетность>Конфигурации.
  2. На странице Конфигурации в дереве конфигураций разверните Модель анкеты, и затем выберите Сопоставление анкеты.
  3. Выберите конструктор, чтобы открыть страницу Сопоставление модели и источника данных.
  4. Выберите конструктор, чтобы открыть выбранное сопоставление в конструкторе сопоставления моделей.
  5. На странице Конструктор сопоставления модели в области Типы источников данных выберите Dynamics 365 for Operations\Объект.
  6. В области источники данных выберите Добавить корень.
  7. В диалоговом окне в поле Имя введите RunTimeParameters, как определено в исходном коде класса QuestionnairesErReportService.
  8. В поле Класс введите QuestionnairesErReportContract, которые были кодированы ранее.
  9. Нажмите ОК.
  10. Разверните RunTimeParameters.

Добавленный источник данных содержит информацию о коде записи для сопоставления формата запуска ER.

Добавлен источник данных в конструкторе сопоставления модели ER.

Добавление источника данных для доступа к записям сопоставления формата электронной отчетности

Продолжайте редактировать выбранное сопоставление модели путем добавления источника данных для доступа к записям сопоставления формата ER.

  1. На странице Конструктор сопоставления модели в области Типы источников данных выберите Dynamics 365 for Operations\Записи таблицы.
  2. В области источники данных выберите Добавить корень.
  3. В диалоговом окне в поле Имя введите ER1.
  4. В поле Таблица введите ERFormatMappingTable.
  5. Нажмите ОК.

Добавление источника данных для доступа к записи сопоставления формата выполняемого формата электронной отчетности

Продолжайте редактировать выбранное сопоставление модели путем добавления источника данных для доступа к записи сопоставления формата для выполняемого формата электронной отчетности.

  1. На странице Конструктор сопоставления модели в области Типы источников данных выберите Функции\Вычисляемое поле.
  2. В области источники данных выберите Добавить корень.
  3. В диалоговом окне в поле Имя введите ER2.
  4. Выберите Изменить формулу.
  5. В редакторе формул в поле Формула введите FIRSTORNULL (FILTER(ER1, ER1.RecId = RunTimeParameters.parmFormatMapping)).
  6. Выберите Сохранить и закройте редактор формул.
  7. Нажмите ОК.

Введите имя выполняемого формата электронной отчетности в модель данных

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

  1. На странице Конструктор сопоставления модели в области Модель данных разверните ExecutionContext, а затем выберите ExecutionContext\FormatName.
  2. В области модель данных выберите Изменить, чтобы настроить привязку данных для поля выбранной модели данных.
  3. В редакторе формул в поле Формула введите FIRSTORNULL (ER2.'>Relations'.Format).Name.
  4. Выберите Сохранить и закройте редактор формул.

Поскольку используется поле FormatName, настроенное сопоставление модели теперь предоставляет имя формата ER, который вызывает сопоставление модели во время выполнения.

Привязка поля модели данных к методу добавленного источника данных в конструкторе сопоставления модели ER.

Завершение разработки сопоставления модели

  1. На странице конструктора сопоставления модели нажмите Сохранить.
  2. Закройте страницу.
  3. Закройте страницу сопоставлений моделей.
  4. На странице конфигурации в дереве конфигурации убедитесь, что конфигурация Сопоставление анкеты все еще выбрана. Затем, на экспресс-вкладке Версии выберите версию конфигурации со статусом Черновик.
  5. Выберите Изменить статус>Завершено.

Статус версии 1.2 этой конфигурации изменяется с черновик на завершено. Версия 1.2 больше не может быть изменена. Эта версия содержит настроенное сопоставление модели и может использоваться в качестве основы для других конфигураций ER. Версия 1.3 этой конфигурации создана и имеет статус черновик. Эту версию можно изменить для корректировки сопоставления модели Анкета.

Изменение формата

Можно изменить настроенный формат ER так, чтобы имя отображалось в нижнем колонтитуле отчета, созданного при выполнении формата ER.

Добавление нового элемента формата

  1. Перейдите в раздел Администрирование организации>Электронная отчетность>Конфигурации.
  2. На странице Конфигурации в дереве конфигураций разверните Модель анкеты, и затем выберите Отчет "Анкета".
  3. Выберите Конструктор.
  4. На странице Конструктор формата выберите корневого элемента Отчет.
  5. Выберите Добавить, чтобы добавить новый вложенный элемент формата для выбранного корневого элемента Отчет.
  6. Выберите Excel\Нижний колонтитул.
  7. В поле Имя введите Нижний колонтитул.
  8. Выберите Отчет\Нижний колонтитул и затем щелкните Добавить.
  9. Выберите Текст\Строка.

Связывание добавленного элемента формата

  1. На странице Конструктор форматов на вкладке сопоставление в дереве формата, для активного элемента Нижний колонтитул\Строка выберите Изменить формулу.
  2. В редакторе формул в поле Формула введите CONCATENATE ("&C&10", FORMAT("Generated by'%1' ER solution", model.ExecutionContext.FormatName)).
  3. Выберите Сохранить и закройте редактор формул.
  4. Нажмите Сохранить.

Настроенный формат был изменен таким образом, что его имя будет введено в нижнем колонтитуле созданного отчета с использованием элемента Нижний колонтитул\Строка.

Добавление элемента формата нижнего колонтитула к настроенному формату в конструкторе операций ER.

Завершение разработки формата

  1. Закройте страницу Конструктор форматов.
  2. На странице конфигурации в дереве конфигурации убедитесь, что конфигурация Отчет "Анкета" все еще выбрана. Затем, на экспресс-вкладке Версии выберите версию конфигурации со статусом Черновик.
  3. Выберите Изменить статус>Завершено.

Статус версии 1.2 этой конфигурации изменяется с черновик на завершено. Версия 1.2 больше не может быть изменена. Эта версия содержит настроенную формат и может использоваться в качестве основы для других конфигураций ER. Версия 1.3 этой конфигурации создана и имеет статус черновик. Эту версию можно изменить для корректировки отчета Анкета.

Выполните формат из приложения

  1. Перейдите к Анкета>Разработка>Отчет "Анкеты" (на платформе ER).
  2. В диалоговом окне в поле сопоставление формата выберите Отчет "Анкеты".
  3. Нажмите ОК.
  4. В диалоговом окне Параметры ER на экспресс-вкладке Включаемые записи настройте параметры фильтрации таким образом, чтобы включалась только анкета SBCCrsExam.
  5. Выберите ОК, чтобы подтвердить параметр фильтрации.
  6. Выберите OK, чтобы выполнить отчет.
  7. Просмотрите созданный отчет в формате Excel.

Обратите внимание, что нижний колонтитул созданного отчета содержит имя формата ER, который был использован при его создании.

Созданный отчет в формате Excel.

Выполните формат из ER

  1. Перейдите в раздел Администрирование организации>Электронная отчетность>Конфигурации.
  2. На странице Конфигурации в дереве конфигураций разверните Модель анкеты, и затем выберите Отчет "Анкета".
  3. В области действий выберите Выполнить.
  4. В диалоговом окне Параметры электронной отчетности на экспресс-вкладке Включаемые записи настройте параметры фильтрации таким образом, чтобы включалась только анкета SBCCrsExam.
  5. Выберите ОК, чтобы подтвердить параметр фильтрации.
  6. Выберите OK, чтобы выполнить отчет.
  7. Просмотрите созданный отчет в формате Excel.

Обратите внимание, что нижний колонтитул созданного отчета не содержит имени формата ER, использованного при создании, поскольку объект контракта данных не был передан в выполняемое сопоставление модели при вызове из формата ER, выполняемого из ER.

Настройка назначения формата для предварительного просмотра на экране

  1. Перейдите в раздел Управление организацией>Электронная отчетность>Место назначения электронной отчетности.
  2. На странице Место назначения электронной отчетности добавьте запись назначения для настроенного формата ER Отчет "Анкета".
  3. На экспресс-вкладке Назначение файла настройте Экранназначение для компонента формата Отчет, который был добавлен в качестве корневого элемента настроенного формата ER Отчет "Анкета".
  4. На экспресс-вкладке Параметры преобразования PDF настройте назначение, чтобы преобразовать отчет в Формат PDF, в котором используется Альбомная ориентация страницы.

Настройка пользовательского назначения экрана для формата ER на странице назначения электронной отчетности.

Выполните формат из приложения, чтобы просмотреть его в виде PDF-документа

  1. Перейдите к Анкета>Разработка>Отчет "Анкеты" (на платформе ER).

  2. В диалоговом окне в поле сопоставление формата выберите Отчет "Анкеты".

  3. Нажмите ОК.

  4. В диалоговом окне Параметры электронной отчетности на экспресс-вкладке Включаемые записи настройте параметры фильтрации таким образом, чтобы включалась только анкета SBCCrsExam.

  5. Выберите ОК, чтобы подтвердить параметр фильтрации.

    Обратите внимание, что на экспресс-вкладке назначения поле Вывод имеет значение экран. Если необходимо изменить настроенное назначение, выберите изменить.

    Диалоговое окно выполнения отчета ER, в котором можно изменить настроенное назначение.

  6. Выберите OK, чтобы выполнить отчет.

  7. Просмотрите созданный отчет в формате PDF.

    Предварительный просмотр на экране созданного отчета в формате PDF.

Дополнительные ресурсы