tefos666
شنبه 22 تیر 1387, 21:30 عصر
سلام دوستان
من یه فرم دارم که توش یه درختواره گذاشتم که گزارشات سیستمم رو لود میکنه و این درختواره نا محدود هستش از 3 سطح بیشتره چون یه فرم دیگه دارم که کاربر میتونه شاخه اضافه کنه و گزارش حالا درخت رو قابلیت چک باکس دار کردن گذاشتم و وقتی کاربر رو شاخه کلیک کنه تمام گزارشات زیر شاخش چک میخوره و اونا تو دیتابیسم ذخیره میشه حالا 2 تا مشکل دارم یک :
چه جور سلکتی بزنم و یا چه دستوری که وقتی رو یه دکمه کلیک کردم بره از تو دیتابیسم همونا که چک خورده رو لود کنه و دوباره رو درخت نشون بده (نمایش دسترسی کاربر)
دو : من با ذخیره خود شاخه ها مشکل دارم یعنی فکر کنم مشکل تو node.key باشه نمیدونم چجوری استفادش کنم یعنی وقتی رو شاخه کلیک میکنم میخوام ذخیره کنم error میده ولی تو ذخیره خود زیر شاخه هام مشکلی ندارم
برای اینکه دوستان هم از کد اگه قابل دیدن استفاده کنند و هم منو راهنمایی کنند کدش رو میزارم اینجا چون تو سایت که میدیدم خیلی ها با این مشکل بی جواب مونده بودن
یه درخت رو فرمتون بزارید و با دستور زیر اونو چک باکس دار کنید در اینجا اسم درخت من TreeR2 هستش
TreeR2.Checkboxes = True
کد اول برای اینه که وقتی روی چک باکسی کلیک کردین تمام زیر مجموعه هاش تیک بخوره و بلعکس
Private Sub CheckNodes(ByRef oParentNode As Node, ByVal bChecked As Boolean)
Dim oNode As Node
' Get the first child node
Set oNode = oParentNode.Child
' Loop through the child nodes of this node
' until there are none left...
Do While Not oNode Is Nothing
' Check/Uncheck the node
oNode.Checked = bChecked
' Call this function again for the
' child node, so that it's child nodes
' can get checked/unchecked.
CheckNodes oNode, bChecked
' Get the next child node of this node
Set oNode = oNode.Next
Loop
End Sub
ضمنا من یک کمبو باکس دارم که اطلاعات نام کاربرام رو لود میکنه
خوب یه دکمه گذاشتم که ثبت اطلاعات رو بکنه که رو شاخه هام خطا میده ولی گزارشات رو ثبت میکنه
Private Sub cmdLoad_Click()
For k = 1 To TreeR2.Nodes.Count
If TreeR2.Nodes(k).Checked = True Then
خودم حدس میزنم گیرم رو این خط باشه
Call prcRecordset(Rs, "INSERT INTO raccess(u, r)VALUES('" + Trim(cmbuser.BoundText) + "', '" + Right(TreeR2.Nodes(k).key, Len(TreeR2.Nodes(k).key) - 4) + "')")
End If
Next
'End If
'End With
MsgBox "دسترسی برای کاربر ثبت شد"
PushButton1.Enabled = False
cmdLoad.Enabled = False
End Sub
خوب دوستان من اینا رو گفتم لطفا اگه کسی میتونه کمکم کنه بگه چجوری دوباره ذخیره شده ها رو لود کنم (نمایش دسترسی) و مشکل با شاخه ها رو چجوری حل کنم
توضیح : من خودم یکسری تابع واسه کانکت شدن به دیتابیس نوشتم مثل اون RS و prcRecordset که کارم رو راحت کنه
http://barnamenevis.org/forum/attachment.php?attachmentid=20302&stc=1&d=1215883769
من یه فرم دارم که توش یه درختواره گذاشتم که گزارشات سیستمم رو لود میکنه و این درختواره نا محدود هستش از 3 سطح بیشتره چون یه فرم دیگه دارم که کاربر میتونه شاخه اضافه کنه و گزارش حالا درخت رو قابلیت چک باکس دار کردن گذاشتم و وقتی کاربر رو شاخه کلیک کنه تمام گزارشات زیر شاخش چک میخوره و اونا تو دیتابیسم ذخیره میشه حالا 2 تا مشکل دارم یک :
چه جور سلکتی بزنم و یا چه دستوری که وقتی رو یه دکمه کلیک کردم بره از تو دیتابیسم همونا که چک خورده رو لود کنه و دوباره رو درخت نشون بده (نمایش دسترسی کاربر)
دو : من با ذخیره خود شاخه ها مشکل دارم یعنی فکر کنم مشکل تو node.key باشه نمیدونم چجوری استفادش کنم یعنی وقتی رو شاخه کلیک میکنم میخوام ذخیره کنم error میده ولی تو ذخیره خود زیر شاخه هام مشکلی ندارم
برای اینکه دوستان هم از کد اگه قابل دیدن استفاده کنند و هم منو راهنمایی کنند کدش رو میزارم اینجا چون تو سایت که میدیدم خیلی ها با این مشکل بی جواب مونده بودن
یه درخت رو فرمتون بزارید و با دستور زیر اونو چک باکس دار کنید در اینجا اسم درخت من TreeR2 هستش
TreeR2.Checkboxes = True
کد اول برای اینه که وقتی روی چک باکسی کلیک کردین تمام زیر مجموعه هاش تیک بخوره و بلعکس
Private Sub CheckNodes(ByRef oParentNode As Node, ByVal bChecked As Boolean)
Dim oNode As Node
' Get the first child node
Set oNode = oParentNode.Child
' Loop through the child nodes of this node
' until there are none left...
Do While Not oNode Is Nothing
' Check/Uncheck the node
oNode.Checked = bChecked
' Call this function again for the
' child node, so that it's child nodes
' can get checked/unchecked.
CheckNodes oNode, bChecked
' Get the next child node of this node
Set oNode = oNode.Next
Loop
End Sub
ضمنا من یک کمبو باکس دارم که اطلاعات نام کاربرام رو لود میکنه
خوب یه دکمه گذاشتم که ثبت اطلاعات رو بکنه که رو شاخه هام خطا میده ولی گزارشات رو ثبت میکنه
Private Sub cmdLoad_Click()
For k = 1 To TreeR2.Nodes.Count
If TreeR2.Nodes(k).Checked = True Then
خودم حدس میزنم گیرم رو این خط باشه
Call prcRecordset(Rs, "INSERT INTO raccess(u, r)VALUES('" + Trim(cmbuser.BoundText) + "', '" + Right(TreeR2.Nodes(k).key, Len(TreeR2.Nodes(k).key) - 4) + "')")
End If
Next
'End If
'End With
MsgBox "دسترسی برای کاربر ثبت شد"
PushButton1.Enabled = False
cmdLoad.Enabled = False
End Sub
خوب دوستان من اینا رو گفتم لطفا اگه کسی میتونه کمکم کنه بگه چجوری دوباره ذخیره شده ها رو لود کنم (نمایش دسترسی) و مشکل با شاخه ها رو چجوری حل کنم
توضیح : من خودم یکسری تابع واسه کانکت شدن به دیتابیس نوشتم مثل اون RS و prcRecordset که کارم رو راحت کنه
http://barnamenevis.org/forum/attachment.php?attachmentid=20302&stc=1&d=1215883769