PDA

View Full Version : سوال: نحوه بکارگیری تابع تبدیل عدد به حروف



royasaz_bam
جمعه 13 خرداد 1390, 01:16 صبح
با سلام من تابع تبدیل عدد به حرروف را دارم و در اکسس به عنوان یک ماجول جدید ذخیره کرده ام الآن ماجول آماده است سوآل من : نحوه بکارگیری این تابع را با مثال مخواستم بدانم در فرمها و یا در گزارش و حتی پرسجو لطفا بطور قابل فهم و با مثال توضیح دهی ممنون میشم

bita_ziba77
شنبه 14 خرداد 1390, 08:34 صبح
با سلام
فرض كنيد يك textbox به نام textbox10 داريد.
حالا مثلا با توابع آقاي آزادي مي توانيد تاريخي كه در اين textbox است را به حروف تبديل كنيد.
فقط كافي است يك textbox ديگر در فرم خود گذاشته و سپس در بخش control source فرمول خود را مثلا مانند زير وارد نماييد:

=tbh([text10])

با تشكر

imanamami
شنبه 14 خرداد 1390, 09:10 صبح
سلام دوست عزیز
این یک کلاس تبدیل عدد به حروف است
private static string[] yakan = new string[10] { "صفر", "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه" };
private static string[] dahgan = new string[10] { "", "", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود" };
private static string[] dahyek = new string[10] { "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده" };
private static string[] sadgan = new string[10] { "", "یکصد", "دویست", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد" };
private static string[] vazn = new string[5] { "", "هزار", "میلیون", "میلیارد", "تریلیون" };
private static string getnum3(int num3)
{
string s = "";
int d3, d12;
d12 = num3 %100;
d3 = num3 / 100;
if (d3 != 0)
s = sadgan[d3] + " و ";
if ((d12 >= 10) && (d12 <= 19))
s = s + dahyek[d12 - 10];
else
{
int d2 = d12 / 10;
if (d2 != 0)
s = s + dahgan[d2] + " و ";
int d1 = d12 % 10;
if (d1 != 0)
s = s + yakan[d1] + " و ";
s = s.Substring(0, s.Length - 3);
};
return s;
}
public string num2str(string snum)
{
string stotal = "";
try
{

if (snum != "")
{
if (snum.Length <= 15)
{

if (snum != "0")
{
snum = snum.PadLeft(((snum.Length - 1) / 3 + 1) * 3, '0');
int L = snum.Length / 3 - 1;
for (int i = 0; i <= L; i++)
{
int b = int.Parse(snum.Substring(i * 3, 3));
if (b != 0)
stotal = stotal + getnum3(b) + " " + vazn[L - i] + " و ";
}
stotal = stotal.Substring(0, stotal.Length - 3);
}
else if (snum == "0")
return yakan[0];
}
}

}
catch
{
}
return stotal;
}

imanamami
شنبه 14 خرداد 1390, 09:11 صبح
برای گزارشات هم می تونی این تی فرم بدت بیاری بعد از طریق یک پارامتر به صفحه کریستال ریپورتت ارسال کنی.
موفق باشید

royasaz_bam
شنبه 14 خرداد 1390, 12:31 عصر
از دوستان ممنونم حل شد