PDA

View Full Version : آموزش: بالاخره مشکل ذخیره و بازیابی TreeView حل شد.



Alirezanet
پنج شنبه 08 بهمن 1388, 23:20 عصر
سلام قبلا این Dll رو براتون گذاشته بودم ولی یکسری مشکلات کوچیک داشت و حتی در بعضی از موارد دوستان نحوه استفاده از اون رو هم بلد نبودند !
من کاملا ساختار این کلاس رو عوض کردم تا دوستان راحت بتونن استفاده کنند .


این Dll چه کاری انجام میدهد ؟

خیلی سادست ! میتونید هر Treeview ای که از کلاس Treeview ارث بری دارد رو ذخیره و لود کنید !

2. چجوری ؟
فقط کافیه که این فایل به پروژتون اضافه شه ! تا امکانات SaveToFile و LoadFromFile به درختتون اضافه شه ! که توش یه آدرس میگیره و توی یک فایل براتون Node ها رو ذخیره میکنه ! (این Namespace رو فقط باید اضافه کنید بهش !( Imports TuxSoft.Treeview )

3. امکانات جدید :

عدم نیاز به گرفتن Object از کلاس
برگرداندن مقدار True و False در صورت انجام شدن کار یا نا موفق بودن عملیات !
ذخیره Node ها به همراه :

Name
NodeImageIndex
NodeSelectedImageIndex
NodeTag
NodeTooltip
NodeBackColor
NodeForeColor
NodeIndex
NodeName
NodeChecked
در نهایت چیزی بود که من جا انداخته بودم و مشکلی اگه داشت خوشحال میشم در جریانم بزارید .

نکته : در این Dll از امکانات Framework 3.5 استفاده شده و در فریم ورک های قدیمی کار نخواهد کرد .

مثال VB :

Imports TuxSoft.TreeView
Public Class Form1
Sub test()
'برای ذخیره درخت
TreeView1.SaveToFile(Address)
'برای بازگردانی درخت
TreeView1.LoadFromFile(Address)
End Sub
End Class

مثال C#‎:

using TuxSoft.TreeView;
public class Form1
{
public void test()
{
//برای ذخیره درخت
TreeView1.SaveToFile(Address);
//برای بازگردانی درخت
TreeView1.LoadFromFile(Address);
}
}

Alirezanet
جمعه 09 بهمن 1388, 02:05 صبح
نظر هم بدید ... !:ناراحت:

jahanmanesh
جمعه 09 بهمن 1388, 09:18 صبح
نظر هم بدید ... !:ناراحت:


سلام نميشد اسم هر نود و مكان عكس هر نود رو در يه فايل ذخيره كرد و بعد بازيابيشون كرد؟

ACorvinus
جمعه 09 بهمن 1388, 10:00 صبح
سلام نمیشد اسم هر نود و مکان عکس هر نود رو در یه فایل ذخیره کرد و بعد بازیابیشون کرد؟


هر Node ؟!!!!
اگه 100 تا Node داشتیم، یعنی 100 تا فایل؟!!!!

Alirezanet
جمعه 09 بهمن 1388, 17:30 عصر
سلام نمیشد اسم هر نود و مکان عکس هر نود رو در یه فایل ذخیره کرد و بعد بازیابیشون کرد؟
همه چی میشه ولی به قول دوستمون 100تا فایل که نمیشه درست کرد ... (یعنی فایده نداره )
این Dll کارش اینه که یه TreeView رو همونجوری که بود ذخیره و بازیابی میکنه ...

ACorvinus
جمعه 09 بهمن 1388, 17:47 عصر
همه چی میشه ولی به قول دوستمون 100تا فایل که نمیشه درست کرد ... (یعنی فایده نداره )
این Dll کارش اینه که یه TreeView رو همونجوری که بود ذخیره و بازیابی میکنه ...
که استقبال نشد !!! اگه میشد ورژن بعدیشو هم میذاشتم که Tag هر نود رو هم میشد ذخیره کرد (برای نگه داشتن اطلاعاتی خاص)


علیرضا جان، انتظار چندانی نداشته باش. تا کسی واقعا احتیاج نداشته باشه، سراغ اینجور چیزا نمیاد.

موفغق باشی.

mina.net
جمعه 09 بهمن 1388, 19:08 عصر
سلام
رفرنس رو اضافه کردم ، ولی چطور باید ازش استفاده کرد.
من برای ذخیره اطلاعات یک جدول ساده نیاز به ذخیر و بازیابی از XML دارم. ولی نمی دونم چطور. می شه کمک کنید؟

Alirezanet
یک شنبه 16 اسفند 1388, 18:06 عصر
یه سری مشکل داشت Dll قبلی که برطرف شد ...
یه نمونه برنامه هم ضمیمه کردم تا کسی خواست بتونه ازش استفاده کنه ...
برای اینکه دیر جواب دادم هم شرمنده !

دوستانی هم که دانلود کرده بودند دوباره فایل رو از بالا دریافت کنند (پست 1 )

danial82
پنج شنبه 27 خرداد 1389, 00:07 صبح
تو یکی از برنامه هام به چنین امکانی نیاز داشتم که از کامپوننتهای آماده استفاده کردم
و فکر اینکه خودم بنویسم رو اصلا نکردم هنوز امتحان نکردم و خیلی ممنون

metalzade
شنبه 29 خرداد 1389, 20:28 عصر
آقا خیلی ممنون، بنده خیلی دنبال همچین برنامه ای بودم، :قلب:

Alirezanet
سه شنبه 06 مهر 1389, 16:21 عصر
کلا من ساختار کلاس رو عوض کردم و نحوه استفاده از اون رو هم بالا توضیح دادم (در پست شماره 1 )
موفق باشید

Hadiir.net
چهارشنبه 04 اسفند 1389, 18:53 عصر
ممنون عالی بود چیزای زیادی ازش دستگیرم شد
اگه میشد یا بتونی یه کاری کنی که کل اطلاعات توی یه تیبل دیتابیس اکسس ذخیره کنه که دیگه عالیه بازم ممنونم.

ali.hojjati
یک شنبه 21 فروردین 1390, 09:57 صبح
اقا جون دمت گرم با حال بود حال دادی قربونت

HAMRAHSOFT.IR
یک شنبه 21 فروردین 1390, 12:10 عصر
ميشه از ديتا بس بخونه؟

Alirezanet
شنبه 27 اسفند 1390, 17:32 عصر
ميشه از ديتا بس بخونه؟

شدن که میشه خیلی هم ساده تر از این حرفها ! این بیشتر چون ساختار TreeView رو توی Xml به همون شکل نگه میداره براش 1 Dll نوشتم !

اگه میخواستید TreeView رو بریزید توی دیتابیس و برگردونید ساده تره ! بگید یه توضیح کوچیک میدم مشکلتون حل میشه !
موفق باشید

farbod61
دوشنبه 16 اردیبهشت 1392, 20:53 عصر
سسلام
خیلی عالی و کاربردی هستش
ممنونم
یک سوال داشتم
نمیشه بدون استفاده از سورس و از داخل برنامه به node و زیر مجموعه هاشون اضافه کرد؟

ali.hojjati
دوشنبه 23 اردیبهشت 1392, 13:58 عصر
علیرضا جان دست شما درد نکنه. فقط به عنوان یه عضو این سایت اومدم وظیفه ام رو تکمیل کنم. زیباد منتظر جواب یا نظر دیگران نباش. منم یه برنامه گذاشتم، جهت تولید کد های کاربا دیتابیس ولی کسی نظر آنچنانی نداد. فقط می خواستم بگم من فعلا برام کاربردی نداره ولی خسته نباشید. چون چیز بسیار کاربردی و جالبی هست.حتما اگر استفاده کردم و چیزی به نظرم رسید به شما اطلاع خواهم داد.

barzgarfathi
شنبه 08 تیر 1392, 01:23 صبح
شدن که میشه خیلی هم ساده تر از این حرفها ! این بیشتر چون ساختار TreeView رو توی Xml به همون شکل نگه میداره براش 1 Dll نوشتم !

اگه میخواستید TreeView رو بریزید توی دیتابیس و برگردونید ساده تره ! بگید یه توضیح کوچیک میدم مشکلتون حل میشه !
موفق باشید

ممنون میشم اگر مثالی با دیتابیس بزنید.

Alirezanet
شنبه 08 تیر 1392, 03:14 صبح
سلام
این پست خیلی قدیمیه ولی چون هنوز بازدید کننده داره , خوشحال میشم کمکتون کنم .
برای ذخیره یک ساختار درختی مانند TreeView در دیتابیس جدول شما باید دارای فیلد هایی مانند (ParentId - Id - Name) باشد.
فیلد Id یک کد خودکار تولید شده در رکورد شما میباشد که البته شما خودتون هم میتونید اون رو ایجاد کنید (PrimaryKey). از فیلد Name هم میتونید برای ذخیره عنوان Nodeها استفاده کنید و مهمترین گزینه ParentId میباشد که در آن id Nod والد را نگه میداریم. با انجام اینکار هر Node در یک ساختار درختی با استفاده از گزینه Parentid که id والد در آن قرار دارد در دیتابیس ذخیره میشود. و نود هایی را که والدی ندارند (Node Root) با Parentid 0 میتوانید در دیتابیس قرار دهید .
با انجام این کار با خواندن هر Node از دستابیس به زیر مجموعه های آن دسترسی خواهیم داشت . کافیست در Select خود Parentid را برابر با ID نود جاری قرار دهید تا زیر مجموعه های آن را بدست بیارید.

Eqbali
دوشنبه 21 تیر 1395, 16:27 عصر
سلام
این پست خیلی قدیمیه ولی چون هنوز بازدید کننده داره , خوشحال میشم کمکتون کنم .
برای ذخیره یک ساختار درختی مانند TreeView در دیتابیس جدول شما باید دارای فیلد هایی مانند (ParentId - Id - Name) باشد.
فیلد Id یک کد خودکار تولید شده در رکورد شما میباشد که البته شما خودتون هم میتونید اون رو ایجاد کنید (PrimaryKey). از فیلد Name هم میتونید برای ذخیره عنوان Nodeها استفاده کنید و مهمترین گزینه ParentId میباشد که در آن id Nod والد را نگه میداریم. با انجام اینکار هر Node در یک ساختار درختی با استفاده از گزینه Parentid که id والد در آن قرار دارد در دیتابیس ذخیره میشود. و نود هایی را که والدی ندارند (Node Root) با Parentid 0 میتوانید در دیتابیس قرار دهید .
با انجام این کار با خواندن هر Node از دستابیس به زیر مجموعه های آن دسترسی خواهیم داشت . کافیست در Select خود Parentid را برابر با ID نود جاری قرار دهید تا زیر مجموعه های آن را بدست بیارید.


بسیار ممنون از علیرضا بزرگوار
فقط مشکل من این است که وقتی می خواهیم یک جدول برای ذخیره کردن نودهای TreeView بسیازیم در صورتی که زیر شاخه های ما تا N ادامه داشته باشد آیا بازهم می شود با همین جدولی که دارای سه فیلد به نام های ParentId, Id, Name است کار کرد یا در این صورت باید فیلد های جدول زیاد شود.
اگر توضیحی بدهید بسیار ممنون می شوم
خیلی به این مطلب نیاز دارم.

Eqbali
دوشنبه 21 تیر 1395, 16:39 عصر
استاتید بزرگوار
دارم روی یه برنامه ای کار می کنم و در یک بخش آن لازم است که از TreeView استفاده کنم و آن را با یک جدول در دیتابیس متصل نمایم.
در این TreeView اولاً تعداد زیر شاخه های هر Node معلوم نیست و همین طور تعداد Node Root نیز معلوم نیست و کاربر در لحظه که نیاز شد آنها را اضافه می کند.
دوماً: وقتی کاربر شاخه اصلی یا زیر شاخه ها را اضافه می کند باید در جدول ذخیره شود و در treeView نمایش داده شود.
سوماً: ترتیب اضافه کردن شاخه اصلی یا زیر شاخه نیز معلوم نیست در زمان اجرا کاربر هر وقتی لازم شد شاخه اصلی اضافه می کند یا زیر شاخه اضافه می کند.
در این بخش گیر مانده ام نمی دانم ساختار جدول برای ذخیره نود های این treeview چگونه باشد و چگونه نودها را در آن ذخیره و بازیابی کنم.
اگر اساتید بزرگوار کمکم کنند بسیار سپاس گذارم

gilsoft
دوشنبه 21 تیر 1395, 17:36 عصر
در این بخش گیر مانده ام نمی دانم ساختار جدول برای ذخیره نود های این treeview چگونه باشد و چگونه نودها را در آن ذخیره و بازیابی کنم.
اگر اساتید بزرگوار کمکم کنند بسیار سپاس گذارم

سلام دوست عزیز

میتونی از پروژه‌ای که در ضمیمه گذاشتم استفاده کنی و ازش ایده بگیری .. مطمئنم که مشکل شما حل میشه

فقط بعد از اولین اجرا .. پروژه رو حتما Build کن

موفق باشید .....