SSRS report Contract and DP sample

Here i am giving some more additional Contract class methods and DP class sample codes

Contract class 

Class declaration method

/// <summary>
/// Data Contract class for FOFS_POCostFactorInvoice SSRS report
/// </summary>
/// <remarks>
/// This is the Data Contract class for the FOFS_POCostFactorInvoice SSRS Report.
/// </remarks>
class FOFS_POCostFactorInvoiceContract implements SysOperationValidatable
{
FromDate fromDate;
ToDate toDate;
}

New Method

public void new()
{
}

Parm from date method

[
DataMemberAttribute,
SysOperationLabelAttribute(literalstr(“@WMM784”)),
SysOperationHelpTextAttribute(literalstr(“@WMM784”))
]
public FromDate parmFromDate(FromDate _fromDate = fromDate)
{
fromDate = _fromDate;
return fromDate;
}

Parm Todate method

[
DataMemberAttribute,
SysOperationLabelAttribute(literalstr(“@WMM785”)),
SysOperationHelpTextAttribute(literalstr(“@WMM785”))
]
public ToDate parmToDate(ToDate _toDate = toDate)
{
toDate = _toDate;
return toDate;
}

Validate Method to validate the date.

/// <summary>
/// Validates the values of the parameters.
/// </summary>
/// <returns>
/// true if all values are valid; otherwise, false.
/// </returns>
public boolean validate()
{
if (!this.parmToDate() || !this.parmFromDate())
{
// The From date field and the To date field must be filled in.
return checkFailed(“@SYS95151”);
}

if (this.parmToDate() && this.parmFromDate() > this.parmToDate())
{
// From date must be before To date
return checkFailed(“@SYS91020”);
}

return true;
}

Construct Method :

public static FOFS_POCostFactorInvoiceContract construct()
{
return new FOFS_POCostFactorInvoiceContract();
}

DP Class :

Class Declaration method :

/// <summary>
/// The <c>FOFS_POCostFactorInvoiceDP</c> class is the report Data Provider class for the <c>FOFS_POCostFactorInvoice</c> SRS
/// report.
/// </summary>
[
SRSReportParameterAttribute(classstr(FOFS_POCostFactorInvoiceContract))
]
class FOFS_POCostFactorInvoiceDP extends SrsReportDataProviderBase
{
FOFS_POCostFactorInvoiceTmp POCostFactorInvoiceTmp;

utcDateTime fromDate,toDate;
}

Get the report table method : 

/// <summary>
/// Fills the <c>FOFS_POCostFactorDetailsTmp</c> temporary table with the data.
/// </summary>
/// <returns>
/// The <c>FOFS_POCostFactorDetailsTmp</c> temporary table.
/// </returns>
[
SRSReportDataSetAttribute(tablestr(FOFS_POCostFactorInvoiceTmp))
]
public FOFS_POCostFactorInvoiceTmp getPOCostFactorInvoiceTmp()
{
select * from POCostFactorInvoiceTmp;

return POCostFactorInvoiceTmp;
}

Insert in to report table :

/// <summary>
/// Fills the <c>FOFS_POCostFactorInvoiceTmp</c> table with header details.
/// </summary>
public void insertPOCostFactorInvoiceTmp()
{
PurchTable purchTable;
PurchLine purchline;
MarkupTrans markuptrans;
MarkupValue amount;
container companylogo = CompanyImage::findByRecord(CompanyInfo::find()).Image;
while select purchTable
where purchTable.createdDateTime >= fromDate &&
purchTable.createdDateTime <= toDate &&
purchTable.PurchStatus == PurchStatus::Invoiced

{
purchline = purchline::find(purchTable.PurchId);
amount = 0;
ttsBegin;
POCostFactorInvoiceTmp.clear();
POCostFactorInvoiceTmp.CompanyLogo = companylogo;
POCostFactorInvoiceTmp.PurchId = purchTable.PurchId;
POCostFactorInvoiceTmp.OrderAccount = purchTable.vendorName();
POCostFactorInvoiceTmp.POinvoiceDate = VendInvoiceJour::findFromPurchId(purchTable.PurchId).InvoiceDate;
POCostFactorInvoiceTmp.InvoiceId = VendInvoiceJour::findFromPurchId(purchTable.PurchId).InvoiceId;
POCostFactorInvoiceTmp.CurrencyCode = VendInvoiceJour::findFromPurchId(purchTable.PurchId).CurrencyCode;
POCostFactorInvoiceTmp.InvoiceAmount = VendInvoiceJour::findFromPurchId(purchTable.PurchId).InvoiceAmount;
POCostFactorInvoiceTmp.LedgerVoucher = VendInvoiceJour::findFromPurchId(purchTable.PurchId).LedgerVoucher;
POCostFactorInvoiceTmp.AmountMST = currency::amountCur2MST(1,POCostFactorInvoiceTmp.CurrencyCode);

while select markuptrans where markuptrans.TransRecId == purchline.RecId
{
amount+= markuptrans.Value;
}

POCostFactorInvoiceTmp.ChargesAmount = amount;

POCostFactorInvoiceTmp.insert();

ttsCommit;
}

}

Process Report method :

/// <summary>
/// Processes the business logic for FOFS_POCostFactorInvoice Report which is used to populate a temporary table.
/// </summary>
[SysEntryPointAttribute]
public void processReport()
{
FOFS_POCostFactorInvoiceContract contract;
contract = this.parmDataContract() as FOFS_POCostFactorInvoiceContract;
fromDate = DateTimeUtil::newDateTime(contract.parmFromDate(),0);
toDate = DateTimeUtil::newDateTime(contract.parmToDate(),86400);
this.insertPOCostFactorInvoiceTmp();
POCostFactorInvoiceTmp.clear();
}

Leave a comment