PDA

View Full Version : یک اشکال ساده



نسرین2000
سه شنبه 08 بهمن 1392, 08:25 صبح
سلام
یک اشکال دیگر که دارم در مورد عملیات ریاضی روی تکس باکس هاست .
در یکی از فرمها 4 تا تکس باکس و یک کمبوباکس دارم .
می خواهم حاصلضرب دو تا تکس باکس را محاسبه کند ، آن وقت اگر آیتمی از کمبو ( که نشان دهنده درصد تخفیف هست ) انتخاب کردیم درصد تخفیف را محاسبه کند و قیمت نهایی را در یک تکس باکس دیگر قرار دهد .
نام تکس باکس ها : txtmodat_eghamat , txtpay_night , txttakhfif , txtpardakht
نام کمبو : cbodarcad

Dim pay As Integer
txtpardakht.Text = (Val(txtpay_night.Text)) * (Val(txtmodat_eghamat.Text))
If cbodarcad.SelectedItem Then
txttakhfif.Text = (pay * Val(cbodarcad.SelectedItem)) / 100
Else
txttakhfif.Text = 0
End If
txtpardakht.Text = pay - Val(txttakhfif.Text)
با کدهای بالا اصلا تخفیف و هزینه نهایی را محاسبه نمی کند ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

sagggad
سه شنبه 08 بهمن 1392, 08:45 صبح
سلام
دوتا اشکال:
1- این خط کد:

If cbodarcad.SelectedItem Then
خصوصیت SelectedItem یک خصوصیت Boolean نیست که شما به آن مقدار نداده اید
به عنوان مثال کامبوباکس شما دارای 2 آیتم است:
1- تخفیف دارد
2-دارای تخفیف نیست
خوب حالا شما میتوانید به وسیله ی خصوصیت SelectedIndex چک کرده و ببینید که کدام یک از آبتم ها انتخاب شده اند
در اینجا آیتم "تخفیف دارد" شماره ی 0 را به خود اختصاص میدهد
پس باید خط را به این صورت تغییر داد:

If cbodarcad.SelectedIndex = 0 Thenایراد دوم:
متغیر Pay را در کجا مقداردهی کرده اید که در اینجا بر روی آن عملیات انجام میدهید؟؟؟؟؟؟!!!!!!:متعجب:
در هیچ جا این متغیر مقدار دهی نشده است
این ایرادات را رفع کنید تا برنامه به درستی کار کند
ضمنا:کامبوباکس شما دارای چه مقادیری است؟؟؟
موفق باشید

نسرین2000
سه شنبه 08 بهمن 1392, 09:45 صبح
کمبو باکس دارای مقادیر درصد تخفیف است یعنی 10 و 20 و 30 و 40 و 50 و 100

sagggad
سه شنبه 08 بهمن 1392, 09:52 صبح
خوب شما اون ایراداتی که گفتم رو برطرف کنید

boveiryghasem
سه شنبه 08 بهمن 1392, 13:18 عصر
سلام

توی قسمت Public فرمت همون جایی که SqlConnection برنامت رو تعریف کردی (طبق چیزی که ارسال کردی،البته واسه من باز نشد) یه متغیر تعریف کن به اسم Dim F As Double = 0

بعد توی رویداد SelectedIndexChanged واسه کامبو باکست این کدهای زیر رو بنویس:

Private Sub cbodarcad_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cbodarcad.SelectedIndexChanged
Select Case cbodarcad.Text
Case "0"
F = 0
Case "10"
F = 10
Case "20"
F = 20
Case "30"
F = 30
Case "40"
F = 40
Case "50"
F = 50
Case "100"
F = 100
End Select
End Sub
حالا ایناهم میشه واسه قسمت محاسبه قیمت و تخفیف توی رویداد txtpay_night_TextChanged باید بنویسی:

Private Sub txtpay_night_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtpay_night.TextChanged
Dim pay As Double = 0
pay = ((Double.Parse(txtpay_night.Text) * (Double.Parse(txtmodat_eghamat.Text))))
If cbodarcad.SelectedItem Then
txttakhfif.Text = (pay * F) / 100
Else
txttakhfif.Text = 0
End If
txtpardakht.Text = pay - Double.Parse(txttakhfif.Text)
End Sub

اینایی که گفتم رو طبق برنامه خودت درست کردم اگر نتونستی جواب بگیری بگو سرمو بکوبم به لبه میز :عصبانی++:

نسرین2000
شنبه 12 بهمن 1392, 07:37 صبح
سلام
مچکرم از دوستانی که پاسخ دادند ولی باز هم ارور می دهد
116247