Параметры в секции [JASPER$]:

Параметр

Значение по умолчанию

Описание

reports_dir

%H/REP/JASPER

Каталог с исходными файлами отчётов (.jrxml). В случае запуска под ОС Linux регистр символов имеет значение.

reports_cache

%T/JasperCache/Reports

Каталог, в котором Fastcom Report Producer будет хранить комилированные отчёты. Константа %T по умолчанию содержит путь к каталогу временных файлов для текущего пользователя.

images_dir

%H/REP/JASPER

Каталог изображений, используемых в отчётах Jasper Reports.

images_cache

%T/JasperCache/Images

Каталог, в котором Fastcom Report Producer будет хранить локальные копии изображений.

swap_dir

%T/JasperCache/Swap

Каталог, в котором Fastcom Report Producer будет размещать временные файлы, используемые при формировании больших отчётов.

swap_limit

256

Ограничение на общий размер всех временных файлов Jasper Reports, в мегабайтах

font_dirs

В зависимости от операционной системы,

WIN – C:\Windows\Fonts
UNIX - /usr/share/fonts

Список каталогов через символ «точка-с-запятой» (;), в котором Jasper Reports будет искать шрифты.



Параметры настройки АСР

Диспетчер Отчётов использует следующие параметры настройки АСР (Меню Fastcom/Справочники/Параметры Системы/Все параметры (Список)):

RD$PRINTER

Отчёты типа REP могут быть выведены непосредственно на принтер, без промежуточного сохранения в файл и вывода в браузер пользователя WEB-интерфейса АСР.

Чтобы воспользоваться этой возможностью, нужно выполнить следующие условия:

НЕ нашли? Не то? Что вы ищете?
    Принтер(ы), на которые будет выполняться печать отчётов, должны быть подключены к серверу(-ам), выполняющему приложение Fastcom Report Dispatcher. Имя принтера на сервере Fastcom Report Dispatcher должно быть помещено в параметр RD$PRINTER в сессии пользователя АСР Fastcom.

К сожалению, привязать значение к рабочей станции пользователя (к которой, обычно, и подключен принтер) при работе через WEB-интерфейс невозможно, поэтому единственный вариант привязки – через учётную запись пользователя. Выполнить такую привязку можно через форму «Меню Fastcom/Справочники/Параметры Системы/Все параметры (Список)», действие «Наборы Значений».

RD$SHARED_URL

URL, по которому пользователям WEB-интерфейса доступен разделяемый каталог, определённый константой %R. URL используется для отображения результата выполнения отчёта пользователю.

Примеры программы диспетчера отчётов

В комплект поставки АСР Fastcom (или в пакет обновлений для пользователей, установивших АСР Fastcom до выхода подсистемы «диспетчер отчётов») входят несколько программ диспетчера отчётов, демонстрирующих возможности подсистемы.  Эти программы могут быть использованы «как есть», или модифицированы администратором АСР.

Программа REPORT$HTM

Программа предназначена для выполнения единичного отчёта типа HTM.

Программа вычисляет следующие параметры:

Параметр DST$DIR

Каталог, в который помещается результат формирования отчёта. Значение параметры вычисляется по шаблону

{SELECT '%R%/'||RD_P_TOOLS. GEN_DIR FROM DUAL}

, где:

%R и %/ - константы, указанные при настройке диспетчера отчётов,

RD_P_TOOLS. GEN_DIR – функция, генерирующая псевдослучайное имя для каталога.

Параметр DST$EXTENSION

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

Параметр вычисляется по шаблону

{SELECT RD_P_TOOLS. EXTRACT_EXTENSION(FILE_NAME) FROM RP_T_REPORT WHERE CODE=RD_P_QUEUE. CTX_GET('REPORT$CODE')}

, где

RD_P_TOOLS. EXTRACT_EXTENSION – функция, возвращающая расширение имени файла, переданного ей в качестве параметра,

FILE_NAME – столбец таблицы RP_T_REPORT, содержащий имя файла-шаблона отчёта,

RP_T_REPORT – справочник отчётов

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

REPORT$CODE – параметр задачи, содержащий код отчёта.

Параметр DST$FILE

Имя файла, в который будет помещён результат формирования отчёта.

Используется значение по умолчанию для справочника параметров, вычисляемое по шаблону

{SELECT RD_P_TOOLS. GEN_FILE FROM DUAL}

,где RD_P_TOOLS. GEN_FILE – возвращающая уникальное имя для файла.

Программа состоит из двух действий:

Действие WIN$CMD

Первое действие создаёт каталог для размещения сформированного отчёта.

В действие передаётся параметр COMMAND$LINE, вычисляемый по шаблону

md {DST$DIR}

, где md – команда созданий каталога,

{DST$DIR} – параметр задачи, определяющий целевой каталог формирования отчёта.

Действие не содержит предварительного и завершающего PL/SQL-блоков.

Действие CONTENT$REPLACE

Действие выполняет формирование отчёта по файлу-шаблону.

Параметры действия:

DST$DIR – каталог назначения, вычисляется по шаблону

{SELECT RD_P_QUEUE. CTX_GET('DST$DIR') FROM DUAL}

, где RD_P_QUEUE. CTX_GET – функция, возвращающая параметр контекста задачи.

В данном случае невозможно использовать короткую запись ({DST$DIR}), т. к. такая запись будет ссылаться на параметр действия DST$DIR,  а не на параметр контекста задачи DST$DIR.

DST$EXTENSION, DST$FILE – расширение и имя файла, копируемые из контекста задачи.

L_TAG, R_TAG – параметры, определяющие «скобки», указывающие на начало и конец кодов параметров контекста в файле шаблона отчёта. Копируются из контекста задачи, куда помещаются вместе с другими параметрами конкретного отчёта вызывающей стороной.

SRC$DIR – каталог, содержащий шаблоны отчётов. Вычисляется по шаблону

{FASTCOM_HOME}{PATH_DELIMITER}REP{PATH_DELIMITER}

, где:

FASTCOM_HOME – параметр настройки АСР, определяющий путь к каталогу, содержащему ППО Fastcom Client,

PATH_DELIMITER – параметр настройки АСР, определяющий символ-разделитель элементов пути к файлу в используемой операционной системе.

SRC$FILE – имя файла, содержащего шаблон отчёта. Вычисляется по шаблону

{SELECT FILE_NAME FROM RP_T_REPORT WHERE CODE='{REPORT$CODE}'}

, где REPORT$CODE – параметр задачи, определяющий код выполняемого отчёта.

Действие содержит предварительный и завершающий PL/SQL-блоки.

Предварительный PL/SQL-блок

Перед выполнением действия выполняется копирование параметров отчёта, размещаемых вызывающей программой в области параметров задачи, в параметры контента АСР:


BEGIN 

  -- очистка параметров контента 

  GL_P_VARIABLE. POP;

  GL_P_VARIABLE. PUSH;

  -- установка параметров системы по параметрам контекста задачи 

  -- по списку формальных параметров запроса 

  FOR PCODE IN ( 

  SELECT CODE FROM RP_T_REP_PARAM WHERE REP_CODE=RD_P_QUEUE. CTX_GET('REPORT$CODE') 

  ) 

  LOOP 

  GL_P_PARAM. SET_VALUE(PCODE. CODE, RD_P_QUEUE. CTX_GET(PCODE. CODE)); 

  END LOOP; 

END;


Завершающий PL/SQL-блок

В завершающем PL/SQL-блоке задачи устанавливается параметр контекста задачи с кодом ‘URL’, определяющий адрес, по которому пользователь WEB-интерфейса АСР может получить сформированный отчёт.

BEGIN

RD_P_QUEUE. CTX_SET('URL',

  REPLACE(

  REPLACE( RD_P_QUEUE. CTX_GET('DST$DIR')||'/'||

  RD_P_QUEUE. CTX_GET('DST$FILE')||

  RD_P_QUEUE. AP_GET('DST$EXTENSION'),

  '{RD$SHARED_PATH}',

  '{RD$SHARED_URL}')

  ,'\','/' )

);

END;

При вычислении используются следующие параметр RD$SHARED_URL – параметр настройки АСР, определяющий URL для доступа WEB-пользователей к каталогу, указанному в параметре настройки АСР RD$SHARED_PATH.

Программа GENERATE INVOICES

Программа GENERATE_INVOICES – пример программы, формирующей отчёты для доставки списку абонентов. Действия 2-4 программы за незначительными изменениями повторяют программу генерации единичного отчёта типа REP.

Действие 1 имеет тип PLSQL$ (действие в базе данных), и выполняет клонирование действий 2-4 для каждого требуемого отчёта.

Код предварительно PL/SQL-блока действия PLSQL$:

DECLARE

  PATH VARCHAR2(200);

  STREAM_CODE VARCHAR2(200);

BEGIN 

  FOR CONTR IN (  -- цикл по идентификаторам договоров, имеющих счета в указанный период

  SELECT  DISTINCT CONTRACT_ID FROM IV_T_INVOICE

  WHERE  INVOICE_TYPE='ПЕР'

  AND YEARMONTH = TO_DATE('{PERIOD}','YYYY. MM')

  )

  LOOP

  -- нужно создать поток печати счетов, чтобы объединить все счета в файл

  SELECT to_char(contr. contract_id)||'#'||to_char(bl_q_session. nextval,'FM0XXXXXXXX') INTO STREAM_CODE FROM DUAL;

  INSERT INTO BL_T_PRINTSTREAM( CODE, YEARMONTH, OWNER_ID, REP_CODE )

  VALUES ( STREAM_CODE, TO_DATE('{PERIOD}','YYYY. MM'), gl_p_owner. GetOwner, RD_P_QUEUE. CTX_GET('REPORT$CODE') );

  -- поместим счета в поток

  INSERT INTO BL_T_INVSTREAM (PRNSTREAM_CODE, INVOICE_ID, NUM_IN_STREAM )

  SELECT  STREAM_CODE, ID, ROWNUM

  FROM  IV_T_INVOICE

  WHERE  INVOICE_TYPE='ПЕР'

  AND YEARMONTH = TO_DATE('{PERIOD}','YYYY. MM')

  AND CONTRACT_ID=CONTR. CONTRACT_ID

  ORDER  BY ID;

  -- вычислим путь, по которому нужно разместить сгенерированные файлы

  PATH:='%R%/{PERIOD}%/' ||

  RD_P_TOOLS. CONTRACT_DEST_FOLDER(CONTR. CONTRACT_ID);

  -- создание каталога 

  RD_P_QUEUE. CLONE_ACTION( P_SEQUENCE => 2, P_PARAMS => 'CLONED:Y;COMMAND$LINE:md "'||PATH||'";');

  -- выполним генерацию PS-Файла

  RD_P_QUEUE. CLONE_ACTION( P_SEQUENCE => 3, P_PARAMS => 'CLONED:Y;DST$DIR:'||PATH||';STREAM_CODE:'||STREAM_CODE||';');

  -- выполним конвертацию PS в PDF (там же удалим поток счетов)

  RD_P_QUEUE. CLONE_ACTION( P_SEQUENCE => 4, P_PARAMS => 'CLONED:Y;DST$DIR:'||PATH||';SRC$DIR:'||PATH||';');

  END LOOP;

  -- оповестим все ожидающие потоки о том, что у них есть работа

  RD_P_QUEUE. SIGNAL;

  COMMIT;

END;


Запрос

SELECT  DISTINCT CONTRACT_ID FROM IV_T_INVOICE

WHERE  INVOICE_TYPE='ПЕР'

  AND YEARMONTH = TO_DATE('{PERIOD}','YYYY. MM')

Выбирает все договора (идентификаторы договоров), для которых выставлены счета типа ‘ПЕР’ (периодически выставляемые счета за услуги, результат биллинговой компании) за период, указанный в параметре задачи PERIOD.

Для каждого найденного договора создаётся поток счетов с уникальными именем, в который добавляются все счета типа ‘ПЕР’ за период ‘{PERIOD}’ для этого договора.

Для каждого договора вычисляется имя каталога на основании возможного для договора способа доставки – см. описание функции RD_P_TOOLS. CONTRACT_DEST_FOLDER.

Для каждого договора вызываются процедуры клонирования действий, в качестве параметров которым передаются вычисленные значение и параметр CLONED, имеющий значение ‘Y’.

Действия 2-4 имеют предварительный PL/SQL-блок, проверяющий наличие у действия параметра CLONED, и при его отсутствии вызывает процедуру RD_P_QUEUE. SKIP_ACTION, пропускающую обработку текущего действия. Использование параметра CLONED позволяет не выполнять действия, послужившие шаблоном для клонирования.

BEGIN

  IF RD_P_QUEUE. AP_GET('CLONED') IS NULL THEN

  RD_P_QUEUE. SKIP_ACTION;

  END IF;

END;



1 Более подробную информацию по языку PostScript можно получить по адресу http://ru. wikipedia. org/wiki/PostScript

2 Пакет GPL Ghostscript можно бесплатно загрузить по адресу http://pages. cs. wisc. edu/~ghost/. Программа Fastcom Report Dispatcher протестирована с версией  GPL Ghostscript 9.01. Пакет GPL Ghostscript не является частью АСР Fastcom, и распространяется под лицензией GPL.

3 Вы можете обойти это ограничение, используя действие WIN$CMD с консольной версией GPL Ghostscript или любого другого конвертора PostScript в Adobe PDF.

4 TeX – система компьютерной вёрстки, использующая текстовый язык описания страниц. LaTeX – набор расширений TeX.  Подробнее - http://ru. wikipedia. org/wiki/TeX.

5 Rich Text Format - проприетарный межплатформенный формат хранения размеченных текстовых документов, предложенный группами программистов, основавшими компании Microsoft и Adobe, как метатэговский формат для редактора Word в 1982 году. Подробнее - http://ru. wikipedia. org/wiki/RTF

6 FOP (Formatting Objects Processor)  - XSL-FO процессор для преобразований XML-файлов в PDF, PostScript и др. форматы. http://projects. apache. org/projects/fop. html

7 XSL-FO (англ. eXtensible Stylesheet Language Formatting Objects — объекты форматирования языка таблиц стилей для XML) — рекомендованный Консорциумом Всемирной паутины язык разметки типографских макетов и иных предпечатных материалов. XSL-FO является частью XSL.

8 При формировании отчётов Jasper Reports в формате HTML, содержащих растровую графику (штрих-коды, логотипы и т. п.) результат сохраняется в нескольких файлах. Для оперативных отчётов (просматриваемых непосредственно через браузер) это отображается нормально, но для использования в доставке документов не подходит – система рассчитана на то, что результатом выполнения отчёта всегда является один файл.

9 При формировании отчётов Jasper Reports в формате HTML, содержащих растровую графику (штрих-коды, логотипы и т. п.) результат сохраняется в нескольких файлах. Для оперативных отчётов (просматриваемых непосредственно через браузер) это отображается нормально, но для использования в «доставке документов» не подходит – система рассчитана на то, что результатом выполнения отчёта всегда является один файл.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9