SSRS report (document reports) from the form based report - only Controller and RDP
Controller
/// <summary>
/// The <c>InventABCController</c> class is the controller class for the <c>InventABC</c> SSRS report.
/// </summary>
class NXRSamplingResultReportController extends SrsReportRunController
{
public void prePromptModifyContract()
{
Query query;
QueryBuildDataSource qbds;
EDF_SamplingTable samplingTable;
if (this.parmArgs().record().TableId == tableNum (prodTable))
{
samplingTable = this.parmArgs().record() as prodTable;
query = this.getFirstQuery();
qbds = query.dataSourceTable(tableNum(EDF_SamplingTable));
SysQuery::findOrCreateRange(qbds,fieldNum(EDF_SamplingTable,SamplingId)).value(samplingTable.SamplingId);
}
}
public static void main(Args _args)
{
NXRSamplingResultReportController controller = new NXRSamplingResultReportController();
EDF_SamplingTable samplingTable = _args.record();
if(samplingTable.TypeId like '*Asalan*')
{
controller.parmReportName(ssrsReportStr(NXRSamplingResultReport, Asalan));
}
else if(samplingTable.TypeId like '*FOB*')
{
controller.parmReportName(ssrsReportStr(NXRSamplingResultReport, FOB));
}
else if(samplingTable.TypeId like '*local*')
{
controller.parmReportName(ssrsReportStr(NXRSamplingResultReport, LocalPurchase));
}
else if(samplingTable.TypeId like '*Triage*')
{
controller.parmReportName(ssrsReportStr(NXRSamplingResultReport, Triage));
}
controller.parmShowDialog(false);
controller.parmLoadFromSysLastValue(false);
controller.startOperation();
}
}
RDP
[SrsReportQuery(queryStr(NXRSamplingResultReportQuery))]
public class NXRSamplingResultReportDP extends SRSReportDataProviderBase
{
NXRSamplingResultReportTmp reportTmp;
/// <summary>
/// Retrieves the data table from the <c>TmpABC</c> table.
/// </summary>
/// <returns>
/// The required report data table.
/// </returns>
[SrsReportDataSet(tableStr(NXRSamplingResultReportTmp))]
public NXRSamplingResultReportTmp getTmpABC()
{
select reportTmp;
return reportTmp;
}
/// <summary>
/// Processes the report business logic.
/// </summary>
/// <remarks>
/// This method is used to process the report business logic that is used by <c>InventABC</c> report.
/// </remarks>
public void processReport()
{
Query query;
QueryRun qr;
EDF_SamplingTable samplingTable;
query = this.parmQuery();
qr = new QueryRun(query);
while(qr.next())
{
samplingTable = qr.get(tableNum(EDF_SamplingTable));
}
}
}
Comments
Post a Comment