![]() |
|
[سؤال] استعلام من جريد فيو - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [سؤال] استعلام من جريد فيو (/showthread.php?tid=28773) |
استعلام من جريد فيو - mmali127 - 26-02-19 السلام عليكم ورحمه الله وبركاته تحية لاعضاء المنتدى الكرام فى الصورة التالية داتا جريد [attachment=20984] تحتوى على كود وكمية لصنف (مع ملاحظة تكرار الصنف بكميات مختلفة) يوجد فنكشن للبحث قبل الحفظ اذا كان الكمية المدخلة اكبر من الرصيد (BalAfter) لكل يوم على حدة ... لا يمكن الحفظ وهى تعمل بشكل كويس Function NoBalance_duringDate(grd As DataGridView, txtwhid As TextBox, txtNoteDate As MaskedTextBox, MyCellIndex As Integer) Dim TotalBalMinuse As MsgBoxResult For i As Integer = 0 To grd.RowCount - 1 SearchDataSet("select whid, NoteID, NoteAname, BalAfter from ViewItemTransaction where whid = " & txtwhid.Text & " and NoteDate >= '" & Format(CDate(txtNoteDate.Text), "yyyy/MM/dd") & "' and Item_ID = " & CInt(grd.Rows(i).Cells(5).Value) & " GROUP BY whid, NoteID, NoteAname, BalAfter, notenature, NoteDate ORDER BY NoteDate") If cur1.Count > 0 Then For R = 0 To cur1.Count - 1 If grd.Rows(i).Cells(8).Value > cur1.Current("BalAfter") Then TotalBalMinuse = Mymsg(" Item Code " & grd.Rows(i).Cells(5).Value & " Item Balance Minuse .. Current Balance " & cur1.Current("BalAfter") & " ", vbInformation + vbOKOnly, " Banciana ") End If Exit Function End If cur1.Position += 1 Next End If Next If TotalBalMinuse = MsgBoxResult.Ok Then Return False Else Return True End If End Function [attachment=20985] *********************** لكن المشكلة فى التالى ************ ماذا فى حالة تكرار الصنف بنفس الجريد كما فى الصورة اعلاه فان الفنكشن تذهب لاول كمية وتقارنها دون تجميع جميع الكميات .... هل هناك طريقة لتجميع الكمية لنفس الصنف قبل المقارنة بالفنكشن اسف للاطالة بس فعلا الموضوع ارهقنى كثيرا ارجوا التعديل على الكود .... او اعطاء فكرة لما ذكرت لحضراتكم تحياتى للجميع RE: استعلام من جريد فيو - thevirus - 27-02-19 بسهل لك الطريق عند إضافة صنف جديد قم بالتحقق هل هذا الصنف موجود في الجريد من قبل في حالة كان: موجود على الجريد قم بزيادة الكمية المطلوبة وفي حال لم يكن موجود من قبل (مضاف) قم بإضافته وبهذا نحل المشكلة بحيث أن الصنف لايمكن أن يتكرر في الجريد أكثر من مرة RE: استعلام من جريد فيو - حريف برمجة - 27-02-19 هذا السطر يجلب لك مجموع خلية في كل الصفوف : cells(0) = العمود الأول cells(6) = العمود السابع كود : TextBox1.Text = (From row In DataGridView1.Rows Select CDbl(row.Cells(0).Value)).Sum()RE: استعلام من جريد فيو - mmali127 - 27-02-19 (27-02-19, 02:39 AM)thevirus كتب : بسهل لك الطريق للاسف لا يصلح هذا الحل لان المستخدم يوجة كل كمية على نشاط معين فى بالجريد يوجد اسفل الجريد اختيار لتوجية كل كمية لنشاط معين لابد من الادخال المتكرر اشكرك اخى الكريم (27-02-19, 03:11 AM)حريف برمجة كتب : هذا السطر يجلب لك مجموع خلية في كل الصفوف : استاذى الكريم لا يوجد فى الفنكشن text1 وبعدين ... ماذا لو كان هناك اكثر من صنف لكل منهم كميات مختلفة ؟؟ انا اريد تجميع كل صنف بكمياته قبل التحقق من الفنكشن ارجوا ان يكون الفكرة وصلت لحضرتك اشكرك للمساعدة RE: استعلام من جريد فيو - elgokr - 27-02-19 وعليكم السلام ورحمة الله وبركاته
فى البداية يوجد تناقص فى الموضوع حتى اتمكن من عمل كود يناسب طلبك كلياً
1- كيف يتم تعبئة الداتا جريد هل يتم تعبئتها يدوياً كالفاتورة ام انه يتم جلب البيانات التى بها من خلال استعلام 2- الكود بالموضوع او المرفق يوجد به خطاء ما فاتنا مراجعته جيداً .. 3- امر الحفظ هل يقوم بحفظ ما بداخل الداتا جريد كما هو بالتكرار وماذا عن جدول الكمية اتمنى توضيح اكثر عن كل جدول شوف نظرياً الامر لحل الوضع
اذا كان الداتا يتم جلبها من خلال استعلام فكل ما عليك عمل جروب باى الصنف او رقم الصنف
واذا كان الادخال يدوي يتم تحويل محتوى الداتا جريد الى ليست فيو بحيث عند اضافة فى الليست فيو يتم كما شرح الاخ thevirus
من ثم ترحيل محتوى الليست الى الكميات للتحقق كما اشرت انت لما تريد
وحتى اتمكن من تحويل الفكرة نظرياً الى عملى من خلال الكود
بحاجة لتوضيح اكثر عن الجداول وطريقة ادخال البيانات فى الداتا جريد
تحياتى لك
وتمنياتى لك التوفيق
RE: استعلام من جريد فيو - mmali127 - 27-02-19 (27-02-19, 02:18 PM)elgokr كتب : السلام عليكم ورحمه الله وبركاته استاذنا الفاضل elgoker تحية لشخصكم الكريم 1 - يتم تعبئه الجريد يدوى سطر بسطر عند ادخال السندات 2 - يتم الحفظ بجدول التفاصيل كما تم الادخال (لكل سطر على حدى) 3-الكود للفنكشن تمام ولا يوجد به مشاكل ولكن (حذفت منه بعض ما يخص بتعريب الرسايل لعدم الاطالة على من يساعد ) ومرفق الفنكشن بالكامل ..... توجد مشاركة لاخ كريم فى المنتدى لطريقة تجميع الكميات بالجريد لكل صنف على حده واظهار الناتج بجريد اجر والكود المستخدم لذلك هو التالى Dim query = From row In grdReciptQty.Rows.Cast(Of DataGridViewRow)() Group row By Item = row.Cells(5).Value Into ItemGroup = Group Select New With {Key Item, Key .Count = ItemGroup.Count(Function® r.Cells(8).Value), Key .sum = ItemGroup.Sum(Function® r.Cells(8).Value)} grdItems.DataSource = query.ToArray حيث ان : 1 - grdReciptQty هى الجريد الاساسية للاصناف و المرفق اعلاه صورة لها 2 - grdItems هى جريد لتجميع كميات الاصناف بها بناء كود الصنف 3 - Cells(8) خلية كود الصنف 4 -Cells(8) خلية الكمية وبالفعل الكود يعمل جيدا و بيجمع الكميات لنفس الكود اذا كان هناك اكثر من كمية واكثر من صنف فى نفس سند الصرف وبربط الفنكشن اعلاه ب الجريد الجديدة (المجمع بها الاصناف ) يكون الحال بالظبط هو المطلوب الوصول اليه كما اريد -------------- ولكن ----------- هذا يتطلب عمل جريد للتجميع لكل شاشات الاستلام والصرف بالبرنامج هل لا يوجد حل احر دون اللجوء لجريد تجميعية لكميات الاصناف ؟؟؟؟ تحياتى واسف على الاطالة الفنكشن الاصلية دون تغير [attachment=21001] RE: استعلام من جريد فيو - elgokr - 27-02-19 اتمنى لو يتم ارفاق السورس
لاتمام عمل الكود طبقاً لما لديك من مسميات ولكى يمكننى اختبار صحة كتابة الكود
تحياتى لك
وتمنياتى لك التوفيق
|