Hi. I'm creating a UIBuilder to filter report parameters with multiple lookup field. I got this error when generating the report. The exception is caught on DP.processReport() method as commented below in the code. Here's the code:
Controller Class
public class ProductionOutputDailyController extends SrsReportRunController
{
}
protected void preRunModifyContract()
{
ProductionOutputDailyContract contract;
}
public static void main(Args _args)
{
ProductionOutputDailyController controller = new ProductionOutputDailyController();
controller.parmReportName(ssrsReportStr(ProductionOutputDaily, PrecisionDesign1));
controller.parmArgs(_args);
controller.startOperation();
}
UIBuilder Class
public class ProductionOutputDailyUIBuilder extends SysOperationAutomaticUIBuilder
{
DialogField dfItemGroupId;
SysLookupMultiSelectGrid msCtrlInventItemGroup;
}
public void build()
{
ProductionOutputDailyContract contract;
contract = this.dataContractObject() as ProductionOutputDailyContract;
dfItemGroupId = this.addDialogField(methodStr(ProductionOutputDailyContract, parmItemGroupId),contract);
}
public void postBuild()
{
ProductionOutputDailyContract contract;
super();
contract = this.dataContractObject() as ProductionOutputDailyContract;
dfItemGroupId = this.bindInfo().getDialogField(contract, methodStr(ProductionOutputDailyContract, parmItemGroupId));
dfItemGroupId.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(ProductionOutputDailyUIBuilder, itemGroupIdLookup), this);
if (dfItemGroupId)
{
dfItemGroupId.lookupButton(2);
}
}
private void itemGroupIdLookup(FormStringControl _control)
{
Query query;
container conInventItemGroup;
query = new Query(queryStr(InventItemGroup));
msCtrlInventItemGroup = SysLookupMultiSelectGrid::construct(_control, _control);
msCtrlInventItemGroup.parmQuery(query);
msCtrlInventItemGroup.run();
}
Data Provider Class
[
SRSReportParameterAttribute(classStr(ProductionOutputDailyContract))
]
public class ProductionOutputDailyDP extends SRSReportDataProviderBase
{
TmpProductionOutputDaily tmpProductionOutputDaily, tmpProductionOutputDailyGet1, tmpProductionOutputDailyGet2;
TmpProductionOutputDailyFilter tmpProductionOutputDailyFilter;
List itemGroupIdList;
}
[
SRSReportDataSetAttribute(tableStr(TmpProductionOutputDailyFilter))
]
public TmpProductionOutputDailyFilter getTmpProductionOutputDailyFilter()
{
return tmpProductionOutputDailyFilter;
}
[SysEntryPointAttribute(false)]
public void processReport()
{
ProductionOutputDailyContract contract;
TransDate fromDate, toDate;
String255 itemId, warehouse, journalName, itemGroupId, productType;
ItemNetWeight itemNetWeight;
contract = new ProductionOutputDailyContract();
contract = this.parmDataContract() as ProductionOutputDailyContract;
itemGroupIdList = contract.parmItemGroupId();
itemGroupId = strRem(strRem(itemGroupIdList.toString(),"<"),">"); //ERROR MESSAGE HERE
//rest of code......
tmpProductionOutputDailyFilter.insert();
}
Contract Class
[
DataContractAttribute,
SysOperationContractProcessingAttribute(classstr(ProductionOutputDailyUIBuilder))
]
public class ProductionOutputDailyContract
{
MonthsOfYear reportMonth;
int yearFilter;
String255 itemGroupId;
List itemGroupIdList;
}
[
DataMemberAttribute('ItemGroupId'),
AifCollectionTypeAttribute("itemGroupIdList", Types::String),
SysOperationLabelAttribute(literalstr("Item Group")),
SysOperationHelpTextAttribute(literalstr("Item Group")),
SysOperationDisplayOrderAttribute('7')
]
public List parmItemGroupId(List _itemGroupIdList = itemGroupIdList)
{
itemGroupIdList = _itemGroupIdList;
return itemGroupIdList;
}
I have refresh all cache, refresh usage data, restart server, still no luck. Feel free to ask if you need more information on the error. Thank You.