Create a Record in Report Archive and Print Automatically

 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;


Post a Comment

0 Comments