Разработка SSRS отчетов – Советы и рекомендации

Category: Статьи Post Date: 25.06.2020

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

  • Если при запуске отчета в новом поле не отображаются данные, попробуйте обновить кэш Сервис -> Кэши (Tools – > Cache), а затем запустите отчет заново.
  • Если новое поле не отображается в наборе данных (dataset) отчета после обновления, проверьте следующее:
    • Проверьте, указывает ли конфигурация клиента по умолчанию на экземпляр AOS, с которым вы работаете.
    • Проверьте, подключается ли ваш экземпляр Visual Studio к нужному экземпляру AOS. Чтобы определить, к какому экземпляру сервера отчетов подключается VS, попробуйте развернуть отчет из Visual Studio, а затем проверьте окно сообщения. Информация о развертывании показывает AOS и экземпляр сервера отчетов, на котором развертывается отчет. Пример показан ниже:
    • Если там указан неправильный сервер отчетов, то необходимо изменить конфигурацию клиента по умолчанию.
  • Если отчет не развертывается в правильном экземпляре сервера отчетов, возможно, вам придется изменить конфигурацию клиента по умолчанию. Например, если вы работаете в среде DEV, измените конфигурацию клиента по умолчанию на DEV и наоборот.
  • Если вы изменили запрос отчета SSRS, и эти изменения не отображаются в форме параметров отчета, попробуйте сделать следующее:
    • Удалить «Использование данных» (Usage data)
    • Удалить связанные с отчетом данные из SRSReportQuery
    • Сервис -> Кэши (Tools – > Cache). Обновить все 4 кэша.
  • Если вы хотите немного переместить объект, либо текстовое поле, либо прямоугольную область, либо любой другой элемент в дизайне отчета, используйте комбинацию клавиш Ctrl + стрелки на клавиатуре.
  • Если адрес отображается в нескольких строках, используйте функцию Replace для удаления перевода строки. Например:
    • Replace(First(Fields!CompanyAddress.Value,”PurchPurchaseOrderDS”),Chr(10),”, “)
  • Если данные в полях верхнего или нижнего колонтитула обрезаются, необходимо увеличить размер области колонтитула, поскольку эта область не увеличивается автоматически.
  • Если вам необходимо разработать новый отчет, а некоторые области похожи на один из существующих отчетов, то вы можете открыть дизайны отчетов и скопировать нужные области из существующего дизайна в новый. После этого переименуйте элементы в своем новом дизайне, иначе вы получите ошибки при развертывании отчета. Ошибки с повторяющимися именами не будут отображаться при сборке проекта отчета или при добавлении проекта в AOT. Также измените имя набора данных в выражениях полей.
  • Если вы хотите полностью изменить дизайн существующего отчета, то лучше скопировать существующий дизайн и создать новый дизайн с другим именем. Преимущество состоит в том, что вы всегда можете вернуться к старому дизайну для просмотра свойств элементов и их расположения, а также вы можете сформировать старый вариант отчета. Вам не нужно открывать другую среду, чтобы проверить стандартный дизайн отчета. После того, как вы завершили разработку отчета, вам потребуется обновить поле «Name» в PrintMgmtReportFormat. Ниже приведен пример:

Скажем, дизайн вашего нового отчета называется Report_INT, тогда вам надо изменить значение в поле «Name» на FreeTextInvoice.Report_INT. Данные в указанной таблице хранятся в разрезе компании, поэтому необходимо изменить записи во всех компаниях, где будет использоваться новый дизайн. Если компаний много, можно написать job для обновления записей по значению в поле DocumentType.

  • Если вы добавляете новое поле в таблицу отчета в Ax, обновив набор данных (dataset) отчета в VS, поле появится в списке полей набора данных. Прежде чем использовать новое поле в дизайне отчета необходимо сделать следующее:
    • Закрыть дизайн отчета и открыть его заново, только после этого можно быдет обратиться к новому полю. Иногда приходится тратить много времени на поиск нового поля, которое отображается в наборе данных отчета, но не появляется в дизайне отчета, когда вы выбираете связанный набор данных в дизайне отчета.
  • Всегда экспортируйте отчет в формате PDF для просмотра результата и проверки форматирования в соответствии с требованиями, поскольку для отображения отчета на клиенте AX используется средство визуализации HTML, поэтому отображение может отличаться от того, которое вы увидите при печати отчета на принтере.
  • Когда вы оцениваете время для разработки статических отчетов, добавьте 1 или 2 часа дополнительного времени для развертывания отчета. Иногда развертывание статического отчета занимает от 4 до 5 минут. Подробности о том, какие отчеты являются статическими, можно найти в следующей форме:
    • Администрирование системы -> Настройка -> Бизнес-аналитика -> Службы Reporting Services -> Параметры развертывания отчетов. (System administration -> Setup -> Business intelligence -> Reporting Services -> Report deployment settings)
  • Когда вы изменяете отчет, который является статическим, то лучше сделать большинство изменений за один раз, а затем развернуть отчет, чтобы проверить результат, а не вносить небольшие изменения по очереди и проверять их по отдельности. Это просто для экономии времени, потому что развертывание статического отчета занимает много времени.
  • Если при выводе отчета в формате PDF изображение отображается некорректно, то, скорее всего, это связано с тем, что изображение имеет формат .png. Измените изображение в формат JPEG, и тогда оно должно работать. PDF не поддерживает изображения в формате PNG.
  • Всегда старайтесь помещать элементы отчета в контейнеры, в прямоугольники. Это поможет контролировать то, как элементы отображаются/располагаются на странице отчета.
  • Если у вас возникают ошибки в выражениях, используемых в элементах управления при компиляции проекта отчета в Visual Studio, и вы не знаете, к какому элементу управления он относится, то один из способов выяснить это – найти в отчете RDL текст ошибки, а затем посмотреть на родительский узел XML, чтобы увидеть, с каким объектом он связан. Просто нажмите Ctrl + F в дизайне вашего отчета, чтобы найти во всем решении текст ошибки, и он откроет RDL отчета в формате XML.
  • Если вы удалили все вертикальные пробелы между текстовыми полями в дизайне отчета, но, тем не менее, когда вы запускаете отчет, между текстовыми полями есть расстояние, попробуйте уменьшить верхний и нижний отступы (padding) в свойствах текстовых полей. Это уменьшит расстояние между объектами во время формирования отчета.
  • Если нужно отобразить текст метки заглавными буквами, но такой метки не существует. Не создавайте новую метку, вместо этого используйте функцию UCASE для существующей метки. Пример:
    • Ucase(Labels!@SYS26401)
  • Если положение текстовых полей или таблиц при формировании отчета не отображаются должным образом, измените цвет фона объектов на какой-нибудь цвет и сформируйте отчет. Так вы сможете получить представление о том, что происходит с объектами при формировании отчета.
  • Если вы изменили текст метки, которая используется в статическом отчете, вам придется снова развернуть отчет, чтобы увидеть обновленную метку, поскольку метка обновляются во время развертывания отчета.
  • Если элемент отчета отображается не в том месте, где он должен быть, то, скорее всего, причина заключается в том, что другой элемент отчета увеличивается в размере и перемещает этот элемент дальше, поэтому либо установите для автоматического увеличения (auto grow) значение false, либо оставьте достаточно места в ширину или высоту во время проектирования отчета.
  • Если ваши отчеты не развертываются на нужном сервере отчетов при его развертывании из среды AX, быстрым обходным путем является развертывание отчета на определенном сервере отчетов с помощью следующей команды Power Shell:
    • Publish-AXReport –id ReportConfigurationID –ReportName ReportName
    • Например: Publish-AXReport –id AXPROD –ReportName PurchPurchaseOrder
    • Значение параметра ReportConfigurationID можно посмотреть на форме «Серверы отчетов», Администрирование системы -> Настройка -> Бизнес-аналитика -> Службы Reporting Services -> Серверы отчетов. (System administration -> Setup -> Business intelligence -> Reporting Services -> Report servers)

Оригинал статьи можно найти по ссылке.

Подписывайтесь на канал @d365neti в Telegram

Подписаться

Добавить комментарий