بتاريخ: 17 فبراير 201610 سنة comment_271420 السلام عليكم و رحمة الله و بركاته الأخوه الأعزاء أرجو المساعدة في اضافة الأبناء تحت الأباء في الشجرة لدي شاشة فيها شجرة و بعض الــ text_item لإضافة البيانات في قاعدة البيانات. عند الضفط على زر إضافة حساب فأنه يتم إضافة الحساب في الجدول و عرضه في الشجرة مباشرة بدون ما أعمل Refresh للشجرة و لكن عند أضافة حساب الأبن فإنه يتم حفظ السجل في الجدول و لكن لايتم عرضة في الشجرة. و حاولت جاهدا إضافة الكود الخاص بجلب بيانات الشجرة في الحدث post_database_commit طبقا لما أشار له أحد الأخوة و لكن لا يحدث أي تغير. أتوقع أنه يوجد اضافة أو تعديل في كود زر أضافة حساب الأبن. حاولت جاهدا للتعديل و لكن يتم تكرار بيانات الشجرة كامله. أرفق لكم الشاشة و اتمنى ان تساعدوني و لكم جزيل الشكر. TREE_TEST.rar تقديم بلاغ
بتاريخ: 18 فبراير 201610 سنة كاتب الموضوع comment_271436 الرجاء منكم المساعدة و لو بكلمات بسيطهأتقبل عذركم. تقديم بلاغ
بتاريخ: 18 فبراير 201610 سنة كاتب الموضوع comment_271443 كيف أن أعتبر القيمة في الحقل acid_lov هي القيمة اللتي سوف أبني عليها جملة الأضافة. بمعنى أنه عندما أريد أن أظيف أبن تحت أب. لابد أولا أن أختار الأب من خلال الفنكشن Ftree.Get_Tree_Selection تقديم بلاغ
بتاريخ: 19 فبراير 201610 سنة comment_271459 ممكن تكتب لنا الكود المستخدم حتى نستطيع المساعدة ..فأنا أعمل على الإصدار 6 والمرفقات هي على الإصدار 10g لأني قمت يتنزيل المرفق ولم تعمل الفورم لدي للسبب الذي بينته تقديم بلاغ
بتاريخ: 20 فبراير 201610 سنة كاتب الموضوع comment_271488 جزاك الله خير أخت ميسم... هذا الكود يعمل population للشجرة.. طبعا أنا حصلته في المنتدى و أستخدمته و بالفعل يعمل معي. declare cursor MAINACC_cur is select acid , acname from MAINACC order by acid; cursor BRANCH1ACC_cur (N number) is Select acid1 , acname1 from BRANCH1ACC where acid=N; cursor BRANCH2ACC_cur (M number) is Select acid2 , acname2 from BRANCH2ACC where acid1=M; Htree item; parent_node varchar2(200); child_node varchar2(200); parent_node1 varchar2(200); child_node1 varchar2(200); begin Htree:=Find_item('tree'); For MAINACC_r in MAINACC_cur loop parent_node:=Ftree.Add_Tree_Node(htree,Ftree.ROOT_NODE,Ftree.PARENT_OFFSET,Ftree.LAST_CHILD,Ftree.EXPANDED_NODE,MAINACC_r.acid||' '||MAINACC_r.acname,'insrec',MAINACC_r.acid); Htree:=Find_item('tree'); For BRANCH1ACC_r in BRANCH1ACC_cur(MAINACC_r.acid) loop child_node:=Ftree.Add_Tree_Node(htree,parent_node,Ftree.PARENT_OFFSET,Ftree.LAST_CHILD,Ftree.EXPANDED_NODE,BRANCH1ACC_r.acid1||' '||BRANCH1ACC_r.acname1,'insrec',BRANCH1ACC_r.acid1); Htree:=Find_item('tree'); For BRANCH2ACC_r in BRANCH2ACC_cur(BRANCH1ACC_r.acid1) loop child_node1:=Ftree.Add_Tree_Node(htree,child_node,Ftree.PARENT_OFFSET,Ftree.LAST_CHILD,Ftree.EXPANDED_NODE,BRANCH2ACC_r.acid2||' '||BRANCH2ACC_r.acname2,'insrec',BRANCH2ACC_r.acid2); end loop; end loop; end loop; end; في نفس الشاشة يوجد عدد 2 بلوك واحد للشجرة و الأخرى يوجد فيها Buttons و Text_item من خلالهم أستطيع ان أعمل إضافة في حساب أب أو حساب أبن في زر حساب الأب يوجد هذا الكود declare cursor MAINACC_cur is select acid , acname from MAINACC where acid=:ac.acid1 order by acid; htree item; parent_node varchar2(200); begin insert into mainacc(acid,acname) values(:ac.acid1,:ac.acname1); forms_ddl('commit'); Htree:=Find_item('tree'); parent_node:=Ftree.Add_Tree_Node(htree,Ftree.ROOT_NODE,Ftree.PARENT_OFFSET,Ftree.LAST_CHILD,Ftree.EXPANDED_NODE,:ac.acid1||' '||:ac.acname1,'insrec',:ac.acid1); end; و عند النقر عليه يتم أظهار الحساب الجديد في الشجرة.. ---- و بالسبة للزر الثاني اللي هو إضافة حساب الأبن لابد أولا أن اظيف رقم الحساب الرئيسي اللي هو حساب الأب. في هذا الكود تتم عملية الأضافة و لكن لايظهر سجل الأبن ألاّ في حالة أن أغلق الشاشة و فتحها من جديد. أرجو أن تساعديني في انه تتم الأضافة و إظهار سجل الأبن بدون غلق الشاشة. الكود declare cursor MAINACC_cur is select acid , acname from MAINACC order by acid ; cursor BRANCH1ACC_cur (N number) is Select acid1 , acname1 from BRANCH1ACC where acid=:ac.acid1; Htree item; child_node varchar2(200); begin insert into BRANCH1ACC(acid1 , acname1,acid) values(:ac.acid1,:ac.acname1,:ac.acid_lov); forms_ddl('commit'); Htree:=Find_item('tree'); for i in (select acid1,acname1 from BRANCH1ACC where acid=:ac.acid_lov) loop child_node:=Ftree.Add_Tree_Node(htree,:ac.acid_lov,Ftree.PARENT_OFFSET,Ftree.LAST_CHILD,Ftree.EXPANDED_NODE,i.acid1||' '||i.acname1,'insrec',i.acid1); end loop; end; جزيت خيرا. تقديم بلاغ
بتاريخ: 20 فبراير 201610 سنة comment_271491 إن شاء الله الحل بسيط من شروط العمل مع tree أن تكون الـ tree على block لوحدها مستقل بعد الإنتهاء من عملية الإضافة (الأبن) نعمل كتابة go_block('TREE'); وكإنما تعمل refresh للـ tree تقديم بلاغ
بتاريخ: 20 فبراير 201610 سنة كاتب الموضوع comment_271493 جزيتي خيرا أخت ميسم. و لكن لم أشاهد لها أي تأثير حيث أنني وضعتها قبل و كذلك بعد هذه الجملة parent_node:=Ftree.Add_Tree_Node(htree,:ac.acid_lov,Ftree.PARENT_OFFSET,Ftree.LAST_CHILD,Ftree.EXPANDED_NODE,i.acid1||' '||i.acname1,'insrec',i.acid1); تقديم بلاغ
بتاريخ: 20 فبراير 201610 سنة comment_271495 من المهم معرفة أين يتم كتابتها تكتبها بعد ان تتم الإضافة للـ tree وعند الـ block tree تعمل على trigger when new instance تكتب إيعاز ملىء الـ tree حتى عندما نقول('go_block ('tree يتفعل الـ trigger when new instance وتحته مكتوب ايعاز ملىء الـ tree وبهذا كإننا عملنا refresh للـ tree وتظهر بقيمها الجديدة تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.