منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : عملية جمع قيمة التكست
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
[attachment=25681]السلام عليكم

في المثال المرفق يوجد تكست في الفورم الأول يتم إدخال مبلغ معين به كإيرادات عمل معين 
وفي الفورم الثاني يوجد عدد 2 تكست يتم نقل الإيراد الحالي من الفورم الأول إلى أحدهما 
وفي التكست الثاني يتم جمع عمليات الإيرادات بشكل متتالي وكأنها رصيد الإيرادات

بصراحه الكود الي يقوم بعملية جمع الإيرادات بشكل صحيح عجزت اوصل له 
دائما يحصل خطأ

ارجو ممن يملك هذه المعلومه يعدل ع النموذج وله الشكر الجزيل!
السّلام عليكم و رحمة الله و بركاته
الإشكالية أخي الكريم في جمع القيم ثم تخرج من الفورم الثاني و تبقى القيمة محفوظة لتضيف عليها مرات و مرات ..
لو كانت العملية بفورم واحد دون الخروج من الفورم الأول كان الأمر سيكون بسيط طبعا بالنسبة لي و حدود معرفتي
و لذلك ..
محاولة بسيطة إعتمدت على حفظ الرصيد النهائي بالسيتينغ .. للتمكن من الإضافة عليه
قد تكون هناك حلول أكثر إحترافية .. المهم أحسن من بلاش
تحياتي واحتراماتي
شكرا لك أخي عبدالعزيز
ولكن يبدو ان الفكرة التي أعنيها لم تصل إليك بشكل واضح
بفرض أن هناك مستخدم يقوم بإدخال مبالغ في حسابة عن طريق التكست في الفورم الأول
وبمجرد الضغط على مفتاح تحويل الرصيد يتم مسح المبلغ من التكست ونقله للتكست الخاص بالعملية الحالية في الفورم الثاني
ويقوم بعملية أخرى فيحدث نفس الشي وفي نفس الوقت يتم جمع جميع المبالغ في التكست الخاص بالرصيد في الفورم الثاني

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

عموما اعتقد الأفضل في نقل الرصيد هو نقله من الفورم الأول 
ولكن الإشكالية في جمعه في الفورم الثاني بشكل متتالي
و الله لم أفهم الموضوع بشكل واضح أخي الكريم
شوف يا غالي ..
روح مباشرة للفورم رقم 3
و جرّب كتابة قيمة بالتاكست 2 واضغط على ENTER
طبعا من أجل ما يسمى الرصيد التراكمي بالتاكست 3
فقط لأقرّب لك الفكرة لعلها تفيد إن شاء الله
تحياتي
قمت بالتعديل على النموذج حتى يتم فهمه بشكل افضل
فقط جرب إدخال مبلغ في التكست الخاص بالإيرادات والضغط على تحويل الرصيد لترى ماذا يحدث في التكست في الفورم الثاني 
عملية الجمع بها خلل لم استطيه حله

(15-09-20, 05:20 PM)عبد العزيز البسكري كتب : [ -> ]
و الله لم أفهم الموضوع بشكل واضح أخي الكريم
شوف يا غالي ..
روح مباشرة للفورم رقم 3
و جرّب كتابة قيمة بالتاكست 2 واضغط على ENTER
طبعا من أجل ما يسمى الرصيد التراكمي بالتاكست 3
فقط لأقرّب لك الفكرة لعلها تفيد إن شاء الله
تحياتي

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

تحية لكل اعضاء المنتدى ومشرفية  الكرام

هل هذا استاذى ما تريد ؟؟؟

[attachment=25686]
(15-09-20, 06:52 PM)mmali127 كتب : [ -> ]السلام عليكم 

تحية لكل اعضاء المنتدى ومشرفية  الكرام

هل هذا استاذى ما تريد ؟؟؟

بالضبط هو هذا المطلوب ولكن المشكلة لازالت قائمة وهي عند تحويل صيغة الرقم لعمله لا يعمل الكود بشكل صحيح
فلو تم تحويل الرقم لعملة يكون النموذج سليم مئه بالمئه

شكرا لمجهودك

هنا في التعديل المرفق تم حل المشكله بطريقة إحتياليه على الفيجوال وتعمل بشكل لا غبار عليه
ولكن تمنيت ان اجد الطريقه الصحيحه لتحويل المبلغ بعد جمعه إلى عمله بشكل صحيح
في Form2 عرف متغير عام 

كود :
   Public Total As Decimal

واضف اليه المجموع ومن ثم خذ قيمته وحولها كما تريد الى نص

في Form1 :
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       Form2.TextBox1.Text = CDec(TextBox1.Text).ToString("c")
       Form2.Total += CDec(TextBox1.Text)
       Form2.TextBox2.Text = Form2.Total.ToString("c")

       Form2.Show()

   End Sub
(15-09-20, 08:21 PM)Anas Mahmoud كتب : [ -> ]في Form2 عرف متغير عام 

كود :
   Public Total As Decimal

واضف اليه المجموع ومن ثم خذ قيمته وحولها كما تريد الى نص

في Form1 :
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       Form2.TextBox1.Text = CDec(TextBox1.Text).ToString("c")
       Form2.Total += CDec(TextBox1.Text)
       Form2.TextBox2.Text = Form2.Total.ToString("c")

       Form2.Show()

   End Sub

سلمت اناملك وبارك الله فيك
بالضبط هذا هو الحل السليم
بقي ان انوه انه لايجب عليك ابدا استخدام val ، انتهى وقتها للابد 
لانها لاتعطيك اي افادة بان النص قابل للتحويل لرقم ام لا
والاصح بدلا من Cdec استخدام Decimal.Parse لانها مختصة بال نصوص String ، ولانها تتيح TryParse التي تمكنك من التحقق من النص المدخل

كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       Dim deposit As Decimal
       If Decimal.TryParse(TextBox1.Text, deposit) = False Then
           MsgBox("ادخل رقم سليم")
           Return
       End If

       Form2.TextBox1.Text = deposit.ToString("c")
       Form2.Total += deposit
       Form2.TextBox2.Text = Form2.Total.ToString("c")

       Form2.Show()

   End Sub
الصفحات : 1 2