Hide dialog box does not execute the SSRS report

Hi,

I have created an SSRS report for a form with temporary table, so I used data marshaller classes (SRSTmpTblMarshaller, SrsTmpTblMarshallerContract), however whenever I try to hide the dialog box using the following method in controller class, the report neither simply execute, nor do I receive any error.


public boolean parmShowDialog(boolean _showDialog = false)
{
    boolean ret;

    ret = super(_showDialog);

    return ret;
}

 

and the class declaration is


class MyController extends SrsReportRunController

What wrong is in the code, or what else should I do?

I’m sorry, but it’s impossible to say where you have the bug if we don’t know anything about your code. Please use the debugger to find the problem.

It’s also not clear to me what you’re doing with SRSTmpTblMarshaller* classes. Please realize that almost all reports in AX 2012 are based on temporary tables and it’s all handled by the framework, you don’t have to do anything special to get it work.

The report works fine if I do not hide the dialog box.

Now, the client does not want an extra step to choose printer and click “Ok”

So I tried to overwrite the parmShowDialog method, which causes report not to execute.

The report is using marshaller classes in the following way:


protected void prePromptModifyContract()
{

    SrsTmpTblMarshallerContract contract = this.parmReportContract().parmRdpContract() as SrsTmpTblMarshallerContract;

    new SRSReportRunPermission().assert();
    contract.parmTmpTableDataRecId(SRSTmpTblMarshaller::SendTmpTblToDataProvider(MyTmpTable));
}


private void initTmpTable()
{
    SrsTmpTblMarshallerContract contract = this.parmDataContract() as SrsTmpTblMarshallerContract;

    new SRSReportRunPermission().assert();

    MyTmpTable = SRSTmpTblMarshaller::getTmpTbl(contract.parmTmpTableDataRecId());

    CodeAccessPermission::revertAssert();
}


[SysEntryPointAttribute]
public void processReport()
{
    this.initTmpTable();
}