PDA

View Full Version : TreeView Help



RezaS_1354
یک شنبه 19 دی 1389, 15:33 عصر
با عرض سلام خدمت دوستان البته اين سئوال را از يكي از بچه ها پرسيدم كه تا بحال احتمالا نتوانستند
آنرا ببينند به هرجهت در تايپيك هاي ايجاد شده توسط شما و پاسخ هايي كه در رابطه با Treeview هست
جوابم را پيدا نكردم و در اين مورد مي خواستم سئوالي بپرسم كه اگر محبت كنيد جواب بدهيد ممنون ميشوم
اگر ما سه table داشته باشيم Table1 ، Table2 ، Table3
Table1 پدر مي باشد كه از دو Field تشكيل شده ID , Name
دو Table ديگر فرزند ميباشند بگونه اي كه هر دو در راستاي يكديگرند كه هر دو هم داراي 3 فيلد هستند
فيلد آي دي تيبل 1 (IDTable1) كه در NodeTreeview نقش فيلد Child را دارد حالا ميخواهم ببينم آيا ميشود
اين دو تيبل پر شود بصورتي كه هر سه انها در Treeview نشان داده شوند مثال :
Table1
ID = 1
Name = Reza
----------------------------
Table2
ID = 1
IDTable1 = 1
LastName = Karimi
ادامه در آيدي 2 تيبل 2
ID = 2
IDTable1 = 1
LastName = Hasani
----------------------------
Table3
ID = 1
IDTable1 = 1
Book = Book 1001
------------------------------------------------
توضيح و سئوالم را در قالب يك عكس كم حجم ضميمه كردم كه ممنون ميشوم آنرا ببينيد و راهنمايي كنيد اگر امكان دارد همراه با يك مثال Source
با تشكر:خجالت:
64773

RezaS_1354
دوشنبه 20 دی 1389, 15:22 عصر
سلام مجدد
چرا تالارمون (تالار Vb6) اينجوري شده قبلا هيچ سئوالي زمين نمي موند ، شده بود حتي اگر چيزي كسي بلد نبود بالاخره يك اظهار نظر ميكرد يا جورشون مديرا ميكشيدند . متاسفانه خيلي ببخشيد ها يا بچه هايي كه اطلاعاتشون خوب بود از اين سايت رفتنند يا اينكه بچه هاي تالار كم لطف شدند من الان خودم سه روز سئوالمو مطرح كردم ولي يه فحش حداقل به ما ندادند كه بدونم اونو خوندون حالا سئوال من هيچي صفحه جديد سئواها بيشتر از يك هفته است كه بدون جواب همون جوري موندن قابل توجه مديران بخش و كلان سايت . اين سايت يا حداقل تارمون احتمالا جذابيتشو از دست داده من جواب خودم را ميدانم از طريق inner join حل ميشود ولي درستي و انجام آنر نمي دانم بهر حال اميدوارم تالار به روزهاي طلايي خود برگردد به اميد آنروز

vbhamed
دوشنبه 20 دی 1389, 17:51 عصر
سلام

اين سؤالي كه مطرح كردين نكته خاصي نداره و خيلي راحت انجام ميشه

1 - يك ركورد از جدول پدر رو بخونيد و به Treeview اضافه كنيد البته براي هر آيتم كليد اون رو هم ست كنيد مثلا كليد رو بزاريد حرف A به اضافه Id ركورد پدر

TreeView1.Nodes.Add , , "A1", "Reza"
2 - جدول فرزند 1 رو بخونيد و با توجه به آي دي پدر اون، به عنوان زير مجموعه به Treeview اضافه كنيد، اگر با Treeview كار كرده باشيد مي‌دونيد كه ميشه يك آيتم رو به عنوان زير مجموع آيتمي ديگه با استفاده از كليد اون آيتم پدر، اضافه كرد

TreeView1.Nodes.Add "A1", tvwChild, "A1-chield1-1", "Karimi"
TreeView1.Nodes.Add "A1", tvwChild, "A1-chield1-2", "Hasani"

براي جدول فرزند 2 هم دقيقا مثل جدول فرزند 1 عمل مي شود


TreeView1.Nodes.Add "A1", tvwChild, "A1-chield2-1", "Book 001"

4 - اعمال بالا را تكرار كنيد تا تمام پدرها و به تبع اون فرزندان اضافه شوند

براي خوندن از جدول فرزند هم نياز به Inner Join نيست كافيه با شرط زير بخونيد (مثلا براي اولين پدر) - البته Inner Join براي ثبت اطلاعات بايد باشه


Select * From tbl_Chield1 Where IdTable1 = 1براي پدرها و فرزندهاي بعدي هم به همين ترتيب عمل كنيد

RezaS_1354
پنج شنبه 23 دی 1389, 00:31 صبح
سلام مجدد
حامد جان ممنون خيلي لطف كردي
مطلبي كه هست اينه كه بحث كنترل treeview را چند وقتي هست دنبال ميكنم براي ارتباط جداول هم يك چيزايي از سايتهاي مختلف ياد گرفتم جدولهاي تو در تو ولي اين مورد كه خيلي هم به اون احتياج دارم چيزي پيدا نكردم اين توضيح شما را هم تست كردم به نتيجه ايي نرسيده ام بخاطر همين پروژه را آپلود كردم كه اگر امكان دارد روي اون تغييرات را حاصل كني .
البته يادت باشد كه من از جدول چهارمي بنام mytest استفاده كردم كه اصولي نيست چرا كه همه فيلد ها را جمع ميكند در يك فيلد مثلا بنام فيلد feilds و نميتوانم از سه جدول ديگر استفاده كنم بجاي تيبل mytest و انرا جدا جدا بخوانم و در treeview قرار بدهم البته اگر ببيني خودت ماجرا را متوجه ميشوي كه چكار كردم ولي من ميخوام بجاي تيبل mytest از سه تيبل 1و2و3 استفاده كنم به همون روشي كه در بالا گفته بودم بازهم ممنونم :چشمک:
رضا


64974

vbhamed
پنج شنبه 23 دی 1389, 06:45 صبح
سلام

اون جدول MyTest رو كه حذف كنيد و از همون روش بالا با 3 جدول ديگه استفاده كنيد
ضمنا شما اسم افراد رو در يك جدول پدر نوشتيد و فاميلها در يك جدول فرزند
فكر نمي كنم براي جلوگيري از تكرار نام نياز به اين كار باشه چون اصلا اين كار اصولي نيست مگر اينكه دليلي ديگه داشته باشه
در طراحي منطقي ديتابيس ابتدا كل ديتابيس طرحريزي ميشه بعد تا جاي ممكن به صورت پدر و فرزند در مياد و بعد نرمالسازي يعني بعضي جداول فرزند با پدر تركيب ميشن براي اينكه كار كدنويسي هم ديگه خيلي مشكل نشه، ميزان فضاي هدر رفته هم در اين حالت زياد نيست و كاملا قابل چشم پوشي

RezaS_1354
پنج شنبه 23 دی 1389, 23:30 عصر
سلام خدمت دوستان مخصوصا آقا حامد گل
حامد جان دقيقا من هم نظر شما را دارم و بايد از سه جدول استفاده كرد و اصولش اينه ، ولي يك ايراد كوچيك اينجاست و اون هم اينه كه من هر چه سعي كردم نتوانستم اينكار را انجام بدهم كه نتيجه اين سه جدول در treeview دقيقا همانند نتيجه همون تيبل mytest شود و متاسفانه هرچي تو سايتهاي مختلف گشتم نمونه مشابهي پيدا نكردم بخاطر همين ممنون ميشم كه اگر امكان دارد روي همين پروژه مثال عملي بزني يا اگر آقايي كني اين پروژه را تكميل كني خيلي نياز دارم
ممنون