I have been developing a report for invoices in so . fetching data from Cust invoice jour Table . Added multi selection on order account from Cust invoice jour. I have debugged my code and got error in my Cust account parameter range .
My contract class code and DP is attached is attached below:

[SRSReportQueryAttribute(queryStr(SalesOrderInvoice)),
SRSReportParameterAttribute(classStr(SalesOrderInvoiceContract))
]
public class SalesOrderInvoiceDp extends SRSReportDataProviderBase
{
SalesOrderInvoiceTmp salesOrderInvoiceTmp;
ListEnumerator custAccountListIterator;
InvoiceId invoiceId;
CustInvoiceJour custInvoiceJour;
LedgerJournalTrans ledgerJournalTrans;
InvoiceDate invoiceDate;
Bitmap CompanyImage;
List _custAccount;
CustAccount custAccount;
[ SRSReportDataSetAttribute(tableStr(SalesOrderInvoiceTmp))]
public SalesOrderInvoiceTmp getsalesOrderInvoiceTmp()
{
select * from salesOrderInvoiceTmp;
return salesOrderInvoiceTmp;
}
public void processReport()
{
Query query;
QueryRun queryRun;
QueryBuildRange qbrInvoiceId, qbrInvoiceDate, qbrCustAccount;
QueryBuildDataSource qbds;
SalesOrderInvoiceContract salesOrderInvoiceContract;
CompanyInfo companyInfo = CompanyInfo::find();
salesOrderInvoiceContract = this.parmDataContract() as SalesOrderInvoiceContract ;
invoiceId = salesOrderInvoiceContract.parminvoiceId();
invoiceDate = salesOrderInvoiceContract.parmInvocieDate();
_custAccount = salesOrderInvoiceContract.parmcustAccount();
query = new Query();
//query =this.parmQuery();
// Add CustInvoiceJour as a report data source in a query
qbds = query.addDataSource(tableNum(CustInvoiceJour));
if(invoiceId)
{
query.dataSourceTable(tableNum(CustInvoiceJour)).addRange(fieldNum(CustInvoiceJour, InvoiceId)).value(queryValue(invoiceId));
}
if(invoiceDate)
{
query.dataSourceTable(tableNum(CustInvoiceJour)).addRange(fieldNum(CustInvoiceJour, InvoiceDate)).value(queryValue(invoiceDate));
}
if(_custAccount)
{
query.dataSourceTable(tableNum(CustInvoiceJour)).addRange(fieldNum(CustInvoiceJour, OrderAccount)).value(queryValue(_custAccount));
}
query.clearGroupBy();
query.dataSourceTable(tableNum(custInvoiceJour)).addGroupByField(fieldNum(custInvoiceJour, InvoiceId));
query.dataSourceTable(tableNum(ledgerJournalTrans)).addSelectionField(fieldNum(ledgerJournaltrans, AmountCurCredit),SelectionField::Sum);
if (_custAccount|| invoiceDate || invoiceId )
{
custAccountListIterator = _custAccount.getEnumerator();
while (custAccountListIterator.moveNext())
{
custAccount = custAccountListIterator.current();
//while select CustInvoiceJour
//where invoiceDate == custInvoiceJour.InvoiceDate
// && (invoiceId == custInvoiceJour.InvoiceId || invoiceId == "")
// && (custAccount == custInvoiceJour.OrderAccount || custAccount == "")
queryRun =new QueryRun(query);
while (queryRun.next())
{
custInvoiceJour = queryRun.get(tableNum(custInvoiceJour));
ledgerJournalTrans = queryRun.get(tableNum(ledgerJournalTrans));
salesOrderInvoiceTmp.InvoiceId = custInvoiceJour.InvoiceId;
salesOrderInvoiceTmp.InvoiceDate = custInvoiceJour.InvoiceDate;
salesOrderInvoiceTmp.CustAccount = custInvoiceJour.OrderAccount;
salesOrderInvoiceTmp.CustName = custTable::find(salesOrderInvoiceTmp.CustAccount).name();
salesOrderInvoiceTmp.Nationality = custTable::find(salesOrderInvoiceTmp.CustAccount).countryName();
salesOrderInvoiceTmp.Phone = custTable::find(salesOrderInvoiceTmp.CustAccount).phone();
salesOrderInvoiceTmp.Warehouse = custInvoiceJour.inventLocationId;
salesOrderInvoiceTmp.InvocieAmount = LedgerJournalTrans.AmountCurCredit;;
salesOrderInvoiceTmp.CompanyImage = CompanyImage::findByRecord(companyInfo).Image;
salesOrderInvoiceTmp.JournalPosted = LedgerJournalTable::find(salesOrderInvoiceTmp.InvoiceId).Posted;
salesOrderInvoiceTmp.PaymModeCash = ledgerJournalTrans.PaymMode;
if (salesOrderInvoiceTmp.JournalPosted == NoYes::Yes)
{
salesOrderInvoiceTmp.status = " Posted" ;
}
else
{
salesOrderInvoiceTmp.status = "Not posted";
}
salesOrderInvoiceTmp.insert();
}
}
}
}
}
[
DataMemberAttribute,
AifCollectionTypeAttribute('CustAccount', Types::String),
SysOperationLabelAttribute(literalStr("Cust Account")),
SysOperationDisplayOrderAttribute('3')
]
public List parmcustAccount(List _custAccount = custAccount)
{
custAccount = _custAccount;
return custAccount;
}