Запуск классических отчетов в RTC (RUNMODAL и кое-что еще)

В этой заметке – немного замечаний по запуску классических отчетов из RTC

RUNMODAL (Not possible)

RTC запускает классические отчеты (без RDL Layout) – запуском движка отчетов для классического клиента. При этом RTC не умеет запускать классические отчеты МОДАЛЬНО, запуск с помощью RUNMODAL приравнивается к RUN, т.е. программа не ждет, пока отчет отработает, а продолжает выполнение со следующей строчки. Естественно, что отчеты, которые отражаются на экране (т.н. с лэйаутом), без проблем запускаются модально.

Это становится важно, когда следующая за вызовом отчета строчка должна делать что-то, связанное с результатом работы отчета, например, отослать его по электронной почте, или сконвертировать в PDF, или записать результаты работы в БД или что-нибудь еще.

Запуск классических отчетов пакетно (улучшение в новой версии)

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

При закрытии классический клиент обновляет несколько файлов, например .zup-файл, а в случае использования breakpoint’ов – NaviBP.xml (описывается здесь — http://msdn.microsoft.com/en-us/library/dd355196.aspx).

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

You cannot use the file C:\Users\[USER]\AppData\Roaming\fin.zup  because it is already in use.

А также

Microsoft Visual C++ Runtime Library
Runtime Error!

Program: C:…

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.

Но после выпуска KB 2398170 (build 31587) поведение системы изменилось, так что теперь при закрытии движка отчетов, клиент 1) будет ПЫТАТЬСЯ обновить .zup-файл и 2) не обновлять NaviBP.xml, для обхода вышеуказанных ошибок.

Лицензия (нет, лицензию он не кушает)

При запуске классического отчета из RTC, он не использует еще одну пользовательскую лицензию. Если понаблюдать за таблицей сессий во время работы классического клиента, видно, что подключается новая сессия с именем приложения «Application Name» = 111. Таким способом система показывает, что это не обычный Navision-клиент, и конкурентная сессия не считается.

Оригинал можно прочесть здесь:  http://blogs.msdn.com/b/nav/archive/2010/10/20/running-classic-reports-in-rtc-runmodal-and-a-few-other-things.aspx

Автор:

В области Navision - с 2003 года. Профессиональные интересы: NAV, MS SQL, .NET, BPMN, IT-менеджмент. Предметная область: логистика, финансы, склады, 3PL.

Количество статей, опубликованных автором: 86.

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