بتاريخ: 20 ديسمبر 200619 سنة comment_86770 يا جماعة الخير اريد عمل execute_query حسب شرط معين في بلوك ال detail مثال :عندي موظفين في ماستر وبيانات الاجازات في ديتيل اريد عمل زر يعرض الموظفين الذين لهم اجازات فقط وهذا اول طلب لي ورجو الرد تقديم بلاغ
بتاريخ: 20 ديسمبر 200619 سنة comment_86773 هات ال PROPERTY PALLETTE لل DETAIL وفى ال WHERE CLAUSE أكتب الشرط اللى انت عايزة تقديم بلاغ
بتاريخ: 20 ديسمبر 200619 سنة comment_86813 السلام عليكماذا كنت تريد ان تستخدم ذلك في الرن تايم استخدم مثلا في زر اعمل على تريجرwhen-button-pressed التالي:set_block_property('اسم البلوك',default_where,'إسم العمود في قاعدة البيانات='||:item);--شرط الاستعلامgo_block('إسم البلوك'); -- fاذهب الى البلوك المطلوبclear_block(no_commit); --امسح البلوك بدون حفظexecute_query; --استعلموفقك اللهالجنتل تقديم بلاغ
بتاريخ: 21 ديسمبر 200619 سنة كاتب الموضوع comment_86985 شكرا يا اخ جنتل وحسن حمدي وساقوم بالتجربة وارد تقديم بلاغ
بتاريخ: 21 ديسمبر 200619 سنة كاتب الموضوع comment_86986 لكن يا اخ جنتل انا اريد عمل عرض في بلوك الماستر للموظفين الذين لديهم اجازة اي عرض للموظفين في البلوك الماستر الذين لهم بيانات في بلوك الديتيل (الاجازات)لأنه في الوضع العادي يقوم بعرض كل الموظفين الذين لديهم او ليس لديهم اجازاتقمت بوضع شرط (is not null) في بلوك الاجازات ولك لم يعطي نتيجة لأن هذا الشرط يطبق عند استعلام من بلوك الاجازات وفي الماستر والديتيل الاستعلام يكون على الماستر (الموظفين )ثم يعرض البيانات في الاجازات حسب رقم الموظف سواء له اجازة او لامعلش طولت عليكباختصار الاستعلام الذي اريده select emp_tb.emp_no,vacation.vac_nam from emp_tb,vacation where vacation.vac_nam is not nullارجو ان تكون الصورة وضحت وارجو ان تتحملوني شوي تقديم بلاغ
بتاريخ: 21 ديسمبر 200619 سنة comment_87000 السلام عليكماخي العزيز اعطيك طريقة مبسطة وهي كالتالي اعمل عمود في جدول الماستر حق الموظفين سميه cnt_vac مثلا وهو عدد الاجازات للموظفوكل ما يعمل للموظف اجازة تروح عامل ابديت عليه وبعدين تشوفبواسطة الـــ set_block_property تقوم باضافة and cnt_vac is not null الطريقة الثانية انك تعمل لووب على الماستر بعدعمل الاستعلام يقوم بتحسس ما اذا كان الموظف لدية اجازة يخليه مثل ماهواما اذا كان بدون اجازة يعمل له clear_recordكالتالي :على مستوى when-new-block-instancedeclare cursor chk_vac is select 'c' from vacation where emp_no=:emp_tb.emp_no; x char(1); begin first_record; open chk_vac; loop fetch chk_vac into x; exit when :emp_tb.emp_no is null; if chk_vac%found then next_record; else clear_record; end if; end loop; close chk_vac; first_record; end;ارجو ان اكون وفقت بالاجابة ، طبعا الطريقة الثانية بافتراض ان لديك عمود emp_no في جدول الديتيل كا foreign key على الماسترمع العلم اني انصحك بالطريقة الاولى خصوصا اذا كان عدد الموظفين كبير جداوفقك اللهالجنتل تم تعديل 21 ديسمبر 200619 سنة بواسطة الجنتل تقديم بلاغ
بتاريخ: 21 ديسمبر 200619 سنة comment_87025 انا اعتقد ان الاقصر والاسهل استخدام ال where CLAUSE لان اللى هاتكتبو فيها هو الشرط بس يعنى لو عاوز تعرض الموظفين اللى ليس لديه عموله هاكتب فى ال where clause comm is null و طيعآ كل طرق الاخوه صح ايهاب وجدى تقديم بلاغ
بتاريخ: 22 ديسمبر 200619 سنة comment_87073 السلام عليكم أعتقد ان الموضوع ابسط من ذلك بكثير لي ملحوظة علي رد الأخ الجنتل طريقة وضع عمود به عدد الاجازات ه ي طريقة خاطئة تماما فمن مبادئ التصميم الصحيح لاي قاعدة بيانات هو عدم وضع في الجدول اي عمود يمكن حسابه مثل عمود العمر مثلا وعدد الاجازات لكل موظف يمكن حسابه بكل سهولة و لا حاجة لاضافة هذا العمود لتنفيذ ما يريده الأخ السائل فيمكن تنفيذ ما يريده بكل سهولة عن طريق الديفولت وير باستخدام EXISTS OR IN OPERATOR فعن طريق تنفيذ الكود التالي في الBUTTON الذي يريد به عرض الموظفين ذوي الاجازات فقط يظهر له فقط الموظفين الذي لديهم أجازات declare v_where varchar2(2048); begin v_where :='EXISTS (SELECT 1 FROM EMP_PER_VAC WHERE EMP.EMPNO=EMP_PER_VAC.EMPNO)'; SET_BLOCK_PROPERTY('EMP', DEFAULT_WHERE, V_WHERE ); GO_BLOCK('EMP'); EXECUTE_QUERY; CLEAR_MESSAGE; end; بالتوفيق تم تعديل 22 ديسمبر 200619 سنة بواسطة hanon_OCP تقديم بلاغ
بتاريخ: 22 ديسمبر 200619 سنة comment_87159 السلام عليكماولا: بالنسبة لعمود احتساب عدد الاجازات لقد اخطات فيه وكنت اقصد عمود بولين يدلل على وجود اجازة من عدمه ، اي اذا كان هناك اجازات يكون true واذا كان لا يوجد اجازات يكون falseثانيا: بالنسبة للاعمدة المحوسبة فهذة ضرورية الاستخدام وهذا الكلام موجه للاخ العزيز hanon_ocp ولا يمكن الاستغناء عنها والامثلة كثيرة اضرب منها افرض ان لديك كرت صنف يجب احتساب الكمية الحالية للصنف فهذا العمود يجب ان يكون محوسب ونقوم بعمل فانكشن تقوم بحساب الكميات سواء زيادة الرصيد عبر فواتير شراء او نقص الرصيد عبر فواتير بيع .. الخمثال اخر حساب تكلفة صنف تكون بتحسس فواتير الشراء التي عملت على الصنف واحتساب متوسط تكلفة للصنفوازيدك من الشعر بيت حساب رصيد عميل ، حساب رصيد حساب معين ، حساب رصيد مورد كلها اعمدة محوسبةنقوم بعمل ابديت لها حسب حالة الحركة القائمة .... والامثلة كثيرة كلها تؤيد عمل الاعمدة المحوسبةفمن الخطا القول ان عمل اعمدة محوسبة في الداتا بيز خطا وللعلم هناك جداول كاملة محوسبة مثلجدول الاستاذ العام الذي يتم انشاء القيود فيه اليا سواء كانت مبيعات مشتروات سندات قبض صرف ... الخلذلك فهي ضرورية ..ولا انتقص بهذا الكلام اي شئ من الاخ العزيز hanon_ocp ولكن اذكر ذلك فقط للفائدة مع العلم ان اجابة الاخ hanon_ocp صحيحة واكثر من رائعة اذا كان هناك اي استفسار انا جاهزوفقكم اللهالجنتل تم تعديل 22 ديسمبر 200619 سنة بواسطة الجنتل تقديم بلاغ
بتاريخ: 22 ديسمبر 200619 سنة comment_87168 السلام عليكم اولا: بالنسبة لعمود احتساب عدد الاجازات لقد اخطات فيه وكنت اقصد عمود بولين يدلل على وجود اجازة من عدمه ، اي اذا كان هناك اجازات يكون true واذا كان لا يوجد اجازات يكون false الأخ الجنتل ما معني كلمة عمود بولين ؟؟؟ فلا يوجد اي داتا تايب من نوع بولين بالنسبة للجداول و اين نضعه هل في جدول الأجازات ام في جدول الموظفين ؟و ما الحاجة اليه اذا كان يمكننا ان نعرف اذا كان الموظف له أجازات ام باستخدام query statmentو يبدو أنك خلطت بين كلامي عن عدم الحاجة الي اضافة عمود لحساب عدد الاجازات و بين تكوين جداول بعض الأنظمة مثل المخازن او الGLفلم اكن اتكلم عن نظام مخازن او حسابات او الحاجة للاحتفاظ بارصدة عميل او صنف كنت فقط اعقب علي ردك بعمل عمود لحساب عدد الاجازات لشرح انه يوجد طريقة أفضل من ذلك لتحقيق غرض الأخ السائل عموما المهم ان يوجد حل صحيح للمشكلة و الاستفادة للجميع و شكرا لك علي اهتمامك بالتوفيق تم تعديل 22 ديسمبر 200619 سنة بواسطة hanon_OCP تقديم بلاغ
بتاريخ: 22 ديسمبر 200619 سنة comment_87174 السلام عليكماقصد ببولين فلاج ممكن يكون number وتكون القيمة فيه 1 او 0 او char تكون القيمة فيه t او f ويكون في جدول الموظفين طبعاااااااا .وبالنسبة للــ query فقد اشرت بها في اول ردوبالنسبة للخلط ما خلطت اي شئ فمن مبادئ التصميم الصحيح لاي قاعدة بيانات هو عدم وضع في الجدول اي عمود يمكن حسابه هذا كلامك وعلى العموم لك خالص التحية والتقدير اخي hanon_ocp وهذة فرصة سعيدة تعرفنا فيك والحوار كله لكي تعم الفائدة وشكرا على معلوماتك القيمةوفقك اللهالجنتل تم تعديل 22 ديسمبر 200619 سنة بواسطة الجنتل تقديم بلاغ
بتاريخ: 22 ديسمبر 200619 سنة comment_87175 السلام عليكم خير ان شاء الله يا اخ الجنتل و أهلا و سهلا بيك و ارجو ان تعم الفائدة علي الجميع و جيد تبادل الاراء و الأفكار ان كان الغرض منه هو بناء طرق جديدة و مفيدة لحل المشاكل بالتوفيق ان شاء ا لله تقديم بلاغ
بتاريخ: 22 ديسمبر 200619 سنة comment_87177 السلام عليكمهلا فيك اكثر اخوي hanon والمناقشة كلها لا لأي شئ اخر غير الفائدةومحاولة الوصول الى افكار حلوة وبناءةملحوظة : اضفتك عندي في الايميل للتعارف ، اذا ما في عندك مانع طبعا وهذا ايميلي [email protected]وفقك اللهالجنتل تم تعديل 22 ديسمبر 200619 سنة بواسطة الجنتل تقديم بلاغ
بتاريخ: 23 ديسمبر 200619 سنة كاتب الموضوع comment_87277 شكر كبير للأخ hanon_ocp قمت بتجربة الكود أعطاني النتيجة التي اريدها وشكرا لجميع الأخوةالذين شاركو في الموضوع تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.