ظاهرا تا بحال کسی درمورد tree view در اکسس صحبتی نکرده شاید این نمونه شروع خوبی برای استفاده دوستان باشه.
ظاهرا تا بحال کسی درمورد tree view در اکسس صحبتی نکرده شاید این نمونه شروع خوبی برای استفاده دوستان باشه.
آخرین ویرایش به وسیله sarami : یک شنبه 12 شهریور 1385 در 22:30 عصر
منی که نام شراب از کتاب می شستم
زمانه کاتب دکان می فروشم کرد.
ممنونم آقای سارمی - خیلی وقت بود تو ذهنم بود چطور می شه تو یه سازمان ، معاونت ، مدیریت ، اداره و ... بصورت درختی نمایش داده بشه ( وقتی رو معاونت کلیک می کنیم مدیریت مربوطه و وقتی رو مدیریت کلیک می کنیم اداره مربوطه و ... نمایش داده بشه) . حالا که لطف کردین فایل نمونه رو پیوست کردین اگه زحمتی نیست یه همچین جدولی با فرم مربوطه بسازین و برای من و دوستان علاقه مند ارسال نمائید .
البته طریقه ساخت فرم پیوست رو هم متوجه نشدم لطفاً مختصر توضیح بدین .
ضمن تشکر از جانب صارمی عزیز پیشنهاد می کنم نمونه ای که بر اساس جدول تنظیم میشه بگذارید .
شهر الکترونیک چیزی که همه بهش نیاز دارن و ما ایرانیها از همه نیازمند تر و در عین حال بی تفاوت تر به آن .
اینم یه فایل که از جدول خونده میشه اگه ایراد داره بذارید پای نا بلدی من
آخرین ویرایش به وسیله mohammadgij : سه شنبه 14 شهریور 1385 در 17:31 عصر
ضمن تشکر - اگه امکان داره طریقه ساختشو یه مقدار توضیح بدین
آخرین ویرایش به وسیله sarami : سه شنبه 14 شهریور 1385 در 17:26 عصر دلیل: لطفا به منظور تشکر کردن از کسی از دکمه مربوطه استفاده نمائید
سلام
چشم من توضیح میدم اما مثل شما دوستان نمی تونم فنی صحبت کنم چون مطالعاتم کمه.
اول بگم که من از یک جدول استفاده کردم و این ساختارم هم به این دلیل هستش. میشه از چند جدول استفاده کرد و ساختارتون(نمیدونم بهنر یا بدتر) رو عوض کنید
1) ساختار جدول
ببین دوست من ، اگر نگاه به جدول بکنی میبینی که من یه فیلد دارم به نام bintTakhsisCode که در حقیقت یه AutoNomber بود (آخه از SQL) کپی کردم. به ازای هر رکورد یه کد اختصاص داده شده.
یک فیلد دیگه وجود داره به نام intTakhsisValue که نشون دهنده سطح رکورد مثلا سطح اول که همون "تخصیص نقدینگی" با کد 0 ذخیره شده و سطح دوم به طور مثال "تخصیص مستقیم" با کد 1 و ...........
فیلد سوم هم bintParentTakhsisCode که مقدار پدر هر رکورد از فیلد bintTakhsisCode مربوط به پدر خوانده شده و در رکورد مذکور در هنگام ایجاد ، ذخیره میشه.
به طور مثال " برق آبی " که زیر مجموعه " تخصیص مستقیم " قرار می گیرد دارای bintParentTakhsisCode برابر با عدد (2) می باشد که اگر به رکورد " تخصیص مستقیم " مراجعه شود و فیلد bintTakhsisCode انرا نگاه کنید خواهید دید که این رکورد همان عدد(2) را داراست.
2)کد فرم:
از دستورات زیر فقط قسمت fnFillTree رو توضیح میدم. سایر دستورات مربوط به فرم من بوده در Adp که استفاده می کردم و اینجا کاربردی ندارند به جز قسمت lonArray که اونم ماله رنگهاست
Dim ctlControls As control
If adorstSelect.State = 1 Then adorstSelect.Close
adorstSelect.Open "Select * From tblTakhsisTree Where nvcYeard='1384'", CurrentProject.Connection, adOpenDynamic, adLockPessimistic
If Not adorstSelect.EOF Then
For Each ctlControls In Me.Controls
If ctlControls.ControlType = acTextBox Or ctlControls.ControlType = acComboBox Or ctlControls.ControlType = acCheckBox Then
ctlControls.Value = ""
End If
Next ctlControls
lonAraye(0) = RGB(0, 0, 0): lonAraye(1) = RGB(0, 0, 255): lonAraye(2) = RGB(0, 125, 0): lonAraye(3) = RGB(255, 0, 0)
lonAraye(4) = RGB(255, 0, 255): lonAraye(5) = RGB(105, 0, 0): lonAraye(6) = RGB(10, 205, 155): lonAraye(7) = RGB(128, 0, 0)
lonAraye(8) = RGB(0, 0, 160): lonAraye(9) = RGB(128, 0, 128): lonAraye(10) = RGB(128, 128, 64): lonAraye(11) = RGB(255, 128, 64)
lonAraye(12) = RGB(0, 128, 64): lonAraye(13) = RGB(0, 128, 255): lonAraye(14) = RGB(255, 128, 192): lonAraye(15) = RGB(255, 128, 192)
intRValue = 20
intGValue = 10
intBValue = 50
'*************** TreeView
Call fnFillTree
'*************** TreeView
End If
If adorstSelect.State = 1 Then adorstSelect.Close
در Function زیر
Function fnFillTree(Optional strPCode As String = "")
Dim intValue As Integer
'On Error Resume Next
If adorstSelectFill.State = 1 Then adorstSelectFill.Close
If strPCode = "" Then
adorstSelectFill.Open "Select * From tblTakhsisTree Where nvcYeard='1384' And bintParentTakhsisCode=" & intValue & " ORDER BY nvcPathTakhsisNo", CurrentProject.Connection, adOpenDynamic, adLockPessimistic
If Not adorstSelectFill.EOF Then
adorstSelectFill.MoveFirst
Do While Not adorstSelectFill.EOF
Set NdTakhsisTree = Me.trectlTakhsisTree.Nodes.Add(, , Trim("A" & Trim(Str(adorstSelectFill!bintTakhsisCode))), "(" & adorstSelectFill!nvcTakhsisNo & ")" & adorstSelectFill!nvcTakhsisTitle, 1)
If intValue <= 15 Then
NdTakhsisTree.ForeColor = lonAraye(intValue)
Else
Call fnLevelColor
NdTakhsisTree.ForeColor = RGB(RValue, GValue, BValue)
End If
adorstSelectFill.MoveNext
Loop
End If
If adorstSelectFill.State = 1 Then adorstSelectFill.Close
Else
Call fnAddNodeTree(strPCode)
End If
If adorstSelectFill.State = 1 Then adorstSelectFill.Close
End Function
strPCode ابتدا و برای بار اول خالی می باشد و در نتیجه فسمت اول دستور if اجرا شده و فقط رکورد " تخصیص نقدینگی" انتخاب شده و بوسیله
Set NdTakhsisTree = Me.trectlTakhsisTree.Nodes.Add(, , Trim("A" & Trim(Str(adorstSelectFill!bintTakhsisCode))), "(" & adorstSelectFill!nvcTakhsisNo & ")" & adorstSelectFill!nvcTakhsisTitle, 1)
رکورد اول به Tree اضافه می شود.
, Trim("A" & Trim(Str(adorstSelectFill!bintTakhsisCode))),
قسمت بالا در هنگام اضافه کردن در حقیقت همان ایجاد Code است یعنی شما به اضای هر رکوردی که در Tree نشان می دهید یک Key ما به ازا خواهید داشت . برای این مورد " تخصیص نقدینگی "دارای کد "A1" است.یعنی A بعلاوه bintTakhsisCode مربوط به رکورد " تخصیص نقدینگی "
و کدهای زیر مربوط به تخصیص رنگ می باشند
If intValue <= 15 Then
NdTakhsisTree.ForeColor = lonAraye(intValue)
Else
Call fnLevelColor
NdTakhsisTree.ForeColor = RGB(RValue, GValue, BValue)
End If
و سطح اول ایجاد میشود.
سپس بر روی هر سطح که DblClick کنید سطح بعدی از جدول انتخاب شده و با توجه به کلید سطح خود و bintParentTakhsisCode در Tree با استفاده از کد
Call fnAddNodeTree(strPCode)
ایجاد میشود.
برنامه ای که جناب mohammadgij گذاشته اند اجرا نمیشود کتابخانه مورد استفاده پیدا نمیکند
آخرین ویرایش به وسیله karmand : پنج شنبه 16 شهریور 1385 در 06:47 صبح
جزوه آموزشی کار با کنترل TreeView
از دوستان کسی اگر نمونه برنامه نمایش در ختی فیلد ها جهت نمایش کد و نام یا شرح و ایجاد آن اگر داشته باشد و آپلود نماید متشکرم
سلام
من برنامه ای نوشتم که تو یکی از فرماش اطلاعات رو به صورت درختی نمایش میده. فقط اینکه حجم برنامه زیاده البته امکان فرستادن بانک هم وجود نداره . اگر خواستی بگو که تنها این فرمشو برات بفرستم.
سلام
من آموزش آقای Fazaeli را دانلود و مطالعه کردم و توانستم یک tree view درست کنم که هیچ اشکالی نداشت .
اما من میخواهم وقتی روی هر عنوان در هرشاخه دابل کلیک میکنم نام و کد آن در جای دیگری از یک تیبل ذخیره شود
یعنی نیازی نباشد که در هر رکورد جدید آن عنوان را مجددا تایپ کنم
البته این هم بگم که طریقه استفاده از Lookup wizard و ایجاد منوی پایین آمدنی رامیدانم
اما این tree view باحالتره
کسی نیستند ، جواب مارا بدهند
سلام به همگی
این نمونه فایل اکسس را یه نگاهی بندازید ممنون میشم
با سلام
از دوستان خواهش می کنم کاربرد نمایش درختی داده را توضیح دهید و در صورت امکان آیا امکان دارد با این روش زیر شاخه را فرم قرار داد و با کلیک بر روی زیر شاخه ها فرم و یا گزارش خاصی را باز نمود . با تشکر
با سلام
دوستان عزیز اگر توضیحات را در مورد کاربرد نمایش درختی داده ها بدهید تشکر می شود و در صورت امکان آیا می شود زیر شاخه را وقتی کلیک نمودیم فرم و یا گزارش خاصی باز شود.مجددا تشکر می شود.
با سلام
خواهش می کنم دوستان عزیز کاربرد نمایش درختی داده ها را توضیح دهید و آیا امکان دارد زیر شاخه ها را فرم قرار داد و با کلیک بر روی زیر شاخه فرم و یا گزارش خاصی باز شود . با تشکر
با سلام
دوستان عزیز خواهش می کنم توضیحاتی در در مورد کاربرد نمایش درختی داده ها بدهید و آیا امکان دارد که زیر شاخه ها را وقتی کلیک می کنیم فرم و یا گزارش خاصی باز شود . با تشکر
با سلام
لطفاً کاربرد نمایش درختی داده ها راتوضیح دهید و آیا می توان با کلیک بر روی زیر شاخه ها فرم و یا گزارش خاصی باز شود . با تشکر
با سلام
ضمن تشکر از تمامی اساتید . آیا راهی دارد ترسیم این نمودار درختی بصورت افقی هم بشود .؟ (همزمان با گسترش درختی عمودی آن ) با نمونه باشد بهتر است
با سلام
اساتید گرامی واقعاً سئوال سختیه و راهنمایی نداره ؟!
لطفا راهنمایی فرمایید راه اول رو رفتم توضیحات خطی هم مورد نیاز است
سلام
برای آخرین بار !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
با سلام
ببخشید مجبور شدم برای رسیدن به پاسخ این تاپیک را بیاورم صفحه اول !
آیا جوابی برای بنده یافت نمیشود .
دوباره تکرار میکنم در این آموزش نمودار بصورت درختی و گره های گسترشی میشود ایا راهی وجود دارد که با گسترش این نمودار درختی بطور همزمان ، بصورت خطی هم دید ؟
مثلا :
+ شرکت
- _ _ _ _ مدیر عامل
_ _ _ _ منشی
شرکت -- مدیر عامل -- منشی
یک نمونه از تری ویویی که سه جدول با هم رابطه دارند هم قرار بدید.
با تشکر
من این نمونه را خودم درست کردم چون خواستم کارم را راه بندازم کمی شلوغه ، پس ببخشید.
گفتم شاید مفید باشد.
اين برنامه را ميشه در اكسس پرجكت اجرا كرد يا خير كسي نمونه در اين رابط داره
آخرین ویرایش به وسیله HAMRAHSOFT.IR : دوشنبه 06 خرداد 1387 در 10:13 صبح
بله این امکان هست که در اکسس پروجکت کار بکنه . البته الان وقت نداشتم که کاملش کنم. ولی نسبت به مثالهای قبلی شما می تونید خودتون آنرا بنویسید.
سلام
اگر در زمینه ی کار کردن با این ابزار به تسلط و تجربه ی کافی برسید، قادر به انجام انواع تکنیکها خواهید بود:
بطور کلی برای ایجاد ارتباط با جداول یا پرس و جو ها (چه اکسس معمولی یا اکسس پروجکت) با کمک Recordset و انجام پیمایش بین رکوردها، شاخه ها و زیر شاخه های آنرا می توانید اضافه کنید.
با کمک ImageList امکان تعریف آیکون برای هر شاخه را خواهید داشت
با توابع api می توانید آنرا راست چین نمایید
بجای Chekbox های خود ابزار می توانید از آیکونهای شکیل تر برای علامت "تیک" استفاده کنید
می توانید Treview خود را بصورت آنلاین و لحظه ای با جدول مرتبطش لینک کنید (هر باری که Node ی باز می شود Child های آنرا Remove کنید و بازخوانی کنید)
هر شاخه ای را که دوست داشتید با کمک کد نویسی باز یا بسته کنید، حذف کنید، آیکون آنرا عوض کنید، رنگ نوشته ی متن آنرا تغییر دهید یا بصورت Bold در بیاورید و ...
اینم یک نمونه بدون کار با اطلاعات.
با سلام
آيا ممكنه كه Tree View را از راست به چپ داشته باشيم ؟
سلام
این کد را بالای فرم قسمت General وارد کنید
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const WS_EX_LAYOUTRTL = &H400000
Private Const GWL_EXSTYLE = -20
در Form_Load هم این کد را وارد کنید:
SetWindowLong TreeView1.hwnd, GWL_EXSTYLE, GetWindowLong(TreeView1.hwnd, GWL_EXSTYLE) Or WS_EX_LAYOUTRTL
با این نوع راست چین کردن آیکون های Treeview وارونه نمایش داده می شوند، برای حل این مشکل، آیکون هایتان را با نرم افزارهای مخصوص آیکون سازی مثل Icon workshop وارونه کنید و به ImageList بدهید تا در Treeview بصورت صحیح به نمایش در بیاید.
دوستان عزيز فايلي كه در صفحه يك Upload كردم رو تست كردم كار ميكنه. اما به يك OCX نياز داره كه بايد در Reference ها ادد بشه اسم اونم اينه MSCOMCTL.OCX
اگر كار ادد نكنيد از تعريف Node اشكال ميگيره
مطلب جديدي بود تشکر
با سلام
تب ریپورت برنامه اکسس من اشکال پیدا کرده و ویزارد آن نیز کار نمی کند و اولین گزینه آن نیز اصلاً کار نمی کند و گزارش هائی را هم که داشتم پاک شده لطفاً اگر از دوستان کسی به این مشکل برخورد کرده روش حل آنرا بفرمائید با حذف آفیس و نصب مجدد نیز مشکل برطرف نمی شود (نیاز بسیار فوری) با تشکر فراوان
با سلام
مثالی برای treeview راست چین
سلام،
یک FlatTable داریم با فیلد های زیر :
Id
Desc
ParentId
که یک اطلاعات یک درخت رو در این جدول ذخیره میکنیم.
چطوری میشه اطلاعات این جدول رو (که یک درخت بصورت n لایه ای هست) در یک گزارش نمایش داد ؟!
متشکرم