إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

شرح تفصيلي...طريقة إستدعاء التقرير عن طريق الفورم 10g


28 رد (ردود) على هذا الموضوع

#1 iyad2006

iyad2006

    عضو

  • الأعضــاء
  • 36 مشاركة

تاريخ المشاركة 20 August 2009 - 10:41 PM

بسم الله الرحمن الرحيم


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


فى البداية بحب أشكر جميع العاملين فى المنتدي على الخدمات والمساعدة الى بقدموها للأعضاء ...وبصفتي أحد المستفيدين من المنتدي...حبيبت أقدم خدمة بسيطة للمنتدي وللأعضاء الطيبين الى فيه :rolleyes: .

طبعا انا مبتدأ فى الاوراكل :) ...تعلمت طريقة تصميم التقارير ومن ثم طريقة الربط مع الفورم وطريقة الاستدعاء ...سأحاول شرح الطريقة بالكامل لكي يسفيد الأعضاء :rolleyes: .

-------------------------------------------------------------

انا راح أشتغل على حساب Scott ...لكي أستخدم جدول الموظفين ... والي مش عنده الحساب ...ممكن ينفذ كود الجدول ع أي حساب هوا عاوز...بالطبع لازم يدخل بيانات علشان عملية عرض التقرير.


CREATE TABLE EMP
(
EMPNO NUMBER (4,0) NOT NULL,
ENAME VARCHAR2 (10),
JOB VARCHAR2 (9),
MGR NUMBER (4,0),
HIREDATE DATE,
SAL NUMBER (7,2),
COMM NUMBER (7,2),
DEPTNO NUMBER (2,0)
)



فى البداية سنقوم بتصميم شاشة الإستدعاء ... وهي عبارة عن فورم...كما هو موضح فى الصورة.


صورة صورة


زي ما هوا واضح الفورم تحتوي على تكست لإدخال رقم الموظف علشان نستعلم او نطبع تقرير عن موظف معين...
وأيضا يوجد على الفورم ....الزر الاول (run rep with param)علشان أستدعي التقرير مع إرسال باريميتر للتقرير ....يعني لازم أدخل رقم الموظف فى التكست الى عاوز أطبع تقرير فى بياناته الخاصة.
الزر الثاني(run rep with out param) طبعا هاد الزر علشان استدعي تقرير بدون باريميتر ...علشان هيك فى التقرير راح يعرض كل الموظفين الى فى الشركة.




الكود الخاص بالزر الأول (run rep with param)
DECLARE
v_rep_id REPORT_OBJECT;
v_repjob VARCHAR2(100);
v_job_id VARCHAR2(100);
v_rep_status VARCHAR2(100);
v_reportsrvr VARCHAR2(50) := 'rep10g';
v_runformat vARCHAR2(50) := 'HTMLCSS';--HTML HTMLCSS PDF

BEGIN IF :NUM_REP_PRM IS NULL THEN
RAISE FORM_TRIGGER_FAILURE;
END IF;



v_rep_id := FIND_REPORT_OBJECT('TMP_REPORT');
SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_COMM_MODE, SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_DESTYPE, CACHE);

--SET_REPORT_OBJECT_PROPERTY(V_rep_id, REPORT_DESTYPE, PRINTER);
--SET_REPORT_OBJECT_PROPERTY(v_rep_id,REPORT_DESNAME,'ID_CARD');

SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_SERVER, v_reportsrvr);
SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_DESFORMAT, v_runformat);

SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_OTHER, 'per_id=' || :NUM_REP_PRM ||' paramform=no');

SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_FILENAME, 'd:\rep_emp.rdf');

v_repjob := RUN_REPORT_OBJECT(v_rep_id);
v_job_id := SUBSTR(v_repjob, LENGTH(v_reportsrvr) + 2, LENGTH(v_repjob) );
v_rep_status := REPORT_OBJECT_STATUS(v_repjob);

IF v_rep_status = 'FINISHED' THEN
WEB.SHOW_DOCUMENT('/reports/rwservlet/getjobid' || v_job_id ||'?server=' || v_reportsrvr || '', '_blank');
ELSE
message('Report failed with error message ');

END IF;

CLEAR_FORM;


END;


الكود الخاص بالزر الثاني(run rep with out param)

DECLARE
v_rep_id REPORT_OBJECT;
v_repjob VARCHAR2(100);
v_job_id VARCHAR2(100);
v_rep_status VARCHAR2(100);
v_reportsrvr VARCHAR2(50) := 'rep10g';
v_runformat vARCHAR2(50) := 'HTML';--HTML HTMLCSS PDF

BEGIN v_rep_id := FIND_REPORT_OBJECT('TMP_REPORT');
SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_COMM_MODE, SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_DESTYPE, CACHE);

--SET_REPORT_OBJECT_PROPERTY(V_rep_id, REPORT_DESTYPE, PRINTER);
--SET_REPORT_OBJECT_PROPERTY(v_rep_id,REPORT_DESNAME,'ID_CARD');

SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_SERVER, v_reportsrvr);
SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_DESFORMAT, v_runformat);

SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_OTHER, 'paramform=no');

SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_FILENAME, 'D:\rep_emp.rdf');

v_repjob := RUN_REPORT_OBJECT(v_rep_id);
v_job_id := SUBSTR(v_repjob, LENGTH(v_reportsrvr) + 2, LENGTH(v_repjob) );
v_rep_status := REPORT_OBJECT_STATUS(v_repjob);

IF v_rep_status = 'FINISHED' THEN
WEB.SHOW_DOCUMENT('/reports/rwservlet/getjobid' || v_job_id ||'?server=' || v_reportsrvr || '', '_blank');
ELSE
message('Report failed with error message ');

END IF;

CLEAR_FORM;


END;


--------------------------------------------------------

راح أتكلم فى الأول عن إستدعاء التقرير بدون باريمتر ...

طبعا فى الكود فى شغلات لازم يغيرها المستخدم حسب ماهوا مشتغل التقرير بتاعه....


راح نطلع للصورة فى الاول...
صورة صورة

REP10G

فى أول مربع ...لازم أغير إسم السيرفر الى أنا شغال عليه التقارير ...وهاد الكود الى انا مستخدمه علشان أشتغل السرفير الخاص بالتقارير....

rwserver server=rep10g start


هاد الكود ممكن تشغله عن طريق ...تدخل على RUN ثم CMD تم تكتب هادا الكود.


--------------------------------------------------------


تاني مربع هادا إسم التقرير المؤقت الى راح أقوم بإنشاءه فى الفورم ...

طريقة إنشاءه...


من القائمة أقوم بالضغط على REPORTS ....لكي تظهر لي هذه الشاشة...
صورة صورة



أقوم بإختيار التقرير الى قمت بتصميمه على Report Bulider

بعد ما أختار التقرير ...أدخل على خصائصه بالضغط على F4 ....لكي تظهر لي هذه الصورة ....




صورة صورة



بعدين بأقوم بمسح خانة الFilename ...لكي يصبح مثل هذه الصورة



صورة صورة

---------------------------------------------------------------------------

ثالث مربع راح يكون فى إسم التقرير الى قمت بتصميمه...ويفضل يكون التقرير زي منا عامل مباشر على البارتشن ..لانه أعتقد 10G بعمل مشاكل إذا كان إسم المجلد فيه فراغات.

بهيك بكون أنا خلصت من إعداد الفورم الخاصة بإستدعاء التقرير.


-----------------------------------------------------------------------------------

بظل علينا إنه نعد التقرير الى عاوزينه يظهر ...

قمت بإعداد تقرير سريع يعرض لكي كافة الموظفين فى الشركة...


-------------------------------------------------------------------------------


حاليا....الفورم هيك بكون جاهز إني لو ضغطت على(run rep with out param) راح يشتغل ويعرض لكي كل الموظفين الى فى الشركة ....



ملفات الفورم ....و التقرير .... والكود ..... والصور ....موجودة فى المرفقات.

-----------------------------------------------------------------------------

يتبع--------------->>>>>

ملفات مرفقة

  • ملف مرفق  Test_Form.rar   12كيلو   2637 عدد مرات التحميل
  • ملف مرفق  Test_report.rar   12.22كيلو   2133 عدد مرات التحميل
  • ملف مرفق  Picture.rar   316.95كيلو   3245 عدد مرات التحميل
  • ملف مرفق  code.rar   1.48كيلو   2050 عدد مرات التحميل

  • sahar_z, abedfree, goldray و 1 آخر معجبون بهذا

#2 جلال شواقفه

جلال شواقفه

    عضو مميز

  • الأعضــاء
  • 2,559 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 August 2009 - 11:36 PM

شكرا لك على المشاركه يا صديقي
وننتظر المزيد ان شاء الله
ارجو من يستفيد من مشاركاتي الدعاء لوالدي ولاموات المسلمين بالمغفره والرحمه......

جلال محمود شواقفه
مدير دائرة الحاسوب
بلدية المفرق الكبرى
المملكه الاردنيه الهاشميه.

#3 Super Nany

Super Nany

    عضو

  • الأعضــاء
  • 39 مشاركة

تاريخ المشاركة 03 October 2009 - 12:42 PM

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

يـا فُؤَادِي رَحِمَ اللّهُ الهَوَى .. كَانَ صَرْحاً مِنْ خَيَالٍ فَهَوَى


#4 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,683 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at NATCOM Co. Riyadh KSA

تاريخ المشاركة 20 February 2010 - 11:38 PM

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

الأخ / iyad

شكرا لك ... وجزاك الله خيرا

سيتم التثبيت ... لأهمية الموضوع واسلوب العرض الوافي

تتنظر مشاركات اخرى متميزه

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....


#5 ismailer

ismailer

    عضو

  • الأعضــاء
  • 30 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 23 March 2010 - 11:32 PM

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

#6 المسافر85

المسافر85

    عضو

  • الأعضــاء
  • 18 مشاركة

تاريخ المشاركة 06 April 2010 - 08:12 AM

بارك الله فيك اخي العزيز ورزقك الخير اينما كنت

#7 jlz

jlz

    عضو

  • الأعضــاء
  • 10 مشاركة
  • الاسم الأول:Yousif
  • اسم العائلة:Abd
  • البـلـد: Country Flag

تاريخ المشاركة 20 April 2010 - 09:27 PM

شكرا جزيلا لك
لكن ممكن تساعدني

عندما انقر على الزر ييفتح المستعرض وبه خطا
ممكن تشاهد الصوره المرفقه
:rolleyes:

يا ريت تساعدني بسرعه لاني محتاج كثير

ملفات مرفقة



#8 scince

scince

    عضو مميز

  • فريق الإشراف
  • 1,137 مشاركة
  • الاسم الأول:ميهال
  • اسم العائلة:مهدي
  • البـلـد: Country Flag
  • الاهتمامات:البرمجة على vc++ و# c وAndroid للموبايل
    Arduino الإلكترونيات التفاعلية و المتحكمات الد قيقة ودمجها مع اوراكل في الجانب الالكتروني من الانطمة

تاريخ المشاركة 22 April 2010 - 12:49 PM

شكراً جزيلاً لك

م / ميهال مهدي - اليمن - عدن
من مواضيعي :

شاشة تكرار السطر الاخير من البلوك بعدد ما تريد من المرات

شاشة تقراء بيانات من Ms Excel الى جدول قاعدة بيانات أو الى بلوك في الشاشة مباشرة

رسال بيانات الى Ms Word 2007 لملف موجود مسبقا من شاشة ديلفوبر 6i باستدعاء دوال Vba

شاشة تعرض الماك ادرس و سيريال الماذربورد لمن يريدون تأمين برامجهم
شاشة تظهر الطابعة الافتراضية وتعين طابعة افتراضية انت تحدد اسمها

هل تعاني من مشكلة الاقواس في المسار
ارسال بيانات الى Ms Word 2007 من شاشة ديفلوبر 6i
شاشة إظهار Ip الخارجي والداخلي وعدة معلومات
استخدام اردوينو التحكم بدائرة كهربائية 220 فولت من خلال شاشة ديفلوبر اوراكل
شاشة قراءة رقم الهرديسك الفيزيائي بواسطة Dll على Dev 10g
قراءة بيانات الهرديسك بواسطة Activex
طريقة تشفير بيانات الهرديسك بواسطة Md5
شاشة التحكم بالمخرج Lpt بواسطة Dll على 10g و 6i
تطوير لمثال شاشة التحكم بالمخرج Lpt بواسطة Dll على 10G و 6I
شاشة تتحكم بألأزرار Caps_Lock و Num_Lock و Scrol_Locl بواسطة Dll
شاشة تحسس حالة زر Cpas Lock بواسطة Dll
شاشة تسجيل بشكل مرن التغيرات لجداول أي مستخدم وحفظها في جدول أنت تنشئه
مراقبة مستخدمين النظام انياً و تسجيل بيانات جلسة العمل
(مفاجئة)شاشة Template تم تجهيزها بواسطة الــ Object Group
إحضار بيانات من Msaccess الى Oracle
أداة تقوم بتغيير كلمة السر في أوراكل
الان يمكنك التحكم بتريجرات ازرار الوظائف Key Mapping F1-F9


#9 mahlawy

mahlawy

    عضو

  • الأعضــاء
  • 6 مشاركة

تاريخ المشاركة 27 April 2010 - 04:06 PM

شكرا عبى الشرح الوافى

صورة


#10 hesham helmy

hesham helmy

    عضو

  • الأعضــاء
  • 5 مشاركة

تاريخ المشاركة 04 May 2010 - 12:51 PM

السلام عليكم
لقد قمت بعمل تقرير باستخدام كريستال ريبورت 10 من النعروف ان الكريستال ربيورت يخرج امتداد RPT
السوال هل يمكن استخدام الامتداد RPT بدلا من RDF عند استدعاء التقرير من فورم 10 G
هذا السوال الى جميع الخبراء فى هذا المنتدى
وشكرا جزيلا

#11 aboushaheen

aboushaheen

    مشترك

  • الأعضــاء
  • 60 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:تكنلوجيا المعلومات والحاسب الالي

تاريخ المشاركة 25 July 2010 - 11:24 PM

شكرا اخي الكريم علي هذا الشرح المستفيض ولكن اخي الكريم ممكن لو تكرمت نغير الاستدعاء عن طريق رقم الموظف الي تاريخ تعيين الموظف حيث انني عدلت في المثال الي تاريخ تعيين الموظف ولكن الريبورت يعطي error وهو frm-41214: unable to run report علي الرغم من انني عدلت في جملة الكويري الخاصه بالريبورت وعند تمرير البارميتر الخاص بالتاريخ الي اريبورت يظهر هذا الخطاء لماذا ارجو ان توضح لي علي هذا المثال العملي الجميل
ولكم جزيل الشكر
وهذا التعديل في الكود الخاص بالفورمه
DECLARE
	v_rep_id		REPORT_OBJECT;
	v_repjob		VARCHAR2(100);
	v_job_id		VARCHAR2(100);
	v_rep_status		VARCHAR2(100);	
	v_reportsrvr		VARCHAR2(50) := 'rep10g';
	v_runformat		vARCHAR2(50) := 'HTMLCSS';--HTML HTMLCSS PDF	
 BEGIN	
IF :NUM_REP_PRM IS NULL THEN
 RAISE FORM_TRIGGER_FAILURE;
END IF;
	v_rep_id := FIND_REPORT_OBJECT('TMP_REPORT');
	SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_COMM_MODE, SYNCHRONOUS);
	SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_DESTYPE, CACHE);

	SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_SERVER, v_reportsrvr);
	SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_DESFORMAT, v_runformat);	
	
	SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_OTHER, 'per_date2=' || :NUM_REP_PRM ||' paramform=to_char(dd-mm-yyyy)');	
	
	SET_REPORT_OBJECT_PROPERTY(v_rep_id, REPORT_FILENAME, 'd:\rep_emp.rdf');

	v_repjob := RUN_REPORT_OBJECT(v_rep_id);
	v_job_id := SUBSTR(v_repjob, LENGTH(v_reportsrvr) + 2, LENGTH(v_repjob) );
	v_rep_status := REPORT_OBJECT_STATUS(v_repjob);
	
	IF v_rep_status = 'FINISHED' THEN
		WEB.SHOW_DOCUMENT('/reports/rwservlet/getjobid' || v_job_id ||'?server=' || v_reportsrvr || '', '_blank');
	ELSE
			message('Report failed with error message ');
	END IF;
	CLEAR_FORM;
 END;
والجمله الخاصه بالكويري الخاص بالريبورت
SELECT ALL EMP.EMPNO, 
EMP.ENAME, EMP.JOB, EMP.MGR, EMP.HIREDATE, EMP.SAL, EMP.COMM
FROM EMP where hiredate =:per_date2;


#12 medo_2005

medo_2005

    عضو نشط

  • الأعضــاء
  • 363 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 02 August 2010 - 10:10 PM

زكاة العلم نشرة

بارك الله فيك اخى الكريم
وفوق كل ذى علم عليم

#13 essam_ slama

essam_ slama

    مشترك

  • الأعضــاء
  • 64 مشاركة
  • الاهتمامات:الدراسات الشرعية - الدعوة الى الله

تاريخ المشاركة 21 November 2010 - 10:23 PM

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



اللهم صلي على محمد وعلى آل محمد كما صليت على ابراهيم وآل ابراهيم انك حميد مجيد

#14 essam_ slama

essam_ slama

    مشترك

  • الأعضــاء
  • 64 مشاركة
  • الاهتمامات:الدراسات الشرعية - الدعوة الى الله

تاريخ المشاركة 24 November 2010 - 06:12 PM

السلام عليكم
انا ظهرت عندي مشكلة
عند تشغيل التقرير من ال report builder تظهر رسالة خطأ مكتوب فيها
خطأ: فشل في تحديد موقع المستعرض حاول الاتصال مرة اخرى


فكيف احدد المستعرض
وخاصة انني حاولت ان احدده كما في الform builder لكن لم اتمكن


وعند تشغيل التقرير من الفورم لا يظهر اي شيء ولا حتى رسالة خطأ
وشكراً

اللهم صلي على محمد وعلى آل محمد كما صليت على ابراهيم وآل ابراهيم انك حميد مجيد

#15 najed

najed

    مشترك

  • الأعضــاء
  • 86 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 04 January 2011 - 01:50 AM

لسلام عليكم و رحمه الله
و اجهتني رساله الخطاء التاليه ولا اعلم ما السبب
مرفق بالصوره
و شكرا

ملفات مرفقة

  • ملف مرفق  error.JPG   109.47كيلو   287 عدد مرات التحميل