FRVMSIPspiffOverrideReportController Class:
class FRVMSIPSpiffOverrideReportController extends SrsReportRunController
{
}
protected void preRunModifyContract()
{
VMSipAllowanceHeader header;
super();
if(this.parmArgs() && this.parmArgs().record())
{
this.parmReportContract().parmReportName(ssrsReportStr(FRVMSIPSpiffOverrideReport, FRVMSIPSpiffOverrideReport));
this.parmReportName(ssrsReportStr(FRVMSIPSpiffOverrideReport, FRVMSIPSpiffOverrideReport));
}
}
public static void main(Args _args)
{
VMSipAllowanceHeader headerInfo;
List programIds = new List(Types::String);
FRVMSIPSpiffOverrideReportContract contract = new FRVMSIPSpiffOverrideReportContract();
MultiSelectionHelper selectedSpiffs = MultiSelectionHelper::createFromCaller(_args.caller());
FRVMSIPSpiffOverrideReportController controller = new FRVMSIPSpiffOverrideReportController();
headerInfo = selectedSpiffs.getFirst();
if(headerInfo)
{
while (headerInfo)
{
programIds.addEnd(headerInfo.ProgramId);
headerInfo = selectedSpiffs.getNext();
}
}
contract.parmProgramIds(programIds);
controller.parmArgs(_args);
controller.parmReportName(ssrsReportStr(FRVMSIPSpiffOverrideReport, FRVMSIPSpiffOverrideReport));
controller.parmShowDialog(false);
controller.startOperation();
}
FRVMSIPSpiffOverrideReportDP Class:
[
SysEntryPointAttribute(false)
]
public void processReport()
{
gVMSpiffOverrideReportTmp.clear();
contract = this.parmDataContract() as FRVMSIPSpiffOverrideReportContract;
_programIds = contract.parmProgramIds();
if(_programIds != null)
{
programIdsListIterator = _programIds.getEnumerator();
while(programIdsListIterator.moveNext())
{
programId = programIdsListIterator.current();
while select allowanceHeader where programId == allowanceHeader.ProgramId
join allowanceLine where allowanceHeader.RecId == allowanceLine.RecId
join salesLine where allowanceLine.SalesLine == salesLine.RecId
join spiffOverride where spiffOverride.AllowanceHeader == allowanceHeader.RecId
join custTable where CustTable.RecId == allowanceLine.CustTable
join inventTable where InventTable.RecId == spiffOverride.InventTable
join spiffChassis where spiffChassis.AllowanceHeader == allowanceHeader.RecId
join inventSite where inventSite.SiteId == allowanceHeader.InventSiteId
join siteMapping where (siteMapping.SiteId == inventSite.SiteId && siteMapping.user == curUserId()) ||
(siteMapping.user == curUserId())
gVMSpiffOverrideReportTmp.ProgramIds = allowanceHeader.ProgramId;
gVMSpiffOverrideReportTmp.SiteId = allowanceHeader.InventSiteId;
gVMSpiffOverrideReportTmp.VMShortVIN = allowanceLine.frShortVIN;
gVMSpiffOverrideReportTmp.VMVINNumber = allowanceLine.VINInfo;
gVMSpiffOverrideReportTmp.Active = spiffOverride.frActive;
gVMSpiffOverrideReportTmp.Amount = spiffOverride.Amount;
gVMSpiffOverrideReportTmp.CustGroup = custTable.CustGroup;
gVMSpiffOverrideReportTmp.CustomerDescription = spiffOverride.dispCustName(spiffOverride);
gVMSpiffOverrideReportTmp.SalesGroup = CustTable.SalesGroup;
gVMSpiffOverrideReportTmp.ItemNumber = inventTable.RecId;
gVMSpiffOverrideReportTmp.ItemDescription = spiffOverride.dispItemDescription(spiffOverride);
gVMSpiffOverrideReportTmp.OverrideNote = spiffOverride.frSipOverrideNote;
gVMSpiffOverrideReportTmp.PaymentDate = spiffOverride.frDispTransDate();
gVMSpiffOverrideReportTmp.ValidFrom = spiffOverride.ValidFrom;
gVMSpiffOverrideReportTmp.ValidTo = spiffOverride.ValidTo;
gVMSpiffOverrideReportTmp.insert();
}
}
}
The error occurs when I reach this line in the processReport method of my DP:
_programIds = contract.parmProgramIds();
Do I need a parmContract method to hold the contract instead of just the new statement in the controller class?