Hi, I am building a report and for some reason the parameter screen loads and I get the following error when I click into it:
Unable to cast object of type 'Dynamics.AX.Application.FormIntControl' to type 'Dynamics.AX.Application.FormStringControl'.
![]()
My code is as follows however I cant find out where its coming from,
UI Builder:
class TestSysLogReportUIBuilder extends SrsReportDataContractUIBuilder
{
DialogField dialogTableNum;
DialogGroup dialogGroup;
boolean enable;
private void TableNumLookup(FormStringControl TableNumLookup)
{
Query query = new Query();
QueryBuildDataSource qbds_SysLogTable;
SysTableLookup sysTableLookup;
if (TableNumLookup != null)
{
// Create an instance of SysTableLookup with
// the current calling form control.
sysTableLookup = SysTableLookup::newParameters(tablenum(SysDataBaseLog), TableNumLookup);
// Add fields to be shown in the lookup form.
qbds_SysLogTable = query.addDataSource(tableNum(SysDataBaseLog));
sysTableLookup.addLookupfield(fieldnum(SysDataBaseLog, table), true);
sysTableLookup.parmUseLookupValue(false);
sysTableLookup.parmQuery(query);
// Perform the lookup.
sysTableLookup.performFormLookup();
}
}
public void build()
{
TestSysLogReportContract rdpContract = this.dataContractObject();
dialogTableNum = this.addDialogField(methodstr(TestSysLogReportContract,parmRefTableId),rdpContract);
dialogTableNum.lookupButton(2);
}
public void postRun()
{
Dialog dialogLocal = this.dialog();
DialogField dialogField;
super();
// This method should be called in order to handle events on dialogs.
dialogLocal.dialogForm().formRun().controlMethodOverload(false);
// Override the methods of department field.
dialogField = this.bindInfo().getDialogField(this.dataContractObject(), methodstr(TestSysLogReportContract, parmRefTableId));
dialogField.registerOverrideMethod(methodstr(FormStringControl, lookup), methodstr(TestSysLogReportUIBuilder, TableNumLookup), this);
}
}
Contract:
[DataContractAttribute,SysOperationContractProcessingAttribute(classstr(TestSysLogReportUIBuilder))]
class TestSysLogReportContract
{
RefTableId reftableid;
//Add parmAccountNum method as shown below
[DataMemberAttribute('RefTableId')]
public RefTableId parmRefTableId(RefTableId _reftableid = reftableid)
{
reftableid = _reftableid;
return reftableid;
}
}
Not sure what I am doing wrong. Anything obvious?
In a nutshell I am trying to build a report which has the table name and id as a drop down list.