# นั่งแก้โค้ดเพื่อน เห็นเค้ารายงานบิลเค้ามีแปลงตัวเลขเป็นคำเลยเปิดดูสูตรของตัวแปรมันก็เป็นงี้อ่ะ
# ไม่รู้เหมือนกันว่าเพื่อนเค้าก๊อปโค้ดมาจากใหนนะครับ เครดิตให้เจ้าของโค้ดตัวจริงนะครับ ซึ่งไม่ทราบว่าคือคัย --'
# แต่ค้นหาด้วยกูเกิ้ลเห็นแต่โค้ด php เยอะเลยการแปลงตัวเลขเป็นคำอ่านอ่ะนะ
# คลิกขวาที่ Formula Fields => New... แล้วแปะโค้ดด้านล่างลงไป เปลี่ยนค่าตัวอักษรสีแดงเป็น field ตัวเลขซะ
Formula param in Crystal Report
stringVar array D:= ["","สิบ","ร้อย","พัน","หมื่น", "แสน"];
stringVar array e:= ["หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก","เจ็ด","แปด","เก้า"];
stringVar array Mn;
stringVar array Ar1;
stringVar Arr;
numberVar F;
numberVar R;
numberVar j;
numberVar k;
numberVar u;
numberVar j2;
stringVar Bh;
numberVar F2;
numberVar j3;
numberVar u1;
numberVar m3;
stringVar Bh3;
Mn := "";
Bh3 := "";
stringVar sm:= replace(CStr(sum({Currency}),2,""),",","") ;
Ar1:=Split (sm,".");
F:= Len(Ar1[1]);
If F<=6 then Arr:=Ar1[1];
If F>6 and F<=12 then Arr:=Left(Ar1[1],Len(Ar1[1])-6)+":"+Right(Ar1[1],6);
If F>12 and F<=18 then Arr:=Left(Ar1[1],Len(Ar1[1])-12)+":"+ Mid(Ar1[1], F - 12 + 1, 6)+":"+Right(Ar1[1],6);
Mn:=Split (Arr,":" );
For j2:=1 to UBound (Mn) do (
F2:= Len(Mn[j2]);
For j:= 1 To F2 do (
If Mid(Mn[j2], j, 1) = "2" And F2 + 1 - j = 8 Then e[2]:= "ยี่";
If Mid(Mn[j2], j, 1) = "1" And F2 + 1 - j = 8 Then e[1]:= "";
If Mid(Mn[j2], j, 1) = "2" And F2 + 1 - j = 2 Then e[2]:= "ยี่";
If Mid(Mn[j2], j, 1) = "1" And F2 + 1 - j = 2 Then e[1]:= "";
If Mid(Mn[j2], j, 1) = "1" And F2 + 1 - j = 1 Then e[1]:= "เอ็ด";
For R:= 1 To 9 do (
u:= Val(Mid (Mn[j2],j,1));
If u = R Then Bh:= Bh + e[R] + D[F2 + 1 - j];
);
e[2]:= "สอง";
e[1]:= "หนึ่ง";
);
If j2 <> Ubound(Mn) Then Bh:= Bh + "ล้าน";
Mn[j2]:= Bh;
Bh:= "";
);
For j3:= 1 To 2 do (
If Mid(Ar1[2], j3, 1) = "2" And j3 = 1 Then e[2]:= "ยี่";
If Mid(Ar1[2], j3, 1) = "1" And j3 = 1 Then e[1]:= "";
If Mid(Ar1[2], j3, 1) = "1" And j3 = 2 Then e[1]:= "เอ็ด";
For m3:= 1 To 9 do (
u1:=Val(Mid(Ar1[2], j3, 1));
If u1 = m3 Then Bh3:= Bh3 + e[m3] + D[3 - j3];
);
e[2]:= "สอง";
e[1]:= "เอ็ด";
);
If Mn[1]<>"" and Bh3<>"" then
Join (Mn,"")+ "บาท"+Bh3 + "สตางค์"
Else If Mn[1]<>"" and Bh3="" then
Join (Mn,"")+ "บาทถ้วน"
Else If Mn[1]="" and Bh3<>"" then
Bh3 + "สตางค์"
Else
""
Note:
- ไม่รู้เรื่องอ่ะบอกตรงๆ ดูโค้ดภาษาอื่นแล้วอ่ะยิ่งเป็นภาษาที่เรามะเคยแต่ะแล้วด้วย
- ว่าจะลองเขียนด้วย java ดีกว่าเรา ใน narisa เห็นเค้าแนะอัลกอ เยอะเลยน่าจะง่ายๆ คิดว่านะต้องลอง
References:
- get from my friend code in crytal report param
- i am not sure original link of this code
No comments:
Post a Comment