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

تصميم النموذج الشجري treeview لدليل الحسابات بالاكسيس


ma4fd2010

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

تصميم النموذج الشجري treeview لدليل الحسابات بالاكسيس

 

دليل-الحسابات

تصميم النموذج الشجري treeview لدليل الحسابات بالاكسيس

تصميم النموذج الشجري treeview لدليل الحسابات بالاكسيس نتناول خطوات تصميم النموذج الشجري في الاكسيس treeview و استدعاء المكتبات البرمجيه اللازمه له و نستعرض كل ذلك علي نموذج دليل ال الحسابات و أيضا مزايا و مشاكل treeview

مميزات تصميم  النموذج الشجري

يعطي النموذج الشجري في اي برنامج شكل تصميم احترافي و سهوله فهم نظام التكويد المراد داخل البرنامج و أيضا سهوله التكويد و سهوله في تنظيم التكويد و سهوله البحث دخل التموذج الشجري

عيوب التصميم  الشجري

مشاكل عند مرحله التكويد بعض المشاكل التي قد تواجهك يجب مراعاه التكويد بشكل المتبع دخل البرنامج بشكل صحيح حيث ان التكويد بشكل غير صحيح في اغلب الاحوال سيؤدي الي انهيار النظام الشجري و أيضا قد يؤدي الي الخلل البرمجي في النموذج الشجري فعلي سبيل المثال يتم ادراج حساب اساسي يندرج تحته حساب فرعي يندرج تحت الحساب الفرعي كود الحاساب فان الكود الاب لكود الحساب هو الحساب الفرعي و ليس الكود الاساسي بينما كود الحساب الاب للكود الفرعي هو كود الحساب الاساسي فاذا حدث خلل في التكويد عن هذا النظام سيحدث مشاكل برمجيه اي يجب بناء دليل الحسابات بشكل صحيح كامل حتي نتمكن من عرض النموذج الشجري لدليل الحسابات

مشاكل اثناء نقل ملف العمل بين جهاز و اخر

حيث باختلاف نسخ الاوفيس بين الاجهزه قد تظهر  مشاكل المكتبات البرمجيه و ذلك في حاله نقل البرنامج لجهاز اخر يمكنك التعرف علي حل هذه المشاكل من هنا

خطوات تصميم النموذج الشجري treeview لدليل الحسابات بالاكسيس

تصميم جدول التكويد

في البدايه سنحتاج الي تصميم جدول الاساسيه لتكويد الحسابات المستخدمه دخل النموذج الشجري و المراد عرضها و يتم ذلك من خلال الضغط علي القائمه Create و اختيار منها Table Design دعنا نفترض في حالتنا اننا نريد عمل دليل حسابات بالنموذج الشجري لسهوله تكويد الحسابات و أيضا لسهوله البحث عن الحسابات نستعرض حقول هذا الجدول و اهم خصائص هذه الحقول

 

دليل حسابات

 

 
Fied Size Date Type Caption Field Name
15 Text كود الحساب AccID
255 Text اسم الحساب ArAccDes
15 Text كود الحساب الاب ParAcc
255 Text اسم الحساب الاب ArParDes
—- Yes/NO هل هو حساب رئيسى IsPrimary
15 Text مستوى الحساب AccLevel
25 Text التوجية المحاسبى Accdir
15 Text طبيعة الرصيد Panat
15 Text كود المجموعة الفرعية كود المجموعة الفرعية

 

لاحظ أيضا ان حقل كود الحساب و الذي افترضنا له اسم AccID تم اعطاءه خاصيه متفتاح اساسي Primary Key نقوم بحفظ الجدول و تعطيه اسم افتراضي accounts

انشاء نماذج العرض

الان نقوم باستخدام معالج النماذج في انشاء نموذج للجدول التكويد من خلال الضغط علي القائمه Create و اختيار منها Form Wizard يمكنك أيضا انشاء النموذج بوضع التصميم و اضافه الحقول بشكل يدوي

 

معالج تصميم النماذج

 

اضافه النموذج الشجري للنموذج TreeView

و بعد الانتهاء من بناء النموذج ندخل الي النموذج في وضع التصميم لاضافه النموذج الشجري

Untitled-2.jpg?resize=429%2C182&ssl=1

 

من خلال القائمه Design اضغط علي زر More كما هو في الصوره  و اختر ActiveX Control , و من خلال هذا المعالج ابحث عن Microsoft TreeView Control  سيقوم المعالج باضافه النموذج الشجري للنموذج

اضافه الاكواد الازمه لاستعراض شجره الحسابات

الان بدا في اضافه الاكواد الازمه لاستعراض شجره الحسابات

Private Sub Form_Load()

On Error Resume Next
 
Dim dbs As dao.Database, rst As dao.Recordset
  Dim nodX As Node
  Set dbs = CurrentDb
  Set rst = dbs.OpenRecordset("Accounts", dbOpenDynaset)
  Set nodX = TreeView2.Nodes.Add(, , "A", "Accounts")
  With rst
    Do While Not .EOF
      Set nodX = TreeView2.Nodes.Add("A" & CStr(Nz(!ParAcc)), tvwChild, "A" & CStr(!AccID), CStr(!AccID) & ":" & (!ArAccDes))
       nodX.EnsureVisible
        .MoveNext
    Loop
  End With
  rst.Close
  Set dbs = Nothing
  On Error Resume Next
  For Each nodX In TreeView2.Nodes
   nodX.Expanded = False
   nodX.Sorted = True
  Next
  
End Sub

استدعاء المكتبه البرمجيه dao

في هذا الكود قمنا باستدعاء المكتبه البرمجيه dao  هذه المكتبه و هي المكتبه الخاصه بالتحكم في قواعد البيانات حيث تستطيع هذه المكتبه البرمجيه انشاء قاعده بيانات و الدخول الي الصفوف و الدوران بين هذه الصفوف و استدعاء القيم من بينها و التحكم بها

قمنا نانشاء متغير من النوع Database و اضفنا له عنصر التحكم dao

Dim dbs As dao.Database 

 
 rst As dao.Recordse

اضفنا هذا السطر للدوران بين صفوف قاعده البيانات و التحكم بها

 

Set rst = dbs.OpenRecordset(“Accounts”, dbOpenDynaset) Set nodX = TreeView2.Nodes.Add(, , “A”, “Accounts”)

من خلال هذا السطر قمنا بفتح قاعده البيانات التي افترضنها كمتغير و أيضا قمنا بتعبئه محتوياتها في النموذج الشجري TreeView

تم اعطاء راس النموذج الشجري اسم Accounts يمكنك تغير الاسم كيف تشاء

With rst
    Do While Not .EOF
      Set nodX = TreeView2.Nodes.Add("A" & CStr(Nz(!ParAcc)), tvwChild, "A" & CStr(!AccID), CStr(!AccID) & ":" & (!ArAccDes))
       nodX.EnsureVisible
        .MoveNext
    Loop
  End With
  rst.Close

 

فهم خطوات عمل الكود

من خلال هذا الكود تبدا المكتبه البرمجيه dao في الدوران علي قاعده البيانات علي شكل حلقه تكراريه من النوع Do While و تحديد كل عنصر من عناصر هذه القائمه و تحديد مستوي هذا العنصر تبدا بالدوران بدايه من اول صف في قاعده البيانات ليظهر في النموذج الشجري في المستوي المناسب مضاف اليه كود الحساب و الوصف الخاص بالحساب ( اسم الحاب ) ثم يدور الكود علي العنصر التالي بالامر MoveNext و هكذا و يتكرر هذا الامر باستخدام الامر Loop حتي تنتقل الي اخر صف و الانتقال بين جميع الصفوف و بعد الانتهاء يتم الخروج من هذه الحلقه التكراريه End With

استدعاء اسماء الحسابات في النموذج الشجري

لاستدعاء اسم الحساب من جدول الحسابات نستخدم الداله DLookup حيث تقوم هذه الداله بالبحث في جدول accounts في عمود ArAccDes الخاص باسم الحساب و استراج اسم الحساب من بين كل الحسابات بشرط كود الحساب AccID=ParAcc

Private Sub ParAcc_AfterUpdate()

On Error Resume Next
ArParDes = DLookup("ArAccDes", "accounts", "AccID=ParAcc")
End Sub

 

 

Private Sub TreeView2_NodeClick(ByVal Node As Object)
On Error Resume Next
  Dim mykey As String
    With Node
     mykey = Right(.Key, Len(.Key) - 1)
     Finder (mykey)
    End With
End Sub

 

 

Private Sub Finder(Skey)
On Error Resume Next
Dim rs As Object
 Me.Filter = ""
 Set rs = Me.Recordset.Clone
 rs.FindFirst "[AccID] = '" & Trim(Skey) & "'"
 Me.Bookmark = rs.Bookmark
End Sub
 

المصدر موقع المحاسب العربي

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

أعتقد أن صاحب هذا الموضوع أول من كتب كود الشجرة في مواقع الأكسس  العربية على الإطلاق.
ليت كل من ينقل عنهم ولو جزئيا ذكر المصدر وإن كان يجهله فليذكر اسم المنتدى وإن لم يتذكره فليوضح أقلها أن (الأصل) ليس من جهده.
 
مثال لعرض الشجرة - قسم الأكسيس Access - أوفيسنا (officena.net)

تقبل الله صيامكم وقيامكم

تم تعديل بواسطه Hawiii
  • Like 2
رابط هذا التعليق
شارك

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

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



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

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

Important Information