Hi All,
I have created a report, calling it through controller class. But I am not able to see the parameters in the report dialog.
The classes I created are as follows:
Controller class:
class NMNRdlItemTransListController extends SrsReportRunController
{
}
protected void prePromptModifyContract()
{
Query query;
QueryBuildDataSource qbds;
InventTable inventTable;
NMNRdlItemTransListContract contract;
super();
inventTable = Args ? Args.record() as InventTable : null;
if(inventTable.RecId)
{
query = this.getFirstQuery();
qbds = query.dataSourceTable(tableNum(InventTable));
qbds.addRange(fieldNum(InventTable, ItemId)).value(inventTable.ItemId);
}
}
public static void main(Args args)
{
NMNRdlItemTransListController nmnRdlItemTransListController;
nmnRdlItemTransListController = new NMNRdlItemTransListController();
nmnRdlItemTransListController.parmReportName(ssrsReportStr(NMNRdlItemTransList, ItemTransList));
nmnRdlItemTransListController.parmLoadFromSysLastValue(false);
nmnRdlItemTransListController.parmArgs(args);
nmnRdlItemTransListController.startOperation();
}
Contract class:
[
DataContractAttribute,
SysOperationContractProcessingAttribute(classstr(NMNRdlItemTransListUIBuilder))
]
public class NMNRdlItemTransListContract implements SysOperationValidatable
{
TransDate fromDate;
TransDate toDate;
InventtransferUpdateType status;
TaxRegistrationNumber_IN eccNumber;
}
[
DataMemberAttribute(‘ECCNumber’),
SysOperationLabelAttribute(literalStr(“ECC Number”))
]
public TaxRegistrationNumber_IN parmEccNumber(TaxRegistrationNumber_IN _eccNumber = eccNumber)
{
eccNumber = _eccNumber;
return eccNumber;
}
[
DataMemberAttribute(‘FromDate’),
SysOperationLabelAttribute(literalStr(“FromDate”))
]
public FromDate parmFromDate(FromDate _fromDate = fromDate)
{
fromDate = _fromDate;
return fromDate;
}
[
DataMemberAttribute(‘Status’),
SysOperationLabelAttribute(literalStr(“Status”))
]
public InventTransferUpdateType parmStatus(InventTransferUpdateType _status = status)
{
status = _status;
return status;
}
[
DataMemberAttribute(‘ToDate’),
SysOperationLabelAttribute(literalStr(“ToDate”))
]
public ToDate parmToDate(ToDate _toDate = toDate)
{
toDate = _toDate;
return toDate;
}
public boolean validate()
{
boolean isValid = true;
if (fromDate && toDate && fromDate > toDate)
{
isValid = checkFailed(“From date cannot be greater than to date”);
}
if (!fromDate)
{
isValid = checkFailed(“From date must be filled in”);
}
if (!toDate)
{
isValid = checkFailed("To date must be filled in ");
}
return isValid;
}
UI Builder class:
class NMNRdlItemTransListUIBuilder extends SrsReportDataContractUIBuilder
{
DialogField dialogStatus;
DialogField dialogFromDate;
DialogField dialogToDate;
DialogField dialogEccNumber;
}
public void build()
{
NMNRdlItemTransListContract nmnRdlItemTransListContract;
nmnRdlItemTransListContract = this.dataContractObject() as NMNRdlItemTransListContract;
dialogStatus = this.addDialogField(methodStr(nmnRdlItemTransListContract, parmStatus), nmnRdlItemTransListContract);
dialogFromDate = this.addDialogField(methodStr(nmnRdlItemTransListContract, parmFromDate), nmnRdlItemTransListContract);
dialogToDate = this.addDialogField(methodStr(nmnRdlItemTransListContract, parmToDate), nmnRdlItemTransListContract);
dialogEccNumber = this.addDialogField(methodStr(nmnRdlItemTransListContract, parmEccNumber), nmnRdlItemTransListContract);
}
public void postBuild()
{
NMNRdlItemTransListContract nmnRdlItemTransListContract;
super();
nmnRdlItemTransListContract = this.dataContractObject() as NMNRdlItemTransListContract;
dialogStatus = this.bindInfo().getDialogField(nmnRdlItemTransListContract, methodStr(nmnRdlItemTransListContract, ParmStatus));
dialogFromDate = this.bindInfo().getDialogField(nmnRdlItemTransListContract, methodStr(nmnRdlItemTransListContract, parmFromdate));
dialogToDate = this.bindInfo().getDialogField(nmnRdlItemTransListContract, methodStr(nmnRdlItemTransListContract, parmTodate));
dialogECCNumber = this.bindInfo().getDialogField(nmnRdlItemTransListContract, methodStr(nmnRdlItemTransListContract, ParmEccNumber));
dialogECCNumber.registerOverrideMethod(methodStr(FormStringControl, lookup), staticMethodStr(nmnRdlItemTransListUIBuilder,eccNumberLookup),this);
}
public static void eccNumberLookUp(FormControl _formControl)
{
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tablenum(TaxRegistrationNumbers_IN), _formControl);
Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
queryBuildDataSource = query.addDataSource(tablenum(TaxRegistrationNumbers_IN));
queryBuildRange = queryBuildDataSource.addRange(fieldnum(TaxRegistrationNumbers_IN, TaxType));
queryBuildRange.value(queryValue(TaxType_IN::Excise));
sysTableLookup.addLookupfield(fieldnum(TaxRegistrationNumbers_IN, RegistrationNumber));
sysTableLookup.addLookupfield(fieldnum(TaxRegistrationNumbers_IN, Name));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
Please help what I am missing.
Best Regards,
Nagesh