السلام عليكم و رحمة الله و بركاته الحل لمشكلة الطباعة مباشرة على الطابعة من خلال Application Server يرجى اتباع الخطوات التالية: * على فرض أن ال آي بي للسيرفر هو 192.168.1.10 1. تحميل ال Acrobat Reader 2. انشاء مجلد جديد على ال Application Server مع تفعيل ال Sharing على هذا المجلد (مثلا بإسم PRINT_PDF) 3. فتح الفورم المراد الطباعة منه و إضافة Report 4. إضافة الكود التالي على زر الطباعة:
DECLARE
EXECUTION_MODE NUMBER := RUNTIME;
JOBIDFULL VARCHAR2(100);
STATUS VARCHAR2(100);
JOBIDPARTIAL VARCHAR2(100);
COMM_MODE NUMBER := SYNCHRONOUS;
BEGIN
HOST('DEL \\192.168.1.10\PRINT_PDF /F /Q');
SET_REPORT_OBJECT_PROPERTY(PREPOBJ, REPORT_FILENAME, 'إسم التقرير');
SET_REPORT_OBJECT_PROPERTY(PREPOBJ, REPORT_EXECUTION_MODE, EXECUTION_MODE);
SET_REPORT_OBJECT_PROPERTY(PREPOBJ, REPORT_COMM_MODE, COMM_MODE);
SET_REPORT_OBJECT_PROPERTY(PREPOBJ, REPORT_DESFORMAT, 'PDF');
SET_REPORT_OBJECT_PROPERTY(PREPOBJ, REPORT_DESTYPE, 'FILE');
SET_REPORT_OBJECT_PROPERTY(PREPOBJ, REPORT_SERVER, 'إسم الريبورت سيرفر');
SET_REPORT_OBJECT_PROPERTY(PREPOBJ, REPORT_DESNAME, '\\192.168.1.10\PRINT_PDF\' || ******* || '.pdf');
-- ****** هو أي اسم مؤقت لتقرير ال PDF
JOBIDFULL := RUN_REPORT_OBJECT(PREPOBJ, '');
JOBIDPARTIAL := SUBSTR(JOBIDFULL, LENGTH(REPORTSERVER) + 2, LENGTH(JOBIDFULL));
STATUS := REPORT_OBJECT_STATUS(JOBIDFULL);
IF (STATUS = 'FINISHED') THEN
CLIENT_HOST('CMD /C CALL START /MIN AcroRd32.exe /h /p /t \\192.168.1.10\PRINT_PDF\' || ******* || '.pdf');
ELSE -- Report generation error
MESSAGE('Report failed with message: ' || status);
END IF;
END;
5. الصلاة و السلام على رسول الله صلى الله عليه و على آله و أصحابه و سلم --