بتاريخ: 10 أبريل 200718 سنة comment_96652 الأخوة الأفاضل السلام عليكم ورحمة الله وبركاته اريد منكم المساعدة في حل هذه المشكلة 1- عندي 2 فورم الأول في بيانات الموظف والفورم التاني لبيانات الابناء 2- عملت زر تحرير بيانات الابناء في فورم الموظف عند الضغط عليه ....يقوم باستدعاء الفورم الخاص بالابناء وأخذ رقم الموظف كباراميتر 3- اريد من البرنامج عند استدعاء الفورم أن يقوم بعمل استعلام لأبناء الموظف صاحب الرقم المخزن في الباراميتر وعرضهم في الفورم ..من كان عنده الطريقة أرجو أن لايبخل علي بالشرح وبارك الله فيكم تقديم بلاغ
بتاريخ: 10 أبريل 200718 سنة comment_96664 بص ياباشااول حاجه لازم تفهم ان البراميتر ده عامل زى الجواب و صندوق البسطه يعنى انت بتكتب الجواب ( و احنا هانعمل كود للبراميتر فى الفورمه اللى انت هاتخد منها البرميتر ) و بعدين هاتروح عند الصندوق اللى بيستقبل الجواب ( واحنا هانروح على الفورمه اللى هانستقبل فيها البرميتر و ننشأ براميتر بنفس الاسم اللى اتكتب فى الكود )الكود عشان تقدر تنفذالكود الذى يكتب فى الشاشه التى سوف يرسل منها البراميتر declare p_username paramlist; انشاء ليست begin p_username := create_parameter_list('PAR_PER_ID'); اسم البراميتر الذى بين الاقواس add_parameter(p_username,'PAR_PER_ID',text_parameter,:PER_ID); الper_id ده اسم الايتم اللى بياخد منه قيمة البراميتر new_form فتح الشاشه الاخرى ('f:\PROJECT\VODO_CREDIT.FMX',no_rollback,no_query_only,p_username); end; نذهب الى شاشة ال navigator =f3و ننشأ براميتر من parametersولابد ان يكون نفس الاسم الذى انشأء فى الكودبعد كتابة الكود نذهب الى الشاشة التى سوف تستقبل البراميتر و فى when_new_ince :PER_ID := :parameter.PAR_PER_ID; اسم الايتم الذى يظهر فيه قيمة البراميتر و الكود ده عشان يعرض اسماء الابناء declare cursor ew is select w_name from wife where emp_id=:PER_ID; begin open ew; first_record; loop fetch ew into :w_name; exit when ew%notfound; next_record; end loop; close ew; end; ايهاب وجدى تقديم بلاغ
بتاريخ: 10 أبريل 200718 سنة comment_96667 السلام عليكم و رحمة الله و بركاته لي بعض الإضافات علي رد الأخ إيهاب اولا انه اذا كان الفورم الثاني و الذي به بيانات الأبناء معتمد علي بلوك من قاعدة البيانات فلا داعي لعمل خطوة الloop يكفي فقط تنفيذ الاستعلام باستخدام execute_query بعد عمل set لل default_where ثانيا : يجب في التريجر when-new-form-instanceفحص البارمتر اذا كان يحتوي علي قيمة ام لا if :parameter_name is not null then set_block_property('depnedant_block_name',default_where ,'emp_id='||:parameter_name); go_block('depnedant_block_name'); if form_success then do_key('execute_query'); end if; end if; و هناك حل اخر يوفر كل ذلك ولا تحتاج ان تضع كود في تريجر when-new-form-instanceو هو ان تضع الاتي في خصائص البلوك في خاصية default_where(emp_id=:parameter_name or :parameter_name is null )و تقوم فقط بعمل execute_queryبعد نقل البامتر كما شرح الأخ ايهاب و نصيحة اخيرة لك ان تقوم بعمل الاثنان في فورم واحد مع الربط بينهم في علاقة سيكون افضل و اسهل كثيرا مع تمنياتي بالتوفيق تقديم بلاغ
بتاريخ: 10 أبريل 200718 سنة كاتب الموضوع comment_96695 اشكرك يا اخ ايهاب على الردوالشكر موصول إلى الأخ هاني على مشاركته الطيبة ... جاري التجربة وبارك الله فيكم تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.