الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعديل عنصر في الداتاجريد حسب القيمة المدخلة

مغلق
بدأه moh1983 في 5 أغسطس 2006 · 9 رد · 942 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

اليكم قصتي :^)

عندي في الفورم datagrid مربوطة بجدول في قاعدة sql هذا الجدول يحتوي على

اسم الحساب

مدين

دائن

البيان

الان ال datagrid تحوي رقم الحساب على شكل combobox

اما المدين و الدائن فهما على شكل datagrudtextbox

الان انا بختار اسم حساب من داتاجريد select from combobox column

ثم بضع قيم في الخليتين المدين و الدائن اليكم صورة للتوضيح

help2.JPG

كما تلاحظون فقد وضعت غي الجانب المدين 50 للصندوق الفرعي و هو اسم حساب و وضعت كذلك لمصاريف الهاتف في الجانب الدائن

الان في قاعدة اللبيانات الحقلين المدين و الدائن يحتويان على ارصدة سابقة فمثلا

الجانب المدين للصندوق الفرعي كان 150 قبل ادخال هذا القيد اللي شايفينه بالصورة

الان بعد ادخال هذا القيد سوف يزيد الجانب المدين للصندوق الفرعي بمقدار 50 اي سوف يصبح 200

و كذلك حساب تأمينات الهاتف كان الجانب الدائن منه قبل عملية ادخال هذا السنداللي في الصورة 250 و بعد ادخال السند سوف يزيد ايضا ب 50 سووف يصبح 300

ما هو الكود اللازم لأجراء الزيادة في الحسابات المدينة و الدائنة

ارجو منكم المساعدة حيث سبق و طرحت هذا الموضوع ولم اجد منكم اي رد

ما اريده هو زيادة للجانب المدين و الدائن في قاعدة البيانات بحسب ما اضع انا في خلايا datagrid لكل حساب

هل ذلك ممكن ام انها عملية معقدة نوعا ما حيث اننا نتعامل مع عدة خلايا في datagrid واحدة

ملاحظة : العمل على vb.net2003

#2

up

تم تعديل هذه المشاركة بواسطة moh1983 في 7 أغسطس 2006 في 12:04

#3

السلام عليكم

توصلت لشبه حل لهذه المسألة و هو كما يلي

اولا عرفت العمود و السطر في الداتاجريد عن طريق الكود التالي

 Dim col As Int16 = NDataGrid1.CurrentCell.ColumnNumber.ToString
					Dim row  As Int16 = NDataGrid1.CurrentCell.RowNumber.ToString

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

 Dim account_number As string = NDataGrid1.Item(col, row)

بعد ذلك قمت بكتابو جملة التعديل كما يلي

 Dim sql As String = "update balance_detail set median='" & median & "', creditor= '" & credit & "'  where balance_detail_no='" & account_name & "'"

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

t.JPG

كما ترون التعديل هنا سوف لن يحصل لاني مختار حسابين في الداتاجريد و لو كان الذي اخترته حساب واحد فقط لتم التعديل فمثلا لو اني مختار " الصندوق الفرعي" فقط لتمت عملبة التعديل !!!

ما السبب في ذلك برأيكم

ارجو الافادة B)

#4

السلام عليكم

توصلت لشبه حل لهذه المسألة و هو كما يلي

اولا عرفت العمود و السطر في الداتاجريد عن طريق الكود التالي

 Dim col As Int16 = NDataGrid1.CurrentCell.ColumnNumber.ToString
					Dim row  As Int16 = NDataGrid1.CurrentCell.RowNumber.ToString

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

 Dim account_number As string = NDataGrid1.Item(col, row)

بعد ذلك قمت بكتابة جملة التعديل كما يلي

 Dim sql As String = "update balance_detail set median='" & median & "', creditor= '" & credit & "'  where balance_detail_no='" & account_number & "'"

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

t.JPG

كما ترون التعديل هنا سوف لن يحصل لاني مختار حسابين في الداتاجريد و لو كان الذي اخترته حساب واحد فقط لتم التعديل فمثلا لو اني مختار " الصندوق الفرعي" فقط لتمت عملبة التعديل !!!

ما السبب في ذلك برأيكم

ارجو الافادة B)

تم تعديل هذه المشاركة بواسطة moh1983 في 7 أغسطس 2006 في 16:10

#5

بسم الله الرحمن الرحيم

أخى في الله moh1983

لقد أرفقت لك مثلا لما فهمته منك واتمنى ان يكون هذا هو ما تريده

وفقك الله تعالى

WindowsApplication1.rar

يا حى يا قيوم برحمتك أستغيث اصلح لى شأنى كله ولا تكلنى إلى نفسى طرفة عين

اللهم أعنا على ذكرك وشكرك وحسن عبادتك

اللهم انك عفو كريم حليم تحب العفو فاعفو عنا

اللهم إنى أسألك رضاك والجنة وأعوذ بك من سخطك والنار

اللهم إرحمنا فوق الأرض وإرحمنا تحت الأرض وإرحمنا وإعتق رقابنا يوم العرض

اللهم لا تدع لنا ذنبًا إلا غفرته ولا همًا إلا فرجته ولا مريضًا ولا دينًا إلا قضيته ولا عيبا إلا سترته ولا حاجًا هى لك رضا إلا قضيتها

اللهم انى أسألك موجبات رحمتك وعزائم مغفرتك والسلامة من كل إثم والغنيمة من كل بر والفوز بالجنة و النجاة من النار اللهم أمين يا رب العالمين

#6

السلام عليكم

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

اي ان ال combobox لاسم الحسابات سوف يكون فارغ و انا سوف اقوم باختيار الحساب الذي اريده , ايضا قيم المدين و الدائن تكون فارغة في الداتاجريد و انا اقوم بتعبئتها يدويا و بالتالي قبل عملية التعديل هناك عملية جلب ارصدة المدين و الدائن لأسم الحساب و من ثم زيادة القيم التي سوف ادخلها عليها

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

اريد الان ان ادخل عملية على هذا الحساب

الذي سوف يحدث إن شاء الله هو انه اقوم باختيار اسم الحساب " الصندوق" و اضع قيم له في الجانبين المدين و الدائن و من ثم قبل التعديل اقوم بعملية select لقيم الحساب المدين و الدائن و من ثم جمعها مع ما انا قمت بادخاله في الداتاجريد في الجانبين المدين و الدائن و من ثم التعديل

ارجو ان تكون الفكرة واضحة

و ارجو منكم المتابعة

شكر خاص لكي يا انجي على الرد ;)

#7

لا حول ولا قوة الا بالله

#8

أخي الفاضل ،،،

سوف أجيبك حسب مافهمت ولكن قبل الاجابة لي تعليق بسيط

وهو أنه تقريبا لا يوجد شيئ لا يمكن عمله بالبرمجة

ولكن العبرة دائما تكون في جودة التصميم قبل أن تكون في كيفية التنفيذ

وأعتقد ان برنامجك ( حسب مافهمت ) ليس محبوكا في التصميم

فاذا كنت تتكلم عن ارقام حسابات وتسجيل العمليات التى تجرى عليها سواء عمليات دائن أو مدين

فمن الطبيعي أن تسجل جميع الحركات التى تجرى على رقم الحساب الواحد

وتطلبها متى شئت وبالطريقة والتفصيل والتاريخ الذي ترغب به

كما نراه من واقع الحال في حسابات البنوك

وليس كما شاهدت في برنامجك أن لكل رقم حساب بيان واحد فقط للدائن وواحد للمدين

أي ان ما أقصده هو انه مثل هذه البرامج يجب أن تعد بطريقة Primary Slave Technique

وليس بالعلاقات المباشرة

هذه وجهة نظري في ذلك والله أعلم

أما بخصوص حل المشكلة عندك فأقترح أن تضيف حقل اجمالي دائن وأجمالي مدين للجدول الرئيسي الخاص بأرقام الحسابات

أي يكون لكل رقم حساب الحقول التالية :

1- رقم الحساب

2- آخر عملية دائن

3- أجمالى الدائن

4- آخر عملية مدين

5- اجمالي مدين

بحيث تدخل آخر قيمة عملية دائن (مثلا ) عن طريق DataGrid أو من أي طريق آخر

ثم من خلال أحداث DataGrid أو من خلال ضغطة زر خارجي تقوم باضافة هذه القيمة الى حقل الاجمالي

هذا بصورة عامة

والله أعلم ،،،

تم تعديل هذه المشاركة بواسطة وليد مندني في 15 أغسطس 2006 في 08:40

#9

السلام عليكم

اخي .. لا اعرف بماذا اجيبك

لكن مشكلتي بالكود و ليس بالتصميم

اي بالحدث datagrid current cell changed و كيفية اخذ القيمة من خلية موجودة بالداتاجريد و التعامل معها ليس الا

جزاك الله خير على كل حال ;)

و ااكد انه لا يوجد حل <_< ربما و لكن ليس في هذا المنتدى لان الموضوع صارله اكثر من شهرين (تخيل ) شهرين :lol:

#10

السلام عليكم

اقتباس
لان الموضوع صارله اكثر من شهرين (تخيل ) شهرين

أقول أحسن الله إليك, تخيل ان الموضوع أُجِيب عليه من شهرين, و إلى الان انت لم تكتشف ذلك

و أترك الحكم للقارئ إليك الرابط التالي

في المثال يتضح المقال

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…