السلام عليكم ورحمه الله وبركاته كل عام وانتم بخير الاخوه الزملاء فضل المساعده في برمجه كود لاداة Comboboxedit الخاصة بي Dev Express
والمطلوب كالتالي بناء على القيمه التي يتم اختيارها في القائمه المنسدله 1 يتم اظهار القيم المرتبطه بها في القائمه المنسدله رقم ٢
للتوضيح
تم اختيار اداره الموارد البشريه في Comboboxedit 1
عليه يتم اظهار الاقسام التابعه للموارد البشريه في Comboboxedit 2
أخي الكريم محمد العامر
لمحاولة الإجابة عن سؤالك يتعيّن عليك ذكر طبيعة ملء الكومبوبكس رقم 1 و رقم 2 و كود تعبئتهما
لماذا ؟؟
لأنّك لو إستعملت بالكومبوبكس العادي الإفتراضي طريقة ال DataSource
أحيطك علما أنّ ال ComboBoxEdit التابعة لأدوات الديف إكسبرس لا تقبل بتاتا هذه الطريقة .. و يتعيّن عليك إستبدال ال ComboBoxEdit بالأداة المخصّصة لذلك و هي ال LookupEdit
تحياتي
أخي عبدالعزيز
الطريقة نجحت معي على ComboBox العادية ولكن على ComboBoxEdit لم تنجح والكود التالي خاص بتعبئة ComboBoxEdit التابعة لـ Dev Express
كود :
Public Sub fill_listbox(ByVal TBNames As String, ByVal ColmName As String, ByVal ListBoxName As DevExpress.XtraEditors.ListBoxControl)
ListBoxName.Items.Clear()
Dim DS As New DataSet
Dim DA As New SqlDataAdapter
DA = New SqlDataAdapter("Select * FROM " & TBNames & "", ConSql)
DA.Fill(DS)
Dim DT = DS.Tables(0)
For I = 0 To DT.Rows.Count - 1
ListBoxName.Items.Add(DT.Rows(I).Item("" & ColmName & ""))
Next
End Sub
إذا كانت أخي محمد العامر كومبوبوكس واحدة أو اثنتين .. لماذا تعقّد الأمور
قم بتعبئتها بالطريقة المباشرة كمثال
كود :
Private Sub Fill_Items_ComboBoxEdit()
Try
Me.ListBoxName.Properties.Items.Clear()
Dim InfoString As String = "SELECT DISTINCT ITEMS_Name From TBL_ITEMS"
Dim InfoAdapter As OleDbDataAdapter = New OleDbDataAdapter(InfoString, Conne)
Dim InfoTable As DataSet = New DataSet
InfoTable.Clear()
InfoAdapter.Fill(InfoTable, "TBL_ITEMS")
For Each rw As DataRow In InfoTable.Tables("TBL_ITEMS").Rows
Me.ListBoxName.Properties.Items.Add(rw(0).ToString())
Next
Catch ex As Exception
XtraMessageBox.Show("خطأ غير متوقّع" & ex.Message)
End Try
End Sub
أو أيضا بطريقة مباشرة ..
كود :
Private Sub Fill_Items_ComboBoxEdit()
Try
Me.CmbItemsCategory.Properties.Items.Clear()
Dim Adp As New OleDb.OleDbDataAdapter("SELECT DISTINCT CATEGORY_Name From TBL_CATEGORY", Conne_2020)
Dim Ds As New DataSet
Adp.Fill(Ds)
Dim Dt = Ds.Tables(0)
For I = 0 To Dt.Rows.Count - 1
Me.CmbItemsCategory.Properties.Items.Add(Dt.Rows(I).Item("CATEGORY_Name"))
Next
Catch ex As Exception
XtraMessageBox.Show("خطأ غير متوقّع" & ex.Message)
End Try
End Sub
تحياتي
اخي عبدالعزيز كلامك صحيح اذا كان عدد ComboBox قليل
لكن انا لدي مراكز تكلفة وادارات واقسام لا قبل التكرار ومدراء اقسام قد يكون تحت ادارته اكثر من مركز تكلفة
في الفديو التالية شرح للاستاذ القدير صبحي الجزازي جزاه الله كل خير وقمت بتطبيقة على ComboBox العادية ويعمل بكل كفائة
لكن في Comboboxedit الخاصة بي Dev Express للاسف لم استطيع ان اطبق الطريقة
https://youtu.be/_0v94oXTvLQ
اخوانى الاعزاء هل يمكن تطبيق المثال الذي تم شرحه في الفيديو على LookupEdit؟