خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
نمایش با حروف ارقام در vb.net
در دو پست قبلی، نحوه نمایش ارقام به صورت سه رقم سه رقم و همین طور جلوگیری از وارد کردن مقادیر غیر عددی در Textbox صحبت کردیم و با کدهای ساده ای به اهداف خود رسیدیم.
موضوع دیگری که بیشتر در پروژه های مالی به چشم می خورد، نمایش با حروف ارقام می باشد. مثلا جمع مبلغ یک سند یا فاکتور همانطور که به صورت عدد و ارقام در نمایش داده شده، به اتوماتیک، مقدار با حروف آن هم نمایش داده شود. توجه داشته باشید که این مهم در زبان برنامه نویسی VB.NET انجام شده است و می توانید کدها را به زبانهای دیگر تبدیل کنید.
همانطور که در تصویر زیر مشاهده می کنید Textbox مربوط به عدد ورودی در فرم قرار داده شده است. در زیر آن یک Label برای نمایش با حروف رقم وارد شده، قرار داده شده است.
حال یک کلاس جدید با نام Fa_Money در پروژه ایجاد کنید و کدهای زیر را کامل انتخاب کرده و در کلاس خود Paste کنید:
در ادامه کار به سراغ Textbox ای که روی فرم قرار داده بودیم می رویم. یا روی Textbox دابل کلیک کنید تا وارد Event مربوط به TextChanged این Textbox شوید و یا اینکه Textbox را کلیک کرده و از پنل سمت راست از قسمت Property های این Textbox، آیکون Events را کلیک کنید و TextChanged را یافته و روی آن دابل کلیک کنید که در هر دو صورت نتیجه یکسان خواهد بود.
حالا کد زیر را در این TextChanged Event این Textbox کپی کنید.
نام Label ای که در فرم برای نمایش با حروف ارقام قرار داده شده بود، lblmoney می باشد. در دستور فوق مقدار text این label برابر با مقداری عددی که در textbox مربوطه وارد می شود و به کلاس Fa_Money که یک پارامتر از نوع String دریافت می کند، می باشد. سپس این کلاس کار خود را انجام داده و مقدار عددی را با حروف هم نمایش داده می شود.
در تصویر زیر همانطور که مشاهده می کنید، ارقام به صورت خودکار، بصورت حروف هم در label مذکور نمایش داده می شوند.
در کد فوق می توانید مقدار "ریال" یا "تومان" یا هر واحد پول با ارزی دیگری را اضافه کنید که در انتهای رقم اضافه و نمایش دهد.
همانطور که در تصویر زیر مشاهده می کنید Textbox مربوط به عدد ورودی در فرم قرار داده شده است. در زیر آن یک Label برای نمایش با حروف رقم وارد شده، قرار داده شده است.
حال یک کلاس جدید با نام Fa_Money در پروژه ایجاد کنید و کدهای زیر را کامل انتخاب کرده و در کلاس خود Paste کنید:
Public Class Fa_Moneyضمنا کلاس فوق را از این لینک می توانید دانلود کنید.
Public Shared Function Fa_Money(ByVal The_Mony As String) As String
Dim D As String = ""
Dim Rt As String = ""
'
Dim D1 As String = ""
Dim D2 As String = ""
Dim D3 As String = ""
Dim D4 As String = ""
Dim D5 As String = ""
'
Dim T1 As String = ""
Dim T2 As String = ""
Dim T3 As String = ""
Dim T4 As String = ""
Dim T5 As String = ""
'
If The_Mony = "" Then
D = 0
Else
If IsNumeric(The_Mony) Then
D = The_Mony
Else
D = 0
End If
End If
D = Format(CDbl(D), "000000000000000")
'
D1 = Mid(D, 13, 3)
D2 = Mid(D, 10, 3)
D3 = Mid(D, 7, 3)
D4 = Mid(D, 4, 3)
D5 = Mid(D, 1, 3)
'
T1 = Fa_DDD(D1)
T2 = Fa_DDD(D2)
T3 = Fa_DDD(D3)
T4 = Fa_DDD(D4)
T5 = Fa_DDD(D5)
'---
Rt = T1
If T2 <> "" Then
If Rt <> "" Then
Rt = T2 & " هزار و " & Rt
Else
Rt = T2 & " هزار"
End If
End If
'
If T3 <> "" Then
If Rt <> "" Then
Rt = T3 & " ميليون و " & Rt
Else
Rt = T3 & " ميليون"
End If
End If
'
If T4 <> "" Then
If Rt <> "" Then
Rt = T4 & " ميليارد و " & Rt
Else
Rt = T4 & " ميليارد"
End If
End If
'
If T5 <> "" Then
If Rt <> "" Then
Rt = T5 & " هزار ميليارد و " & Rt
Else
Rt = T5 & " هزار ميليارد"
End If
End If
'---
Fa_Money = Rt '& " ريال"
End Function
Private Shared Function Fa_DDD(ByVal D As String) As String
Dim Rt As String
'
Dim D1 As String = ""
Dim D2 As String = ""
Dim D3 As String = ""
Dim D12 As String = ""
'
Dim T1 As String = ""
Dim T2 As String = ""
Dim T3 As String = ""
Dim T12 As String = ""
'
D1 = Mid(D, 3, 1)
D2 = Mid(D, 2, 1)
D3 = Mid(D, 1, 1)
D12 = Mid(D, 2, 2)
'---
T3 = Fa_100_900(D3)
If (CInt(D12) >= 11 And CInt(D12) <= 19) Then
T12 = Fa_11_19(D12)
Else
T2 = Fa_10_90(D2)
T1 = Fa_1_9(D1)
End If
'---
If T12 <> "" Then
Rt = T12
Else
Rt = T1
If T2 <> "" Then
If Rt <> "" Then
Rt = T2 & " و " & Rt
Else
Rt = T2
End If
End If
End If
'
If T3 <> "" Then
If Rt <> "" Then
Rt = T3 & " و " & Rt
Else
Rt = T3
End If
End If
'---
Fa_DDD = Rt
End Function
Private Shared Function Fa_1_9(ByVal D As String) As String
Select Case D
Case "1"
Fa_1_9 = "يك"
Case "2"
Fa_1_9 = "دو"
Case "3"
Fa_1_9 = "سه"
Case "4"
Fa_1_9 = "چهار"
Case "5"
Fa_1_9 = "پنج"
Case "6"
Fa_1_9 = "شش"
Case "7"
Fa_1_9 = "هفت"
Case "8"
Fa_1_9 = "هشت"
Case "9"
Fa_1_9 = "نه"
Case Else
Return ""
End Select
End Function
Private Shared Function Fa_11_19(ByVal D As String) As String
Select Case D
Case "11"
Fa_11_19 = "يازده"
Case "12"
Fa_11_19 = "دوازده"
Case "13"
Fa_11_19 = "سيزده"
Case "14"
Fa_11_19 = "چهارده"
Case "15"
Fa_11_19 = "پانزده"
Case "16"
Fa_11_19 = "شانزده"
Case "17"
Fa_11_19 = "هفده"
Case "18"
Fa_11_19 = "هجده"
Case "19"
Fa_11_19 = "نوزده"
Case Else
Return ""
End Select
End Function
Private Shared Function Fa_10_90(ByVal D As String) As String
Select Case D
Case "1"
Fa_10_90 = "ده"
Case "2"
Fa_10_90 = "بيست"
Case "3"
Fa_10_90 = "سي"
Case "4"
Fa_10_90 = "چهل"
Case "5"
Fa_10_90 = "پنجاه"
Case "6"
Fa_10_90 = "شصت"
Case "7"
Fa_10_90 = "هفتاد"
Case "8"
Fa_10_90 = "هشتاد"
Case "9"
Fa_10_90 = "نود"
Case Else
Return ""
End Select
End Function
Private Shared Function Fa_100_900(ByVal D As String) As String
Select Case D
Case "1"
Fa_100_900 = "يكصد"
Case "2"
Fa_100_900 = "دويست"
Case "3"
Fa_100_900 = "سيصد"
Case "4"
Fa_100_900 = "چهارصد"
Case "5"
Fa_100_900 = "پانصد"
Case "6"
Fa_100_900 = "ششصد"
Case "7"
Fa_100_900 = "هفتصد"
Case "8"
Fa_100_900 = "هشتصد"
Case "9"
Fa_100_900 = "نهصد"
Case Else
Return ""
End Select
End Function
End Class
در ادامه کار به سراغ Textbox ای که روی فرم قرار داده بودیم می رویم. یا روی Textbox دابل کلیک کنید تا وارد Event مربوط به TextChanged این Textbox شوید و یا اینکه Textbox را کلیک کرده و از پنل سمت راست از قسمت Property های این Textbox، آیکون Events را کلیک کنید و TextChanged را یافته و روی آن دابل کلیک کنید که در هر دو صورت نتیجه یکسان خواهد بود.
حالا کد زیر را در این TextChanged Event این Textbox کپی کنید.
lblmoney.Text = Fa_Money.Fa_Money(txtmoney.Text)
نام Label ای که در فرم برای نمایش با حروف ارقام قرار داده شده بود، lblmoney می باشد. در دستور فوق مقدار text این label برابر با مقداری عددی که در textbox مربوطه وارد می شود و به کلاس Fa_Money که یک پارامتر از نوع String دریافت می کند، می باشد. سپس این کلاس کار خود را انجام داده و مقدار عددی را با حروف هم نمایش داده می شود.
در تصویر زیر همانطور که مشاهده می کنید، ارقام به صورت خودکار، بصورت حروف هم در label مذکور نمایش داده می شوند.
در کد فوق می توانید مقدار "ریال" یا "تومان" یا هر واحد پول با ارزی دیگری را اضافه کنید که در انتهای رقم اضافه و نمایش دهد.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: