اذهب الي المحتوي
أوفيسنا

تعديل على الشجرة TreeView


الردود الموصى بها

اسف جدا

استاذنا جعفر

استاذنا ابو محمد

علي التاخير في الرد وقد كنت مسافر وغير موجود

وانا احدثكم من الموبيل الان

سوف اشاهد المرفقين وارد لكم خبر

شكرا لكم تعبتكم معي

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

اسف جدا على التاخير فى الرد على حضرتكم حيث كنت مشغول جدا

اولا: اشكركم جزيلا على المرفقين وخصوصا مرفق استاذنا جعفر فهو مرفق جميل جدا من حيث تغيير اتجاه الشجرة

 

ثانيا اريد  تعديل اخر بسيط هو (انظر الصورة)

post-140430-0-02622000-1430153824_thumb.

اريد عند النقر على اى سجل بالشجرة ان يظهر هذا السجل فى مربع نص داخل النموذج

بمعنى عند النقر على السجل الاب اللى هو مثلا اسمه (الشئون الادارية) يظهر فى مربع نص فى نفس النموذج يسمى المجلد الرئيسي

وعند النقر على السجل اللابن هو مثلا (الاجازات الاعتيادية _ من الشئون الادارية) يظهر فى مربع نص فى نفس النموذج يسمى الملف الفرعى

لاننى سوف اقوم بربط الملف الفرعى هذا بنموذج فرعى ايضا داخل النموذج خاص بالوثائق

يارب اكون وفقت فى الشرح

وهو موضح بالصورة اكثر وبالمرفق

بارك الله فيكم فعلا تعبتكم جدا معي

 

 

 

 

 

54.TreeView_RTL.rar

رابط هذا التعليق
شارك

وعليكم السلام  :smile:

 

ايش رايك اعلمك كيف تصيد بدل ما اعطيك سمكة  :smile:

 

في احد مواضيعي السابقة ، تعمقت في الاختيارات الموجودة عندنا عند النقر على اي من مكونات الشجرة ،

لذا ، في الكود على النقر على الشجرة ، اكتب هذا الكود:

On Error Resume Next
Debug.Print "node.Child; " & Node.Child
Debug.Print "node.Children; " & Node.Children
Debug.Print "node.Expanded; " & Node.Expanded
Debug.Print "node.FirstSibling; " & Node.FirstSibling
Debug.Print "node.FullPath; " & Node.FullPath
Debug.Print "node.Index; " & Node.Index
Debug.Print "node.Key; " & Node.Key
Debug.Print "node.LastSibling; " & Node.LastSibling
Debug.Print "node.Next; " & Node.Next
Debug.Print "node.Parent; " & Node.Parent
Debug.Print "node.Previous; " & Node.Previous
Debug.Print "node.Root; " & Node.Root
Debug.Print "node.Selected; " & Node.Selected
Debug.Print "node.Sorted; " & Node.Sorted
Debug.Print "node.Tag; " & Node.Tag
Debug.Print "node.Text; " & Node.Text
Debug.Print "----------------------"

وتأكد بانك فتحت نافذة النتائج (النافذة في اسفل VBA):

post-142414-0-08149200-1430155367_thumb.

 

 

فكلما نقرت على الشجرة ، على طول اذا لتلك النافذة وشاهد النتيجة ، وعلى اساسها ستعرف الامر الصحيح للوصول لما تريد  :smile:

وإحنا في الخدمة بعد محاولاتك  :smile:

 

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم

بالطبع استاذنا جعفر اريد ان اتعلم واستفيد ةلا اخفيك اننى كل تلك المدة السابقة كنت ادرس الكود واتعلم منه

 

ولكننى لا افهم ماذا تقصد فى الحقيقة

ممكن شرح اكثر او مرفق

بارك الله فيك

رابط هذا التعليق
شارك

تفضل  :smile:

 

انا وضعت الكود التالي في كود النموذج:


Private Sub TreeView1_NodeClick(ByVal Node As Object)
On Error GoTo err_TreeView1_NodeClick

'lblItemCode.Caption = ""
'If Node.Key <> "Root" Then
'   lblItemCode.Caption = Mid(Node.Key, InStr(Node.Key, "_") + 1)
'End If
'lblPath.Caption = Node.FullPath

'    Dim colon As Integer
    
'    colon = InStr(Node.Text, ":")
'    Me.txt3 = Mid(Node.Text, 1, colon - 1)
'    Me.Txt4 = Mid(Node.Text, colon + 1)
    
'    colon = InStr(Node.Child, ":")
'    If colon = 0 Then
'        Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children
'        Me.txt1 = ""
'    Else
'        Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children
'    End If

On Error Resume Next
Debug.Print "node.Child; " & Node.Child
Debug.Print "node.Children; " & Node.Children
Debug.Print "node.Expanded; " & Node.Expanded
Debug.Print "node.FirstSibling; " & Node.FirstSibling
Debug.Print "node.FullPath; " & Node.FullPath
Debug.Print "node.Index; " & Node.Index
Debug.Print "node.Key; " & Node.Key
Debug.Print "node.LastSibling; " & Node.LastSibling
Debug.Print "node.Next; " & Node.Next
Debug.Print "node.Parent; " & Node.Parent
Debug.Print "node.Previous; " & Node.Previous
Debug.Print "node.Root; " & Node.Root
Debug.Print "node.Selected; " & Node.Selected
Debug.Print "node.Sorted; " & Node.Sorted
Debug.Print "node.Tag; " & Node.Tag
Debug.Print "node.Text; " & Node.Text
Debug.Print "----------------------"

Exit Sub
err_TreeView1_NodeClick:

    If Err.Number = 91 Then
        colon = 0
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Sub

رجاء مشاهدة هذا المقطع قبل البدء في قراءة التالي:

 

54..gif

.

1. النافذة تحت الكود كانت فاضية ،

2. نقرنا في النموذج على "الحفظ العام" ،

3. رجعنا للكود ولاحظنا النتائج النقر هي:

node.Child; الصادر
node.Children; 2
node.Expanded; True
node.FirstSibling; الحفظ العام
node.FullPath; جميع الاقسام-الحفظ العام
node.Index; 2
node.Key; 
node.LastSibling; الشئون الهندسية
node.Next; الشئون الادارية
node.Parent; جميع الاقسام
node.Root; جميع الاقسام
node.Selected; True
node.Sorted; False
node.Tag; Level1
node.Text; الحفظ العام
----------------------

4. سؤالك:

اقتباس

 

 

اريد عند النقر على اى سجل بالشجرة ان يظهر هذا السجل فى مربع نص داخل النموذج

 

فنجد ان جواب سؤالك هو في الكود:

node.FirstSibling; الحفظ العام

او في

node.FullPath; جميع الاقسام-الحفظ العام

او في

node.Text; الحفظ العام

5. ولما نقرنا على "الصادر" ،

6. كانت النتيجة:

node.Child; 4
node.Children; 1
node.Expanded; False
node.FirstSibling; الصادر
node.FullPath; جميع الاقسام-الحفظ العام-الصادر
node.Index; 3
node.Key; 
node.LastSibling; الوارد
node.Next; الوارد
node.Parent; الحفظ العام
node.Root; جميع الاقسام
node.Selected; True
node.Sorted; False
node.Tag; Level2
node.Text; الصادر
----------------------

فنجد ان القيمة في:

node.FirstSibling; الصادر

او في 

node.FullPath; جميع الاقسام-الحفظ العام-الصادر

او في 

node.Text; الصادر

وعلى هذا المنوال ، تستطيع ان تتوصل الى ما تريد من هذه المعلومات  :smile:

 

ومثل ما اخبرتك في البداية ، هذا الكود من احد مشاركاتي السابقة ، لذا ، فانك تستطيع ان تستخدم الكود التالي (طبعا بعمل تغييرات بسيطة على المسميات) لإستخراج اي قيمة من الكود اعلاه:

'    Dim colon As Integer
    
'    colon = InStr(Node.Text, ":")
'    Me.txt3 = Mid(Node.Text, 1, colon - 1)
'    Me.Txt4 = Mid(Node.Text, colon + 1)
    
'    colon = InStr(Node.Child, ":")
'    If colon = 0 Then
'        Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children
'        Me.txt1 = ""
'    Else
'        Me.txt1 = Val(Mid(Node.Child, 1, colon - 1)) + Node.Children
'    End If

جعفر

54.1.TreeView_RTL.mdb.zip

رابط هذا التعليق
شارك

والله يا استاذ جعفر حكاية ان التري فيو تقبل الاتجاه من اليمين لليسار اي الاتجاه عربي فحكاية جديدة من حكاياتك الجميلة القيمة !

فارفع يدي لهذا الموضوع ان يثبت وخاصة موضوع اتجاه التري فيو من اليمين لليسار !

كما ان لي وجهة نظر في الموضوع وهي : مسألة تعبئة التري فيو والتعامل معها فكل مبرمج وطريقته الخاصة بل خوارزميته وفكرته لتعبئتها والتعامل معها وتختلف من شخص لاخر !

وبذلك فاني احتاج ان افهم المطلوب ثم بنية القاعدة لكي انفذ الخوارزمية! وهذا ماجعلني بعيد عن الموضوع نوعا ما وهنا معتذرا لاخي محمد سلامة !

 

خالص تحياتي

  • Like 1
رابط هذا التعليق
شارك

حياك الله أخوي رمهان  :smile:

 

في الواقع كنت اعمل برنامج اجمع فيه جميع الكائنات في النموذج والتي لا يمكن تغيير اتجاهها لليمين الى اليسار ، مثل Tree View (اعلاه) و ListBox وقد اتطرق للكائنات الباقية  :smile:

الكود هو ما ارفقته في هذا الموضوع بتغيير بسيط لكل نوع  :smile:

 

جعفر

رابط هذا التعليق
شارك

شكرا على مرورك الطيب استاذنا رمهان

استاذنا العزيز جعفر بارك الله فيك وفى عملك

والله العظيم انى استحى منك والتمس لى عذرا لاننى فى الحقيقة اول مرة اتعامل مع موضوع الشجرة 

 

كل ما شرحته بالمشاركة عاليه شاهدته 

 

وفي بعض الاشياء غير مفهومه بالنسبة لى اريد فقط  عند النقر كما ذكرت ان يظهر لى فى مربع النص السجل المحدد مع ربط النموذج الفرعى فى النموذج

 

فرجاء ممكن حضرتك بس تتطبق على المرفق حتى تتضح لى الصورة اكثر

شكرا جزيلا

رابط هذا التعليق
شارك

ماشاء الله عليك استاذ جعفر

تسلم ايدك 

واسال الله العلى العظيم ان يغفر لك جميع ذنوبك ما تقدم وما تاخر وان يحفظك من كل سوء ويغفر الله لامى وابى وامة محمد صلى الله عليه وسلم

وبارك الله فيك

بجد بجد متشكر جدااااا

تعمل تمام وتم التعديل عليها لتناسبنى

لو بس فى اى حاجه وقفت معايا سوف ابلغك  :yes:  :yes:

:fff:   :fff:  :fff:  :fff:  :fff:

تم تعديل بواسطه soft.sample
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information