Yes
[
SRSReportParameterAttribute(classStr(AMPHMaterialShortageContract)),
SRSReportQueryAttribute(queryStr(AMPHMaterialShortageReport))
]
class AMPHMaterialShortageDP extends SRSReportDataProviderBase
{
AMPHMaterialShortageContract contract;
AMPHMaterialShortageReportTmp materialShortageReportTmp;
BOM BOM;
BOMVersion BOMVersion;
InventSum inventSum;
InventDim inventDim;
InventItemInventSetup inventItemInventSetup;
InventItemPurchSetup inventItemPurchSetup;
InventLocation inventLocation;
ProdTable prodTable;
ReqItemTable reqItemTable;
ReqPO reqPO;
ReqTrans reqTrans, reqTransReceipt;
ReqTransCov reqTransCov;
InventSiteId inventSiteId;
LeadTime leadTime;
Qty onhand, onhandRec;
RecId maxRecId, lastRecId;
boolean onHandRecord;
}
[SysEntryPointAttribute]
public void processReport()
{
Query q;
QueryRun qr;
QueryBuildRange qbr;
QueryBuildDataSource qbdsReqPlanVersion;
QueryBuildDataSource qbdsReqPO;
QueryBuildDataSource qbdsReqTrans;
QueryBuildDataSource qbdsProdTable;
contract = this.parmDataContract() as AMPHMaterialShortageContract;
q = new Query(queryStr(AMPHMaterialShortageReport));
qbdsReqPlanVersion = q.dataSourceTable(tableNum(ReqPlanVersion));
qbdsReqPlanVersion.addRange(fieldnum(ReqPlanVersion, ReqPlanId)).value(contract.parmPlanId());
qbdsReqTrans = q.dataSourceTable(tableNum(ReqTrans));
qbdsReqTrans.addRange(fieldnum(ReqTrans, ReqDate)).value(strFmt('<%1', Date2Str(contract.parmCutoffDate()+1,213,
DateDay::Digits2,DateSeparator::Hyphen,DateMonth::Digits2,DateSeparator::Hyphen,DateYear::Digits4)));
qr = new QueryRun(q);
while(qr.next())
{
reqTrans = qr.get(tableNum(ReqTrans));
reqTransCov = qr.get(tableNum(ReqTransCov));
this.populateTmpTable(reqTrans, reqTransCov);
}
}