Hi Experts,
I developed a report with data builder and controller class as i am running my report this error i am getting"The type 'VarString' is not supported as a return value."
Check my code below
[
SRSReportQueryAttribute(queryStr(JDCustomerInvoice)),
SRSReportParameterAttribute(classStr(JDCustomerInvoiceContract))
]
class JDCustomerInvoiceDp extends SRSReportDataProviderBase
{
TransDate Todate, FromDate;
JDCustomerInvoiceContract contract;
JDCustomerInvoiceTmp JDCustomerInvoiceTmp;
CustInvoiceTrans custInvoiceTrans,CustInvoiceTransLocal;
CustInvoiceJour custInvoiceJour;
CustTable custtable;
InventTable inventTable;
}
[SRSReportDataSetAttribute("JDCustomerInvoiceTmp")]
public JDCustomerInvoiceTmp getJDCustomerInvoiceTmp()
{
select * from JDCustomerInvoiceTmp;
return JDCustomerInvoiceTmp;
}
public void insertTmp()
{
JDCustomerInvoiceTmp.CustName = custInvoiceJour.invoiceName();
JDCustomerInvoiceTmp.AccountNum = custInvoiceJour.InvoiceAccount;
JDCustomerInvoiceTmp.InvoiceDate = custInvoiceJour.InvoiceDate;
JDCustomerInvoiceTmp.CustGroup = custInvoiceJour.CustGroup;
JDCustomerInvoiceTmp.SalesGroup = SalesTable::find(custInvoiceJour.SalesId).SalesGroup;
JDCustomerInvoiceTmp.PartyCountry = CustTable::find(custInvoiceJour.InvoiceAccount).PartyCountry;
JDCustomerInvoiceTmp.PartyCity = CustTable::find(custInvoiceJour.InvoiceAccount).PartyState;
// JDCustomerInvoiceTmp.SalesOriginId = custInvoiceJour.SalesOriginId;
JDCustomerInvoiceTmp.SalesMan =DirPartyTable::findRec(SalesTable::find(custInvoiceJour.SalesId).WorkerSalesResponsible).Name;
//JDCustomerInvoiceTmp.Section = custInvoiceJour.InvoiceAccount;
JDCustomerInvoiceTmp.ItemId= custInvoiceTrans.ItemId;
JDCustomerInvoiceTmp.ItemName= custInvoiceTrans.itemName();
JDCustomerInvoiceTmp.ItemGroupId= InventTable::find(custInvoiceTrans.ItemId).itemGroupId();
//JDCustomerInvoiceTmp.ModelGroupId= InventTable::find(custInvoiceTrans.ItemId).modelGroupId();
JDCustomerInvoiceTmp.Qty = custInvoiceTrans.Qty;
JDCustomerInvoiceTmp.LineAmount = custInvoiceTrans.LineAmount;
select firstonly custtable where custtable.AccountNum == custInvoiceJour.InvoiceAccount;
JDCustomerInvoiceTmp.Email = custtable.Email9;
JDCustomerInvoiceTmp.Phone = custtable.TelePhone9;
JDCustomerInvoiceTmp.Region =custtable.Region9;
JDCustomerInvoiceTmp.Registration = custtable.RegistrationStatus9;
JDCustomerInvoiceTmp.InChargePerson = custtable.InChargsePerson9;
JDCustomerInvoiceTmp.CrNumber = custtable.CRNumber9;
JDCustomerInvoiceTmp.TheNameInCr = custtable.TheNameinCR9;
JDCustomerInvoiceTmp.CreditMax = custtable.CreditMax;
JDCustomerInvoiceTmp.PaymentTerm = custtable.PaymentTerm9;
JDCustomerInvoiceTmp.Section = custtable.CustomerSection9;
JDCustomerInvoiceTmp.PartyCity = custtable.City9;
JDCustomerInvoiceTmp.PartyCountry = custtable.Country9;
JDCustomerInvoiceTmp.SalesGroup = custtable.SalesGroup9;
select firstOnly inventTable where inventTable.ItemId == custInvoiceTrans.ItemId;
JDCustomerInvoiceTmp.Color = inventTable.Color;
JDCustomerInvoiceTmp.Size = inventTable.Size;
JDCustomerInvoiceTmp.Class = inventTable.Class;
JDCustomerInvoiceTmp.SubClass = inventTable.SubClass;
JDCustomerInvoiceTmp.Style = inventTable.Style;
JDCustomerInvoiceTmp.Category = inventTable.Category;
JDCustomerInvoiceTmp.FullDescription = inventTable.FullDescription;
JDCustomerInvoiceTmp.insert();
}
public void processReport()
{
Query query;
QueryRun queryRun;
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
query = this.parmQuery();
contract = this.parmDataContract();
FromDate = contract.parmFromDate();
ToDate = contract.parmToDate();
query.dataSourceNo(1).addRange(fieldnum(CustInvoiceJour, InvoiceDate)).value(queryRange(FromDate, ToDate));
queryRun = new QueryRun(query);
while(queryRun.next())
{
JDCustomerInvoiceTmp.clear();
custInvoiceTrans = queryRun.get(tablenum(CustInvoiceTrans));
custInvoiceJour = queryRun.get(tablenum(CustInvoiceJour));
this.insertTmp();
}
}
Data Contract Class
[ DataContractAttribute,
SysOperationContractProcessingAttribute(classstr(JadcoReportBuilder))
]
class JDCustomerInvoiceContract
{
TransDate Todate, FromDate;
str City;
str Status;
str Region;
}
[DataMemberAttribute("City"),
SysOperationLabelAttribute("City")]
public str parmCity(str _city = city)
{
city= _city;
return City;
}
[DataMemberAttribute("From date"),
SysOperationLabelAttribute("From date")]
public TransDate parmFromDate(TransDate _fromDate = fromDate)
{
fromDate = _fromDate;
return fromDate;
}
[DataMemberAttribute(" Region"),
SysOperationLabelAttribute(" Region")]
public str parmRegion(str _region = Region)
{
Region= _region;
return Region;
}
[DataMemberAttribute(" Status"),
SysOperationLabelAttribute(" Status")]
public str parmStatus(str _status = Status)
{
Status= _status;
return Status;
}
[DataMemberAttribute("To Date"),
SysOperationLabelAttribute("To date")]
public TransDate parmToDate(TransDate _ToDate = ToDate)
{
Todate = _ToDate;
return ToDate;
}
Report Builder class
public class JadcoReportBuilder extends SysOperationAutomaticUIBuilder //SysOperationAutomaticaUIBuilder
{
JDCustomerInvoiceContract DialogContract;
DialogField DialogCity;
DialogField DialogRegion;
DialogField DialogStatus;
DialogField DialogSalesGroup;
}
private void citylookup(FormStringControl _lookup)
{
QueryBuildDataSource querybuilddatasrcoue;
Query query= new Query();
SysTableLookup systablelookup;
if(_lookup != null)
{
systablelookup = SysTableLookup::newParameters(tableNum(CustTable ), _lookup);
querybuilddatasrcoue=query.addDataSource(tableNum(CustTable));
systablelookup.addLookupfield(fieldNum( CustTable, city9),true);
systablelookup.addLookupfield(fieldNum( CustTable, Region9),true);
systablelookup.addLookupfield(fieldNum( CustTable, Status9),true);
systablelookup.parmUseLookupValue(false);
systablelookup.parmQuery(query);
systablelookup.performFormLookup();
}
}
public void postBuild()
{
super();
if( this.controller() as jADController)
return;
DialogCity.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(JadcoReportBuilder ,citylookup), this);
}
public void build()
{
if(this.controller() as jADController)
return;
DialogContract = this.dataContractObject();
DialogCity = this.addDialogField (methodStr(JDCustomerInvoiceContract ,parmCity),DialogContract);
DialogCity = this.addDialogField (methodStr(JDCustomerInvoiceContract ,parmstatus),DialogContract);
DialogCity = this.addDialogField (methodStr(JDCustomerInvoiceContract ,parmRegion),DialogContract);
// DialogCity = this.addDialogField (methodStr(JDCustomerInvoiceContract ,)DialogContract);
// DialogCity = this.addDialogField (methodStr(JDCustomerInvoiceContract ,parmCity)DialogContract;
}
Controller class
class jADController extends SrsReportRunController
{
}
public static client void main(Args args)
{
jADController ff_ReportController;
ff_ReportController = new jADController();
ff_ReportController.parmArgs(args);
ff_ReportController.parmReportName(ssrsReportStr(JDCustomerInvoice1, Detail));
ff_ReportController. parmDialogCaption('Report');
ff_ReportController .startOperation();
}
}
Best Regards,
Shabir The type 'VarString' is not supported as a return value.