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

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

صورة
* - - - - 2 صوت

تحريك بيانات من الform الى الreport


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

#1 Amgad

Amgad

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

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

تاريخ المشاركة 13 February 2004 - 01:12 AM

السلام عليكم ورحمة الله وبركاته،،
الزملاء الاعزاء
لدي form بها بعض بيانات الموظفين تظهر بطريقة ال tabular . اريد أن اختار بعض ارقام الموظفين من هذه الشاشة وارسلها الى report لطباعة بيانات تخص ارقام الموظفين المحددة والمختاره من الform.
اي السؤال بطريقة اخرى كيف يتم طباعة تقرير( يحتوى على مجموعه من بيانات الموظف ) بمعلومية رقم موظف واحد أو مجموعة ارقام موظفين مختارة ومحدده من الشاشه .
مع تمنياتى لجميع افراد المنتدى بالتوفيق .
  • Bent al-Yemen, Yasmeen_Omar و sara saedawi معجبون بهذا

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


....


#2 Guest_عادل الشهري_*

Guest_عادل الشهري_*
  • الزائرين

تاريخ المشاركة 13 February 2004 - 09:20 PM

تحياتي

عزيزي لتمرير قيمة من الـ Form إلى الـ Report مثلاً مثل رقم الدائرة او رقم موظف .
كالتالي :
سنأخذ مثال عن تمرير رقم الدائرة من الـForm الى الـ Report من جدول الموظفين للمستخدم SCOTT .
  • إبدأ بعمل Report وعندما تصل إلى الــ SQLQuery Statment
    اكتب التالي
Select * From Emp Where deptno =: P1;


P1 = Parameter سنقوم بإنشائه لاحقاً

احفظ التقرير بهذا الإمتداد مثلاً C:\Rep\Rep.rdf
  • إعمل Form جديد يحتوي على جدول الـEmp .... واعمل في داخله زر (BUTTON) لكي نقوم بتمرير القيمه منه واستدعاء التقرير .

قم بتغيير الخاصية التالية للزر
Muse Navigate = No


ثم قم بإضافة الكود التالي : عند ضغط الزر طبعاً
When Button Pressed


Declare
	PL paramlist;
Begin
	PL:=create_parameter_List('p1');
	add_parameter(PL,'p1',text_parameter,to_char(:deptno));
	Run_product(Reports,'c:\rep\rep.rdf',asynchronous,RunTime,FileSystem,PL);
	Destroy_Parameter_List(PL);
End;

الآن بمجرد الضغط على الزر ستظهر لك نافذه صغيرة تطلب منك ادخال رقم الدائرة وهي تسمى الــ ParamForm ومن أجل إلغائها وأخذ القيمة مباشرة من الــDeptno الموجود في الشاشة قم بإضافة الجملة التالية قبل جملة الـ Run_product وبعد جملة Add_Parameter
add_parameter(PL,'PARAMFORM',text_parameter,'NO');

تم التعديل بواسطة Oracle, 13 February 2004 - 09:22 PM.


#3 Amgad

Amgad

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

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

تاريخ المشاركة 13 February 2004 - 10:15 PM

السلام عليكم ورحمة الله وبركاته،،
الأخ / عادل
شكرا جزيلا على الرد السريع والمتميز فى عرض طريقه الحل للمشكلة .
المطلوب هو الاتي :
1- الشاشه التى اتعامل معها بها 10 سجلات لموظفين مختلفين معروضه بطريقه الtabular ( سجلات تكراريه ) .
2- اريد ان اختار ارقام محدده منها .
3- بالضغط على مفتاح معين يتم استدعاء التقرير .
4- هذا التقريريقوم بطباعة بيانات الموظفين المختارين فقط .
الملخص : اختيار مجموعه من ارقام الموظفين من الشاشه وبالضغط على المفتاح مره واحده فقط يتم استدعاء التقرير لطباعة بياناتهم .
وشكرا لتعاونكم معنا ..

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


....


#4 msh

msh

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 462 مشاركة

تاريخ المشاركة 14 February 2004 - 01:12 AM

السلام عليكم
أخي أمجد هناك طريقة أسهل من عملية تمرير البيانات من النموذج الى التقرير خصوصا إذا كانات هذه البيانات مختلفة مثلا اختيار موظفين من اكثر من قسم فقط جرب المثال التالي وحمل الملفات المرفقة :
1- هذا المثال سوف يكون على جدول الموظفين ال EMP لنضيف عامود جديد على هذا الجدول ونسميه S

ALTER TABLE EMP 
ADD(S NUMBER(1));

2-نقوم بإنشاء نموذج عادي يحتوي على بلوك الموظفين مع العامود الجديد S وسنمثل هذا العامود بصندوق اختيار CheckBox يحتمل احدى القيمتين 1 موظف مختار 0 موظف غير مختار .

3-عند تشغيل النموذج سوف نقوم بإختيار الموظفين المراد ظهور معلوماتهم في التقرير وذلك بالضفط على صندوق الإختيار المقابل لكل موظف وعمل حفظ لهذه التغيييرات .

3-نقوم ببناء تقرير عادي حيث سيكون شرط جملة الإستعلام فيه هو اظهار اي موظف يحتوي عامود S له على 1 اي انه موظف مختار .

4-يمكننا ايضا اضافة "زر امر" في النموذج وتكون وظيفته هي مسح جميع التغييرات التي قمنا بها وذلك لإجل عملية اختيار جديدة

BEGIN	
UPDATE EMP
SET S=0;
COMMIT;	
END;

جرب المثال واخبرني بالنتيجة ....
تحياتي :rolleyes:

ملفات مرفقة

  • ملف مرفق  PickEmp.zip   31.91كيلو   2498 عدد مرات التحميل

اللهم أغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات

#5 khaled

khaled

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 251 مشاركة

تاريخ المشاركة 14 February 2004 - 11:43 AM

شكراً للاخ عادل والاخ msh
فكره الاخ msh هي فكره رائعة جداً ولكن لدي بعض الملاحظات عليها
1- عمل تعديل في الtable structure
هذا لا يفضل غالباً حيث انه يقوم بتعديل الtable structure في كل مره تحتاج فيها الى حل مشكله معينه في الform وذلك لعده اسباب
انه عندما تقوم بتعديل الtable structure كان تقوم بحذف او ايضافه columen فانه سوف يؤثر على الdatabase objects المعتمده على هذا الجدول مثل الـ views ,procedures , functions , packages وغيرها بحيث تصبح invalidate .
عملية ان تقوم بعمل commit من الـ form فانه سوف يعمل end لل tracsaction الخاص بهذا الsession مما قد يؤدي الى حفض بعض البيانات او حذفها .

طريقة الاخ عادل هي الطريقة الغالب استخدامها في حالة تمرير بيانات من فورم الى تقرير .
ولذلك اقترح بان نستخدم فكره الاخ msh ولكن باستخدام طريقه الاخ عادل وذلك لان الفكره التي استخدمها الاخ msh هي فعلاً حلى لسؤال الاخ امجد بحيث يتم عرض الموظفين الذين نختارهم عن طريقه الـcheck box.
والان ندمج الطريقتين الرائعتين للاخوين msh و عادل
1- نقوم بعمل check box ولكن لا يكون database item بحيث ان نعمله في الـ emp block ولكن نغير خاصية database item الى no
2- نعمل function تقوم بارجاع الـwhere cluse بحث يتم ارسالها باستخدام الـ parameter الى الreport
وهذه الـfunction


FUNCTION Get_Cond RETURN VARCHAR2
IS
Cond varchar2(2000) := '(1=2)';
BEGIN
	go_block('emp');
	first_record;
  Loop
  	If :is_select=1 Then 
    Cond:=Cond || ' OR empno=' || :empno;
  	End if;
  	next_record;
  	Exit when :system.last_record = 'TRUE';
  End loop;
Return ('Where ' || Cond) ;
END;

3- في زر استدعا التقرير نستخدم نفس الكود الخاص بالاخ عادل مع تبديل قيمة الـparameter المسمى p1 الى قيمة الـfunction كالاتي

Declare
PL paramlist;
Begin
PL:=create_parameter_List('p1');
add_parameter(PL,'p1',text_parameter,get_cond);
add_parameter(PL,'PARAMFORM',text_parameter,'NO');
Run_product(Reports,'c:\rep\rep.rdf',asynchronous,RunTime,FileSystem,PL);
Destroy_Parameter_List(PL);
End;
4-الان نعدل الـQuery الموجود في الـReport الى الاتي
Select * From Emp &p1;

الاخوه msh و عادل شكراً لكم وتقبلوا تحياتي ومتظرين المزيد من الابداع
  • chzizo81 معجب بهذا
خالد مبارك العوبثاني
اليمن-حضرموت
Email :Aboanter84@hotmail.com

#6 msh

msh

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 462 مشاركة

تاريخ المشاركة 14 February 2004 - 03:08 PM

السلام عليكم
أخي خالد جزاك الله خيرا ، خطرت لي الفكرة بحيث أعمل loop على البلوك لكن لم أعرف كيفية كتابة الكود الخاص بالعملية :rolleyes: ، وملاحظاتك صحيحة 100% والطريقة التي ذكرتها أفضل فعلا من التعديل على data structure خصوصا مع وجود عدد كبير من السجلات شكرا لك وهذا هو المطلوب .
تحياتي
اللهم أغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات

#7 Amgad

Amgad

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

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

تاريخ المشاركة 14 February 2004 - 09:22 PM

السلام عليكم ,
الزملاء الثلاثه الاخ / عادل والاخ / msh والاخ / خالد
ابعث اليكم بشكر خاص ثلاثى لكم جميعا على هذه المشاركة الايجابيه والهادفه والتى لا تتواجد فى كثير من المنتديات الاخرى .
بداية اشكر الاخ / عادل على المبادرة السريعه فى حل الحاله التى طرحتها
ثانيا اشكر الاخ/ msh على الفكرة الجديده التى عرضها للحل مع اضافة ملاحظه عليها انه فى حالة طباعة التقرير من اكثر من مستخدم فى نفس التوقيت ستحدث مشكلة لوجود اكثر من تعديل فى حقل الاختيار( الجديد ) بالجدول .
ثالثا : شكرا للأخ / خالد على الاضافه المتميزه للحل , مع الفهم العميق لطبيعة وابعاد الفكره المطروحه للحل .
عموما فى الختام اضافتي بسيطة جدا وهى وضع الحل النهائى فى خدمة اعضاء المنتدى للاستفاده من الافكار المطروحه للمناقشة .
وشكر اخير للثلاثى المتميز.
وجزاكم الله خيرا .

ملفات مرفقة

  • ملف مرفق  PickEmpNew.zip   39.21كيلو   2322 عدد مرات التحميل

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


....


#8 msh

msh

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 462 مشاركة

تاريخ المشاركة 15 February 2004 - 12:41 AM

وعليكم السلام
أخي أمجد شكرا على الملاحظة وكما ذكر العضو المتميز الأخ خالد فالأفضل عدم التعديل على البيانات وحل المشكلة من داخل النموذج ، وشكرا :rolleyes: على طرح المثال المعدل ....
تحياتي
اللهم أغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات

#9 khaled

khaled

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 251 مشاركة

تاريخ المشاركة 15 February 2004 - 11:17 AM

شكراً لكم اخواني الجميع وانا الصراحه لا استطيع ان اعبر عن مدى شكري وتقديري لكم الذي يزداد يوماً بعد يوم , وكل ما نقوم بتقديمه ما هو الى واجب علينا كمسلمين ان نتعاون ونفيد بعضنا البعض .
احب ان انوه ان مشاركاتكم تفيدنا اكثر مما نفيدكم وجزاكم الله الف خير .
خالد مبارك العوبثاني
اليمن-حضرموت
Email :Aboanter84@hotmail.com

#10 عمر باسلم

عمر باسلم

    عضو

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

تاريخ المشاركة 23 February 2004 - 05:38 PM

الرجاء من الاستاذ خالد شرح funtion get_cord
بالتفصيل
وشكرا

#11 عمر باسلم

عمر باسلم

    عضو

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

تاريخ المشاركة 25 February 2004 - 11:01 PM

السلام عليكم
الاخ امجد
المثال لا يعمل اذا اختر اكثر من اثنان من السجلات


فارجو الايضاح
وشكرا
:rolleyes: :)

#12 Amgad

Amgad

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

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

تاريخ المشاركة 26 February 2004 - 12:16 AM

السلام عليكم ,
الاخ / عمر
لقد تم اختبار البرنامج من قبل , ولم ترد اية ملاحظات خلال ال10 ايام الماضية, بعد تجهيزه للتحميل , من الاخوه الذين حملوا البرنامج ولم تظهر الحاله التى ذكرتها ..
الرجاء اعادة التحميل والتجربه مره اخرى .
وشكرا لك .

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


....


#13 عمر باسلم

عمر باسلم

    عضو

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

تاريخ المشاركة 26 February 2004 - 04:32 AM

السلام عليكم
الاخ امجد
اذا تم اختيار سجلين يتم الذهاب الى التقرير
اما اذا تم اختيار اكثر من اثنين تظهر الرساة التالية
Rep-0091 : Invalid value for parameter 'p1'
:rolleyes: :) :)
المعذرة على التأخيـــــــــر في المشاركة

#14 Amgad

Amgad

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

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

تاريخ المشاركة 26 February 2004 - 11:59 AM

السلام عليكم ,
الاخ / عمر
الرسالة التى ظهرت لك من الreport وليس من الform - وهىrep-0091
المفروض ما يتم تحريكة فى الparamter هو الشرط بالكامل مثل
Where (1=2) OR empno=7369 OR empno=7521 OR empno=7654
عموما سارسل لك نسخه اخرى مع الForm + report
مع امكانية عرض الشرط الذي سيتم تحريكه الى التقرير داخل الp1
جرب مره اخرى وبلغنى بالنتيجه

ملفات مرفقة

  • ملف مرفق  New.zip   40.68كيلو   1965 عدد مرات التحميل

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


....


#15 almojahed

almojahed

    عضو

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

تاريخ المشاركة 26 February 2004 - 01:46 PM

موضوع جيد جداً
جزاك الله كل خير
ويرب يشتغل عندي


المجاهد