Печатные формы MIS3 — различия между версиями
(Новая страница: «== Пример приема параметра в fr3 == N := <people_id> == Пример вызова из кода == <source lang="delphi"> var ar: Var…») |
Admin (обсуждение | вклад) (→Соглашение об именовании параметров для настраиваемых отчетов в ТЛ, ИБ, амбулаторном талоне и др) |
||
| (не показано 14 промежуточных версий 4 участников) | |||
| Строка 1: | Строка 1: | ||
| − | == | + | == Описание == |
| − | + | Отчеты хранятся в БД в таблице mm.report. Основной функционал по вызову модулей находится в REPORT\fFRF.pas, необходимо подключить этот модуль в проект. Вызовы отчетов производяться по имени файла отчета (должно быть уникальным и английскими буквами) с помощью функции fFrf.ShowFRFReportByfName | |
| + | == Пример вызова из кода == | ||
| + | |||
| + | var | ||
| + | ar : variant; | ||
| + | begin | ||
| + | AddParam(ar,'ID',TagBig); | ||
| + | fFrf.ShowFRFReportByfName('sickleave.fr3', 'ЛН № 123313' + uq1.FieldByName('code').AsString, ar ); | ||
| + | end; | ||
| + | |||
| + | == ReportViewer.exe == | ||
| + | Существует отдельный exe для показа отчетов. Понимает следующие параметры | ||
| + | * /report_id=<ib из таблицы report> | ||
| + | * /param:<имя параметра>= | ||
| + | * /param1:<имя параметра>= | ||
| + | * /param2:<имя параметра>= | ||
| + | * /param3:<имя параметра>= | ||
| + | |||
| + | Пример командной строки для кнопки A1IBIS: ReportViewer.exe /report_id=103 /param:id=434121 | ||
| + | |||
| + | == Правильная обработка параметров в fastreport == | ||
| + | |||
| + | Цель сделать так, чтобы отчет всегда можно было посмотреть, вне зависимости от переданных параметров. | ||
| + | |||
| + | #. Объявляем внешнюю переменную (Отчет -> переменные -> ) | ||
| + | #. Создаем ей значение по умолчанию (например 0) | ||
| + | |||
| + | var | ||
| + | p_id : integer; | ||
| + | begin | ||
| + | p_id := <id>; | ||
| + | if p_id = 0 then p_id := 10; | ||
| + | |||
| + | uqSl.ParamByName('id').value := p_id; | ||
| + | |||
| + | |||
| + | == Запросы == | ||
| + | |||
| + | -- поиск по всем запросам в базе | ||
| + | select * from mm.report r where r.source::text like '%'|| encode(('array_to_string(array_agg(home_tel)')::bytea , 'hex') ||'%' | ||
| + | |||
| + | == Соглашение об именовании параметров для настраиваемых отчетов в ТЛ, ИБ, амбулаторном талоне и др == | ||
| + | |||
| + | При вызове отчета, policlinic.exe передает в отчет следующие параметры (если это возможно) | ||
| + | |||
| + | * people_id | ||
| + | * mdoc_id | ||
| + | * amb_id | ||
| + | * naz_id | ||
| + | |||
| + | Соответственно при разработке отчета, следует учитывать именно эти имена параметров (некоторые формы передают дополнительно несколько имен, например pNaz_id, p_naz_id но такой подход считаем deprecated ) | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | [[Категория:MIS3]] | + | [[Категория:Руководство программиста MIS3]] |
Текущая версия на 10:11, 11 сентября 2023
Содержание
Описание
Отчеты хранятся в БД в таблице mm.report. Основной функционал по вызову модулей находится в REPORT\fFRF.pas, необходимо подключить этот модуль в проект. Вызовы отчетов производяться по имени файла отчета (должно быть уникальным и английскими буквами) с помощью функции fFrf.ShowFRFReportByfName
Пример вызова из кода
var
ar : variant;
begin
AddParam(ar,'ID',TagBig);
fFrf.ShowFRFReportByfName('sickleave.fr3', 'ЛН № 123313' + uq1.FieldByName('code').AsString, ar );
end;
ReportViewer.exe
Существует отдельный exe для показа отчетов. Понимает следующие параметры
- /report_id=<ib из таблицы report>
- /param:<имя параметра>=
- /param1:<имя параметра>=
- /param2:<имя параметра>=
- /param3:<имя параметра>=
Пример командной строки для кнопки A1IBIS: ReportViewer.exe /report_id=103 /param:id=434121
Правильная обработка параметров в fastreport
Цель сделать так, чтобы отчет всегда можно было посмотреть, вне зависимости от переданных параметров.
- . Объявляем внешнюю переменную (Отчет -> переменные -> )
- . Создаем ей значение по умолчанию (например 0)
var
p_id : integer;
begin
p_id := <id>;
if p_id = 0 then p_id := 10;
uqSl.ParamByName('id').value := p_id;
Запросы
-- поиск по всем запросам в базе
select * from mm.report r where r.source::text like '%'|| encode(('array_to_string(array_agg(home_tel)')::bytea , 'hex') ||'%'
Соглашение об именовании параметров для настраиваемых отчетов в ТЛ, ИБ, амбулаторном талоне и др
При вызове отчета, policlinic.exe передает в отчет следующие параметры (если это возможно)
- people_id
- mdoc_id
- amb_id
- naz_id
Соответственно при разработке отчета, следует учитывать именно эти имена параметров (некоторые формы передают дополнительно несколько имен, например pNaz_id, p_naz_id но такой подход считаем deprecated )