03-01-21, 07:18 PM (آخر تعديل لهذه المشاركة : 03-01-21, 10:06 PM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته
اخي الكريم
هذا الكود للداتاغرايد افترضت فيه 3 اعمدة وحيث اننا نقف او نحتار الصف الحالي
نحول العمود الاول وهو التاريخ من نص الى تاريخ ونضعه في متغير ونحول العمود الثاني الذي هو عدد اشهر الاضافة من نص الى نوع (int) ونضعه في متغير
ثم نسند للعمود الثالث الناتج من قيمة المتغير الاول وهو التاريخ مضافا اليه عدد الاشهر الموجودة في المتغير الرقمي العمود الثاني
(03-01-21, 07:18 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم
هذا الكود للداتاغرايد افترضت فيه 3 اعمدة وحيث اننا نقف او نحتار الصف الحالي
نحول العمود الاول وهو التاريخ من نص الى تاريخ ونضعه في متغير ونحول العمود الثاني الذي هو عدد اشهر الاضافة من نص الى نوع (int) ونضعه في متغير
ثم نسند للعمود الثالث الناتج من قيمة المتغير الاول وهو التاريخ مضافا اليه عدد الاشهر الموجودة في المتغير الرقمي العمود الثاني
04-01-21, 04:14 AM (آخر تعديل لهذه المشاركة : 04-01-21, 04:32 AM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته اخي الكريم اخر اولا يجب ان تتم عملية اضافة الشهور اثناء تعبئة مربعات النصوص الخاصة باضافة سجل جديد وعند اختيار تاريخ معين ثم اضافة عدد من الشهور في مربع نص عدد الشهور المضافة وبعد الانتقال الى التاريخ الجديد تتم العملية الحسابية بعدها ستكون جملة الحفظ بحيث تأخذ بياناتها من مربعات الادخال
معلومة ونصيحة : لاتجرى عمليات حسابية في جمل الانسرت او الابدايت بل ان جملة الانسرت ستأخذ القيم جاهزة بعد العمليات الحسابية خارج كود الانسرت(الحفظ او التعديل) هذا في حال انك تدخل البيانات عبر مربعات ادخال عد الى برنامجك وغير القيم بحيث تستبدل حقول الداتاغرايد بمربعات الادخال اما ان كان الادخال من الداتا غرايد فعليك استخدام اي حدث يناسبك عند الانتقال من خلية الى اخرى لعمل الحساب والحذث التالي هو المناسب dataGridView1_CellValidated اي ان العملية الحسابية تتم في الداتاتا غرايد ثم ستقوم بجملة الحفظ المعتادة لديك بشكل مستقل اليك الكود
(04-01-21, 04:14 AM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته اخي الكريم اخر اولا يجب ان تتم عملية اضافة الشهور اثناء تعبئة مربعات النصوص الخاصة باضافة سجل جديد وعند اختيار تاريخ معين ثم اضافة عدد من الشهور في مربع نص عدد الشهور المضافة وبعد الانتقال الى التاريخ الجديد تتم العملية الحسابية بعدها ستكون جملة الحفظ بحيث تأخذ بياناتها من مربعات الادخال
معلومة ونصيحة : لاتجرى عمليات حسابية في جمل الانسرت او الابدايت بل ان جملة الانسرت ستأخذ القيم جاهزة بعد العمليات الحسابية خارج كود الانسرت(الحفظ او التعديل) هذا في حال انك تدخل البيانات عبر مربعات ادخال عد الى برنامجك وغير القيم بحيث تستبدل حقول الداتاغرايد بمربعات الادخال اما ان كان الادخال من الداتا غرايد فعليك استخدام اي حدث يناسبك عند الانتقال من خلية الى اخرى لعمل الحساب والحذث التالي هو المناسب dataGridView1_CellValidated اي ان العملية الحسابية تتم في الداتاتا غرايد ثم ستقوم بجملة الحفظ المعتادة لديك بشكل مستقل اليك الكود
اولا بشكر حضرتك على مجهودك ومحاوله مساعدتى
انا بالفعل الاضافه بتم عن طريق (dataGridView) وليس مربعات نصوص حولت اعمل الكود ولكن يظهر خطأ فى هذا السطر تحديدا بيضع خط احمر اسفل (VV) ("dataGridView1.CurrentRow.Cells[2].Value = DD.AddMonths(VV).ToString("dd/MM/yyyy"); ولذلك اقتصرت الطريق وقمت بعمل فيو داخل السيكول سيرفر ونفذ المطلوب كما اريد ولكن وجهتنى مشكله اتمنى القي حل ليها مستخدم فيه داله (iif) واريد اضافتها اكتر من مره ولم افلح مرفق ككود الفيو داخل السيكول سيرفر
محتاج اقول للكود اذا كان حقل Nam يساوى خصم نفذ عمليه حسابيه واذا كان انذار نفذ عمليه حسابيه اخرى واذا كان جزاء نفذ عمليه مختلفه عن السابقين واذا كان عير ذلك ينفذ عمليه اخرى والناتج يضعه فى حقل ويسميه (Total_Discount) ولكن بتظهر خطأ مع ان الكود بيعمل بشرط واحد فقط لكن عند اضافه اكتر من شرط بيظهر خطأ لو امكن تعدل الكود كما اريد وجزاك الله خيرا الكود كامل هو
كود :
SELECT dbo.TB_Employ.Emp_ID, dbo.TB_Employ.Emp_Nam, dbo.TB_Penalty.ID AS Nam_ID, dbo.TB_Penalty.Number_Days, dbo.TB_Penalty.Number_Month, dbo.TB_Penalty.Start,
DATEADD(Month, dbo.TB_Penalty.Number_Month, dbo.TB_Penalty.Start) AS Fin, dbo.View_Total_Statement.Total AS Totl,