Amgad بتاريخ: 12 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 12 فبراير 2004 السلام عليكم ورحمة الله وبركاته،، الزملاء الاعزاء لدي form بها بعض بيانات الموظفين تظهر بطريقة ال tabular . اريد أن اختار بعض ارقام الموظفين من هذه الشاشة وارسلها الى report لطباعة بيانات تخص ارقام الموظفين المحددة والمختاره من الform.اي السؤال بطريقة اخرى كيف يتم طباعة تقرير( يحتوى على مجموعه من بيانات الموظف ) بمعلومية رقم موظف واحد أو مجموعة ارقام موظفين مختارة ومحدده من الشاشه .مع تمنياتى لجميع افراد المنتدى بالتوفيق . 3 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Guest عادل الشهري بتاريخ: 13 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 13 فبراير 2004 (معدل) تحياتيعزيزي لتمرير قيمة من الـ 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'); تم تعديل 13 فبراير 2004 بواسطة Oracle اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 13 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 13 فبراير 2004 السلام عليكم ورحمة الله وبركاته،، الأخ / عادل شكرا جزيلا على الرد السريع والمتميز فى عرض طريقه الحل للمشكلة .المطلوب هو الاتي :1- الشاشه التى اتعامل معها بها 10 سجلات لموظفين مختلفين معروضه بطريقه الtabular ( سجلات تكراريه ) .2- اريد ان اختار ارقام محدده منها .3- بالضغط على مفتاح معين يتم استدعاء التقرير .4- هذا التقريريقوم بطباعة بيانات الموظفين المختارين فقط . الملخص : اختيار مجموعه من ارقام الموظفين من الشاشه وبالضغط على المفتاح مره واحده فقط يتم استدعاء التقرير لطباعة بياناتهم .وشكرا لتعاونكم معنا .. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
msh بتاريخ: 13 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 13 فبراير 2004 السلام عليكم أخي أمجد هناك طريقة أسهل من عملية تمرير البيانات من النموذج الى التقرير خصوصا إذا كانات هذه البيانات مختلفة مثلا اختيار موظفين من اكثر من قسم فقط جرب المثال التالي وحمل الملفات المرفقة :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; جرب المثال واخبرني بالنتيجة ....تحياتي PickEmp.zip اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khaled بتاريخ: 14 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2004 شكراً للاخ عادل والاخ 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 الى no2- نعمل 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 و عادل شكراً لكم وتقبلوا تحياتي ومتظرين المزيد من الابداع 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
msh بتاريخ: 14 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2004 السلام عليكمأخي خالد جزاك الله خيرا ، خطرت لي الفكرة بحيث أعمل loop على البلوك لكن لم أعرف كيفية كتابة الكود الخاص بالعملية ، وملاحظاتك صحيحة 100% والطريقة التي ذكرتها أفضل فعلا من التعديل على data structure خصوصا مع وجود عدد كبير من السجلات شكرا لك وهذا هو المطلوب .تحياتي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 14 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2004 السلام عليكم ,الزملاء الثلاثه الاخ / عادل والاخ / msh والاخ / خالدابعث اليكم بشكر خاص ثلاثى لكم جميعا على هذه المشاركة الايجابيه والهادفه والتى لا تتواجد فى كثير من المنتديات الاخرى . بداية اشكر الاخ / عادل على المبادرة السريعه فى حل الحاله التى طرحتهاثانيا اشكر الاخ/ msh على الفكرة الجديده التى عرضها للحل مع اضافة ملاحظه عليها انه فى حالة طباعة التقرير من اكثر من مستخدم فى نفس التوقيت ستحدث مشكلة لوجود اكثر من تعديل فى حقل الاختيار( الجديد ) بالجدول .ثالثا : شكرا للأخ / خالد على الاضافه المتميزه للحل , مع الفهم العميق لطبيعة وابعاد الفكره المطروحه للحل .عموما فى الختام اضافتي بسيطة جدا وهى وضع الحل النهائى فى خدمة اعضاء المنتدى للاستفاده من الافكار المطروحه للمناقشة .وشكر اخير للثلاثى المتميز.وجزاكم الله خيرا . PickEmpNew.zip اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
msh بتاريخ: 14 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2004 وعليكم السلام أخي أمجد شكرا على الملاحظة وكما ذكر العضو المتميز الأخ خالد فالأفضل عدم التعديل على البيانات وحل المشكلة من داخل النموذج ، وشكرا على طرح المثال المعدل ....تحياتي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
khaled بتاريخ: 15 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 15 فبراير 2004 شكراً لكم اخواني الجميع وانا الصراحه لا استطيع ان اعبر عن مدى شكري وتقديري لكم الذي يزداد يوماً بعد يوم , وكل ما نقوم بتقديمه ما هو الى واجب علينا كمسلمين ان نتعاون ونفيد بعضنا البعض .احب ان انوه ان مشاركاتكم تفيدنا اكثر مما نفيدكم وجزاكم الله الف خير . اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عمر باسلم بتاريخ: 23 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 23 فبراير 2004 الرجاء من الاستاذ خالد شرح funtion get_cordبالتفصيلوشكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عمر باسلم بتاريخ: 25 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 25 فبراير 2004 السلام عليكمالاخ امجدالمثال لا يعمل اذا اختر اكثر من اثنان من السجلاتفارجو الايضاح وشكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 25 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 25 فبراير 2004 السلام عليكم ,الاخ / عمر لقد تم اختبار البرنامج من قبل , ولم ترد اية ملاحظات خلال ال10 ايام الماضية, بعد تجهيزه للتحميل , من الاخوه الذين حملوا البرنامج ولم تظهر الحاله التى ذكرتها .. الرجاء اعادة التحميل والتجربه مره اخرى .وشكرا لك . اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عمر باسلم بتاريخ: 26 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 26 فبراير 2004 السلام عليكمالاخ امجداذا تم اختيار سجلين يتم الذهاب الى التقريراما اذا تم اختيار اكثر من اثنين تظهر الرساة التاليةRep-0091 : Invalid value for parameter 'p1' المعذرة على التأخيـــــــــر في المشاركة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 26 فبراير 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 26 فبراير 2004 السلام عليكم , الاخ / عمر الرسالة التى ظهرت لك من الreport وليس من الform - وهىrep-0091المفروض ما يتم تحريكة فى الparamter هو الشرط بالكامل مثل Where (1=2) OR empno=7369 OR empno=7521 OR empno=7654عموما سارسل لك نسخه اخرى مع الForm + report مع امكانية عرض الشرط الذي سيتم تحريكه الى التقرير داخل الp1جرب مره اخرى وبلغنى بالنتيجه New.zip اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
almojahed بتاريخ: 26 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 26 فبراير 2004 موضوع جيد جداً جزاك الله كل خير ويرب يشتغل عنديالمجاهد اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عمر باسلم بتاريخ: 27 فبراير 2004 تقديم بلاغ مشاركة بتاريخ: 27 فبراير 2004 السلام عليكم الاخ امجدرابط الملف لا يعمل اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عمر باسلم بتاريخ: 1 مارس 2004 تقديم بلاغ مشاركة بتاريخ: 1 مارس 2004 السلام عليكم ورحمة الله وبركاتهالاخ امجد مشكورييــــــــــــــــــــــــــــــــــــــــــــنوجزاك الله خيروربنا يوفق المشكلة التي كانت عندي في خصائص البرميتر لم اغير شي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MohdElhassan بتاريخ: 8 سبتمبر 2004 تقديم بلاغ مشاركة بتاريخ: 8 سبتمبر 2004 بسم اللهماشاء الله على التجاوب الجميع والطرح البناء .أرجو أن تقبلوا عميق شكري لكم جميعاُ مع خالص الإحترام اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Osama Soliman بتاريخ: 25 أكتوبر 2004 تقديم بلاغ مشاركة بتاريخ: 25 أكتوبر 2004 عاشت للمنتدى ذخراً يا اخ عادلوبارك الله فيك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Shibeika بتاريخ: 17 أكتوبر 2006 تقديم بلاغ مشاركة بتاريخ: 17 أكتوبر 2006 السلام عليكم ورحمة الله.مثال جميل جدا. وبارك الله في كل المشاركين وتقبل الله صيامكم جميعا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sms423 بتاريخ: 15 نوفمبر 2006 تقديم بلاغ مشاركة بتاريخ: 15 نوفمبر 2006 ربي يعطيكم العافية اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
tafa17 بتاريخ: 2 ديسمبر 2006 تقديم بلاغ مشاركة بتاريخ: 2 ديسمبر 2006 أسأل الله العلي القدير ان يجعله في ميزان حسناتكم جميعا لمن ساهم في هذه المشاركة وجزاكم الله كل الخير علي الافادة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hatem1222000 بتاريخ: 4 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 4 يناير 2007 الاجواة الكرام ارجو المساعدة فى تعليم التقارير ولكم جزير الشكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
gadallah بتاريخ: 9 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 9 يناير 2007 كل الشكر لصاحب الفكرة ولمن اجاب علية كتبة الله في موازين اعمالكم كان الله في عون العبد ما داما في عون اخية اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
galo بتاريخ: 31 يناير 2007 تقديم بلاغ مشاركة بتاريخ: 31 يناير 2007 مشكور أخي على الجهد الرائع اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.