في الدرس السابق انتهينا من تصميم وبرمجة فورم مرتجع البيع لفاتوره المبيعات ولم يبقى الا القليل وننتهي من برمجة مشروع او نظام السوبر ماركت .
التحويلات النقدية
سنبرمج الآن فورم التحويلات اي تحويل نقديه او صرف نقديه , ويعتبر هذا الفورم مهم جدا في مشروعنا السوبر ماركت لانه هو الذي يتم منه استلام المبالغ المستحقة للشركة وصرف المبالغ المستحقة على الشركة للغير .
نقصد بتحويل نقديه او توريد نقديه ببساطه هو كل ما يدخل ويخرج من صندوق الشركه ..
تحويل نقديه حسابات الالتزامات (المطلوبات) الذي يبين المبالغ المستحقة على المؤسسة او الشركة مقابل البضائع والخدمات التي اشترتها,ويستثني منه النقد الموجود في الصندوق او العكس .
➖ اذا كان ما يخرج من صندوق الشركه من مبالغ فيعتبر مستحقات علئ الشركة وبالتالي ينقص رصيد صندوق الشركة ونقصد بهذه الحاله توريد نقديه من الشركة للغير .
➖ او اذا كان ما يدخل للشركة من مبالغ فيعتبر مستحقات الغير للشركة وبالتالي يزيد رصيد صندوق الشركة تحويل ونقصد بهذه الحاله صرف نقديه للشركة .
حساب الأصول (الموجودات) الذي يبين المبالغ المستحقة للمؤسسة او الشركة من عملائها وزبائنها مقابل البضائع والخدمات التي بيعت أو أجرت لهم بفتره محدده او العكس .
والشركة تتعامل مع موردين وعملاء وموظفين ومصاريف علئ الشركة ويتم حساب الحسابات في مشروعنا كالتالي :
➖ الموردين هم الذي يتم شراء بضائع منهم للشركة او خدمات يقدموها للشركة من خلال فاتوره المشتريات ويعتبر استحقاق علئ الشركة وبالتالي ينقص من رصيد صندوق الشركة وقد يكون الشراء اجل او كاش اذا كان كاش فيتم دفع مبلغ من صندوق الشركة للمورد او اذا كان اجل فيتم تسجيل مبلغ بضاعه علئ الشركة في فتره استحقاق معينه حسبه العقد بين الطرفين…. *نفرض تم شراء بضاعه من المورد للشركة بقيمه 50000 وتم دفع نص قيمه البضاعه 25000 والباقي يتم دفعه في فتره لاحقه محدده وعند وصول فتره استحقاق المبلغ يتم تحويل مبلغ 25000 من رصيد صندوق الشركة للمورد وهكذا .
➖ العملاء : الشركة تتعامل مع عملاء و هم الذي يتم بيع لهم البضائع من خلال فاتوره المبيعات ويعتبر استحقاق للشركة وبالتالي يزيد رصيد صندوق الشركة وقد يكون البيع اجل او شراء اذا كان اجل فيتم تسجيل مبلغ فاتوره البيع في رصيد العميل وفي فتره محدده لدفع استحقاق الفاتوره او يكون كاش فيتم دفع مبلغ فاتوره مباشره للشركة نفرض تم بيع بضاعه بقيمه 1000 لعميل معين اجل وفي فتره محدده يستحق دفع المبلغ وعند وصول استحقاق الدفع يتم توريد مبلغ 1000 من العميل الى صندوق الشركة وهكذا .
➖ مصروفات : قد يكون هناك مصروفات مستحقه الدفع علئ الشركة مثلا مصروف فاتوره الكهرباء او مصروف فاتوره المياه او مصروف خدمات اخرئ وبالتالي يتم دفع هذه مصاريف من صندوق رصيد الشركة وهكذا . الموظفين : الشركة تتعامل مع موظفين اي موظفين يعملون في الشركة وبالتالي هولاء لهم رواتب ومكافئات فيتم دفع في كل نهايه الشهر رواتب الموظفين من صندوق رصيد الشركة في هذه الحاله يتم تحويل المبالغ من صندوق الشركة الئ الموظفين ونفس الموظفين قد يكون لهم ارصده في الشركة ➖حالات اخرئ قد يتم تحويل مبلغ معين من عميل معين الئ مورد معين وبالعكس او يتم تحويل مبلغ معين من موظف الئ العميل او العميل
تصميم و برمجة فورم التحويلات صرف النقديه وتوريد النقديه
- الخطوات :
نضيف فورم جديد ونسميه sirf او اي اسم تريده اخي المبرمج ثم نقوم باضافة الادوات التي نحتاجها في هذا الفورم وكالتالي :
تكس بوكس Textbox عدد 4
نغير اسماء التكس بوكس الاربعه كما يلي :
ـ Textbox ➖➖ نسميه finld
ـ Textbox ➖➖ نمسيه finnotes
ـ Textbox ➖➖نسميه finuser
ـ Textbox ➖➖نسميه finmoney
ثم نضع امام كل تكس بوكس ليبل label ونغير اسماء الليبل كالتالي :
ـ finld المستخدم
ـ finnotes الملاحظات
ـ finuser المستخدم
ـ finmoney المبلغ
➖ـ DateTimePicker عدد 2 نغير اسماء برمجيا كالتالي :
ـDateTimePicker نسميه findate
ـ DateTimePicker نمسيه fintime
ثم نضع امام كل واحد منهم ليبل label. ونغير اسمه كالتالي ـ fintime الوقت ـ findate التاريخ
➖ـ RadioButton عدد 2 نغير اسماء ليس برمجيا كالتالي : ـ RadioButton صرف نقدية ـ RadioButton توريد نقدية
➖ـ ComboBox عدد 4 نغير الاسماء برمجيا كالتالي : ـ ComboBox نسميه finfrom
ـ ComboBox نمسيه finsubfrom ـ ComboBox نسميه finto
ـ ComboBox نسميه finsubto
ثم نضع امام كل واحد ليبل label. ونغير اسمه ليس برمجيا وكالتالي : ـ finfrom ➖➖من
ـ finsubfrom➖➖ الى
ـ finto ➖➖ من
ـ finsubto ➖➖ الئ
ـ GroupBox عدد 1
➖ـ Button عدد 2 اسماء Button نغير اسمها على فورم فقط امام برمجيا تبقى كما هي وكما يلي : ـ Button ➖نسميه ➖حفظ ـ Button ➖ نسميه ➖ الغاء
نضيف ايضا ليبل label عدد 4 ونغير اسماء كما يلي ـ الرصيد الحالي ـ الرصيد الحالي ـ 0 ـ 0
ويصبح تصميم الفورم بشكل نهائي بعد اضافة الادوات كما في الصوره
هذه الصوره التي استخدمت في تغير شكل فورم
صورة ثانيه التي استخدمت في تغير شكل وجمالية الفورم
ربط فورم التحويلات ب الفورم الرئيسي
الان سنربط الفورم الصرف بالفورم الرئيسي manipage نفتح فورم manipage ونكتب قائمه باسم الحسابات ثم نكتب داخلها فرع باسم صرف وتوريد النقديه ثم ننقر عليه نقرتين ونكتب الكود التالي لربط الفورم به :
sirf.MdiParent = Me sirf.WindowState = FormWindowState.Maximized sirf.Show()
شاهد الفيديو كيف تم ربط الفورم بالفورم الرئيسي manipage
المصاريف و مستحقات الشركة
لنتكلم عن مصاريف ومستحقات الشركه او مايدخل ويخرج من صندوق الشركة ..
المعلوم ان اي شركة تتعامل مع مورد وعملاء وموظفين وكذلك مصاريف الشركة بحيث المورد يقوم بتوريد بضائع للشركة والعملاء يعتبرون من المشترين لهذه البضائع اما الموظفين فهم يعملون في الشركه اما مصاريف فتعتبر مصاريف علئ الشركة وسنذكر بعض من هذه المصاريف وبالتالي عندما يقوم المورد بتوريد بضاعه للشركه فتصبح الشركة عليها مستحقات لدفع قيمه البضاعه للمورد وكذلك العميل عندما الشركه ببيع هذه البضاعة عليه ايضا يصبح عليه مستحقات لدفع قيمه البضاعه وكذلك الموظفين الذين يعملون في الشركة فلابد من الشركه ان تدفع رواتب الموظفين اما مصاريف الشركة قد تكون مصاريف فاتوره كهرباء او مصاريف فاتوره مياه او فاتوره ايجار وهكذا وايضا هناك نوع من المصاريف مثلا قد يكون هناك اماكن تشتري منها الشركة بضائع ليست بمورد وانما تسمئ نقطه بيع وبالتالي يكون هناك استحقاق لدفع ثمن البضاعه على الشركة… مصاريف ومستحقات علئ الشركه هي تنقص من رصيد صندوق الشركة اما مستحقات للشركة من العملا نتيجه بيع بضائع لهم وكذلك توريد نقديه للشركة هي تزيد من رصيد صندوق الشركة وبالتالي جميع ماذكر تتعامل معهم الشركة بالاموال قد يكون للشركة او على الشركة ..
لكن كيف نحمل هذه المبالغ لجميع ماذكر اعلاه ؟
الجواب
العملاء فيتم تحميل ارصده العلاء من جدول Customers
الموردين يتم تحميل ارصدة الموردين من جدول lmporter
الموظفين فيتم تحميل ارصدة الموظفين من جدول users
المصاريف المستحقة على الشركة
اما مصاريف الشركة فليس لدينا جدول مخصص لها ولذك سوف نقوم بانشاء جدول خاص بمصاريف مستحقه علئ الشركة نفتح قاعده بيانات ثم نقوم بانشاء جدول باسم Expenses (المصاريف) ولك الحريه اخي في تسميه الجدول بما تشاء ثم بعد ذلك نكتب الحقول التي نحتاجها في الجدول وكالتالي :
ـ ld ➖➖➖ترقيم تلقائي ـ Expensename ➖➖ نص ـ Expensebalance ➖➖ عمله ـ Expenseuser ➖➖ نص
كما في الصوره
نقاط البيع
اما نقط البيع التي قمنا بشرأء البضائع منها ايضا ليس لدينا لها جدول لذلك نقوم بانشاء جدول خاص بنقط البيع ونسمي الجدول باسم pos ثم نكتب فيه الحقول التاليه : ـ ld ➖➖ ترقيم تلقائي ـ posname ➖➖ نص ـ posbalance ➖➖ عمله ـ posuser➖➖ نص كما في الصوره
ترتيب حقول الجدول اعلاه اصبح لدينا جداول خاصه بتحميل بيانات من الموردين والعملاء والموظفين والمصاريف ونقط البيع وبهدجداول يمكننا معرفة مستحقات للشركه ومستحقات علئ الشركة اي مايدخل ويخرج من صندوق الشركة اما يزيد الرصيد او ينقص الرصيد من صندوق الشركة…
تحميل بيانات العملاء و الموردين و الموظفين و المصاريف و نقاط البيع
الان ناتي الئ كيف نحمل بيانات الجداول العملاء والموردين والموظفين والمصاريف ونقط البيع في الفورم وبالاخص في ComboBox ؟
يمكننا تحميل البيانات من خلال الاتي : نذهب إلى الفورم ثم نضغط كلك ايمن على كومبو بوكس finfrom (من) ثم نختار خيار Edit ltems ونكتب الاسماء التاليه : عملاء موردين نقط البيع موظفين مصروفات ونفس الخطوات نضغط كلك ايمن على كومبو بوكس finto(الئ) ونختار Edit ltems ونكتب نفس الكلام السابق : عملاء موردين نقط البيع موظفين مصروفات
شاهد الفيديو كيف تم كتابه الحقول اعلاه في كومبو بوكس ComboBox
الان سنحمل اسماء كل من العملاء والموظفين والموردين ونقط البيع والمصروفات من خلال الفورم بحيث عند اختيار عملاء من كومبو بوكس يروح يجيبلي كل العملاء في قاعده بيانات وهكذا في اختيار بقيه سواء الموردين او الموظفين او مصروفات او نقط البيع… لكن قبل تحميل بيانات نذهب الى قاعدة البيانات ونفتح جدول مصروفات Expenses ونكتب في حقل Expensename اي بيانات افتراضيه حتى ترون كيف نحمل بيانات هذا الجدول في فورم عند اختيار المصروفات وكذلك نفتح جدول نقط البيع pos ونكتب في حقل posname اي بيانات افتراضيه…
الان نحمل الاسماء في كومبو بوكس كل من كومبو بوكس finfrom و كومبو بوكس finto من خلال انشاء كود اجراء خاص كالتالي :
Public Sub load_cobs(tblname As String, cmb As ComboBox, disp As String, val As String) Dim dt As New DataTable Dim da As New OleDbDataAdapter da = New OleDbDataAdapter("select * from " & tblname & "", con) da.Fill(dt) cmb.DataSource = dt cmb.DisplayMember = disp cmb.ValueMember = val End Sub
شرح الكود
عرفنا اجراء خاص اسميناه load_cobs ثم عرفنا متغيرات للبارومترات المتغيره كالتالي : ـ tblname نقصد به اسم جدول الذي نحمل منه اسماء سواء عملاء او موردين او موظفين او مصروفات او نقط البيع وعرفناه متغير لان اسماء جداول التي نحمل منها اسماء متغيره وليس من المعقول كتابه كود كامل ونكرره 10 مرات حتى نحمل كل الاسماء ومن الاساس عرفنا متغير بهذا الاسم tblname ـ cmb نقصد به الكومبو بوكس المتغير ـ disp نقصد به اسماء المتغيره هي العملاء والموردين والموظفين ونقط البيع والمصروفات ـ val نقصد بها قيمه هذه الاسماء بعد ذلك عرفنا داتا تيبل و داتا ادبتر البين قوسين select حملنا جدول المتغير tblname ثم جعلنا. متغير كومبو بوكس cmb يساوي كل من داتا سورس ودسبلي نمبر وفايلو مبمر
شاهد ترتيب كود الاجراء اعلاه كما في الصورة
بعد ان عرفنا اجراء خاص للمتغرات الاسماء ومتغيرات الجداول وسنحمل اسماء العملاء والموردين والموظفين ونقط البيع والمصروفات من جداول في قاعدة بيانات بحيث عند اختيار عملاء من كومبو بوكس finfrom يروح يضهرلي اسماء جميع العملاء في كومبو بوكس finsubfrom وعند اختيار موردين يروح يضهرلي جميع موردين في finsubfrom وهكذا سيتم تحميل الاسماء مرتين مره في كومبو بوكس finfrom ومره في كومبو بوكس finto 1⃣ ويتم برمجه كلام اعلاه من خلال الضغط على كومبو بوكس (من finfrom) ونكتب الكود التالي :
'=====تحميل جدول العملاء If finfrom.Text = "عملاء" Then load_cobs("customers", finsubfrom, "customername", "customerld") End If '=====تحميل جدول موردين If finfrom.Text = "موردين" Then load_cobs("lmporter", finsubfrom, "lmportername", "lmporterld") End If '=====تحميل جدول موظفين If finfrom.Text = "موظفين" Then load_cobs("users", finsubfrom, "userfullname", "userld") End If '=====1تحميل جدول نقاط البيع If finfrom.Text = "نقط البيع" Then load_cobs("pos", finsubfrom, "posname", "ld") End If '=====تحميل جدول مصروفات If finfrom.Text = "مصروفات" Then load_cobs("Expenses", finsubfrom, "Expensename", "ld") End If End Sub
شرح الكود
كل الاكواد عباره عن شروط بحيث عند اختيار if احد الاسماء مثلا عملاء من كومبو بوكس finfrom سوف يحملي جميع اسماء العملاء في كومبو بوكس fin subfrom من خلال تحميل اجراء الذي عرفناه سابقا load_cods للمتغيرات جداول والاسماء وجدول العملاء هو Customers واسماء العملاء نحملها من حقل customername في جدول العملاء من خلال customerld
اما بقيه الاكواد نفس الكلام فقط نغير اسم جدول واسم حقل الذي نحمل منه الاسماء
شاهد ترتيب كود اعلاه كما في الصوره
تحميل نفس اسماء جداول لكن في كومبو بوكس (finto الئ) ننقر نقرتين عليه ونكتب الكود التالي :
'=====تحميل جدول العملاء If finto.Text = "عملاء" Then load_cobs("customers", finsubto, "customername", "customerld") End If '===تحميل جدول موردين If finto.Text = "موردين" Then load_cobs("lmporter", finsubto, "lmportername", "lmporterld") End If '=====تحميل جدول موظفين If finto.Text = "موظفين" Then load_cobs("users", finsubto, "userfullname", "userld") End If '=====1تحميل جدول نقاط البيع If finto.Text = "نقط البيع" Then load_cobs("pos", finsubto, "posname", "ld") End If '=====تحميل جدول مصروفات If finto.Text = "مصروفات" Then load_cobs("Expenses", finsubto, "Expensename", "ld") End If
الكود نفس كود سابق لكن فقط نغير اسم كومبو بوكس من finfrom الى finto ونغير اسماء جدوال واسماء الحقول التي نحمل منها الاسماء
لاحظ ترتيب كود اعلاه كما في الصورة
شاهد بالفيديو كيف تم تنفيذ البرنامج وكيف تم ضهور اسماء موردين عند اختيار موردين وهكذا
…
في الجزاء السابق انتهينا تحميل اسماء الموردين والموظفين والمصروفات ونقط البيع والعملاء في كل من كومبو بوكس finfrom وكومبو بوكس finto وسنحمل ارصده جميع اسماء كل من العملاء والموظفين والموردين ونقط البيع والمصروفات في كومبو بوكس finsubfrom و كومبو بوكس finsubto بحيث عند اختيار العملاء من finfrom سوف يختارلي العملاء وبنفس الوقت يختاري الرصيد الحالي للعميل نفسه في ليبل label ـ(0) وهكذا… .
لبرمجة هذا الكلام ايضا نحتاج الى اجراء خاص لتعريف المتغيرات لارصده الحقول في جداول باعتبار انها متغيره في كل جدول اي سوف نجلب ارصده اسماء العملاء والموظفين والموردين والمصروفات ونقط البيع من حقل كل جدول الخاص بالرصيد balance .. *اذن ننقر نقرتين على الفورم ونكتب الاجراء الخاص بتعريف متغيرات للارصده الاسماء كالتالي :
Public Sub load_Balanec(tabel2 As String, name_cloen As String, cobx As ComboBox, lab As Label, Balanc As String) Try Dim dt As New DataTable Dim da As New OleDbDataAdapter da = New OleDbDataAdapter("select * from " & tabel2 & " where " & name_cloen & " = '" & cobx.Text & "'", con) da.Fill(dt) lab.Text = dt.Rows(0).Item(Balanc) Catch ex As Exception End Try End Sub
الكود لا يحتاج شرح نفس كود سابق
لاحظ ترتيب كود الاجراء كما في الصوره
سنحمل الارصده من جداول من حقل كل جدول خاص بالرصيد balance كما يلي
العملاء ➖customerbalance
الموردين➖ lmporterbalance
الموظفين users لكن لا يوجد حقل في هذا جدثل خاص بالرصيد لذلك نقوم بفتح جدول users ونضيف حقل ونسميه userbalance من نوع نص
نقط البيع➖ posbalance
المصروفات ➖ Expensebalance هذه الحقول في الجداول التي سوف نحمل منها الارصدة
1⃣ ننقر نقرتين على كومبو بوكس finsubfrom ونكتب الكود التالي :
If finfrom.Text = "عملاء" Then load_Balanec("customers", "customername", finsubfrom, Label6, "customerbalance") End If If finfrom.Text = "موردين" Then load_Balanec("lmporter", "lmportername", finsubfrom, Label6, "lmporterbalance") End If If finfrom.Text = "موظفين" Then load_Balanec("users", "userfullname", finsubfrom, Label6, "userBalance") End If If finfrom.Text = "نقط البيع" Then load_Balanec("pos", "posname", finsubfrom, Label6, "posbalance") End If If finfrom.Text = "مصروفات" Then load_Balanec("Expenses", "Expensename", finsubfrom, Label6, "Expensebalance") End If
الكود تم شرحه سابقاً في درس سابق
لاحظ ترتيب الكود في الصورة
تحميل الارصده في كومبو بوكس
نحمل الارصدة في كومبو بوكس ثاني finsubto ننقر عليه نقرتين ونكتب الكود التالي :
If finto.Text = "عملاء" Then load_Balanec("customers", "customername", finsubto, Label8, "customerbalance") End If 'If ComboBox1.Text = "عملاء" Then ' serchebalans("customers", "customername", ComboBox3, Label6, "customerbalance") 'End If If finto.Text = "موردين" Then load_Balanec("lmporter", "lmportername", finsubto, Label8, "lmporterbalance") End If If finto.Text = "موظفين" Then load_Balanec("users", "userfullname", finsubto, Label8, "userBalance") End If If finto.Text = "نقط البيع" Then load_Balanec("pos", "posname", finsubto, Label8, "posbalance") End If If finto.Text = "مصروفات" Then load_Balanec("Expenses", "Expensename", finsubto, Label8, "Expensebalance") End If
الكود ايضا تم شرحه سابقاً
لاحظ ترتيب الكود ثاني في الصورة
شاهد بالفيديو كيف تم الارصدة بعد تنفيذ البرنامج للموظفين والموردين والمصروفات ونقط البيع والعملاء
…
ملاحظه
قم بملئ بيانات افتراضية في كل من جدول Expenses في حقل Expensebalance وفي جدول pos في حقل posbalance وفي جدول users في حقل userbalance حتى يتم تحميل الارصدة بعد تنفيذ البرنامج……
في الجزاء السابق حملنا جميع اسماء والأرصدة كل من الموردين والعملاء والموظفين والمصروفات ونقط البيع وبالتالي اصبح لدينا الفورم جاهز لصرف وتوريد النقديه مثلا تسديد قميه بضاعه مباعه للعميل الى شركة فيتم توريد مبلغ قيمه بضاعه في تكس بوكس المبلغ finmoney ثم نختار التحويل من العملاء في كومبو بوكس finfrom بما يقابله من اسم العميل احمد finsubfrom الى مثلا الشركة finto بما يقابله من اسم خزينه شركة وبالتالي يصبح زياده في رصيد صندوق الشركة باعتبار تم توريد مبلغ للشركة من العميل نتيجه بيع فاتوره مبيعات……
يبقى لدينا عمليه حفظ بيانات صرف وتوريد النقديه في قاعده بيانات وليس لدينا جدول خاص بحفظ هذه البيانات لذلك نقوم بانشاء جدول جديد ونسميه باي اسم تريدونه مثلا اسم financial_accounts ثم نكتب الحقول التي نحتاجها لحفظ بيانات كما يلي : ـ finld ➖➖ رقم ـ findate➖➖ تاريخ/وقت ـ fintime➖➖تاريخ /وقت ـ finstste➖➖نص ـ finmoney➖➖➖عمله ـ finfrom ➖➖➖نص ـ finsubfrom ➖➖ نص ـ finto➖➖➖➖نص ـ finsubto ➖➖نص ـ finnots➖➖➖نص ـ finuser➖➖➖نص هذه هي الحقول التي نحتاجها ..
لاحظ ترتيب حقول في الصورة
بعد ذلك نقوم بتعريف متغيرات للداتا تيبل و داتا ادبتر و ld و code في المديول الخاص بمشروعنا نكتب الاكواد التاليه :
Public financialdt As New DataTable Public financialda As New OleDbDataAdapter Public mynewldfinancial As Intege r Public financialcmd As New OleDbCommand Public Sub load_financial() financialdt.Clear() financialda = New OleDbDataAdapter("select * from financial_accounts", con) financialda.Fill(financialdt) End Sub Public Sub code_financial() Dim dt As New DataTable Dim da As New OleDbDataAdapter("select max(finld) from financial_accounts", con) da.Fill(dt) If IsDBNull(dt(0)(0)) = True Then mynewldfinancial = 1 Else mynewldfinancial = dt(0)(0) + 1 End If End Sub
الاكواد واضحه وتم شرحها نفس الاكواد سابقه وفي حدث اللود load الفورم نستدعي اجراء كود اللود load_financial
لاحظ ترتيب الاكواد في الصوره
برمجة زر الحفظ في فورم صرف وتوريد النقديه
نبدا في برمجة زر الحفظ .
نقوم بانشاء اجراء خاص لحفظ الحقول في جدول financial_account وما يقابل جميع تكس بوكس في الفورم نمسي الاجراء save ويصبح الكود كالتالي :
Public Sub save_financial() financialdt.Rows.Add() Dim last As Integer = financialdt.Rows.Count - 1 financialdt.Rows(last).Item ("findate") = finDate.Value financialdt.Rows(last).Item ("fintime") = fintime.Value financialdt.Rows(last).Item ("finfrom") = finfrom.Text financialdt.Rows(last).Item ("finld") = finld.Text financialdt.Rows(last).Item ("finmony") = finmoney.Text financialdt.Rows(last).Item ("finnotes") = finnotes.Text financialdt.Rows(last).Item ("finstste") = finstate.Text financialdt.Rows(last).Item ("finsubfrom") = finsubfrom.Text financialdt.Rows(last).Item ("finsubto") = finsubto.Text financialdt.Rows(last).Item ("finto") = finto.Text financialdt.Rows(last).Item ("finuser") = finuser.Text Dim save As New OleDbCommandBuilder (financialda) financialda.Update(financialdt) financialdt.AcceptChanges() End Sub
الكود تم شرحه سابقا عده مرات…
لاحظ ترتيب الكود في الصوره
ثم نستدعي الاجراء في زر حفظ نكتبه
برمجة زر صرف و توريد جديد
بعد ذلك نقوم بانشاء اجراء خاص بتفريغ جميع تكستات بوكس من بيانات بعد كل عمليه حفظ للبيانات ونسمي الاجراء newfinancial ويصبح الكود كالتالي :
Public Sub newfinancial() code_financial() finDate.Value = Now.Date fintime.Value = Now finfrom.Text = "" finld.Text = mynewldfinancial finmoney.Text = 0 finnotes.Text = "" 'finstate.Text = finstate.Text finsubfrom.Text = "" finsubto.Text = "" finto.Text = "" finuser.Text = "" End Sub
لاحظ ترتيب الكود كما في الصوره
ثم نستدعي الاجراء في حدث اللود load الفورم ()newfinancial
ثم نضغط على زر الحفظ ونكتب الكود التالي :
If finmoney.Text = 0 Then MsgBox("يرجى ادخال مبلغ معين") finmoney.Focus() ElseIf finfrom.Text = Nothing Then MsgBox("يرجى اختيار العملية من") finfrom.Focus() ElseIf finto.Text = Nothing Then MsgBox("يرجى اختيار العملية الى") finfrom.Focus() ElseIf RadioButton1.Checked = False And RadioButton2.Checked = False Then MsgBox("يرجى اختيار نوع التحويل صرف او توريد") RadioButton1.Focus() Else save_financial() MsgBox("تم حفظ البيانات بنجاح") load_financial() newfinancial() End If
الكود واضح لا يحتاج الى شرح
لاحظ ترتيب كود كما في الصوره
نقوم الان بعمل شي جميل وهو تغير شعار (صرف النقديه ) موجود على الفورم في ليبل finstate بحيث عندما نختار صرف نقديه من RadioButton1 يصبح ليبل صرف نقديه وعندما نختار توريد نقديه من RadioButton2 يصبح توريد نقديه وهكذا…
اذن ننقر نقرتين على صرف نقديه RadioButton1 ونكتب الكود التالي finstate.Text = "صرف نقدية"
ننقر نقرتين على توريد نقديه RadioButton2ونكتب الكود التالي finstate.Text = "توريد نقدية"
لاحظ كتابه كودين في الصوره
شاهد الفيديو كيف يتم تغير شعار صرف وتوريد نقديه من خلال RadioButton
RadioButton1.Checked = true
حتى يتم وضع علامه صح في RadioButton1 عند تحميل الفورم لكي يتم الاختيار و تحويل بين الاثنين انتهينا من برمجة زر الحفظ
شاهد الفيديو كيف تمت عمليه حفظ صرف وتوريد النقديه في قاعده بيانات في جدول financial_accounts
الى هنا ننتهي من تصميم وبرمجة فورم صرف وتوريد النقديه بشكل كامل وسنكمل في الدرس القادم ماتبقى من مشروع السوبر ماركت …… .