الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

استدعاء التقرير في ال 10G من الفورم إلى الطابعة فورا

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاته

انا اعمل على اوراكل 10g واريد استدعاء التقرير مباشرة إلى الطابعة دون قراءة التقرير وقمت بكتابة هذا الكود في زر الطباعة

web.show_document('http://elevators-sys:8889/reports/rwservlet?report=b:\lefts\SYS\dept.jsp&userid=lce/lce@left&destype=cacheer&desformat=htmlcss');

وقمت إلى التقرير وغيرت ال destype to printer and desjob to no
ولكن التقرير مازال يعمل ومن ثم اعمل انا له امر طباعة
فكيف يمكنني استدعاء التقرير مباشرة الى الطابعة

وشكرا لكم

بتاريخ:
  • كاتب الموضوع

يعطيكم العافية يا جماعة
معقول ما أحد إلى الآن رد على الموضوع

على كل حال أنا عملت المحاولة التالية
destype=printer بدل cache

ونتج الخطأ التالي
REP-3002: Error initializing printer. Make sure a printer is installed

فما هو الحل لهذا الخطأ
وشكرا لكم

بتاريخ:

السلام عليكم

إضافة لإستخدام الباراميتر
destype=printer
يجب اضافة الباراميتر
desname=printer_name
يجب ان يكون اسم البرنتر كما هو وا

بتاريخ:

السلام عليكم

إضافة لإستخدام الباراميتر destype=printer

يجب اضافة الباراميترdesname=printer_name

يجب ان يكون اسم البرنتر كما هو واذا كان الاسم به مسافات قم بتغييره مثلا الي printer1

والله الموفق

بتاريخ:
  • كاتب الموضوع

جزاك الله خيرا أخي الكريم

حلك الذي ذكرته ينطبق على جهاز واحد
والبرنامج عندي مستخدم من أكثر من مستخدم على أكثر من جهاز وإذا كتبت اسم الطابعة على السيرفر فمعناه أن الجميع سوف يطبع على طابعة واحدة وهذا صعب
الذي أريد أنه عندما يقوم المستخدم بأمر الطباعة أن يقوم البرنامج بقراءة الطابعة المعرفة على جهازه تلقائيا


وشكرا على تعاونكم

بتاريخ:

السلام عليكم
يمكن ان تتخطي ذلك بطريقتين
اولا استخدام طابعة شبكية واحدة لكل الاجهزة وتكون معرفة علي السيرفر مثلا اذا كان اسم السيرفر pc1 يكون اسم الطابعة

pc1\hplaserject1520\\

ونستخدم هذا الاسم في مكان desname=

الطريقة الثانية ان نقوم بإكتشاف الطابعة التلقائية في كل جهاز كلينت بالكود في المرفقات

يقوم هذا الكود باكتشاف الطابعة التلقائية من الرجستري ويخزنها في متغير اسمه name2

بعد ذلك نستخدم desname=name2

إذا كان هناك اي خطأ فهو يكون في اسم الطابعة

استخدم رسالة message في داخل الكود لتطبع لك المتغير name2 لتتأكد من اسم الطابعة.

وفقنا الله واياكم

بتاريخ:
  • كاتب الموضوع

جزاك الله خيرا اخي الكريم على تواصلك
لكن لم أجد المرقات الت تتحدث عنها

وشكرا لك

بتاريخ:

جزاك الله خيرا اخي الكريم على تواصلك
لكن لم أجد المرقات الت تتحدث عنها

وشكرا لك

عقوا علي هذا الخطأ
اليك المرفقات

detect printer.txt

بتاريخ:

السلام عليكم
يمكن ان تتخطي ذلك بطريقتين
اولا استخدام طابعة شبكية واحدة لكل الاجهزة وتكون معرفة علي السيرفر مثلا اذا كان اسم السيرفر pc1 يكون اسم الطابعة

pc1\hplaserject1520\\

ونستخدم هذا الاسم في مكان desname=

الطريقة الثانية ان نقوم بإكتشاف الطابعة التلقائية في كل جهاز كلينت بالكود في المرفقات

يقوم هذا الكود باكتشاف الطابعة التلقائية من الرجستري ويخزنها في متغير اسمه name2

بعد ذلك نستخدم desname=name2

إذا كان هناك اي خطأ فهو يكون في اسم الطابعة

استخدم رسالة message في داخل الكود لتطبع لك المتغير name2 لتتأكد من اسم الطابعة.

وفقنا الله واياكم



اخي الكريم راسلني على ايميلي وارسل لك ان شاء الله document كاملة

hh_khundakjie

على الهوتميل
بتاريخ:

اخي الكريم hanio235 ان استطعت ان ترفع الدكيومنت على المنتدى فيكون افضل لينتفع بها الغير ان شاء الله وبذلك يكون في ميزان حسناتك ان شاء الله لكل من ينتفع بها الى يوم القيامه ...اذا مات ابن ادم انقطع عمله الا من ثلاث ....علم ينتفع به
وجزاكم الله خيرا

بتاريخ:

اخى الكريم هذا موضوع مهم ولم اجربه من قبل ولكى يتحقق الاستفادة اشرح لنا الطريقة بطريقة سهلة بعيدا عن الايميلات الشخصيه حتى تعم الفائده

بتاريخ:
  • كاتب الموضوع

جزاكم الله خيرا جميعا ً على تفاعلكم في هذا الموضوع

ومن الأفضل كما قال الإخوة أن يتم وضع الشرح على المنتدى لكي تتم الاستفادة للجميع وشكرا لكم

بتاريخ:
  • كاتب الموضوع

جزيت خيراً أخي الكريم على المرفق
لكن كيف يمكن تطبيقه داخل الكود

أرجو المساعدة وشكرا

بتاريخ:

الاخوة الكرام
لتكن قناعتنا ان اي مشكلة لها حل
والاوراكل ليست طلاسم او اسرار بل هي خطواط نقوم بتطبيقها و نحاول ونحاول حتي تكلل بالنجاح ولا نتيجة غير النجاح

الكود في المرفقات قمت بترقيمه الي فقرات

هذا كود بسيط لطباعة فاتورة من الفورم مباشرة حيث ياخذ رقم الفاتورة من مربع رقم الفاتورة في الفورم ويمرره الي التقرير مباشرة بدون ان يسال التقرير عن رقم الفاتورة المطلوب طباعتها

وما قمت باضافته هنا هو ان تتم الطباعة مباشرة

في الفقرة رقم واحد واثنين
قمنا بتعريف المتغيرين name1 name2 الذي سنخزن فيه اسم الطابعة التي سيتم اكتشافها في جهاز الكلينت
سيتم تخزين اسم الطابعة في المتغير name2

3- قمنا بتعريف المتغير الذي سنخزن فيه عنوان التقرير vc_url
4- هنا الكود الذي يدخل الي الرجستري ويكتشف اسم الطابعة التلقائية ويخزنها في المتغير name1
ويتم بعد ذلك نقل اسم الطابعة الي المتغير name2

5- هنا نكون عنوان التقرير بتمرير كل الباراميترس المطلوبة مثل
report=c:\rep1.rdf&desformat=htmlcss
يحدد مسار واسم التقرير ونوعه هنا استخدم الباراميتر server= لانني استخدم ريبورت سيرفر محلي منشأ في نفس الجهاز الذي به الفورم
&destype=printer
يحدد نوع الجهة
&userid=orders/orders@orcl
يحدد الداتابيز وكلمات المرور
&x='||:orders.order_id||'
التقرير مصمم علي ان يطلب رقم الفاتورة في متغير x وهنا يتم تمرير قيمة اكس من التكست ايتم orders.order_id
&desname='||name2||'
هنا يتم تمرير اسم الطابعة
&paramform=no';
يحدد عدم ظهور فورم التقرير الذي يطلب رقم الفاتورة

في الفقرة الاخير رقم 6
طبعا تتم منادات التقرير

غالبا ما تواجهك اخطاء وهي غالبا ما تكون في اسم الطابعة

يمك ان تحاول طباعة اسم الطابعة في الشاشة قبل منادات التقرير بواسطة
message(name2);xxxxxxxxxxxxxxxxxxxx
message(name2);xxxxxxxxxxxxxxxxxxxx
حروف الاكس هنا لا تعني شيئا قم بحزفها
كرر هذا السطر مرتين حتي تقوم الاوراكل بعرضه بشكل alert لانه عندما تتكدس الرسائل في الـ message queue تقوم الاوراكل فورم بعرضها في الشاشة علي شكل alert وليس في شريط الرسائل


اتمني ان تواصل مجهودك حتي تكتمل العملية بنجاح ونحن معك حتي يحدث هذا باذن الله
الكود في المرفقات ادناه بعد تعديله

DECLARE

--1--
name1 varchar2(1000);
--2--
name2 varchar2(1000);
--3--
vc_url varchar2(400);

BEGIN
--4--
name1:=client_win_api_environment.read_registry
('HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows',
	   'Device',true);
  name2:=SUBSTR(name1,1,instr(name1,',',1)-1);
--5--
vc_url:='http://pc1:8889/reports/rwservlet?server=Repsrv&
report=c:\rep1.rdf&desformat=htmlcss
&destype=printer
&userid=orders/orders@orcl
&x='||:orders.order_id||'
&desname='||name2||'
&paramform=no';
--6--
WEB.SHOW_DOCUMENT(vc_url,'_blank');

END;

detect printer.txt

بتاريخ:
  • كاتب الموضوع

جزاك الله خيرا أخي الكريم على تعاونك وتواصلك معي

الكود شغال إلا في نقطة واحدة وهي


name1:=client_win_api_environment.read_registry
('HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows',
'Device',true);

في هذه الجملة يعطيني عليها الخطأ التالي في كما في المرفق

post-93217-0-34958200-1321687826_thumb.gif

  • بعد 2 أسابيع...
بتاريخ:
  • كاتب الموضوع

يعطيكم العافية يا إخوان

ما أحد وجد حل إلى الآن لمشكلة الطابعة

أرجو المساعدة ممن عنده خبرة وتجربة في هذا الموضوع

وشكرا

  • بعد 7 شهور...
بتاريخ:

يا جماعة السطر التالى يعطى خطا وياريت حد يحل هذا الخطاء لانى عملى متوقف على هذا الحل والله كما ذكر الأخ من قبل ومحدش رد علينا --- يارب
name1:=client_win_api_environment.read_registry
('HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows',
'Device',true);

  • بعد 3 شهور...
بتاريخ:

وجدت الرد التالي في الموقع الرسمي لاجوبة اوراكل على هذا الكود بالذات وظهور الخطأ المقصود

The code is correct.


For the CLIENT_WIN_API_ENVIRONMENT package to work, the java code in WebUtil needs to interface with the webutil dlls JNIsharedstubs.dll and d2kwut60.dll.So please make sure that webutil is configured properly and all the required dlls are downloaded to client



ومختصر الكلام بالعربي يرجى التأكد من ان ال ( WebUtil ) منصب بشكل صحيح و الملفان ( JNIsharedstubs.dll و d2kwut60.dll) موجودان على حاسبة الكلينت ليعمل البكج ( CLIENT_WIN_API_ENVIRONMENT) حيث ان في ال 10G
يعمل هذا الايعاز من خلال ال ( WebUtil )

تم تعديل بواسطة uni_digite

  • بعد 2 شهور...
بتاريخ:

وجدت الرد التالي في الموقع الرسمي لاجوبة اوراكل على هذا الكود بالذات وظهور الخطأ المقصود

The code is correct.


For the CLIENT_WIN_API_ENVIRONMENT package to work, the java code in WebUtil needs to interface with the webutil dlls JNIsharedstubs.dll and d2kwut60.dll.So please make sure that webutil is configured properly and all the required dlls are downloaded to client



ومختصر الكلام بالعربي يرجى التأكد من ان ال ( WebUtil ) منصب بشكل صحيح و الملفان ( JNIsharedstubs.dll و d2kwut60.dll) موجودان على حاسبة الكلينت ليعمل البكج ( CLIENT_WIN_API_ENVIRONMENT) حيث ان في ال 10G
يعمل هذا الايعاز من خلال ال ( WebUtil )



الله يعطيك الصحة
بتاريخ:


وجدت الرد التالي في الموقع الرسمي لاجوبة اوراكل على هذا الكود بالذات وظهور الخطأ المقصود

The code is correct.


For the CLIENT_WIN_API_ENVIRONMENT package to work, the java code in WebUtil needs to interface with the webutil dlls JNIsharedstubs.dll and d2kwut60.dll.So please make sure that webutil is configured properly and all the required dlls are downloaded to client



ومختصر الكلام بالعربي يرجى التأكد من ان ال ( WebUtil ) منصب بشكل صحيح و الملفان ( JNIsharedstubs.dll و d2kwut60.dll) موجودان على حاسبة الكلينت ليعمل البكج ( CLIENT_WIN_API_ENVIRONMENT) حيث ان في ال 10G
يعمل هذا الايعاز من خلال ال ( WebUtil )



الله يعطيك الصحة

بس فين نضع الملفين في جهاز الكلينت اين بالظبط وشكرا
  • بعد 1 شهر...
بتاريخ:

أنا لا استخدم WebUtil فما الحل يأخي العزيز

  • بعد 4 سنة...
بتاريخ:

بيظهر عندي الخطأ ده

REP-713: Invalid printer name 'hp LaserJet 1320 PCL 6 (Copy 4)' specified by parameter DESNAME.

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.