|
|
|
JavaScript รบกวนช่วยแก้ไข Code แปลงตัวเลขเป็นตัวหนังสือให้หน่อยค่ะ |
|
|
|
|
|
|
|
เป็น JavaScript code ที่ใช้ใน adobe acrobat form ซึ่ง code เดิมระบุตัวหนังสือไว้แค่หลักล้าน ต้องการแก้ไขให้เป้นหลักสิบล้าน ขอบคุณล่วงหน้านะค่ะ
Code (JavaScript)
var tb=getField("Cash Number").value;
var result = getField("Amount in Words");
var ctb = tb.toFixed(2);
var fctb = ctb.toString();
var x = ThaiBaht(fctb);
result.value = x;
function ThaiBaht(Number){
for (var a = 0; a< Number.length; a++) {
Number = Number.replace (",", ""); //ไม่ต้องการเครื่องหมายคอมมาร์
Number = Number.replace (" ", ""); //ไม่ต้องการช่องว่าง
Number = Number.replace ("บาท", ""); //ไม่ต้องการตัวหนังสือ บาท
Number = Number.replace ("฿", ""); //ไม่ต้องการสัญลักษณ์สกุลเงินบาท
}
var TxtNumArr = new Array ("ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ");
var TxtDigitArr = new Array ("", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน" , "สิบ", "ร้อย");
var BahtText = "";
if (isNaN(Number))
{
return "ข้อมูลนําเข้าไม่ถูกต้อง";
} else
{
if ((Number-0) > 99999999.9999)
{
return "ข้อมูลนําเข้าเกินขอบเขตที่ตั้งไว้";
} else
{
Number = Number.split (".");
if(Number[1].length > 0)
{
Number[1]=Number[1].substring(0,2);
}
var NumberLen = Number[0].length-0;
for(var a = 0; a < NumberLen; a++)
{
var tmp = Number[0].substring(a,a+1)-0;
if(tmp != 0){
if((a==(NumberLen-1)) && (tmp==1))
{
BahtText += "เอ็ด";
} else if((a == (NumberLen -2)) && (tmp==2)) {
BahtText += "ยี่";
} else if((a == (NumberLen -2)) && (tmp==1)){
BahtText +=" ";
} else {
BahtText += TxtNumArr[tmp];
}
BahtText += TxtDigitArr[NumberLen - a - 1];
}
}
BahtText += "บาท";
if((Number[1] == "0") || (Number[1] == "00"))
{
BahtText += "ถ้วน";
} else {
DecimalLen = Number[1].length - 0;
for(var a =0; a < DecimalLen; a++){
var tmp = Number[1].substring(a,a+1)-0;
app.alert(tmp);
if(tmp != 0){
if((a == (DecimalLen -1)) && (tmp ==1)){
BahtText += "เอ็ด";
} else if((a == (DecimalLen -2)) && (tmp ==2)){
BahtText += "ยี่";
} else if((a == (DecimalLen - 2)) && (tmp == 1)){
BahtText += "";
} else {
BahtText += TxtNumArr[tmp];
}
BahtText += TxtDigitArr[DecimalLen - a-1];
}
}
BahtText += "สตางค์";
}
return BahtText;
}
}
}
Tag : JavaScript
|
|
|
|
|
|
Date :
2013-01-12 10:55:34 |
By :
almond |
View :
7704 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือจะรบกวนอย่างนี้ค่ะ ออกตัวว่าไม่มีความรู้เรื่อง code เลยค่ะ พยายามเอาอันที่ให้มาลองวางดูแล้ว แต่มันแจ้งว่าผิด บรรทัดนู่นบรรทัดนี้ จึงขอรบกวนช่วยแก้ไขเพิ่มเติมจาก code เดิมให้ได้ไหมอ่ะค่ะ ว่าควรต้องแก้ไขตรงไหน ขอบคุณล่วงหน้าค่ะ
|
|
|
|
|
Date :
2013-01-13 10:58:40 |
By :
almond |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เห็นว่ามีประโยชน์นะครับ ข้อความจากพันทิพครับ (แต่มี err นิดหน่อยครับ)
var strNumber = String(this.getField("Cash Number").value)
var nNumber = Number(strNumber);
event.value = ConvertToWords(nNumber);
function ConvertToHundreds(num) {
aTens = ["ยี่สิบ", "สามสิบ", "สี่สิบ", "ห้าสิบ", "หกสิบ", "เจ็ดสิบ", "แปดสิบ", "เก้าสิบ"];
aOnes = ["ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า",
"สิบ", "สิบเอ็ด", "สิบสอง", "สิบสาม", "สิบสี่", "สิบห้า", "สิบหก", "สิบเจ็ด",
"สิบแปด", "สิบเก้า"
];
var cNum, nNum;
var cWords = "";
num %= 1000000;
if (num > 99999) {
/*แสน. */
cNum = String(num);
nNum = Number(cNum.charAt(0));
cWords += aOnes[nNum] + "แสน";
num %= 100000;
}
if (num > 9999) {
/*หมื่น. */
cNum = String(num);
nNum = Number(cNum.charAt(0));
cWords += aOnes[nNum] + "หมื่น";
num %= 10000;
}
if (num > 999) {
/*พัน. */
cNum = String(num);
nNum = Number(cNum.charAt(0));
cWords += aOnes[nNum] + "พัน";
num %= 1000;
}
if (num > 99) {
/*ร้อย. */
cNum = String(num);
nNum = Number(cNum.charAt(0));
cWords += aOnes[nNum] + "ร้อย";
num %= 100;
}
if (num > 19) {
/*สิบ. */
cNum = String(num);
nNum = Number(cNum.charAt(0));
cWords += aTens[nNum - 2];
num %= 10;
}
if (num > 0) {
/*หนึ่ง. */
nNum = Math.floor(num);
cWords += aOnes[nNum];
}
return cWords;
}
function ConvertToWords(num) {
var aUnits = ["ล้าน"];
var cWords = (num >= 1 && num < 2) ?"บาท":"บาท";
var nLeft = Math.floor(num);
for (var i = 0; nLeft > 0; i++) {
if (nLeft % 1000000 > 0) {
if (i != 0)
cWords = ConvertToHundreds(nLeft)+""+aUnits[i - 1] + ""+cWords;
else
cWords = ConvertToHundreds(nLeft)+""+cWords;
}
nLeft = Math.floor(nLeft / 1000000);
}
num = Math.round(num * 100) % 100;
if (num > 0)
cWords += ConvertToHundreds(num) + "สตางค์";
else
cWords += "ถ้วน";
return cWords;
}
|
|
|
|
|
Date :
2019-10-17 14:47:24 |
By :
รังสรรค์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|