SAP Sdk ar发票被截断为两位小数

2020-09-05 16:38发布

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

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


嗨,我们有一个正在使用的导入程序,但是客户注意到它截断了我们保留的2个小数位,因为这里的代码中PriceAfterVAT不会存储值的剩余部分,因为它是双精度值,所以没有人 解决所有问题的方法,因为这是客户的问题。 现在,当我在Visual Studio中查看sap对象priceaftervat时,它的确会翻倍。

我们正在使用SAP 9.3 Business One PL 5级

 x if(hasCustomerDiscount == true)//转到-1 ITM表,该表是一个主表,该表已使用客户不需要的最新价格信息进行更新
                     {
                         oInvoice.Lines.UnitPrice = Convert.ToDouble(_invoice.PriceWithDiscount);
                        //oInvoice.Lines.Price =
                     }
                     其他
                     {
                         _pricePerLitre = GetPricePerLitreNormal();
                         oInvoice.Lines.PriceAfterVAT =(double)_pricePerLitre;
                     }
                     oInvoice.DocDate = Convert.ToDateTime(_invoice.Date);
                     oInvoice.CardCode = _invoice.CardCode;
                     oInvoice.Lines.ItemCode = _invoice.FuelType;
                     oInvoice.Lines.Quantity =(double)_invoice.FuelQty; 

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

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


嗨,我们有一个正在使用的导入程序,但是客户注意到它截断了我们保留的2个小数位,因为这里的代码中PriceAfterVAT不会存储值的剩余部分,因为它是双精度值,所以没有人 解决所有问题的方法,因为这是客户的问题。 现在,当我在Visual Studio中查看sap对象priceaftervat时,它的确会翻倍。

我们正在使用SAP 9.3 Business One PL 5级

 x if(hasCustomerDiscount == true)//转到-1 ITM表,该表是一个主表,该表已使用客户不需要的最新价格信息进行更新
                     {
                         oInvoice.Lines.UnitPrice = Convert.ToDouble(_invoice.PriceWithDiscount);
                        //oInvoice.Lines.Price =
                     }
                     其他
                     {
                         _pricePerLitre = GetPricePerLitreNormal();
                         oInvoice.Lines.PriceAfterVAT =(double)_pricePerLitre;
                     }
                     oInvoice.DocDate = Convert.ToDateTime(_invoice.Date);
                     oInvoice.CardCode = _invoice.CardCode;
                     oInvoice.Lines.ItemCode = _invoice.FuelType;
                     oInvoice.Lines.Quantity =(double)_invoice.FuelQty; 
付费偷看设置
发送
1条回答
风早神人
1楼-- · 2020-09-05 17:19

我不明白,但是您可以使用两次转换,此代码:

公共静态字符串MoneyToString(double inMoney,SAPbobsCOM.BoMoneyPrecisionTypes inPrecision)
         {
             SAPbobsCOM.SBObob oBridge =(SAPbobsCOM.SBObob)(Application.SBO_Application.Company.GetDICompany as SAPbobsCOM.Company).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoBridge);
             返回oBridge.Format_MoneyToString(inMoney,inPrecision).Fields.Item(0).Value.ToString();
         }

         公共静态字符串ObjectToDoubleStr(object o)
         {
             NumberFormatInfo nfi =新的NumberFormatInfo();
             nfi.NumberDecimalSeparator ="。";


             IConvertible convert = o为IConvertible;


             如果(转换!= null)
             {
                 返回convert.ToDouble(null).ToString(nfi);
             }
             其他
             {
                 返回" 0";
             }
         }

         公共静态Double ObjectToDouble(object o)
         {
             NumberFormatInfo nfi =新的NumberFormatInfo();
             nfi.NumberDecimalSeparator ="。";

             IConvertible convert = o为IConvertible;
             尝试
             {
                 如果(转换!= null)
                 {
                     返回convert.ToDouble(nfi);
                 }
                 其他
                 {
                     返回0d;
                 }
             }
             捕获(异常)
             {
                 返回0d;  ;
             }
         }
 

一周热门 更多>