معي تصميم فاتورة مكونة من 9 أعمدة (( داتا جريد ))
العمود الرابع عبارة عن كومبو بوكس وهو الوحدة (( اللي هي حبة او درزن او كرتون او ....................))
حاولت احمل البيانات للكومبو بوكس من قاعدة بيانات اكسس لكن المشكلة انه كلما ادخل صنف جديد للداتا جريد يجيب البيانات لكن يعممها للعمود بشكل كامل وانا احتاج فقط كل صنف معاه وحداته الخاصة فيه
يعني مثلا الصنف الاول معاه وحدتين المفروض الكومبو بوكس يعرض لي وحدات هذا الصنف
ولما اجي ادخل الصنف الثاني يعرض لي وحداته فقط
لكن الحاصل بكل صنف يتم ادخاله يلغي وحدات ماسبقه ويضيف وحدات الصنف الجديد لكل الاصناف وهذه مشكلتي احتاج طريقة بحيث انه بكل سطر من الداتا جريد الكومبو بوكس يجلب لي وحدات الصنف نفسه فقط
والف الف شكر مقدما
يا سلام هههههههههه
هذا ما وقفت عنده تحديداً فعلأ الأفكار لها أجنحة هههههههههههه
هل توصلت إلى حل أم لم تصل بعد
(16-01-21, 07:17 PM)fawazm15019797 كتب : [ -> ]معي تصميم فاتورة مكونة من 9 أعمدة (( داتا جريد ))
العمود الرابع عبارة عن كومبو بوكس وهو الوحدة (( اللي هي حبة او درزن او كرتون او ....................))
حاولت احمل البيانات للكومبو بوكس من قاعدة بيانات اكسس لكن المشكلة انه كلما ادخل صنف جديد للداتا جريد يجيب البيانات لكن يعممها للعمود بشكل كامل وانا احتاج فقط كل صنف معاه وحداته الخاصة فيه
يعني مثلا الصنف الاول معاه وحدتين المفروض الكومبو بوكس يعرض لي وحدات هذا الصنف
ولما اجي ادخل الصنف الثاني يعرض لي وحداته فقط
لكن الحاصل بكل صنف يتم ادخاله يلغي وحدات ماسبقه ويضيف وحدات الصنف الجديد لكل الاصناف وهذه مشكلتي احتاج طريقة بحيث انه بكل سطر من الداتا جريد الكومبو بوكس يجلب لي وحدات الصنف نفسه فقط
والف الف شكر مقدما
- الحمد لله تمكنت من حل المشكلة أو شيء قمت بتعبيئة الكمبو بوكس
كود :
Public Sub DGVCOMBO(COMBOID As Integer, DGVNAME As DataGridView, SQLCOMB As String, VALLCOMB As String, NAMESHOW As String)
Dim DT As New DataTable
Dim DA As New OleDbDataAdapter
DT.Clear()
DA = New OleDbDataAdapter(SQLCOMB, DBConnection)
DA.Fill(DT)
If DT.Rows.Count > 0 Then
With DirectCast(DGVNAME.CurrentRow.Cells(COMBOID), DataGridViewComboBoxCell)
.DataSource = DT
.DisplayMember = NAMESHOW
.ValueMember = VALLCOMB
'.Value = BURCH_INVOICE.COMBO_UNIT.SelectedValue
End With
Else
End If
End Sub
- بعد ذلك قمت بأنشاء هذا الحدث
كود :
Private Sub DGV_BURCH_INVOICE_CellMouseDown(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DGV_BURCH_INVOICE.CellMouseDown
If e.ColumnIndex = 8 Then
DGVCOMBO(8, DGV_BURCH_INVOICE, " SELECT UNITY.UNIT_NAME, PRODUCTS.PARCODE_IN, UNITY.UNIT_ID FROM UNITY INNER JOIN PRODUCTS ON UNITY.UNIT_ID = PRODUCTS.UNIT_ID Where (((PRODUCTS.PARCODE_IN) = '" & sender.CurrentRow.Cells(11).Value & "'));", "UNIT_ID", "UNIT_NAME")
End If
End Sub
طبعا للعلم العمود رقم 11 هو الذي لأستخدمه لجلب أنواع الوحدات الخاصة بالمنتج
و أيضا العمود رقم 8 هو الكومبوبوكس