کمک در طراحی ساختار درختی
دوستان ممنون میشم کمک کنید راجب ساختار درختی. مثلا اسم کشور ها که زیر شاخه هر کدوم اسم شهر ها و زیر شاخه شهر ها روستاها باشه.
کلا هم جدول مورد نیاز هم نحوه کار باهاش. با tree view یا هر چیز دیگه :ناراحت:
نقل قول: کمک در طراحی ساختار درختی
ببن توم اسم شهرها یا هر ایتمی برای خودش یه کد یا id داره حالا تو باید یه فیلد پدر هم داشته باشی مثلا بگی مازندارن کدش هست 1001 ساری کدش 2001 ولی کد پدر ساری هست 1001 یا قائمشهر کدش هست 2002 کد پدرش هست 1001 دقت کنی ساری و قائمشهر میشن زیر مجموعه مازندران چون پدرشون گفتیم مازندرانه حالا A مثلا کد پدرش میشه 2002 یعنی A زیر مجموعه قائمشهر میشه.
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
ebrahim.rayatparvar
ببن توم اسم شهرها یا هر ایتمی برای خودش یه کد یا id داره حالا تو باید یه فیلد پدر هم داشته باشی مثلا بگی مازندارن کدش هست 1001 ساری کدش 2001 ولی کد پدر ساری هست 1001 یا قائمشهر کدش هست 2002 کد پدرش هست 1001 دقت کنی ساری و قائمشهر میشن زیر مجموعه مازندران چون پدرشون گفتیم مازندرانه حالا A مثلا کد پدرش میشه 2002 یعنی A زیر مجموعه قائمشهر میشه.
خب درسته اما تو پیاده سازیش موندم.:افسرده: مثلا وقتی سلکت کردم نمیدونم چطوری گره های درخت رو ایجاد کنم.
نقل قول: کمک در طراحی ساختار درختی
اگه میخوای توی صفحات وب پیاده سازی کنی میتونی از jstree استفاده کنی بنظر من ابزار ققدرتمندیه برای تشکیل درخت
برای جدول هم همنطور که دوستمون گفت میتونی از ساختار parent child استفاده کنی
یه نگاهی به لینک زیر بنداز
https://www.jstree.com/
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
meysam_online2012
اگه میخوای توی صفحات وب پیاده سازی کنی میتونی از jstree استفاده کنی بنظر من ابزار ققدرتمندیه برای تشکیل درخت
برای جدول هم همنطور که دوستمون گفت میتونی از ساختار parent child استفاده کنی
یه نگاهی به لینک زیر بنداز
https://www.jstree.com/
نه با وین فرم کار میکنم . البته یه تابع بازگشتی پیدا کردم و تونستم تو درخت ترسیم کنم.
private void PopulateTreeView(DataTable dtParent, int parentId, TreeNode treeNode)
{
foreach (DataRow row in dtParent.Rows)
{
TreeNode child = new TreeNode
{
Text = row["Name"].ToString(),
Value = row["Id"].ToString()
};
if (parentId == 0)
{
TreeView1.Nodes.Add(child);
DataTable dtChild = this.GetData("SELECT Id, Name FROM VehicleSubTypes WHERE VehicleTypeId = " + child.Value);
PopulateTreeView(dtChild, int.Parse(child.Value), child);
}
else
{
treeNode.ChildNodes.Add(child);
}
}
}
الان به نظرتون کامپوننتی هست که بشه این درخت رو به صورت شکلی که تو نرم افزار ویزیو رسم میشه، رسم کرد؟
یا روش دیگه ای
نقل قول: کمک در طراحی ساختار درختی
به نظرم با treeview میشه اینکارو کرد
توی toolbox هستش میتونی ازش استفاده کنی
این لینکم توضیح داده چطور ایتم اضافه کنی
https://msdn.microsoft.com/en-us/lib...(v=vs.71).aspx
1 ضمیمه
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
meysam_online2012
مهندس جان ببینید من تو طراحی جدول این موندم. اگه امکانش هست راهنمایی کنید.
ضمیمه 145692
نقل قول: کمک در طراحی ساختار درختی
یعنی تو طراحی جدولش مشکل دارین؟ خب اینکه چیز ساده ایه، اینم ساختار جدولاتون:Country table: Id, Name
States table: Id, Name, CountryId
Cities table: Id, Name, StateId
Areas table: Id, Name, CityId
این جدولا بصورت کاملا ساده با سه تا فیلد پیاده سازی شدن، شما میتونی هر فیلدی که دلت خواست رو بهشون اضافه کنی، فقط میمونه تابع انتشار درخت که اونم پیدا کردین و با یکم دستکاری، به چیزی که مدنظرتون هست میرسین
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
mr.sirwan
یعنی تو طراحی جدولش مشکل دارین؟ خب اینکه چیز ساده ایه، اینم ساختار جدولاتون:
Country table: Id, Name
States table: Id, Name, CountryId
Cities table: Id, Name, StateId
Areas table: Id, Name, CityId
این جدولا بصورت کاملا ساده با سه تا فیلد پیاده سازی شدن، شما میتونی هر فیلدی که دلت خواست رو بهشون اضافه کنی، فقط میمونه تابع انتشار درخت که اونم پیدا کردین و با یکم دستکاری، به چیزی که مدنظرتون هست میرسین
ممنون بخاطر جواب مفیدتون. فقط اون تابع تا دو سطح جواب منو میده .
:افسرده:
اگه راهی میدونید ممنون میشم راهنماییم کنید.
1 ضمیمه
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
رامین مرادی
ممنون بخاطر جواب مفیدتون. فقط اون تابع تا دو سطح جواب منو میده .
:افسرده:
اگه راهی میدونید ممنون میشم راهنماییم کنید.
من خودم همین کارو با جدول parent child انجام دادم
کلا یه جدول میسازی
region_Table:id,Name,Parent_id,Region_type
گزینه های id و name که مشخص هستن parent id شماره منطقه بالاتره که باید allow null باشه و type هم نوع منطقه هستش که میتونه کشور استان شهرستان و... باشه
شما کافیه کشور ایران که وارد میکنی رو parent رو null بذاری یه حلقه درست کنی که از null شروع کنه به اضافه کردن به درخت و مرحله دو فیلد هایی که parent برابر با id فیلد اول هست رو اضافه کنه به همین ترتیب.
اینم تصویره درختیه که خودم با همین روش پیاده کردم
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
meysam_online2012
من خودم همین کارو با جدول parent child انجام دادم
کلا یه جدول میسازی
region_Table:id,Name,Parent_id,Region_type
گزینه های id و name که مشخص هستن parent id شماره منطقه بالاتره که باید allow null باشه و type هم نوع منطقه هستش که میتونه کشور استان شهرستان و... باشه
شما کافیه کشور ایران که وارد میکنی رو parent رو null بذاری یه حلقه درست کنی که از null شروع کنه به اضافه کردن به درخت و مرحله دو فیلد هایی که parent برابر با id فیلد اول هست رو اضافه کنه به همین ترتیب.
اینم تصویره درختیه که خودم با همین روش پیاده کردم
شرمنده اصلا متوجه نشدم. اگه امکانش هست سورس یا نمونه کد بدین :ناراحت:
تنها بحث پر کردن نیست . بعد امکان درج هم برا خودش مسئله ای هست . کلا در این باره صفر صفر هستم بلد نیستم با تری ویو کار کنم :گریه:
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
رامین مرادی
شرمنده اصلا متوجه نشدم. اگه امکانش هست سورس یا نمونه کد بدین :ناراحت:
تنها بحث پر کردن نیست . بعد امکان درج هم برا خودش مسئله ای هست . کلا در این باره صفر صفر هستم بلد نیستم با تری ویو کار کنم :گریه:
درج که مساله ای نداره کیلک راست میکنی منو باز میشه id انتخاب شده رو میگیری و زیر مجموعش گره اضافه میکنی
سعی میکنم تا امشب کدشو بنویسم اپلود کنم واست
از ef استفاده می کنی؟
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
meysam_online2012
درج که مساله ای نداره کیلک راست میکنی منو باز میشه id انتخاب شده رو میگیری و زیر مجموعش گره اضافه میکنی
سعی میکنم تا امشب کدشو بنویسم اپلود کنم واست
از ef استفاده می کنی؟
ممنون دوست عزیز.:قلب::لبخندساده:
نه من با ado.net کد میزنم.
1 ضمیمه
نقل قول: کمک در طراحی ساختار درختی
ببخش دوست عزیز اگه طول کشید چند روزی درگیر کار بودم شرمنده
اینم فایل پروژه
نقل قول: کمک در طراحی ساختار درختی
سلام
اگر از SQLSever بالای 2005 استفاده می کنید نیازی به برنامه نویسی سمت #C ندارید با CTE اینکار را انجام دهید در اینترنت سرچ کنید با چند خط کد ساده SQL درخت با هر سطح را فقط با سه فیلد ساده شبیه سازی کنید :
کد نود / کد پدر / عنوان نود
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
ASKaffash
سلام
اگر از SQLSever بالای 2005 استفاده می کنید نیازی به برنامه نویسی سمت #C ندارید با CTE اینکار را انجام دهید در اینترنت سرچ کنید با چند خط کد ساده SQL درخت با هر سطح را فقط با سه فیلد ساده شبیه سازی کنید :
کد نود / کد پدر / عنوان نود
من با 2014 کار میکنم. ممنون بخاطر راهنماییتون من خودم سرچ میکنم اما اگه شما هم لینکی دارید ممنون میشم اینجا بنویسید
نقل قول: کمک در طراحی ساختار درختی
دوستان ممنون میشم در مورد CTE برای ایجاد ساختار درختی که در پست 7 نشون دادم کمکم کنید.
نقل قول: کمک در طراحی ساختار درختی
سلام
یک کدی شبیه این لازم دارید :
With MyCTE(mPK,mFK) As
(
Select PK,FK
From MyTree
Where FK=0
Union All
Select PK=PK,FK=FK
From MyTree
Where FK=mPK
)
Select *
From MyCTE
نقل قول: کمک در طراحی ساختار درختی
نقل قول:
نوشته شده توسط
ASKaffash
سلام
یک کدی شبیه این لازم دارید :
With MyCTE(mPK,mFK) As
(
Select PK,FK
From MyTree
Where FK=0
Union All
Select PK=PK,FK=FK
From MyTree
Where FK=mPK
)
Select *
From MyCTE
خب من مبتدی هستم و ممنون میشم نحوه ارتباط این با برنامه م رو هم توضیح بدین. کلا چجوری پیادش کنم
نقل قول: کمک در طراحی ساختار درختی
سلام
این موضوع مربوط به بخش SQLServer است ولی کلی :
شما یک جدول بنام MyTree سه فیلدی شامل Pk نود (همان کلید جدول) , Pk پدر (همان Fk) و نام آیتم مورد نظر ایجاد کنید و یک SP بنویسید که شامل دستور ارائه شده باشد خروجی این دستور کل درخت شما خواهد بود