[ SRSReportParameterAttribute(classStr(ReturnFormContract)) ] class ReturnFormDP extends SrsReportDataProviderPreProcess { ReturnFormHeaderTmp returnFormHeaderTmp; ReturnFormDetailsTmp returnFormDetailsTmp; SalesTable salesTable; } [ SRSReportDataSetAttribute(tableStr(ReturnFormDetailsTmp)) ] public ReturnFormDetailsTmp getReturnFormDetailsTmp() { select returnFormDetailsTmp; return returnFormDetailsTmp; } [ SRSReportDataSetAttribute(tableStr(ReturnFormHeaderTmp)) ] public ReturnFormHeaderTmp getReturnFormHeaderTmp() { select returnFormHeaderTmp; return returnFormHeaderTmp; } [SysEntryPointAttribute(true)] public void processReport() { SalesId salesId; ReturnFormContract dataContract; dataContract = this.parmDataContract(); salesId = dataContract.parmSalesId(); salesTable = SalesTable::find(salesId); this.setReturnFormHeaderTmp(); this.setReturnFormDetailsTmp(); } private void setReturnFormDetailsTmp() { int recCount = 5, maxRecCount = 25, a; SalesLine salesLine; select count(RecId) from salesLine where salesLine.SalesId == salesTable.SalesId; if (recCount < salesLine.RecId) { recCount = int642int(salesLine.RecId); } if (recCount > maxRecCount) { recCount = maxRecCount; } for (a = 0; a < recCount; a++) { returnFormDetailsTmp.insert(); } } private void setReturnFormHeaderTmp() { InventParameters inventParameters = InventParameters::find(); Addressing addressing; InventLocation inventLocation; InventSite inventSite; CompanyInfo companyInfo = CompanyInfo::find(); CustPackingSlipJour custPackingSlipJour; returnFormHeaderTmp.PrintLogo = NoYes::Yes; returnFormHeaderTmp.CompanyName = companyInfo.name(); switch (inventParameters.ShipCarrierReturnTo) { case ShipCarrierReturnTo::Warehouse: inventLocation = InventLocation::find(salesTable.InventLocationId); addressing = inventLocation.logisticsPostalAddress().Address; break; case ShipCarrierReturnTo::Site: inventSite = inventSite::find(salesTable.InventSiteId); addressing = LogisticsLocationEntity::findPostalAddress(inventSite, LogisticsLocationRoleType::None).Address; } if (!addressing) { addressing = companyInfo.postalAddress().Address; } returnFormHeaderTmp.CompanyAddress = addressing; returnFormHeaderTmp.CompanyPhone = companyInfo.phone(); returnFormHeaderTmp.CompanyTeleFax = companyInfo.teleFax(); returnFormHeaderTmp.CompanyCoRegNum = companyInfo.CoRegNum; returnFormHeaderTmp.CompanyGiro = companyInfo.Giro; returnFormHeaderTmp.CompanyEnterpriseNumber = companyInfo.EnterpriseNumber; returnFormHeaderTmp.CompanyLogo = FormLetter::companyLogo(); if (companyInfo.EnterpriseCode) { returnFormHeaderTmp.CompanyEnterpriseCode = companyInfo.EnterpriseCode; } addressing = ''; select firstonly custPackingSlipJour order by RecId desc where custPackingSlipJour.SalesId == salesTable.SalesId; if (custPackingSlipJour) { addressing = custPackingSlipJour.deliveryAddress(); } if (!addressing) { addressing = salesTable.deliveryAddressing(); } returnFormHeaderTmp.CustomerName = salesTable.customerName(); returnFormHeaderTmp.CustomerAddress = addressing; returnFormHeaderTmp.SalesId = salesTable.SalesId; returnFormHeaderTmp.insert(); }Controller:
class ReturnFormController extends SrsReportRunController { } /// <summary> /// Modifies the report query and parameters based on caller settings. /// </summary> protected void prePromptModifyContract() { Common common; CustPackingSlipJour journal; ReturnFormContract contract; SalesPackingSlipJournalPrint salesPackingSlipJournalPrint; contract = this.parmReportContract().parmRdpContract() as ReturnFormContract; this.parmDialogCaption("@SLN6542"); if (classIdGet(this.parmArgs().caller()) == classNum(SalesPackingSlipJournalPrint)) { salesPackingSlipJournalPrint = this.parmArgs().caller() as SalesPackingSlipJournalPrint; this.parmReportContract().parmPrintSettings(new SRSPrintDestinationSettings(salesPackingSlipJournalPrint.ParmPrinterSettingsReturnForm())); } if (this.parmArgs().record()) { common = this.parmArgs().record(); } if (common.TableId == tableNum(CustPackingSlipJour)) { journal = common; contract.parmSalesId(journal.SalesId); } else { checkFailed(strFmt("@SYS26348")); return; } } /// <summary> /// Hides the dialog box, depending on the caller. /// </summary> protected void presentDialog() { Args localArgs = this.parmArgs(); boolean presentDialog = true; if (classIdGet(localArgs.caller()) == classNum(SalesPackingSlipJournalPrint)) { presentDialog = false; } this.parmShowDialog(presentDialog); } public static void main(Args _args) { ReturnFormController controller = new ReturnFormController(); controller.parmReportName(ssrsReportStr(ReturnForm, Report)); controller.parmArgs(_args); controller.presentDialog(); controller.startOperation(); }
class ReturnFormContract { SalesId salesId; } [DataMemberAttribute('SalesId')] public SalesId parmSalesId(SalesId _salesId = salesId) { salesId = _salesId; return salesId; }
DaxOnline.org is free platform that allows you to quickly store and reuse snippets, notes, articles related to Dynamics AX.
Authors are allowed to set their own AdSense units and "buy me a coffee" link.
Join us.