ثامر_أحمد_1980 بتاريخ: 17 فبراير 2016 تقديم بلاغ مشاركة بتاريخ: 17 فبراير 2016 السلام عليكم و رحمة الله و بركاته الأخوه الأعزاء أرجو المساعدة في اضافة الأبناء تحت الأباء في الشجرة لدي شاشة فيها شجرة و بعض الــ text_item لإضافة البيانات في قاعدة البيانات. عند الضفط على زر إضافة حساب فأنه يتم إضافة الحساب في الجدول و عرضه في الشجرة مباشرة بدون ما أعمل Refresh للشجرة و لكن عند أضافة حساب الأبن فإنه يتم حفظ السجل في الجدول و لكن لايتم عرضة في الشجرة. و حاولت جاهدا إضافة الكود الخاص بجلب بيانات الشجرة في الحدث post_database_commit طبقا لما أشار له أحد الأخوة و لكن لا يحدث أي تغير. أتوقع أنه يوجد اضافة أو تعديل في كود زر أضافة حساب الأبن. حاولت جاهدا للتعديل و لكن يتم تكرار بيانات الشجرة كامله. أرفق لكم الشاشة و اتمنى ان تساعدوني و لكم جزيل الشكر. TREE_TEST.rar اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ثامر_أحمد_1980 بتاريخ: 18 فبراير 2016 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2016 الرجاء منكم المساعدة و لو بكلمات بسيطهأتقبل عذركم. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ثامر_أحمد_1980 بتاريخ: 18 فبراير 2016 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 18 فبراير 2016 كيف أن أعتبر القيمة في الحقل acid_lov هي القيمة اللتي سوف أبني عليها جملة الأضافة. بمعنى أنه عندما أريد أن أظيف أبن تحت أب. لابد أولا أن أختار الأب من خلال الفنكشن Ftree.Get_Tree_Selection اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ميسم الكرام بتاريخ: 19 فبراير 2016 تقديم بلاغ مشاركة بتاريخ: 19 فبراير 2016 ممكن تكتب لنا الكود المستخدم حتى نستطيع المساعدة ..فأنا أعمل على الإصدار 6 والمرفقات هي على الإصدار 10g لأني قمت يتنزيل المرفق ولم تعمل الفورم لدي للسبب الذي بينته اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ثامر_أحمد_1980 بتاريخ: 20 فبراير 2016 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 20 فبراير 2016 جزاك الله خير أخت ميسم... هذا الكود يعمل 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 فبراير 2016 تقديم بلاغ مشاركة بتاريخ: 20 فبراير 2016 إن شاء الله الحل بسيط من شروط العمل مع tree أن تكون الـ tree على block لوحدها مستقل بعد الإنتهاء من عملية الإضافة (الأبن) نعمل كتابة go_block('TREE'); وكإنما تعمل refresh للـ tree اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ثامر_أحمد_1980 بتاريخ: 20 فبراير 2016 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 20 فبراير 2016 جزيتي خيرا أخت ميسم. و لكن لم أشاهد لها أي تأثير حيث أنني وضعتها قبل و كذلك بعد هذه الجملة 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 فبراير 2016 تقديم بلاغ مشاركة بتاريخ: 20 فبراير 2016 من المهم معرفة أين يتم كتابتها تكتبها بعد ان تتم الإضافة للـ tree وعند الـ block tree تعمل على trigger when new instance تكتب إيعاز ملىء الـ tree حتى عندما نقول('go_block ('tree يتفعل الـ trigger when new instance وتحته مكتوب ايعاز ملىء الـ tree وبهذا كإننا عملنا refresh للـ tree وتظهر بقيمها الجديدة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
خالد العجمي بتاريخ: 22 نوفمبر 2016 تقديم بلاغ مشاركة بتاريخ: 22 نوفمبر 2016 ازاي اعمل تري مبني على أكثر من جدول من فضلكم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.