显示错误的单词数量

2020-09-16 21:05发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我在水晶报告中使用了以下公式来显示金额。 少量显示正确,但下面显示错误。

金额:10002205

实际展示:仅需一千二百二十五卢比。

但这显示为:1千万卢比。

这是错误的。 请提供解决方案。

下面是公式:

numbervar RmVal:= 0; numbervar Amt:= 0; numbervar pAmt:= 0; stringvar InWords:=""; Amt:=({ Command.Doc 总计}); 如果Amt> 10000000,则RmVal:= truncate(Amt/10000000); 如果Amt = 10000000,则RmVal:= 1; 如果RmVal = 1,则InWords:= InWords +"" + propercase(towords(RmVal,0))+" crore"否则,如果RmVal> 1则InWords:= InWords +"" + propercase(towords(RmVal,0))+ "杂项"; Amt:= Amt-Rmval * 10000000; 如果Amt> 100000,则RmVal:= truncate(Amt/100000); 如果Amt = 100000,则RmVal:= 1; 如果RmVal> = 1,则InWords:= InWords +"" + propercase(towords(RmVal,0))+" lakhs"; Amt:= Amt-Rmval * 100000; 如果Amt> 0,则InWords:= InWords +"" +大小写(towords(truncate(Amt),0)); pAmt:=(Amt-truncate(Amt))* 100; 如果pAmt> 0,则InWords:= InWords +"和" + propercase(towords(pAmt,0))+"" + {@ Cents} +" only"否则InWords:= InWords +" only";

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我在水晶报告中使用了以下公式来显示金额。 少量显示正确,但下面显示错误。

金额:10002205

实际展示:仅需一千二百二十五卢比。

但这显示为:1千万卢比。

这是错误的。 请提供解决方案。

下面是公式:

numbervar RmVal:= 0; numbervar Amt:= 0; numbervar pAmt:= 0; stringvar InWords:=""; Amt:=({ Command.Doc 总计}); 如果Amt> 10000000,则RmVal:= truncate(Amt/10000000); 如果Amt = 10000000,则RmVal:= 1; 如果RmVal = 1,则InWords:= InWords +"" + propercase(towords(RmVal,0))+" crore"否则,如果RmVal> 1则InWords:= InWords +"" + propercase(towords(RmVal,0))+ "杂项"; Amt:= Amt-Rmval * 10000000; 如果Amt> 100000,则RmVal:= truncate(Amt/100000); 如果Amt = 100000,则RmVal:= 1; 如果RmVal> = 1,则InWords:= InWords +"" + propercase(towords(RmVal,0))+" lakhs"; Amt:= Amt-Rmval * 100000; 如果Amt> 0,则InWords:= InWords +"" +大小写(towords(truncate(Amt),0)); pAmt:=(Amt-truncate(Amt))* 100; 如果pAmt> 0,则InWords:= InWords +"和" + propercase(towords(pAmt,0))+"" + {@ Cents} +" only"否则InWords:= InWords +" only";

付费偷看设置
发送
2条回答
槿木_熙
1楼-- · 2020-09-16 21:48

Hi Hiren,

这是另一种解决方法:

本地号码var amt:= {Command.Doc Total};
 本地stringvar单词;
 本地号码var cr;
 本地号码var lac;
 如果amt> = 10000000那么
 (
     cr:=截断(amt/10000000);
     如果amt> = 100000000那么
         amt:= amt-100000000
     其他
         amt:= amt-10000000;
     如果cr <> 0,那么
     (
         单词:=替换(单词+ towords(cr)+" Crore","和xx/100","");
     );
 );
 如果amt> 100000,则
 (
     lac:=截断(amt/100000);
     amt:= amt mod 100000;
     如果lac <> 0则
     (
         单词:=替换(单词+ towords(lac)+"十万","和xx/100","");
     );
 );
 ProperCase(words&Replace(towords(amt)," and xx/100",""))); 

此外,请注意,金额以字表示时,永远不会是多元的。

-Abhilash

黑丝骑士
2楼-- · 2020-09-16 21:59

Hi Hiren,

将代码修改为:

本地号码var amt1:= {Command.Doc Total};
 本地数字var amt:= int(amt1);
 本地数字var dec:= amt1-amt;
 本地号码
 stringvar单词;
 numbervar cr;
 numbervar lac;
 numbervar th;
 如果amt> = 10000000那么
 (
     cr:=截断(amt/10000000);
     如果amt> = 100000000那么
         amt:= amt-100000000
     其他
         amt:= amt-10000000;
     如果cr <> 0,那么
     (
         单词:=替换(单词+ towords(cr)+" Crore","和xx/100","");
     );
 );
 如果amt> 100000,则
 (
     lac:=截断(amt/100000);
     amt:= amt mod 100000;
     如果lac <> 0则
     (
         单词:=替换(单词+ towords(lac)+"十万","和xx/100","");
     );
 );
 如果dec <> 0,则
 (
     dec:= tonumber(strreverse(split(strreverse(totext(dec)),"。")[1])));
     stringvar ps:="和"&Replace(towords(dec)," and xx/100","")&" paisa"
 );
 ProperCase(words&Replace(towords(amt)," and xx/100","")&ps);  

-阿比拉什

一周热门 更多>