基础算法实现金额分摊功能

本文详细介绍了如何在X++编程语言中实现金额分摊功能,包括数据处理、循环计算和数据库操作,特别提到在资源稀缺的情况下结合AI思路完成编码。
摘要由CSDN通过智能技术生成

欢迎使用X++语言

两个数据表两个GridView控件

代码如下

FWT_ShareSummaryTable curFWT_ShareSummary;
FWT_ShareDetailsTable curFWT_ShareDetailsTable;

        int acout = 0;
        str shareId;
        real price = 0;
        int numRecords=7;//确定循环次数
        int LineCout=8;//确定行数
        int roudNum=0;
        int  RecentlyNum=0;

        


        // 获取汇总表中的数量和金额
        select firstonly price  from    curFWT_ShareSummary;
        price = curFWT_ShareSummary.Price;

        四舍五入最近的整数值
        //RecentlyNum = round(price, 0);
        //金额除以整数值得到差值

        if(price>0)
        {
            roudNum=price/LineCout;
        }
        

        // 生成新的 GUID
        shareId = System.Guid::newGuid().toString();

        // 插入一行数据到汇总表
        ttsbegin;
        curFWT_ShareSummary.clear();
        curFWT_ShareSummary.Acout = acout;
        curFWT_ShareSummary.Price = price;
        curFWT_ShareSummary.ShareId = shareId;
        curFWT_ShareSummary.insert();
        ttscommit;

        //计算出相差的值
        int  PhaseNum=roudNum*numRecords;
        int  AvgPrice=PhaseNum/numRecords;
        //计算出尾数
        int   Remainder=price-PhaseNum;

        // 插入分摊记录到明细表
        ttsbegin;
        for (int i = 1; i <= numRecords; i++)
        {
            curFWT_ShareDetailsTable.clear();
            curFWT_ShareDetailsTable.Acout = acout;
            curFWT_ShareDetailsTable.Price = AvgPrice;
            curFWT_ShareDetailsTable.ShareId = shareId;
            curFWT_ShareDetailsTable.insert();
        }
        curFWT_ShareDetailsTable.clear();
        curFWT_ShareDetailsTable.Acout = acout;
        curFWT_ShareDetailsTable.Price = Remainder; // 最后一次的金额
        curFWT_ShareDetailsTable.ShareId = shareId;
        curFWT_ShareDetailsTable.insert();

        //最后的结果相加得到金额
        int TotalPrice=PhaseNum+Remainder;
        ttscommit;

        info(strFmt("Inserted %1 records into ShareDetailsTable", numRecords));

        FWT_ShareDetailsTable_ds.executeQuery();
        FWT_ShareSummaryTable_ds.executeQuery();

第一次使用x++语言实现金额分摊的功能,这个语言比较冷门在网上找了很多教程都实现不了,很多语法都存在不同的差异,最终还还是结合ai和部分的思路实现了这个功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自在猫先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值