اذهب الي المحتوي
Mala_Moh

أرجو المساعده فى عمل هذه Tree

Recommended Posts

Mala_Moh

[

السلام عليكم ورحمة الله وبركاته


أرجو المساعده فى عمل TREE تكون الرؤس فيها هى اسماء الإدارات فى جدول DEPT
أما الافرع فتكون الموظفين الموجودين فى كل إدارة

وشكرا

تم تعديل بواسطة Mala_Moh

شارك هذه المشاركه


رابط المشاركه
شارك
Fabled Warrior

بسم الله الرحمن الرحيم

السلام عليكم و رحمه الله و بركاته
ان شاء الله ربى يوفقنى فى الشرح انا مش بعرف اشرح كويس انما حشرحها و بالصور و اتمنى انك تستفيد
كل ما فى الامر انك حتنشىء شجره حتحتوى على اتنين كرسر و احد حيجيب الادارات و ده حيكون هو الــ parent يعنى الرئيسى و التانى حيكون خاص بالموظفين و ده حيكون الفرعى و حندرج الكرسر الفرعى داخل الرئيسى ذى ما حنشوف بالصور و الاكواد
و خلينا نزود كمان جزء انه لما يختار اسم الموظف من الشجره يحصل على بياناته

توكلت على الله

1- ننشأ بلوك database block على جدول الموظفين و نختار الاعمده الاتيه وهى empno , job,sal,comm يعنى ممكن تقول كل الاعمده عدا الاسم كما بالصوره
52g7p20.jpg

2- نقوم بإنشاء كنترول بلوك و نضع عليه Tree Item و نسميها Tree كما هو موضح بالصوره
2ebc0i0.jpg

3- نقوم بإنشاء كنترول بلوك اخر و نسميه value وننشأ فيه تكست ايتم و نسميه Val_from_tree و ده اللى حنرجع فيه القيمه اللى جايه من الترى علشان نستخدمها فى where condition اللى حتعمل ريستركت للبيانات اللى حتتعرض فى الداتا بيز بلوك
كما بالصوره
4pwdver.jpg

4- بعد ذلك نكتب الكود هذا على تريجر when new form instance

declare
cursor dept_cur is
select deptno , dname
from   dept;

cursor emp_cur (N number) is
Select empno , ename
from   emp
where  deptno=N;

Htree	 item;

 parent_node varchar2(200);
 child_node  varchar2(200);
begin
Htree:=Find_item('tree');
For dept_R in Dept_cur loop
parent_node:=Ftree.Add_Tree_Node(htree,
Ftree.ROOT_NODE,
Ftree.PARENT_OFFSET,
Ftree.LAST_CHILD,
Ftree.EXPANDED_NODE,
dept_r.deptno||' '||dept_r.dname,
'insrec',
dept_r.deptno);

Htree:=Find_item('tree');
For emp_R in emp_cur(dept_r.deptno) loop
child_node:=Ftree.Add_Tree_Node(htree,
parent_node,
Ftree.PARENT_OFFSET,
Ftree.LAST_CHILD,
Ftree.EXPANDED_NODE,
emp_r.empno||' '||emp_r.ename,
'insrec',
emp_r.empno);
end loop;
end loop;
end;




5- نكتب التريجر هذا على الترى when tree node selected

declare
Value_node  varchar2(50);
htree  item;

begin
htree:=find_item('tree');
Value_node := Ftree.GET_TREE_NODE_PROPERTY(htree,
								   :system.trigger_node,
								   Ftree.node_value);
:val_from_tree:=value_node;
set_block_property('emp',default_where,'empno='||:val_from_tree);
go_block('emp');
execute_query;
end;



لتصبح بهذا الشكل بعد عمل compile و تشغيل

4lzxjes.jpg

وتم ارفاق الملف الخاص بها

TREE.zip

  • أعجبني 4

شارك هذه المشاركه


رابط المشاركه
شارك
Amgad

الأخ / Fabled Warrior

عليكم السلام ورحمة الله

شكرا لك .. على الجهد المتميز
شكرا لك .. على طريقة واسلوب العرض باستخدام الصور

ننتظر منك مشاركات متميزه اخرى

جزاك الله خيرا

شارك هذه المشاركه


رابط المشاركه
شارك
Fabled Warrior

اسعدنى مرورك يا امجد و سعيد ان الشرح نال اعجابكم و انه استفاد منه احد

شارك هذه المشاركه


رابط المشاركه
شارك
weloooo

يا أخي شكرا علي المساهمه المتميزه منك والله يكتر من أمثالك

شارك هذه المشاركه


رابط المشاركه
شارك
baseeta

شكرا لك وانا اؤيد استخدام الصور في الشرح لان المعلومه توصل بسهوله

شارك هذه المشاركه


رابط المشاركه
شارك
s_devlop

السلام عليكم ورحمة الله وبركاتة
الف شكر لك ياخى ياريت توضح اكثر كيف اعملها واغير الاسماء الموجودة فى الشجرة

  • أعجبني 1

شارك هذه المشاركه


رابط المشاركه
شارك
Mala_Moh

متشكرين جدا يا اخ Fabled Warrior على الشرح وجزاك الله كل خير

شارك هذه المشاركه


رابط المشاركه
شارك
sameh bakkar

و الله جهد رائع و مثال ممتاز ......... بارك الله فيك و جعله فى ميزان حسناتك

شارك هذه المشاركه


رابط المشاركه
شارك
adnanalsanawi

الله يفتح عليك
شكرا جزيلا اخي
جهد رائع

شارك هذه المشاركه


رابط المشاركه
شارك
Wise

جزاك الله خيرا اخي الكريم على المثال الرائع

شارك هذه المشاركه


رابط المشاركه
شارك
Ahmed Farghaly

جزاك الله خيرا ياأخ Fabled Warrior على هذا التوضيح الرائع

شارك هذه المشاركه


رابط المشاركه
شارك
shiko_2121

جزاك الله خيرا ياأخ Fabled Warrior على هذا التوضيح الرائع وشكرا على المجهود

شارك هذه المشاركه


رابط المشاركه
شارك
الاسمري

اسأل الله أن يبارك فيكم جميعا و في علمكم

تم تعديل بواسطة الاسمري

شارك هذه المشاركه


رابط المشاركه
شارك
mrbadr

بصراحة يا جماعة دة شرح أكثر من رائع
لدرجة انى مش عارف أقول اية ولا اية

شارك هذه المشاركه


رابط المشاركه
شارك
jedghaleb

جزاك الله خير افضل شرح 

شارك هذه المشاركه


رابط المشاركه
شارك
jedghaleb

جزاك الله خير

ومشكوووووور الله يوفقك ويزيدك من علمه

شارك هذه المشاركه


رابط المشاركه
شارك
medo_2005

بسم الله ما شاء الله جهد مشكور

شارك هذه المشاركه


رابط المشاركه
شارك
dhah

بسم الله الرحمن الرحيم

 

السلام عليكم و رحمه الله و بركاته

ان شاء الله ربى يوفقنى فى الشرح انا مش بعرف اشرح كويس انما حشرحها و بالصور و اتمنى انك تستفيد

كل ما فى الامر انك حتنشىء شجره حتحتوى على اتنين كرسر و احد حيجيب الادارات و ده حيكون هو الــ parent يعنى الرئيسى و التانى حيكون خاص بالموظفين و ده حيكون الفرعى و حندرج الكرسر الفرعى داخل الرئيسى ذى ما حنشوف بالصور و الاكواد

و خلينا نزود كمان جزء انه لما يختار اسم الموظف من الشجره يحصل على بياناته

 

توكلت على الله

 

1- ننشأ بلوك database block على جدول الموظفين و نختار الاعمده الاتيه وهى empno , job,sal,comm يعنى ممكن تقول كل الاعمده عدا الاسم كما بالصوره

52g7p20.jpg

 

2- نقوم بإنشاء كنترول بلوك و نضع عليه Tree Item و نسميها Tree كما هو موضح بالصوره

2ebc0i0.jpg

 

3- نقوم بإنشاء كنترول بلوك اخر و نسميه value وننشأ فيه تكست ايتم و نسميه Val_from_tree و ده اللى حنرجع فيه القيمه اللى جايه من الترى علشان نستخدمها فى where condition اللى حتعمل ريستركت للبيانات اللى حتتعرض فى الداتا بيز بلوك

كما بالصوره

4pwdver.jpg

 

4- بعد ذلك نكتب الكود هذا على تريجر when new form instance

declare
	cursor dept_cur is
	select deptno , dname
	from   dept;
	
	cursor emp_cur (N number) is
	Select empno , ename
	from   emp
	where  deptno=N;

	Htree	 item;

  parent_node varchar2(200);
  child_node  varchar2(200);
begin
	Htree:=Find_item('tree');
	For dept_R in Dept_cur loop
parent_node:=Ftree.Add_Tree_Node(htree,
Ftree.ROOT_NODE,
Ftree.PARENT_OFFSET,
Ftree.LAST_CHILD,
Ftree.EXPANDED_NODE,
dept_r.deptno||' '||dept_r.dname,
'insrec',
dept_r.deptno);

	Htree:=Find_item('tree');
	For emp_R in emp_cur(dept_r.deptno) loop
child_node:=Ftree.Add_Tree_Node(htree,
parent_node,
Ftree.PARENT_OFFSET,
Ftree.LAST_CHILD,
Ftree.EXPANDED_NODE,
emp_r.empno||' '||emp_r.ename,
'insrec',
emp_r.empno);
end loop;
end loop;
end;

 

5- نكتب التريجر هذا على الترى when tree node selected

declare
	Value_node  varchar2(50);
	htree  item;
	
begin
	htree:=find_item('tree');
	Value_node := Ftree.GET_TREE_NODE_PROPERTY(htree,
									   :system.trigger_node,
									   Ftree.node_value);
	:val_from_tree:=value_node;
	set_block_property('emp',default_where,'empno='||:val_from_tree);
	go_block('emp');
	execute_query;
end;

لتصبح بهذا الشكل بعد عمل compile و تشغيل

 

4lzxjes.jpg

 

وتم ارفاق الملف الخاص بها

 

  • أعجبني 1

شارك هذه المشاركه


رابط المشاركه
شارك
dhah

شكرا اشتغل المرفق لل tree ممكن مثال كيف نشغل بطريقه record group

شارك هذه المشاركه


رابط المشاركه
شارك
dhah

شكرا اشتغل المرفق لل tree ممكن مثال كيف نشغل بطريقه record group

ياشباب عندي ملف   *.fmx  ممكن تحويله او ايجاد fmb.*.  هل هذا مستحيل

شارك هذه المشاركه


رابط المشاركه
شارك

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان

×
×
  • اضف...