تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكل عند اعادة الضغط على Botton الحساب (مشكل مستمر)
#1
Photo 
السلام عليكم
اصادف مشكل غريب عند اعادة الضغط على Botton الحساب للمرة الثانية تتغير القيم بالشكل التالي ، لاكن المشكل اواجهه في اجهزة دون الأخرى لاني جربت على اكثر من جهاز


           
الرد }}}
تم الشكر بواسطة:
#2
(09-03-20, 04:46 PM)paveldida كتب : السلام عليكم
اصادف مشكل غريب عند اعادة الضغط على Botton الحساب للمرة الثانية تتغير القيم بالشكل التالي ، لاكن المشكل اواجهه في اجهزة دون الأخرى لاني جربت على اكثر من جهاز


           

ضع الكود الذي تستخدمه مع توضيح اي الصورتين صحيحة او كيف المفروض ان يكون الناتج صحيحا
الرد }}}
تم الشكر بواسطة:
#3
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        TextBox7.Text = Val(TextBox7.Text) + 3000
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        TextBox8.Text = 2000

    End Sub

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        TextBox9.Text = 1800
    End Sub

    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        TextBox10.Text = 1500
    End Sub

كود الحساب كاآتي:

Dim a, b, c, d, f, g, h, j, k, l, m, n, y, t, i As Double

        a = Val(TextBox1.Text)
        f = Val(TextBox5.Text)
        j = Val(TextBox7.Text)
        k = Val(TextBox8.Text)
        l = Val(TextBox9.Text)
        m = Val(TextBox10.Text)
        h = Val(TextBox7.Text)

        b = a / 5
        c = a * 5 / 100
        If c <= 1500 Then
            c = 1500
        End If

        d = a * 1 / 100
        If d <= 2000 Then
            d = 2000
        End If
        g = c / 2
        If a > 1000000 Then
            i = 15000 + 10000 + ((a - 1000000) * 0.01)
        ElseIf a > 500000 Then
            i = 15000 + ((a - 500000) * 0.02)
        ElseIf a <= 500000 Then
            i = 15000
        End If
        n = (i + h + k + l + m) * 19 / 100
        t = c + d + f + i + h + k + l + m + n
        y = t - g

        TextBox2.Text = Str(b)
        TextBox3.Text = Str©
        TextBox4.Text = Str(d)
        TextBox6.Text = Str(i)
        TextBox13.Text = Str(g)
        TextBox11.Text = Str(n)
        TextBox12.Text = Str(t)
        TextBox14.Text = Str(y)
        TextBox1.Text = FormatNumber(a, 2)
        TextBox2.Text = FormatNumber(b, 2)
        TextBox3.Text = FormatNumber(c, 2)
        TextBox4.Text = FormatNumber(d, 2)
        TextBox5.Text = FormatNumber(f, 2)
        TextBox6.Text = FormatNumber(i, 2)
        TextBox7.Text = FormatNumber(h, 2)
        TextBox8.Text = FormatNumber(k, 2)
        TextBox9.Text = FormatNumber(l, 2)
        TextBox10.Text = FormatNumber(m, 2)
        TextBox11.Text = FormatNumber(n, 2)
        TextBox12.Text = FormatNumber(t, 2)
        TextBox13.Text = FormatNumber(g, 2)
        TextBox14.Text = FormatNumber(y, 2)
    End Sub

(09-03-20, 06:25 PM)alsalamoni كتب :
(09-03-20, 04:46 PM)paveldida كتب : السلام عليكم
اصادف مشكل غريب عند اعادة الضغط على Botton الحساب للمرة الثانية تتغير القيم بالشكل التالي ، لاكن المشكل اواجهه في اجهزة دون الأخرى لاني جربت على اكثر من جهاز


           

ضع الكود الذي تستخدمه مع توضيح اي الصورتين صحيحة او كيف المفروض ان يكون الناتج صحيحا

الصورة على اليمين هي النتيجة الصحيحة
الرد }}}
تم الشكر بواسطة:
#4
(09-03-20, 08:35 PM)paveldida كتب :
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        TextBox7.Text = Val(TextBox7.Text) + 3000
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        TextBox8.Text = 2000

    End Sub

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        TextBox9.Text = 1800
    End Sub

    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        TextBox10.Text = 1500
    End Sub

كود الحساب كاآتي:

Dim a, b, c, d, f, g, h, j, k, l, m, n, y, t, i As Double

        a = Val(TextBox1.Text)
        f = Val(TextBox5.Text)
        j = Val(TextBox7.Text)
        k = Val(TextBox8.Text)
        l = Val(TextBox9.Text)
        m = Val(TextBox10.Text)
        h = Val(TextBox7.Text)

        b = a / 5
        c = a * 5 / 100
        If c <= 1500 Then
            c = 1500
        End If

        d = a * 1 / 100
        If d <= 2000 Then
            d = 2000
        End If
        g = c / 2
        If a > 1000000 Then
            i = 15000 + 10000 + ((a - 1000000) * 0.01)
        ElseIf a > 500000 Then
            i = 15000 + ((a - 500000) * 0.02)
        ElseIf a <= 500000 Then
            i = 15000
        End If
        n = (i + h + k + l + m) * 19 / 100
        t = c + d + f + i + h + k + l + m + n
        y = t - g

        TextBox2.Text = Str(b)
        TextBox3.Text = Str©
        TextBox4.Text = Str(d)
        TextBox6.Text = Str(i)
        TextBox13.Text = Str(g)
        TextBox11.Text = Str(n)
        TextBox12.Text = Str(t)
        TextBox14.Text = Str(y)
        TextBox1.Text = FormatNumber(a, 2)
        TextBox2.Text = FormatNumber(b, 2)
        TextBox3.Text = FormatNumber(c, 2)
        TextBox4.Text = FormatNumber(d, 2)
        TextBox5.Text = FormatNumber(f, 2)
        TextBox6.Text = FormatNumber(i, 2)
        TextBox7.Text = FormatNumber(h, 2)
        TextBox8.Text = FormatNumber(k, 2)
        TextBox9.Text = FormatNumber(l, 2)
        TextBox10.Text = FormatNumber(m, 2)
        TextBox11.Text = FormatNumber(n, 2)
        TextBox12.Text = FormatNumber(t, 2)
        TextBox13.Text = FormatNumber(g, 2)
        TextBox14.Text = FormatNumber(y, 2)
    End Sub

(09-03-20, 06:25 PM)alsalamoni كتب :
(09-03-20, 04:46 PM)paveldida كتب : السلام عليكم
اصادف مشكل غريب عند اعادة الضغط على Botton الحساب للمرة الثانية تتغير القيم بالشكل التالي ، لاكن المشكل اواجهه في اجهزة دون الأخرى لاني جربت على اكثر من جهاز


           

ضع الكود الذي تستخدمه مع توضيح اي الصورتين صحيحة او كيف المفروض ان يكون الناتج صحيحا

الصورة على اليمين هي النتيجة الصحيحة

اي TextBox تريد تحويل محتواه الى رقم باستخدام Val يجب حذف الفاصله الخاصه بتنسيق الالوف مثل
كود :
Val(TextBox7.Text.Replace(",", ""))

فيصبح الكود
كود :
   Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
       TextBox7.Text = Val(TextBox7.Text.Replace(",", "")) + 3000
   End Sub

   Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
       TextBox8.Text = 2000

   End Sub

   Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
       TextBox9.Text = 1800
   End Sub

   Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
       TextBox10.Text = 1500
   End Sub

كود الحساب كاآتي:

Dim a, b, c, d, f, g, h, j, k, l, m, n, y, t, i As Double

       a = Val(TextBox1.Text.Replace(",", ""))
       f = Val(TextBox5.Text.Replace(",", ""))
       j = Val(TextBox7.Text.Replace(",", ""))
       k = Val(TextBox8.Text.Replace(",", ""))
       l = Val(TextBox9.Text.Replace(",", ""))
       m = Val(TextBox10.Text.Replace(",", ""))
       h = Val(TextBox7.Text.Replace(",", ""))

       b = a / 5
       c = a * 5 / 100
       If c <= 1500 Then
           c = 1500
       End If

       d = a * 1 / 100
       If d <= 2000 Then
           d = 2000
       End If
       g = c / 2
       If a > 1000000 Then
           i = 15000 + 10000 + ((a - 1000000) * 0.01)
       ElseIf a > 500000 Then
           i = 15000 + ((a - 500000) * 0.02)
       ElseIf a <= 500000 Then
           i = 15000
       End If
       n = (i + h + k + l + m) * 19 / 100
       t = c + d + f + i + h + k + l + m + n
       y = t - g

       TextBox2.Text = Str(b)
       TextBox3.Text = Str(c)
       TextBox4.Text = Str(d)
       TextBox6.Text = Str(i)
       TextBox13.Text = Str(g)
       TextBox11.Text = Str(n)
       TextBox12.Text = Str(t)
       TextBox14.Text = Str(y)
       TextBox1.Text = FormatNumber(a, 2)
       TextBox2.Text = FormatNumber(b, 2)
       TextBox3.Text = FormatNumber(c, 2)
       TextBox4.Text = FormatNumber(d, 2)
       TextBox5.Text = FormatNumber(f, 2)
       TextBox6.Text = FormatNumber(i, 2)
       TextBox7.Text = FormatNumber(h, 2)
       TextBox8.Text = FormatNumber(k, 2)
       TextBox9.Text = FormatNumber(l, 2)
       TextBox10.Text = FormatNumber(m, 2)
       TextBox11.Text = FormatNumber(n, 2)
       TextBox12.Text = FormatNumber(t, 2)
       TextBox13.Text = FormatNumber(g, 2)
       TextBox14.Text = FormatNumber(y, 2)
   End Sub

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

حسب الصورة التي على اليمين يبدو ان الفاصلة المعتمدة لتنسيق الالوف في هذا الجهاز هي المسافة
فيجب ان يتم حذفها بالطريقة التالية وتطبيق الطريقة نفسها على بقية TextBox التي في الكود
كود :
Val(TextBox7.Text.Replace(" ", ""))
الرد }}}
#5
(09-03-20, 09:02 PM)alsalamoni كتب :
(09-03-20, 08:35 PM)paveldida كتب :
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
        TextBox7.Text = Val(TextBox7.Text) + 3000
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        TextBox8.Text = 2000

    End Sub

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        TextBox9.Text = 1800
    End Sub

    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
        TextBox10.Text = 1500
    End Sub

كود الحساب كاآتي:

Dim a, b, c, d, f, g, h, j, k, l, m, n, y, t, i As Double

        a = Val(TextBox1.Text)
        f = Val(TextBox5.Text)
        j = Val(TextBox7.Text)
        k = Val(TextBox8.Text)
        l = Val(TextBox9.Text)
        m = Val(TextBox10.Text)
        h = Val(TextBox7.Text)

        b = a / 5
        c = a * 5 / 100
        If c <= 1500 Then
            c = 1500
        End If

        d = a * 1 / 100
        If d <= 2000 Then
            d = 2000
        End If
        g = c / 2
        If a > 1000000 Then
            i = 15000 + 10000 + ((a - 1000000) * 0.01)
        ElseIf a > 500000 Then
            i = 15000 + ((a - 500000) * 0.02)
        ElseIf a <= 500000 Then
            i = 15000
        End If
        n = (i + h + k + l + m) * 19 / 100
        t = c + d + f + i + h + k + l + m + n
        y = t - g

        TextBox2.Text = Str(b)
        TextBox3.Text = Str©
        TextBox4.Text = Str(d)
        TextBox6.Text = Str(i)
        TextBox13.Text = Str(g)
        TextBox11.Text = Str(n)
        TextBox12.Text = Str(t)
        TextBox14.Text = Str(y)
        TextBox1.Text = FormatNumber(a, 2)
        TextBox2.Text = FormatNumber(b, 2)
        TextBox3.Text = FormatNumber(c, 2)
        TextBox4.Text = FormatNumber(d, 2)
        TextBox5.Text = FormatNumber(f, 2)
        TextBox6.Text = FormatNumber(i, 2)
        TextBox7.Text = FormatNumber(h, 2)
        TextBox8.Text = FormatNumber(k, 2)
        TextBox9.Text = FormatNumber(l, 2)
        TextBox10.Text = FormatNumber(m, 2)
        TextBox11.Text = FormatNumber(n, 2)
        TextBox12.Text = FormatNumber(t, 2)
        TextBox13.Text = FormatNumber(g, 2)
        TextBox14.Text = FormatNumber(y, 2)
    End Sub

(09-03-20, 06:25 PM)alsalamoni كتب :
(09-03-20, 04:46 PM)paveldida كتب : السلام عليكم
اصادف مشكل غريب عند اعادة الضغط على Botton الحساب للمرة الثانية تتغير القيم بالشكل التالي ، لاكن المشكل اواجهه في اجهزة دون الأخرى لاني جربت على اكثر من جهاز


           

ضع الكود الذي تستخدمه مع توضيح اي الصورتين صحيحة او كيف المفروض ان يكون الناتج صحيحا

الصورة على اليمين هي النتيجة الصحيحة

اي TextBox تريد تحويل محتواه الى رقم باستخدام Val يجب حذف الفاصله الخاصه بتنسيق الالوف مثل
كود :
Val(TextBox7.Text.Replace(",", ""))

فيصبح الكود
كود :
   Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
       TextBox7.Text = Val(TextBox7.Text.Replace(",", "")) + 3000
   End Sub

   Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
       TextBox8.Text = 2000

   End Sub

   Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
       TextBox9.Text = 1800
   End Sub

   Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
       TextBox10.Text = 1500
   End Sub

كود الحساب كاآتي:

Dim a, b, c, d, f, g, h, j, k, l, m, n, y, t, i As Double

       a = Val(TextBox1.Text.Replace(",", ""))
       f = Val(TextBox5.Text.Replace(",", ""))
       j = Val(TextBox7.Text.Replace(",", ""))
       k = Val(TextBox8.Text.Replace(",", ""))
       l = Val(TextBox9.Text.Replace(",", ""))
       m = Val(TextBox10.Text.Replace(",", ""))
       h = Val(TextBox7.Text.Replace(",", ""))

       b = a / 5
       c = a * 5 / 100
       If c <= 1500 Then
           c = 1500
       End If

       d = a * 1 / 100
       If d <= 2000 Then
           d = 2000
       End If
       g = c / 2
       If a > 1000000 Then
           i = 15000 + 10000 + ((a - 1000000) * 0.01)
       ElseIf a > 500000 Then
           i = 15000 + ((a - 500000) * 0.02)
       ElseIf a <= 500000 Then
           i = 15000
       End If
       n = (i + h + k + l + m) * 19 / 100
       t = c + d + f + i + h + k + l + m + n
       y = t - g

       TextBox2.Text = Str(b)
       TextBox3.Text = Str(c)
       TextBox4.Text = Str(d)
       TextBox6.Text = Str(i)
       TextBox13.Text = Str(g)
       TextBox11.Text = Str(n)
       TextBox12.Text = Str(t)
       TextBox14.Text = Str(y)
       TextBox1.Text = FormatNumber(a, 2)
       TextBox2.Text = FormatNumber(b, 2)
       TextBox3.Text = FormatNumber(c, 2)
       TextBox4.Text = FormatNumber(d, 2)
       TextBox5.Text = FormatNumber(f, 2)
       TextBox6.Text = FormatNumber(i, 2)
       TextBox7.Text = FormatNumber(h, 2)
       TextBox8.Text = FormatNumber(k, 2)
       TextBox9.Text = FormatNumber(l, 2)
       TextBox10.Text = FormatNumber(m, 2)
       TextBox11.Text = FormatNumber(n, 2)
       TextBox12.Text = FormatNumber(t, 2)
       TextBox13.Text = FormatNumber(g, 2)
       TextBox14.Text = FormatNumber(y, 2)
   End Sub

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

حسب الصورة التي على اليمين يبدو ان الفاصلة المعتمدة لتنسيق الالوف في هذا الجهاز هي المسافة
فيجب ان يتم حذفها بالطريقة التالية وتطبيق الطريقة نفسها على بقية TextBox التي في الكود
كود :
Val(TextBox7.Text.Replace(" ", ""))

لم ينفع الأمر للأسف 
للاشارة فان الامشكل لا يطرح في حالة حذف كودات formatnumber  ، لاكن يهمني  ان يظهر textbox برقمين بعد الفاصلة لانها مبالغ مالية

سأرفع فيديو للبرنامج من جهازين مختلفين لتتبين الصورة
الرد }}}
تم الشكر بواسطة:
#6
الفديو الأول من جهاز بدون أخطاء بعد اعادة الحساب عدة مرات




الفيدو الثاني مع الخطأ عند اعادة الحساب ، رغم اني لم اغير اي قيمة لاكن المبالغ تتغير


الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مشكل ظهور Query SQLITE في إظهار جميع التواريخ b4getws 3 529 28-02-25, 10:36 AM
آخر رد: b4getws
  أريد كود عند الضغط على الصورة في PictureBox تفتح في برنامج الصور في الويندوز F.H.M 6 639 25-10-24, 01:57 PM
آخر رد: F.H.M
  عند الضغط على زر Cancel يظهر لي رسالة خطأ F.H.M 11 1,109 25-10-24, 06:39 AM
آخر رد: F.H.M
  [سؤال] تنفيذ عدة أوامر مختلفة في خلية DGV عند الضغط بعدة أزرار Mohamd Mercy To TheWorlds 0 274 10-09-24, 08:26 AM
آخر رد: Mohamd Mercy To TheWorlds
  كيف يمكنني الضغط على DataGridView_CellFormatting عبر Button1 moh61 1 397 27-06-24, 12:48 AM
آخر رد: asmarsou
  تنفيذ أمر عند الضغط على أى زر من الكيبورد heem1986 1 368 12-06-24, 05:57 PM
آخر رد: تركي الحلواني
  [VB.NET] اعادة توجيه للرابط ميدو الفنان 2 369 05-06-24, 02:18 PM
آخر رد: ميدو الفنان
  احتاج كود اعادة الترقيم في السنة الجديدة ranosh 3 789 27-11-23, 01:25 AM
آخر رد: justforit
  [سؤال] حول ظهور النافذة الاولى عند الضغط على Menustrip2 في النافذة الثانية vb.net 2012 mh66 0 471 19-10-23, 09:05 AM
آخر رد: mh66
  [سؤال] حركة الحساب ahmed_king2023 3 577 21-08-23, 12:27 AM
آخر رد: Taha Okla

التنقل السريع :


يقوم بقرائة الموضوع: