Tag: Invoice

Changing report design via code SSRS – Print Management

  • Added a new design in report on SSRS and redeployed report
  • Override method OutputReport on report controller class, with code as under
  • Wrote following code for testing
protected void outputReport()
{
SRSCatalogItemName          reportDesign;
Dialog                      smcdialog;
DialogField                 dfNewDesign;
NoYesId                     getDecision = NoYes::No;

;

smcdialog = new Dialog('Test dialog');
dfNewDesign =  smcdialog.addField(extendedTypeStr(NoYesId),"Should i run new design??? Mark me if you want so, elase leave me as it is.");
    
if(smcdialog.run())
{
    getDecision = dfNewDesign.value();
}

if(getDecision == NoYes::Yes)
{
    reportDesign = 'SalesPackingSlip.NewDesign1';
}
else
{
    reportDesign = this.parmReportName();
}
    
this.parmReportName(reportDesign);
this.parmReportContract().parmReportName(reportDesign);

formLetterReport.parmReportRun().settingDetail().parmReportFormatName(reportDesign);
    
super();
    
}
  • Generated incremental CIL
  • Run testing

    It worked perfectly

    Despite of all the discussion and providing step by step, if you cannot do it, sorry I cannot help you anymore. There is another option to contact Microsoft support. You may opt for that.


Link 2:

It is one of the normal development requirements you may came across where you want to change the report design name on the basis of some logic. The following example shows you how to achieve this.

The modification is done in Controller class “outputReport” method, before “super” call you need to set the updated design name based on some condition and its done.

/// <summary>
///    Executes the report for the print management setting that is currently loaded.
/// </summary>
/// <remarks>
///    The <c>outReports</c> method loops over print management settings and calls this method for each
///    print management setting loaded.
/// </remarks>
/// <exception cref=”M:Exception::Error”>
///    The print management object has not been initialized.
/// </exception>
public void outputReport()
{
reportDesign = ‘MyReport.Report_DesignA’;
this.parmReportName(reportDesign);
this.parmReportContract().parmReportName(reportDesign);
formLetterReport.parmReportRun().settingDetail().parmReportFormatName(reportDesign);
super();
}


Link 3:

Use the following code in outputReport() method in your controller class.

public void outputReport()

{

reportDesign = ‘MyReport.Report_DesignA’;

this.parmReportName(reportDesign);

this.parmReportContract().parmReportName(reportDesign);

formLetterReport.parmReportRun().settingDetail().parmReportFormatName(reportDesign);

super();

}

For details please check out the following link:

thinkinginax.blogspot.com/…/changing-report-design-via-code-ssrs.html

Dynamics AX 2012 Reporting: How to specify new design for Sales order confirmation

Sales order confirmation report is one of the special reports which are manage by print management. When we create new design in Visual Studio for out Sales order confirmation report and we want to use it it is not enough to change the code. Even those we will change the code in class AOT\Class\SalesConfirmationController method main from:

controller.initArgs(_args,ssrsReportStr(SalesConfirm,Report)

to

controller.initArgs(_args,ssrsReportStr(SalesConfirm,Report_NewDesign)

that will not be picked up and sales confirmation will be still printed in old design.

To change the design you need to:

If you go to

Account receivable > Setup > Forms > Form setup

Click on button Print management

You will see that by default report format is set up to: SalesConfirm.Report

If you want to use every time your new design then you can select for Report format your desire design.

If your desire format does not appear in drop down list you will need to edit method populate of table PrintMgmtReportFormat http://msdn.microsoft.com/en-us/library/printmgmtreportformat.populate.aspx

You can do it in following way:

// Add additional custom report formats here..// Here is an example:

addOther(PrintMgmtDocumentType::SalesOrderConfirmation, ‘SalesConfirm.Report_NewDesignA’, ‘SalesConfirm.Report_NewDesignA’, #NoCountryRegionId);

then when you open again Print management form the report name will be available in drop down.

If you want to use the design only in some cases then you can use procedure describe here: http://technet.microsoft.com/en-us/library/dd309660.aspx (section: Specify conditional settings for an original or copy record)

To learn more about print management

http://technet.microsoft.com/en-us/library/dd309615.aspx

http://technet.microsoft.com/en-us/library/dd309745.aspx