Function CovMoney(money : Double) : String; //小写金额转换成大写金额
Var
sStr, buf, sPower, buf1 : String;
i, j, iPosition, lenth, iTmp : Integer;
flag0 : boolean;
Function Sjoin(Var buff : String; sString : String; digit : String; nextdig : String; iPos : Integer) : Integer;
Var
dig : String; // * 1
flag0 : Boolean;
Begin
flag0 := True;
If digit = '0' Then
If nextdig <> '0' Then
dig := '零'
Else
flag0 := False;
If digit = '1' Then
dig := '壹';
If digit = '2' Then
dig := '贰';
If digit = '3' Then
dig := '叁';
If digit = '4' Then
dig := '肆';
If digit = '5' Then
dig := '伍';
If digit = '6' Then
dig := '陆';
If digit = '7' Then
dig := '柒';
If digit = '8' Then
dig := '捌';
If digit = '9' Then
dig := '玖';
If digit = '0' Then
If (flag0 = True) And (iPos <> 0) Then
Begin
buff := buff + dig;
Result := 2;
End
Else
Result := 0
Else
Begin
buff := buff + dig;
buff := buff + sString;
Result := 4;
End;
End;
Begin
If money = 0 Then
Begin
Result := '零元整';
exit;
End;
iPosition := 0;
buf1 := trim(Format('%12.2f', [money]));
lenth := Length(buf1);
buf := ' '; // 16 bit space;
j := 1;
For i := 16 - lenth To 15 Do
Begin
buf[i] := buf1[j];
j := j + 1;
End;
For i := 1 To 15 Do
Begin
iTmp := ord(buf[i]);
If ((iTmp >= 49) And (iTmp <= 58)) Or (chr(iTmp) = ',') Then
break;
End;
While i <= 15 Do
Begin
flag0 := True;
iTmp := 0;
Case i - 1 Of
0, 4, 8 : sPower := '仟';
1, 5, 9 : sPower := '佰';
2, 6, 10 : sPower := '拾';
3 :
Begin
sPower := '亿';
If copy(buf, i, 1) = '0' Then
Begin
sStr := sStr + sPower+'零';
iPosition := iPosition + 2;
iTmp := 1;
End;
End;
7 :
Begin
sPower := '万';
If copy(buf, i, 1) = '0' Then
Begin
sStr := sStr + sPower+'零';
iPosition := iPosition + 2;
iTmp := 1;
End;
End;
11 :
Begin
sPower := '元';
If (copy(buf, i, 1) = '0') And (iPosition <> 0) Then
Begin
sStr := sStr + sPower;
iPosition := iPosition + 2;
iTmp := 1;
End;
End;
12 :
Begin
flag0 := False;
If (copy(buf, i + 1, 1) = '0') And (copy(buf, i + 2, 1) = '0') Then
Begin
sPower := '整';
sStr := sStr + sPower;
iPosition := iPosition + 2;
iTmp := 2;
End;
End;
13 : sPower := '角';
14 :
Begin
If copy(buf, i, 1) = '0' Then iTmp := 2;
sPower := '分';
End;
End;
If (flag0 = True) And (iTmp = 0) Then
Begin
If i > 0 Then
iPosition := iPosition + Sjoin(sStr, sPower, copy(buf, i, 1), copy(buf, i + 1, 1), iPosition)
Else
iPosition := iPosition + Sjoin(sStr, sPower, copy(buf, i, 1), copy(buf, i, 1), iPosition);
End;
If iTmp = 2 Then
break
Else
i := i + 1;
End;
// If (ilength <> 0) Then ilength := iPosition;
If pos('整', sStr) < 1 then
begin
if (pos('角', sStr) < 1) and (pos('分', sStr) < 1) Then
sStr := sStr + '整';
end;
sStr :=stringreplace(sStr,'零零','零',[rfReplaceAll]);
sStr :=stringreplace(sStr,'零元','元',[rfReplaceAll]);
Result := Trim(sStr);
End;
正确填写票据和结算凭证的基本规定
银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,
直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载账
务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭
证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止
涂改。
一、中文大写金额数字应用正楷或行书填写,如壹(壹)、贰(贰)、叁、肆(肆)、
伍(伍)、陆(陆)、柒、捌、玖、拾、佰、仟、万(万)、亿、元、角、分、零、整(
正)等字样。不得用一、二(两)、三、四、五、六、七、八、九、十、念、毛、另(或0)
填写,不得自造简化字。
Var
sStr, buf, sPower, buf1 : String;
i, j, iPosition, lenth, iTmp : Integer;
flag0 : boolean;
Function Sjoin(Var buff : String; sString : String; digit : String; nextdig : String; iPos : Integer) : Integer;
Var
dig : String; // * 1
flag0 : Boolean;
Begin
flag0 := True;
If digit = '0' Then
If nextdig <> '0' Then
dig := '零'
Else
flag0 := False;
If digit = '1' Then
dig := '壹';
If digit = '2' Then
dig := '贰';
If digit = '3' Then
dig := '叁';
If digit = '4' Then
dig := '肆';
If digit = '5' Then
dig := '伍';
If digit = '6' Then
dig := '陆';
If digit = '7' Then
dig := '柒';
If digit = '8' Then
dig := '捌';
If digit = '9' Then
dig := '玖';
If digit = '0' Then
If (flag0 = True) And (iPos <> 0) Then
Begin
buff := buff + dig;
Result := 2;
End
Else
Result := 0
Else
Begin
buff := buff + dig;
buff := buff + sString;
Result := 4;
End;
End;
Begin
If money = 0 Then
Begin
Result := '零元整';
exit;
End;
iPosition := 0;
buf1 := trim(Format('%12.2f', [money]));
lenth := Length(buf1);
buf := ' '; // 16 bit space;
j := 1;
For i := 16 - lenth To 15 Do
Begin
buf[i] := buf1[j];
j := j + 1;
End;
For i := 1 To 15 Do
Begin
iTmp := ord(buf[i]);
If ((iTmp >= 49) And (iTmp <= 58)) Or (chr(iTmp) = ',') Then
break;
End;
While i <= 15 Do
Begin
flag0 := True;
iTmp := 0;
Case i - 1 Of
0, 4, 8 : sPower := '仟';
1, 5, 9 : sPower := '佰';
2, 6, 10 : sPower := '拾';
3 :
Begin
sPower := '亿';
If copy(buf, i, 1) = '0' Then
Begin
sStr := sStr + sPower+'零';
iPosition := iPosition + 2;
iTmp := 1;
End;
End;
7 :
Begin
sPower := '万';
If copy(buf, i, 1) = '0' Then
Begin
sStr := sStr + sPower+'零';
iPosition := iPosition + 2;
iTmp := 1;
End;
End;
11 :
Begin
sPower := '元';
If (copy(buf, i, 1) = '0') And (iPosition <> 0) Then
Begin
sStr := sStr + sPower;
iPosition := iPosition + 2;
iTmp := 1;
End;
End;
12 :
Begin
flag0 := False;
If (copy(buf, i + 1, 1) = '0') And (copy(buf, i + 2, 1) = '0') Then
Begin
sPower := '整';
sStr := sStr + sPower;
iPosition := iPosition + 2;
iTmp := 2;
End;
End;
13 : sPower := '角';
14 :
Begin
If copy(buf, i, 1) = '0' Then iTmp := 2;
sPower := '分';
End;
End;
If (flag0 = True) And (iTmp = 0) Then
Begin
If i > 0 Then
iPosition := iPosition + Sjoin(sStr, sPower, copy(buf, i, 1), copy(buf, i + 1, 1), iPosition)
Else
iPosition := iPosition + Sjoin(sStr, sPower, copy(buf, i, 1), copy(buf, i, 1), iPosition);
End;
If iTmp = 2 Then
break
Else
i := i + 1;
End;
// If (ilength <> 0) Then ilength := iPosition;
If pos('整', sStr) < 1 then
begin
if (pos('角', sStr) < 1) and (pos('分', sStr) < 1) Then
sStr := sStr + '整';
end;
sStr :=stringreplace(sStr,'零零','零',[rfReplaceAll]);
sStr :=stringreplace(sStr,'零元','元',[rfReplaceAll]);
Result := Trim(sStr);
End;
正确填写票据和结算凭证的基本规定
银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,
直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载账
务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭
证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止
涂改。
一、中文大写金额数字应用正楷或行书填写,如壹(壹)、贰(贰)、叁、肆(肆)、
伍(伍)、陆(陆)、柒、捌、玖、拾、佰、仟、万(万)、亿、元、角、分、零、整(
正)等字样。不得用一、二(两)、三、四、五、六、七、八、九、十、念、毛、另(或0)
填写,不得自造简化字。