รบกวนผู้รู้ช่วยหน่อยนะครับ มีปัญหาเกี่ยวกับตัวเลขที่แสดงใน vb ครับ สำคัญกับผมมากๆเลยครับ
Me.txt_SUM3.Text = FormatNumber(Me.txt_SUM.Text - ((Me.txt_SUM.Text * Me.txt_vat.Text) / 100), 2)
Date :
2011-12-14 13:17:06
By :
Thep
Code (VB.NET)
sum.ToString("#,###.00")
Date :
2011-12-14 13:22:46
By :
Testprogram
ความคิดเห็นที่ 2 ก็ใช้ได้แล้วครับ แต่เพิ่มเติมให้นิดนึงในกรณีที่ จขกท. อยากใช้ Function เดิม
ให้เขียนประมาณนี้ครับ
Code (VB.NET)
FormatNumber(txt_SUM3.Text, 2, , , TriState.True)
อธิบายเพิ่มเติมสำหรับเจ้า FormatNumber Function
FormatNumber จะมี Parameter ทั้งหมด 5 ตัว นะครับ
รูปแบบประมาณนี้
Code (VB.NET)
FormatNumber(1, 2, 3, 4, 5)
1 = ตัวเลขที่เราต้องการเอามากำหนด Format (มันรับค่าเป็น Object แต่ก็ตัวเลขนั้นแหละ)
2 = จำนวนจุดทศนิยมที่เราต้องการ (รับค่าเป็น Numeric)
3 = จะให้แสดงเลข 0 หรือไม่หายหลังจากปัดเศษแล้วค่ามันเท่ากับ 0 (รับค่าเป็น TriState)
TriState.True = โชว์ 0
TriState.False = ไม่โชว์อะไรเลย
TriState.UseDefault = ตาม Regional Settings
4 = จะให้ทำวงเล็บหรือไม่หากค่าติดลบ (รับค่าเป็น TriState)
TriState.True = แสดงวงเล็บถ้าค่าติดลบ
TriState.False = แสดงเป็นค่าติดลบธรรมดา
TriState.UseDefault = ตาม Regional Settings
5 = ให้แสดง , หรือไม่ (รับค่าเป็น TriState)
TriState.True = แสดง
TriState.False = ไม่แสดง
TriState.UseDefault = ตาม Regional Settings
ลองๆ เอาไปเล่นดูครับ
Date :
2011-12-14 13:49:33
By :
kaimuk
ยังไม่ได้เลยครับ ใส่โค๊ดไปแบบนี้
Private Sub Panel9_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel9.Paint
txt_SUM.Text = FormatNumber(txt_SUM.Text, 0) << ถ้าใส่บรรทัดนี้อย่างเดียวtxt_SUMจะมี , คั่น แต่txt_SUM3จะไม่มี , คั่น
txt_SUM3.Text = FormatNumber(txt_SUM3.Text, 2, , , TriState.True) << ถ้าใส่บรรทัดนี้ด้วยจะไม่มี , คั่นทั้งtxt_SUMและtxt_SUM3
End Sub
txt_SUM3 น่าจะทศนิยมหนึ่งตำแหน่งครับ คืออยากให้ออกมาประมาณนี้ >>>>>> 1,164.5 หรือถ้าไม่มีเศษก็ 1,164
ช่วยทีนะครับ ติดอยู่แค่ txt_SUM3 นี่เเหละครับ มันสำพันกันที่ txt_SUM - txt_vat = txt_SUM3 ใช่มั้ยครับ ผมอาจจะใส่โค๊ดผิดที่รึเปล่า นี่คือโค๊ดในส่วนของ ความสัมพันที่บอกเมื่อกี้นะครับ หรือผมต้องแทรกโค๊ดไว้ในส่วนนี้รึเปล่า ลองมั่วหมดแล้วไม่ได้ครับ
Sub SUM_AMOUNT()
Dim c_row As Integer = 0
c_row = DataGrid_Pro.Rows.Count
Dim i As Integer
Dim add As Double = 0
For i = 0 To c_row - 1
Dim a1 As Integer = 0
a1 = DataGrid_Pro.Rows(i).Cells(8).Value
add = add + a1
Next
txt_SUM.Text = add
<<<< เคยลองเอามาแทรกไว้บรรทัดนี้ ก็เหมือนเดิมคือถ้าFormat SUM3ด้วยเมื่อไหร่ มันจะไม่ออกทั้งคู่
txt_SUM3.Text = CDbl(txt_SUM.Text) - ((CDbl(txt_vat.Text) / 100) * CDbl(txt_SUM.Text))
<<<< บรรทัดนี้ก็เคยลองแทรก ผลก็เหมือนเดิมเลยครับ
End Sub
Date :
2011-12-14 14:33:15
By :
off
แปะ Code ได้เปล่าครับอาจจะผิดที่ Logic ก็ได้
Date :
2011-12-14 15:15:08
By :
kaimuk
ยังไงครับ ไม่เข้าใจครับ ช่วยชี้ทางหน่อยครับ
Date :
2011-12-14 16:20:00
By :
off
Copy Code ที่ จขกท. เขียนมาดูครับ
เอาเฉพาะส่วนที่เกี่ยวข้องกับตรงนี้อ่ะครับ
Date :
2011-12-14 16:37:40
By :
kaimuk
ประมาณนี้ครับ ช่วยทีนะครับ
Sub SUM_AMOUNT()
Dim c_row As Integer = 0
c_row = DataGrid_Pro.Rows.Count
Dim i As Integer
Dim add As Double = 0
For i = 0 To c_row - 1
Dim a1 As Integer = 0
a1 = DataGrid_Pro.Rows(i).Cells(8).Value
add = add + a1
Next
txt_SUM.Text = add
txt_SUM3.Text = CDbl(txt_SUM.Text) - ((CDbl(txt_vat.Text) / 100) * CDbl(txt_SUM.Text))
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
If DataGrid_Pro.Rows.Count <> 0 Then
DataGrid_Pro.Rows.RemoveAt(DataGrid_Pro.CurrentRow.Index)
End If
Call SUM_AMOUNT()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
txt_ID_Pro.Text = ""
TextBox4.Text = ""
txt_Name_pro.Text = ""
txt_SUM.Text = "0"
txt_SUM3.Text = "0"
txt_All.Text = ""
txt_prices.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
txt_amount.Text = ""
DataGrid_Pro.Rows.Clear()
End Sub
Sub clr()
txt_ID_Pro.Text = ""
TextBox4.Text = ""
txt_Name_pro.Text = ""
txt_amount.Text = ""
txt_All.Text = ""
txt_prices.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
DataGrid_Pro.Rows.Clear()
TextBox9.Text = ""
TextBox8.Text = ""
TextBox2.Text = ""
txt_id.Text = ""
txt_SUM.Text = "0"
txt_SUM3.Text = "0"
' txt_Date.Text = ""
TextBox1.Text = ""
TextBox3.Text = ""
txt_amount.Text = ""
txt_ID_Pro.Text = ""
txt_Name_pro.Text = ""
txt_All.Text = ""
txt_prices.Text = ""
DataGrid_Pro.Rows.Clear()
End Sub
Date :
2011-12-14 16:56:35
By :
off
อันนี้คือเอาคำสั่ง FormatNumber ที่ใช้ Format txt_SUM กับ txt_SUM3 ออกไปหมดแล้วนะครับ
Date :
2011-12-14 16:59:11
By :
off
Private Sub Button2 กับ Private Sub Button7 น่าจะไม่เกี่ยวครับขอโทดทีครับ ดูอันนี้ละกันนะครับ Button8 คือปุ่มเพิ่มข้อมูล ก่อนจะแสดงลงใน Panel9 ที่มี txt_SUM กับ txt_SUM3
Sub SUM_AMOUNT()
Dim c_row As Integer = 0
c_row = DataGrid_Pro.Rows.Count
Dim i As Integer
Dim add As Double = 0
For i = 0 To c_row - 1
Dim a1 As Integer = 0
a1 = DataGrid_Pro.Rows(i).Cells(8).Value
add = add + a1
Next
txt_SUM.Text = add
txt_SUM3.Text = CDbl(txt_SUM.Text) - ((CDbl(txt_vat.Text) / 100) * CDbl(txt_SUM.Text))
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
Call INSERT_DataOn_G()
' If M_ConnStr.c_TMP12 = "1" Then
' txt_amount.Text = "1"
'TextBox6.Focus()
'txt_amount.Enabled = False
'txt_ID_Pro.Text = ""
'TextBox4.Text = ""
'txt_Name_pro.Text = ""
'txt_SUM.Text = "0"
'txt_SUM3.Text = "0"
'txt_All.Text = ""
'txt_prices.Text = ""
'TextBox5.Text = ""
'TextBox6.Text = ""
'txt_amount.Text = ""
'Else
'txt_amount.Enabled = True
'txt_amount.Focus()
'End If
End Sub
Date :
2011-12-14 17:05:39
By :
off
txt_SUM3.Text = FormatNumber(CDbl(txt_SUM.Text) - ((CDbl(txt_vat.Text) / 100) * CDbl(txt_SUM.Text)),1)
ลองดูครับ
Date :
2011-12-14 18:31:44
By :
Thep
ได้แล้วครั No. 11 คุณสุดยอดจริงๆ พรุ่งนี้ผมต้องส่งงานแล้ว ขอบคุณมากๆครับ และทุกๆคนที่เข้ามาตอบด้วยนะครับ ทุกคนมีส่วนทำให้ผมทำได้ สำคัญกับผมมากจริงๆ ขอบคุณทุกคนมากๆนะครับ
.>>>>>>>>>>สุดยอดดดดดด>>>>>>>>>> www.thaicreate.com <<<<<<<<<<<<<สุดยอดดดดด<<<<<<<<<<<<<,
Date :
2011-12-14 19:12:09
By :
off
Load balance : Server 04