Печатные формы MIS3 — различия между версиями

Материал из ИбисоПедии
Перейти к: навигация, поиск
(Соглашение об именовании параметров для настраиваемых отчетов в ТЛ, ИБ, амбулаторном талоне и др)
 
(не показано 7 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
== Описание ==
 
== Описание ==
отчеты хранятся в БД в таблице mm.report. Основной функционал по вызову модулей находится в REPORT\fFRF.pas, необходимо подключить этот модуль в проект
+
Отчеты хранятся в БД в таблице mm.report. Основной функционал по вызову модулей находится в REPORT\fFRF.pas, необходимо подключить этот модуль в проект. Вызовы отчетов производяться по имени файла отчета (должно быть уникальным и английскими буквами) с помощью функции fFrf.ShowFRFReportByfName
 
 
 
 
== Пример приема параметра в fr3 ==
 
N := <people_id>
 
  
 
== Пример вызова из кода ==  
 
== Пример вызова из кода ==  
  
<source lang="delphi">
+
var
var
+
   ar : variant;
   ar: Variant;
+
  begin
begin
+
  AddParam(ar,'ID',TagBig);
  fFRF.AddParam(ar, 'people_id', 9978, pkInteger);
+
  fFrf.ShowFRFReportByfName('sickleave.fr3', 'ЛН № 123313' + uq1.FieldByName('code').AsString, ar );
  fFRF.ShowFRFReportByID(103,'',ar);
+
end;
// VarClear(ar);
 
end;
 
</source>
 
 
 
Другой пример:
 
<source lang="delphi">
 
var
 
  ar : variant;
 
begin
 
  AddParam(ar,'ID',TagBig);
 
  fFrf.ShowFRFReportByfName('sickleave.fr3', 'ЛН № 123313' + uq1.FieldByName('code').AsString, ar );
 
end;
 
</source>
 
  
 
== ReportViewer.exe ==
 
== ReportViewer.exe ==
Строка 42: Строка 25:
 
Цель сделать так, чтобы отчет всегда можно было посмотреть, вне зависимости от переданных параметров.
 
Цель сделать так, чтобы отчет всегда можно было посмотреть, вне зависимости от переданных параметров.
  
1. Объявляем внешнюю переменную (Отчет -> переменные -> )
+
#. Объявляем внешнюю переменную (Отчет -> переменные -> )
2. Создаем ей значение по умолчанию (например 0)
+
#. Создаем ей значение по умолчанию (например 0)
  
<source lang="delphi">
 
 
  var
 
  var
 
   p_id : integer;                                         
 
   p_id : integer;                                         
begin
+
begin
  p_id := <id>;
+
  p_id := <id>;
  if p_id = 0 then p_id := 10;                 
+
  if p_id = 0 then p_id := 10;                 
 
                
 
                
 
   uqSl.ParamByName('id').value := p_id;
 
   uqSl.ParamByName('id').value := p_id;
</source>
+
 
 +
 
 +
== Запросы ==
 +
 
 +
-- поиск по всем запросам в базе
 +
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

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

  1. . Объявляем внешнюю переменную (Отчет -> переменные -> )
  2. . Создаем ей значение по умолчанию (например 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 )