// To Pass the lesser than date range in the query ...
query openingbalance(
Query query,
ItemId itemId,
// transdate fromdate,
// transdate todate,
InventDim inventDimCriteria,
InventDimParm inventDimParmCriteria,
InventDimParm inventDimParmGroupBy,
container dimFields = InventDim::dimFieldList()
)
{
QueryBuildDataSource qbsTrans;
QueryBuildDataSource qbsDim;
QueryBuildRange queryRange;
inventtrans inventtrans;
boolean doFindRange;
;
if (!query)
query = new Query();
if (query.dataSourceTable(tablenum(Inventtrans)))
{
qbsTrans = query.dataSourceTable(tablenum(Inventtrans));
qbsTrans.sortClear();
doFindRange = true;
}
else
qbsTrans = query.addDataSource(tablenum(Inventtrans));
if (query.dataSourceTable(tablenum(InventDim)))
{
qbsDim = query.dataSourceTable(tablenum(InventDim));
qbsDim.sortClear();
doFindRange = true;
}
else
qbsDim = qbsTrans.addDataSource(tablenum(InventDim));
qbsDim.joinMode(JoinMode::InnerJoin);
qbsDim.relations(true);
if (inventDimParmCriteria.ItemIdFlag)
{
queryRange = doFindRange ? qbsTrans.findRange(fieldnum(Inventtrans,ItemId)) : null;
if (! queryRange)
queryRange = qbsTrans.addRange(fieldnum(Inventtrans,ItemId));
if (itemId)
queryRange.value(queryValue(itemId));
else
queryRange.value(SysQuery::valueEmptyString());
}
if (inventDimParmGroupBy.ItemIdFlag)
{
qbsTrans.addSortField(fieldnum(Inventtrans,ItemId));
qbsTrans.orderMode(OrderMode::GroupBy);
}
qbsTrans.clearRange(fieldnum(inventtrans,DateFinancial));
qbsTrans.addRange(fieldnum(inventtrans,DateFinancial)).value('..' + queryvalue(todate));
Inventtrans::queryAddSumQty(qbsTrans);
// InventDim::queryDatasourceAddRangeSortFromParms(qbsDim,doFindRange,inventDimCriteria,inventDimParmCriteria,inventDimParmGroupBy,dimFields);
// Inventtrans::queryAddHint(query,inventDimCriteria,inventDimParmCriteria,qbsTrans,qbsDim);
qbsTrans.clearRange(fieldnum(inventtrans,DateFinancial));
return query;
}
No comments:
Post a Comment