I’m experiencing difficulties viewing data in the frontend of my SSRS report, which is designed to generate information based on custaccount and custgroupId. The report should include fields such as transaction type, transaction amount, account transaction, and report transaction. However, I’m encountering issues with data display.
Below is my DP class
[
SRSReportQueryAttribute(querystr(SIN_CustTransDetails)),
SRSReportParameterAttribute(classstr(SIN_TransContractClass2))
]
public class SIN_TransDPclass2 extends SRSReportDataProviderBase
{
SIN_TransHeader transHeader;
SIN_TransLine transLine;
CustTable custTable;
CustTrans custTrans;
CustGroup custGroup;
CompanyInfo companyInfo;
List custAccount;
List custGroupId;
TransDate fromDate;
TransDate toDate;
[
SRSReportDataSetAttribute(tablestr(SIN_TransHeader))
]
public SIN_TransHeader getSIN_TransHeader()
{
select * from transHeader;
return transHeader;
}
[
SRSReportDataSetAttribute(tablestr(SIN_TransLine))
]
public SIN_TransLine getSIN_TransLine()
{
select * from transLine;
return transLine;
}
/// <summary>
/// Creates and inserts a <c>TmpMCRARInvoice</c> buffer.
/// </summary>
public void processReport()
{
Query query;
QueryRun queryRun;
QueryBuildRange qbRange;
SIN_TransContractClass2 contract;
CustAccount custAcc;
contract = this.parmDataContract() as SIN_TransContractClass2;
custAccount = contract.parmCustAccount();
custGroupId = contract.parmCustGroupId();
fromDate = contract.parmFromDate();
toDate = contract.parmToDate();
str custAccountStr = this.listToString(custAccount, ",");
str custGroupStr = this.listToString(custGroupId, ",");
this.getCompanyInfo(custAcc);
query = this.parmQuery();
queryRun = new QueryRun(query);
if(fromDate && toDate)
{
query.dataSourceTable(tableNum(CustTrans)).addRange(fieldNum(CustTrans,TransDate)).value(SysQuery::range(fromDate, todate));
}
// Initialize strings to store list elements as comma-separated values
str custAccountListStr;
str custGroupListStr;
if (custGroupId != null)
{
qbRange = queryRun.query().dataSourceTable(tableNum(CustTrans)).addRange(fieldNum(CustTrans, AccountNum));
qbRange.value(queryRange(fieldNum(CustTrans, AccountNum), custGroupId));
while (queryRun.next())
{
custTable = queryRun.get(tableNum(CustTable));
custTrans = queryRun.get(tableNum(CustTrans));
transLine.TransType = custTrans.TransType;
transLine.AmountTransaction = custTrans.AmountCur;
transLine.AccountTransaction = custTrans.AmountMST;
transLine.ReportTransaction = custTrans.ReportingCurrencyAmount;
transLine.insert();
custTrans = queryRun.get(tableNum(CustTrans));
}
}
}
public void getCompanyInfo(CustAccount custAcc)
{
CompanyInfo = CompanyInfo::find();
CustTable = CustTable::find(custAcc);
CustGroup = CustGroup::find(custGroup.CustGroup);
transHeader.clear();
transHeader.CompanyName = companyInfo.Name;
transHeader.CompanyAddress = companyInfo.postalAddress().Address;
transHeader.CompanyPhone = companyInfo.phone();
transHeader.CompanyEmail = companyInfo.email();
transHeader.CompanyLogo = CompanyImage::findByRecord(companyInfo).Image;
transHeader.CustAccount = custTable.AccountNum;
transHeader.CustomerName = custTable.Name();
transHeader.CustGroupId = custGroup.CustGroup;
transHeader.CustomerAddress = custTable.Address();
transHeader.insert();
}
// Helper method to convert a list to a comma-separated string
private str listToString(List _list, str _delimiter)
{
ListIterator listIterator = new ListIterator(_list);
str result;
while (listIterator.more())
{
result += listIterator.value();
listIterator.next();
if (listIterator.more())
{
result += _delimiter;
}
}
return result;
}
}