Need to get multi select lookup in parameter level SSRS Reports Ax2012
Contract class :
[DataContractAttribute,SysOperationContractProcessingAttribute(classstr(Wre_PurchPurchaseOrderUIBuilder))]
class Wre_PurchPurchaseOrderContract
{
Wre_PurchPurchaseOrder purchPurchaseOrder;
Str1260 purchId;
TransDate fromDate,Todate;
}
[DataMemberAttribute("FromDate"),
SysOperationLabelAttribute("From date"),
SysOperationDisplayOrderAttribute('1')]
public TransDate parmFromDate(TransDate _fromDate = fromDate)
{
fromDate = _fromDate;
return fromDate;
}
[DataMemberAttribute("ToDate"),
SysOperationLabelAttribute("To date"),
SysOperationDisplayOrderAttribute('2')]
public TransDate parmTodate(TransDate _todate = Todate)
{
Todate = _todate;
return Todate;
}
[DataMemberAttribute("PurchId"),
SysOperationLabelAttribute("Purchase order"),
SysOperationDisplayOrderAttribute('3')]
public Str1260 parmPurchId(Str1260 _purchId = purchId)
{
purchId = _purchId;
return purchId;
}
Data provider class :
[SRSReportParameterAttribute('Wre_PurchPurchaseOrderContract')]
class Wre_PurchPurchaseOrderDP extends SrsReportDataProviderPreProcessTempDB
{
Wre_PurchPurchaseOrderContract contract;
Wre_PurchPurchaseOrder purchPurchaseOrder;
Wre_PurchPurchaseOrderLine purchPurchaseOrderLine;
str purchId;
TransDate fromDate,Todate;
}
[SRSReportDataSetAttribute('Wre_PurchPurchaseOrder')]
protected Wre_PurchPurchaseOrder getWre_PurchPurchaseOrder()
{
select purchPurchaseOrder;
return purchPurchaseOrder;
}
[SRSReportDataSetAttribute('Wre_PurchPurchaseOrderLine')]
protected Wre_PurchPurchaseOrderLine getWre_PurchPurchaseOrderLine()
{
select purchPurchaseOrderLine;
return purchPurchaseOrderLine;
}
[SysEntryPointAttribute(false)]
public void processReport()
{
Query query = new Query();
QueryBuildDataSource qbdspurchtable,qbdsline,qbdsinventDim;
QueryBuildRange qbrpurchtable;
QueryRun qr;
PurchTable purchtable;
PurchLine purchLine;
InventDim inventDim;
CompanyInfo companyinfo;
LineAmount lineAmount;
contract = this.parmDataContract() as Wre_PurchPurchaseOrderContract;
purchId = contract.parmPurchId();
fromDate = contract.parmFromDate();
Todate = contract.parmTodate();
purchId = strReplace(purchId,";",",");
qbdspurchtable = query.addDataSource(tableNum(PurchTable));
qbdsline = qbdspurchtable.addDataSource(tableNum(PurchLine));
qbdsline.relations(NoYes::Yes);
qbdsinventDim = qbdsline.addDataSource(tableNum(InventDim));
qbdsinventDim.relations(NoYes::Yes);
qbdspurchtable.addRange(fieldNum(PurchTable,PurchId)).value(purchId);
qbdspurchtable.addRange(fieldNum(PurchTable,CreatedDateTime)).value(SysQuery::range(fromDate,Todate));
qr = new QueryRun(query);
ttsBegin;
while(qr.next())
{
purchtable = qr.get(tableNum(PurchTable));
purchLine = qr.get(tableNum(PurchLine));
inventDim = qr.get(tableNum(InventDim));
purchPurchaseOrder.clear();
purchPurchaseOrder.PurchId = purchtable.PurchId;
purchPurchaseOrder.PurchName = purchtable.PurchName;
purchPurchaseOrder.OrderAccount = purchtable.OrderAccount;
purchPurchaseOrder.InvoiceAccount = purchtable.InvoiceAccount;
purchPurchaseOrder.PurchaseType = purchtable.PurchaseType;
purchPurchaseOrder.PurchStatus = purchtable.PurchStatus;
purchPurchaseOrder.DeliveryDate = purchtable.DeliveryDate;
purchPurchaseOrder.DeliveryName = purchtable.DeliveryName;
companyinfo = companyinfo::find();
purchPurchaseOrder.Wre_Logo = CompanyImage::findByRecord(companyinfo).Image;
purchPurchaseOrder.CurrencyCode = purchtable.CurrencyCode;
purchPurchaseOrderLine.ItemId = purchLine.ItemId;
purchPurchaseOrderLine.Name = purchLine.itemName();
purchPurchaseOrderLine.PurchUnit = purchLine.PurchUnit;
purchPurchaseOrderLine.PurchQty = purchLine.PurchQty;
purchPurchaseOrderLine.PurchPrice = purchLine.PurchPrice;
purchPurchaseOrderLine.CurrencyCode = purchLine.CurrencyCode;
purchPurchaseOrderLine.LineAmount = purchLine.LineAmount;
purchPurchaseOrderLine.InventSiteId = inventDim.InventSiteId;
purchPurchaseOrderLine.InventLocationId = inventDim.InventLocationId;
select sum(LineAmount) from purchLine
where purchLine.PurchId == purchtable.PurchId;
purchPurchaseOrderLine.Wre_TotalAmount = purchLine.LineAmount;
purchPurchaseOrderLine.Wre_AmountToWords = Global::WRE_numeralsToTxt(purchPurchaseOrderLine.Wre_TotalAmount);
purchPurchaseOrder.insert();
purchPurchaseOrderLine.insert();
}
ttsCommit;
}
Comments
Post a Comment