Monday, 19 January 2015

SSRS report DP class And Contract Class Example

SSRS report DP class And Contract Class Example



any SSRS   Report    Creating 

1  Table     (TempDB or  InMemory) 

2  Query   

3 Classss


// <summary>
///    The <c>LedgerJournalDP</c> class declares the variables, tables, and so on, that are used in the
///    <c>LedgerJournal</c> report.
/// </summary>

[
    SRSReportQueryAttribute(queryStr(CertificateDataWithParameter_Qry)),
    SRSReportParameterAttribute(classStr(CertificateDataWithParameterContract))
]
public class  CertificateDataWithParameterDP extends SRSReportDataProviderBase
{
    CertificateDataWithParameterTmp CertificateDataWithParameterTmp;
    TransDate    fromDate;
    TransDate    toDate;
}

(if  use Contract  Class  only )

private Query buildQuery(    Query                    _query,
                             TransDate                _fromDate,
                             TransDate                _toDate)
    {

    if(_fromDate && _toDate)
        _query.dataSourceTable(tablenum(VendCertification),1).addRange(fieldnum(VendCertification, DueDate_PSN)).value(queryRange
        (_fromDate,_toDate));

        return _query;
    }
 if(_fromDate && _toDate)
        _query.dataSourceTable(tablenum(
VendCertification
),1).addRange(fieldnum(
VendCertification
, InvoiceDate)).value(queryRange(_fromDate,_toDate));

       // _query.dataSourceTable(tablenum(
VendCertification
), 1).addRange(fieldnum(
VendCertification
, AssetStatus)).value(queryvalue(HcmAssetStatus));
        return _query;
    }
private void getReportParameters()
{
    CertificateDataWithParameterContract CertificateDataWithParameterContract = this.parmDataContract();
    if (CertificateDataWithParameterContract)
    {
        fromDate         = CertificateDataWithParameterContract.parmFromDate();
        toDate           = CertificateDataWithParameterContract.parmTodate();
    }
}

 // <summary>
/// Executes temporary table.
/// </summary>
/// <returns>
/// The temporary table <c>LedgerJournalTmp</c>.
/// </returns>


[
    SRSReportDataSetAttribute(tablestr(CertificateDataWithParameterTmp))
]
public CertificateDataWithParameterTmp getCertificateDataWithParameterTmp()
{
    select  CertificateDataWithParameterTmp;

    return  CertificateDataWithParameterTmp;
}


public void insertCustTransListTmp(VendTable _VendTable)
{
    ReasonTable     ReasonTable;
    DirPartyTable   dirPartyTable;// pramodh
    DirOrganization dirOrganization;

    VendMasterDataTmp.Logo             = CompanyImage::findByRecord(CompanyInfo::find()).Image;
    VendMasterDataTmp.AccountNum       = _VendTable.AccountNum;
    VendMasterDataTmp.InvoiceAccount   = _VendTable.VendGroup;
    VendMasterDataTmp.VendGroup        = _VendTable.VendGroup;
    VendMasterDataTmp.LineOfBusinessId = _VendTable.LineOfBusinessId;
    VendMasterDataTmp.SegmentId        = _VendTable.SegmentId;
    VendMasterDataTmp.SubsegmentId     = _VendTable.SubsegmentId;
    VendMasterDataTmp.Blocked          = _VendTable.Blocked;
    // added by pramodh ---> start
   // select DirPartyTable where DirPartyTable.RecId == _VendTable.Party;
    dirPartyTable = DirPartyTable::findRec(_VendTable.Party);
    if(dirPartyTable)//   added by pramodh  <--- End
    {
        VendMasterDataTmp.Name      = DirPartyTable.Name;
        VendMasterDataTmp.NameAlias = DirPartyTable.NameAlias;
    }

    /*select DirOrganization where DirOrganization.RecId == DirPartyTable.RecId;
        VendMasterDataTmp.NumberOfEmployees = DirOrganization.NumberOfEmployees;*/  // commented by pramodh
    VendMasterDataTmp.NumberOfEmployees = DirOrganization::find(dirPartyTable.RecId).NumberOfEmployees;

   // VendMasterDataTmp.State =
   //VendMasterDataTmp.City   =


    VendMasterDataTmp.insert();
}

[SysEntryPointAttribute(false)]
public void processReport()
{
    VendTable                            VendTable;
    VendCertification                    VendCertification;
    QueryRun                             queryRun;
    CertificateDataWithParameterContract contract;
    this.getReportParameters();

    queryRun = new QueryRun(this.buildQuery(this.parmQuery(),fromDate,toDate));
    while (queryRun.next())
    {
        VendTable         = queryRun.get(tableNum(VendTable)) ;
        VendCertification = queryRun.get(tableNum(VendCertification)) ;

        this.insertCertificateDataWithParameterTmp(VendTable,VendCertification);

    }
}

Using  Contract  Class 


// /// <summary>
///    The <c>LedgerJournalContract</c> class is the Data Contract class for the <c>LedgerJournal</c> SSRS
///    report.
/// </summary>
[
    DataContractAttribute,
    SysOperationGroupAttribute('Date', "Date", '1')
]
public class CertificateDataWithParameterContract implements SysOperationValidatable
{
    TransDate    fromDate;
    TransDate    toDate;
}


/// Gets or sets the value of the datacontract parameter ShowAccrualTrans.
/// </summary>
/// <param name=”_showAccrualTrans”>
/// The new value of the datacontract parameter ShowAccrualTrans; optional.
/// </param>
/// <returns>
///  The current value of datacontract parameter ShowAccrualTrans
/// </returns>
[
    DataMemberAttribute('fromDate'),
    SysOperationLabelAttribute(literalstr("FromDate")),
    SysOperationHelpTextAttribute(literalstr("FromDate")),
    SysOperationGroupMemberAttribute('Date'),
    SysOperationDisplayOrderAttribute('1')
]
public TransDate parmFromDate(TransDate _fromDate = fromDate)
{
    fromDate = _fromDate;
    return fromDate;
}




 // <summary>
/// Gets or sets the value of the datacontract parameter Specification.
/// </summary>
/// <param name=”_specification”>
/// The new value of the datacontract parameter Specification; optional.
/// </param>
/// <returns>
///  The current value of datacontract parameter Specification
/// </returns>
[
    DataMemberAttribute('todate'),
    SysOperationLabelAttribute(literalstr("Todate")),
    SysOperationHelpTextAttribute(literalstr("Todate")),
    SysOperationGroupMemberAttribute('Date'),
    SysOperationDisplayOrderAttribute('2')
]
public TransDate parmTodate(TransDate _todate = todate)
{
    todate = _todate;
    return todate;
}



public boolean validate()
{

    boolean             isValid = true;

    if (!fromDate)
    {
        isValid = checkFailed("From Date should be entered");
    }

    if (!toDate)
    {
        isValid = checkFailed("To Date should be entered");
    }

    if (isValid && (fromDate > toDate))
    {
        isValid = checkFailed(strfmt("From Date should be less than or equal to To Date", date2StrUsr(fromDate, DateFlags::FormatAll), date2StrUsr(toDate, DateFlags::FormatAll)));
    }

    return isValid;

}



 








No comments:

Post a Comment