Calculations in view (Computed column)
-------------------------------------------------------------Addition-------------------------------------------
private static str compLineAmountMethod()
{
str sFirstLine, sLineAmount, sReturn, sReturn1, sSetItemAttr, sCostTotal, sSumLineDisc;
sFirstLine = SysComputedColumn::returnField(tableStr(ExportInvoicesDataCustomsView_ABC), #DataSourceName, fieldStr(SetComponents_ABC, FirstLine));
sLineAmount = SysComputedColumn::returnField(tableStr(ExportInvoicesDataCustomsView_ABC), #DataSourceName1, fieldStr(CustInvoiceTrans, LineAmount));
sSetItemAttr = SysComputedColumn::returnField(tableStr(ExportInvoicesDataCustomsView_ABC), identifierStr(ItemAttributeValueView_SetItem), fieldStr(ItemAttributeValueView_ABC, TextValue));
sCostTotal = SysComputedColumn::sum(SysComputedColumn::returnField(tableStr(ExportInvoicesDataCustomsView_ABC), #DataSourceName3, fieldStr(MarkupTrans, Value)));
sSumLineDisc = SysComputedColumn::returnField(tableStr(ExportInvoicesDataCustomsView_ABC), #DataSourceName1, fieldStr(CustInvoiceTrans, SumLineDisc));
sReturn1 = SysComputedColumn::if(SysComputedColumn::notEqualExpression(sCostTotal, SysComputedColumn::comparisonLiteral(0)),
SysComputedColumn::add(sLineAmount, sCostTotal), sLineAmount);
//sReturn1 = SysComputedColumn::if(SysComputedColumn::notEqualExpression(sSumLineDisc, SysComputedColumn::comparisonLiteral(0)),
// SysComputedColumn::subtract(sReturn1, sSumLineDisc), sReturn1);
sReturn = SysComputedColumn::if(SysComputedColumn::equalExpression(sSetItemAttr, SysComputedColumn::comparisonLiteral('SET')), SysComputedColumn::if(
SysComputedColumn::notEqualExpression(sFirstLine, SysComputedColumn::comparisonLiteral(0)),
sReturn1, SysComputedColumn::returnLiteral(0)), sReturn1);
return sReturn;
}
-------------------------------------------------Multiplication-------------------------------------------------------
private static str compExportQtyMethod()
{
str sFirstLine, sQty, sReturn, sComponentQty;
sQty = SysComputedColumn::returnField(tableStr(ExportInvoicesDataCustomsView_ABC), #DataSourceName1, fieldStr(CustInvoiceTrans, Qty));
sComponentQty = SysComputedColumn::returnField(tableStr(ExportInvoicesDataCustomsView_ABC), identifierStr(SetComponents_ABC), fieldStr(SetComponents_ABC, ComponentQuantity));
sReturn = SysComputedColumn::if(SysComputedColumn::notEqualExpression(sComponentQty, SysComputedColumn::comparisonLiteral(0)),
SysComputedColumn::multiply(sComponentQty, sQty), sQty);
return sReturn;
}
--------------------------------------------Subtraction---------------------------------------------------------------
private static str compInvoiceAmountMethod()
{
str sInvoiceAmount, sTaxAmount, sReturn;
sInvoiceAmount = SysComputedColumn::returnField(tableStr(ExportInvoicesDataCustomsView_ABC), identifierStr(CustInvoiceJour), fieldStr(CustInvoiceJour, InvoiceAmount));
sTaxAmount = SysComputedColumn::returnField(tableStr(ExportInvoicesDataCustomsView_ABC), identifierStr(CustInvoiceJour), fieldStr(CustInvoiceJour, SumTax));
return SysComputedColumn::if(SysComputedColumn::notEqualExpression(sTaxAmount, SysComputedColumn::comparisonLiteral(0)),
SysComputedColumn::subtract(sInvoiceAmount, sTaxAmount),
sInvoiceAmount);
}
Comments
Post a Comment