PDA

View Full Version : ایجاد treeدر vb.net



elahe_k
چهارشنبه 25 اردیبهشت 1387, 12:34 عصر
میخوام یه چارت پرسنلی درست کنم که در این چارت افراد مربوط به هر واحد کاری رو نمایش بدهو به اینصورت باشه:
در یه grid میتونم اسم ومشخصات افراد رو ایجاد/ویرایش/حذف کنم وبعد تو یه ساختار tree نمایش بده
نمیدونم چطوری تو tree نمایش بدم:عصبانی++::گریه:

Evil 69
چهارشنبه 25 اردیبهشت 1387, 13:06 عصر
اين يك كار خيلي راحته
كنترل ساختار درختي ( tree view ) داراي يك خصيصه به نام Node هستش كه با اون ميشوني شاخه هاي اين درخت رو دست كني مثلا اگر بخاي توي درختت كاري كني كه نام مديران هر بخش ديده بشه ميتوني اين كارو بكني
treeview.node.add("managers"
dim sub node as newe tree node
subode.node.add("manager name"
ميتوني اين خط اخر رو توي يك حلقه بذاري تا پشت سر هم اضافه بشن
treeview.node.add(subnode)
نكته : متد add مي تونه هم يك treenode رو قبول كنه و هم يك رشته رو
اميد وارم جوابتو گرفته باشي

elahe_k
سه شنبه 07 خرداد 1387, 09:58 صبح
اين يك كار خيلي راحته
كنترل ساختار درختي ( tree view ) داراي يك خصيصه به نام Node هستش كه با اون ميشوني شاخه هاي اين درخت رو دست كني مثلا اگر بخاي توي درختت كاري كني كه نام مديران هر بخش ديده بشه ميتوني اين كارو بكني
treeview.node.add("managers"
dim sub node as newe tree node
subode.node.add("manager name"
ميتوني اين خط اخر رو توي يك حلقه بذاري تا پشت سر هم اضافه بشن
treeview.node.add(subnode)
نكته : متد add مي تونه هم يك treenode رو قبول كنه و هم يك رشته رو
اميد وارم جوابتو گرفته باشي
دستت درد نکنه

jafari1
دوشنبه 20 خرداد 1387, 22:58 عصر
با سلام
اگر دوستان لطف كنند به سوال بنده جواب دهند متشكر ميشوم

ميخواهم يك Gridview و همچنين يك treeview ا از طريق 3 جدول پر كنم

مثلا جدول اول (root) - كد 111
جدول دوم - كد 001-111
- 002-111
....
جدول سوم - كد 001-001-111
- 002-001-111
.....
با تشكر

Dariuosh
چهارشنبه 22 خرداد 1387, 16:11 عصر
شايد کمکت کنه
http://barnamenevis.org/forum/showthread.php?t=108009

jafari1
پنج شنبه 23 خرداد 1387, 00:41 صبح
موضوع فوق ارتباط زيادي با خواست بنده ندارد

parsavb
پنج شنبه 23 خرداد 1387, 13:34 عصر
فکر کنم بهتره ابتدا با یک دستور select مواردی رو که می خواهی در treeview نمایش بدی از این جدولها استخراج کنی و نتیجه این دستور رو یا در جدول و سپس در treeview نمایش بدی و یا مستقیماً در treeview نمایششون بدی .

jafari1
پنج شنبه 23 خرداد 1387, 22:07 عصر
فکر کنم بهتره ابتدا با یک دستور select مواردی رو که می خواهی در treeview نمایش بدی از این جدولها استخراج کنی و نتیجه این دستور رو یا در جدول و سپس در treeview نمایش بدی و یا مستقیماً در treeview نمایششون بدی .

اگر دستور select را لطف كنيد متشكر ميشوم لازم به ذكر است اطلاعات هر سطح در يك جدول است

parsavb
جمعه 24 خرداد 1387, 08:42 صبح
فعلاً برای خالی نبودن عریضه باید بگم که بااستفاده از یک یا چند دستور join می تونی اطلاعاتی رو که می خوای بدست بیاری
اگه نشد نمونه جدولت و نام ستوهائی رو که که می خوای بذار تا دستورش رو برات بنویسم

jafari1
جمعه 24 خرداد 1387, 10:18 صبح
فعلاً برای خالی نبودن عریضه باید بگم که بااستفاده از یک یا چند دستور join می تونی اطلاعاتی رو که می خوای بدست بیاری
اگه نشد نمونه جدولت و نام ستوهائی رو که که می خوای بذار تا دستورش رو برات بنویسم
__________________

ضمن تشكر از شما
3 جدول دارم
1 -جدول اول شامل كد و نام كه كد چنين است 101
.................................................. ...............102
..............

2 - جدول دوم شامل كد و نام كه كد چنين است 001-101
..............................002-101
..............................003-101
.............................001-102
........................
3- جدول سوم شامل كد و نام كه كد چنين است 001-001-101
.................................................. . 002-001-102
..............................003-001-102
...................

كه ميخواه جدول در سطح يك گريد ويو قرار گيرد جدول 2 با توجه به كد در سطح دوم (در نود پدر خود) و الي آخر

Dariuosh
جمعه 24 خرداد 1387, 11:43 صبح
ضمن تشكر از شما
3 جدول دارم
1 -جدول اول شامل كد و نام كه كد چنين است 101
.................................................. ...............102
..............

2 - جدول دوم شامل كد و نام كه كد چنين است 001-101
..............................002-101
..............................003-101
.............................001-102
........................
3- جدول سوم شامل كد و نام كه كد چنين است 001-001-101
.................................................. . 002-001-102
..............................003-001-102
...................

كه ميخواه جدول در سطح يك گريد ويو قرار گيرد جدول 2 با توجه به كد در سطح دوم (در نود پدر خود) و الي آخر

1- ارتباط اين 3 جدول با هم چيه ؟ ( Foreign Key ) یعني ستون جدول پدر تو جدول فرزند
2 - اين ستونه کدي که گذاشتي واقعاً همينطوريه ، يا برا اين که منظورت از چيزي که ميخواي رو برسوني اينجوري نوشتي ؟

parsavb
جمعه 24 خرداد 1387, 12:03 عصر
این کدها رو خودت با توجه به نام ستوهایت اصلاح کن



SELECT Table1.id, Table1.name,
Table2.id AS EXPR1, Table2.famili,
Table3.id AS EXPR2, Table3.father
FROM Table_1 CROSS JOIN
Table2 CROSS JOIN
Table3


یا این کد



select table1.name_id,
table2.fname,
table3,famili
from table1 join table2 on
table1.name_id=table2.table2_id join table3 on
table1.name_id=table3.name_id


امیدوارم به دردت بخوره

Dariuosh
جمعه 24 خرداد 1387, 12:53 عصر
این کدها رو خودت با توجه به نام ستوهایت اصلاح کن



SELECT Table1.id, Table1.name,
Table2.id AS EXPR1, Table2.famili,
Table3.id AS EXPR2, Table3.father
FROM Table_1 CROSS JOIN
Table2 CROSS JOIN
Table3


یا این کد



select table1.name_id,
table2.fname,
table3,famili
from table1 join table2 on
table1.name_id=table2.table2_id join table3 on
table1.name_id=table3.name_id


امیدوارم به دردت بخوره


آخه اين جدول ها هيچ ارتباطي با هم ندارن !
Cross Join دردي رو دوا نميکنه اينجا
مشکل تو طراحي جدول هاست
اول بايد يه ستوني از جدول پدر به عنوان رفرنس داشته باشه که بشه ازش استفاده کرد

parsavb
جمعه 24 خرداد 1387, 14:03 عصر
دوست عزیز من دیگر توضیح بیشتر ندادم
این طور که من از نوشتهای این دوستمون فهمیدم ستون اصلی در این جداول وجود داره ،به این صورت که کد اصلی جداول فرزند ترکیبی از کد جدول بالائی به همراه یک کد جدید است که به راحتی میتونه با توابع مربوط به رشته ها اونها رو از هم تفکیک کنه و در دستوراتش جا بده

Dariuosh
جمعه 24 خرداد 1387, 16:27 عصر
کد اصلی جداول فرزند ترکیبی از کد جدول بالائی به همراه یک کد جدید است

هر چيزي يه قاعده ايي داره ، اينطوري چه کمکي ميتونه بکنه ؟


به راحتی میتونه با توابع مربوط به رشته ها اونها رو از هم تفکیک کنه و در دستوراتش جا بده

ميشه يه مثال بزنيد لطفاً

jafari1
جمعه 24 خرداد 1387, 18:26 عصر
جناب parsavb هيچ كدام از 2 دستوراتي كه زحمت كشيديد جواب نداد

jafari1
جمعه 24 خرداد 1387, 18:28 عصر
با 2 جدول inner join ركوردهاي درستي را برميگرداند ولي با 3 جدول اشتباه ميشود ممكن است احتياج به پرانتز داشته باشد؟

parsavb
شنبه 25 خرداد 1387, 16:30 عصر
اولً ااز دستور join تنها استفاده کنید و ثانیاً شما اگر توابعی که به کار می برید درست و به جا باشد 100 جدول رو هم که ترکیب کنید هیچ مشکلی بوجود نمی آید
چون من خودم 3 ماه پیش برنامه ای نوشتم که در یکی از گزارشات اون از ترکیب 13 جدول و 4 بانک اطلاعاتی استفاده کردم
این رو گفتم که شدنی بودنش براتون مسلم بشه
اگه باز هم نتونستید کاری از پیش ببرید بفرمائید تا دستور کاملش رو به همراه توابع مورد نظر براتون بزارم
در ضمن این جزوه رو مطالعه کنید در باره توابع مربوط به vb.net مطالب خوبی داردمخصوصاً توابه مربوط به رشته ها

Dariuosh
شنبه 25 خرداد 1387, 17:01 عصر
آخه دوسته من عرض بنده اينه که طراحي ديتابيس يه حساب کتابي داره
قرار نيست ما به هر قيمتي يه کاري رو انجام بديم که
در هر صورت من چيزي رو که فک ميکردم درسته گفتم ، حالا هر طور صلاح ميدونيد!

jafari1
شنبه 25 خرداد 1387, 20:16 عصر
ضمن تشكر از پاسخ دوستان
به عرض ميرسانم select اولي كلا تعداد زيادي ركورد برميگرداند بصورت تعداد ركورد جدول 1 * جدول 2 * جدول 3 كه نجومي ميشود و select دوم با آزمايش كه كردم در صورتي درست است كه همه جداول از همه نوع داشته باشند و اگر يك كد در يكي از جداول نباشد كلا آن را حذف ميكند كه اين هم مطلوب نيست حال اگر بشود به طريقي مشكل را حل كرد