✏️ Explanatory Question
Public class FixedAssetRegisterReportingCurrency
{
FixedAssetRegisterTransTmp assetRegisterTransTmp;
TransDate toDate;
Query query;
QueryBuildDataSource qbdsAssetTrans;
QueryBuildFieldList qbfsAssetTransFieldList;
Map fieldMapping;
public FixedAssetRegisterTransTmp run(TransDate _todate)
{
query = new Query();
qbdsAssetTrans = query.addDataSource(tableNum(AssetTrans));
query.clearAllFields();
this.fieldListAssetTrans(qbdsAssetTrans);
qbdsAssetTrans.addGroupByField(fieldNum(AssetTrans, AssetId));
qbdsAssetTrans.addGroupByField(fieldNum(AssetTrans, BookId));
qbdsAssetTrans.addSelectionField(fieldNum(AssetTrans, ReportingCurrencyAmount), SelectionField::Sum);
qbdsAssetTrans.clearRanges();
qbdsAssetTrans.addRange(fieldNum(AssetTrans, TransDate)).value(strFmt("< %1", toDate + 1));
fieldMapping = new Map(Types::String, Types::Container);
fieldMapping.insert(fieldStr(FixedAssetRegisterTransTmp, FixedAssetId), [qbdsAssetTrans.uniqueId(), fieldStr(AssetTrans, AssetId)]);
fieldMapping.insert(fieldStr(FixedAssetRegisterTransTmp, BookId), [qbdsAssetTrans.uniqueId(), fieldStr(AssetTrans, BookId)]);
fieldMapping.insert(_fieldName, [qbdsAssetTrans.uniqueId(), 'SUM(' + fieldStr(AssetTrans, ReportingCurrencyAmount) + ')']);
Query::insert_recordset(assetRegisterTransTmp, fieldMapping, query);
}
public void fieldListAssetTrans(QueryBuildDataSource _qbdsAssetTrans)
{
QueryBuildFieldList qbflAssetTrans = _qbdsAssetTrans.fields();
qbflAssetTrans.dynamic(QueryFieldListDynamic::No);
qbflAssetTrans.addField(fieldNum(AssetTrans, AssetId));
qbflAssetTrans.addField(fieldNum(AssetTrans, BookId));
qbflAssetTrans.addField(fieldNum(AssetTrans, ReportingCurrencyAmount));
}
}