需要实现一个金额分摊的功能,
场景有两个数据表一个汇总表一个是明细表,当我汇总表输入金额保存后,点击分摊按钮把这个金额平均分摊给明细表。
代码如下:
以下代码是固定金额为100的数量分摊为5次每次金额是20元,刚刚好分摊完100元,我需要实现不管输入的金额是多少都可以把金额平均分摊给明细表,实现动态的操作而不是固定死的。
FWT_ShareSummaryTable curFWT_ShareSummary;
FWT_ShareDetailsTable curFWT_ShareDetailsTable;
int acout = 0;
str shareId;
real price = 0;
real Apert=20.00;
// 获取汇总表中的数量和金额
select firstonly price from curFWT_ShareSummary;
price = curFWT_ShareSummary.Price;
// 生成新的 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 numRecords =(price/Apert);
// 插入分摊记录到明细表
ttsbegin;
for (int i = 1; i <= numRecords; i++)
{
curFWT_ShareDetailsTable.clear();
curFWT_ShareDetailsTable.Acout = acout;
curFWT_ShareDetailsTable.Price = Apert;
curFWT_ShareDetailsTable.ShareId = shareId;
curFWT_ShareDetailsTable.insert();
}
ttscommit;
info(strFmt("Inserted %1 records into ShareDetailsTable", numRecords));
FWT_ShareDetailsTable_ds.executeQuery();
FWT_ShareSummaryTable_ds.executeQuery();