Faisal Matari بتاريخ: 22 فبراير 2017 تقديم بلاغ مشاركة بتاريخ: 22 فبراير 2017 (معدل) السلام عليكم ورحمة الله وبركاته ... ماهي Default Where وفي ماذا تيتخدم . Default Where هي عملية تنفيذ الشرط الخاص بالاستعلام ، ويتم استخدامه مباشرة في الفورمز لإظهار النتائج بناء على شرط معين. مثلاً ، شاشة تظهر جميع الموظفين ، نريد تنفيذ استعلام في الشاشة تظهر الموظفين الذين فئة رواتيهم A. الاستعلام سيكون كما يلي Select * from Emp_Table Where Sal_Dgr = A; ولكننا سننفذ في الشاشة فقط Where Sal_Dgr = A; ولتنفيذ هذا الشرط سنكتب الكود التالي SET_BLOCK_PROPERTY('Emp_Table',DEFAULT_WHERE,'SAL_DGR=A'; GO_BLOCK('Emp_Table'); EXECUTE_QUERY; SET_BLOCK_PROPERTY('Emp_Table',DEFAULT_WHERE,''); وهذا ببساطة فائدته .. وهنا بعض الصيغ الخاصة بكتاية الاستعلام والتي تحتوي على قيم تاريخ ونصية ورقمية كما يلي : SET_BLOCK_PROPERTY('Your_Block',DEFAULT_WHERE,'Colum_DATE='||TO_CHAR(:Cloum_DATE,'''DD-MM-YYYY''')||' AND Colum_NUMBER='||:Colum_NUMBER|| ' AND Colum_Text LIKE LOWER(:TXT_JOB)||''%'' '); GO_BLOCK('Your_Block'); EXECUTE_QUERY; SET_BLOCK_PROPERTY('Your_Block',DEFAULT_WHERE,''); وهذه بعض خائص البلوك الخاص بالسماح بعملية الحذف والاضافة والتعديل SET_BLOCK_PROPERTY('Your_Block',INSERT_ALLOWED,PROPERTY_TRUE); -- السماح بالاضافة SET_BLOCK_PROPERTY('Your_Block',UPDATE_ALLOWED,PROPERTY_TRUE); -- السماج يالتعديل SET_BLOCK_PROPERTY('Your_Block',DELETE_ALLOWED,,PROPERTY_TRUE); -- السماح بالحذف وأتمنى أن تعم الفائدة للجميع .... تم تعديل 22 فبراير 2017 بواسطة Faisal Matari 2 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmad.Hasan بتاريخ: 22 فبراير 2017 تقديم بلاغ مشاركة بتاريخ: 22 فبراير 2017 جزاك الله كل خير... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
rateb must بتاريخ: 22 فبراير 2017 تقديم بلاغ مشاركة بتاريخ: 22 فبراير 2017 بارك الله فيك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
الحكيمي بتاريخ: 23 فبراير 2017 تقديم بلاغ مشاركة بتاريخ: 23 فبراير 2017 شيئ مهم جدا كنت ساسئل عليه الاسبوع القادم لكنك استبقت الاحداث تم تجربته وعمل بنجاح كل الشكر لك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ميسم الكرام بتاريخ: 25 فبراير 2017 تقديم بلاغ مشاركة بتاريخ: 25 فبراير 2017 (معدل) الـ WHERE CLAUSE هي من أهم الخصائص التابعة للـ Data Block أما عن إستخدامها فهي تستخدم لإسترجاع البيانات وفق شرط معين ، وكإنما يتم عملfilter للبيانات المسترجعة بإلإعتماد على شرط ، بعبارة أخرى هنالك قيد على أساسه تم إسترجاع البيانات ولم يتم إسترجاع البيانات كافة كيفية إستخدامها : بما إنها من خصائص الـ data block إذن يتم إستخدامها بطريقين أما من خلال الضبط من الخصائص أو يتم السيطرة عليها برمجياً أي من خلال كتابة الكود ( والطريقة الثانية تستخدم دائماً مع (at run time)) لنرى كيف 1- من خلال الخصائص نجد خاصية WHERE Clause فعلى سبيل المثال يُراد إسترجاع البيانات عند تنفيذ الإستعلام على قيمة حقل لدي في الجدول أسمه flag يأخذ قيم Boolean عندما قيمته = 1 قم بإسترجاع البيانات إذن نكتب للخاصية where :flag=0 WHERE Clause à وفي الأغلب يلازم مع خاصية WHERE Clause خاصية أخرى آلا وهي الـ ORDER By Clause وفائدتها عند الإسترجاع لهذه البيانات رتبها لي حسب مثلا نكتب id_emp وهكذا حسناً ، هذا من خلال الخصائص .. الآن كيف سيكون إسترجاع البيانات عندما flag=0 لكن عن طريق كتابة (code) أو الإستخدام البرمجي للـ WHERE CLAUSE 2- إذن لنوضح الطريقة الثانية أستخدام WHERE CLAUSE برمجياً : كما ذكرت في أعلاه إن WHERE CLAUSE هي أحد خصائص الـ Block وللسيطرة أو للتعامل البرمجي مع الخصائص بشكل عام سيكون من خلال الإجراء الجاهز SET_ITEM_NAME_PROPERTY هنا الـ ITEM_NAME نعوض عنه بBLOCK لإننا كما بينت في أعلاه سنتعامل مع خصائص الـ block إذن سيكون الإمر كالآتي : Set_Block_Property('block_name',default_where, flag=0' ); execute_query; حسناً هل يمكن التعويض بدل قيمة 0 لإنها قيمة ثابتة بـتمريرparameter يعني قيمة تغير مجرى البحث حسب ما يدخله المستخدم وليس قيمة ثابتة؟ الجواب يمكن طبعاً ولا حصر لعدد الـ parameter الذي نريد أن نمرره وستكون الصيغة كالآتي : Set_Block_Property (' block_name',default_where,'flag = '''|| :block_name.flag_txt ||'''' ); execute_query; هنا إستخدمت علامة = للبحث ويمكن أيضاً إستخدام الـ Like للبحث كما في الصيغة أدناه Set_block_property('block_name',default_where,'txt_name like'''||'%'||:block_name.txt_name||'%'||'''' ); execute_query; وأيضاً يمكن إستخدام between كما في الصيغة المبينة أدناه : Set_Block_Property('BLOCK_NAME',DEFAULT_WHERE, 'TEXT_DATE BETWEEN NVL('||''''||:CTRL.START_DATE||''''||',TEXT_DATE) AND NVL('||''''||:CTRL.END_DATE||''''||',TEXT_DATE)' ||' AND ATTRIBUTE1 IS NOT NULL AND ATTRIBUTE1=NVL('||''''||:CTRL.BEN_WHO||''''||',ATTRIBUTE1) AND MAIN_ACCOUNT='||:CTRL.MAIN_ACCOUNT); وكما مبين أعلاه أكثر من شرط يجمع بينهما and أو or حسب الحاجة وكذلك لا حصر لعدد الـ parameter تم تعديل 25 فبراير 2017 بواسطة ميسم الكرام اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ميسم الكرام بتاريخ: 25 فبراير 2017 تقديم بلاغ مشاركة بتاريخ: 25 فبراير 2017 إن شاء الله أكون أضفت معلومة تفيد الجميع .. شكراً 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.