Inside an event action we can use below code to create a record in report archive and print it or can write inside a procedure and call.
Eg:-
DECLARE
--PRAGMA AUTONOMOUS_TRANSACTION;
LAYOUT_NAME_ VARCHAR(2000):='CIdCardRep.rdl';
REPORT_ID_ VARCHAR2(2000):= 'HANDL_UNIT_CONTENT_LABEL_REP';
REPORT_ATTR_ VARCHAR2(2000):= '';
PARAMETER_ATTR_ VARCHAR2(2000):= '';
DISTRIBUTION_LIST_ VARCHAR2(2000):= '';
INSTANCE_ATTR_ VARCHAR2(2000):= '';
PRINT_JOB_ID_ VARCHAR2(2000):= '';
PRINT_ATTR_ VARCHAR2(2000):= '';
PRINTER_ID_ VARCHAR2(2000):= 'PDF_PRINTER';
HANDLING_UNIT_ID_ VARCHAR2(2000):= '&NEW:HANDLING_UNIT_ID';
TRANSACTION_CODE_ VARCHAR2(2000) := '&NEW:TRANSACTION_CODE';
RESULT_KEY_ VARCHAR2(2000):= '';
ATTR_ VARCHAR2(2000):= '';
BEGIN
IF (HANDLING_UNIT_ID_ IS NOT NULL OR HANDLING_UNIT_ID_ != 0) AND TRANSACTION_CODE_ = 'OOREC' THEN
REPORT_ATTR_:= 'REPORT_ID'||CHR(31)||'HANDL_UNIT_CONTENT_LABEL_REP'||CHR(30)||'LAYOUT_NAME'||CHR(31)||'CIdCardRep.rdl'||CHR(30);
--PARAMETER_ATTR_:= 'HANDLING_UNIT_ID'||INT ||HANDLING_UNIT_ID_;
CLIENT_SYS.CLEAR_ATTR(PARAMETER_ATTR_);
CLIENT_SYS.ADD_TO_ATTR('HANDLING_UNIT_ID',HANDLING_UNIT_ID_,PARAMETER_ATTR_);
ARCHIVE_API.NEW_CLIENT_REPORT(RESULT_KEY_, REPORT_ATTR_, PARAMETER_ATTR_, DISTRIBUTION_LIST_, PRINT_ATTR_);
ARCHIVE_API.GET_INFO(INSTANCE_ATTR_,PARAMETER_ATTR_,RESULT_KEY_);
ATTR_:= 'PRINTER_ID'||CHR(31)||PRINTER_ID_||CHR(30);
PRINT_JOB_API.NEW(PRINT_JOB_ID_,ATTR_);
CLIENT_SYS.CLEAR_ATTR(INSTANCE_ATTR_);
CLIENT_SYS.ADD_TO_ATTR('PRINT_JOB_ID',PRINT_JOB_ID_,INSTANCE_ATTR_);
CLIENT_SYS.ADD_TO_ATTR('RESULT_KEY',RESULT_KEY_,INSTANCE_ATTR_);
CLIENT_SYS.ADD_TO_ATTR('LANG_CODE','en',INSTANCE_ATTR_);
CLIENT_SYS.ADD_TO_ATTR('LOCALE_LANGUAGE','de',INSTANCE_ATTR_);
CLIENT_SYS.ADD_TO_ATTR('LOCALE_COUNTRY','DE',INSTANCE_ATTR_);
PRINT_JOB_CONTENTS_API.NEW_INSTANCE(INSTANCE_ATTR_);
PRINT_JOB_API.PRINT(PRINT_JOB_ID_);
COMMIT;
END IF;
END;
0 Comments