SSRS Report Based On FromDate,Todate,CustGroup,SalesID,CustAccount Data Filter :
1)Create temp Table with Following Fields
2) create Query
Based on image u shown below(Tables used in this query)
3) Create Data Contract Class
[
DataContractAttribute,
SysOperationContractProcessingAttribute(classStr(DLS1016_SalesInvoiceUIBuilder))
]
public class DLS1016_SalesInvoicecontractclass
{
List salesId,custAccount,CustGroup;
TransDate FromDate,ToDate;
-------------
3-1)parmcustAccountmethod
[
DataMemberAttribute("Cust Account"),
AifCollectionTypeAttribute("Cust Account",Types::String),
SysOperationLabelAttribute("Cust Account"),
SysOperationDisplayOrderAttribute('5')
]
public List parmcustAccount(List _custAccount = custAccount)
{
custAccount =_custAccount;
return custAccount;
}
}
----------
3-2)parmCustGroup
[
DataMemberAttribute("Cust Group "),
AifCollectionTypeAttribute("Cust Group",Types::String),
SysOperationLabelAttribute("Cust Group"),
SysOperationDisplayOrderAttribute('3')
]
public List parmCustGroup(List _CustGroup = CustGroup)
{
CustGroup = _CustGroup;
return CustGroup;
}
-----
3-3) parmSalesID
[
DataMemberAttribute("Sales ID"),
AifCollectionTypeAttribute("SalesID",Types::String),
SysOperationLabelAttribute("Sales ID"),
SysOperationDisplayOrderAttribute('4')
]
public List parmSalesID(List _salesId = SalesId)
{
salesId =_salesId;
return salesId;
}
---
3-4) parmfromDate
[
DataMemberAttribute,
SysOperationLabelAttribute(" From Date"),
SysOperationDisplayOrderAttribute('1')
]
public TransDate parmfromDate(TransDate _FromDate = FromDate)
{
FromDate =_FromDate;
return FromDate;
}
----
3-5)parmToDate
[
DataMemberAttribute,
SysOperationLabelAttribute("To Date"),
SysOperationDisplayOrderAttribute('2')
]
public TransDate parmToDate(TransDate _ToDate = ToDate)
{
ToDate =_ToDate;
return ToDate;
}
-----
3-6) validate()
public boolean validate()
{
boolean isValid = true;
if (!this.parmFromDate())
{
isValid = checkFailed(strFmt("@SYS31433"));
isValid = false;
}
if (!this.parmToDate())
{
isValid = checkFailed(strFmt("@SYS77972"));
isValid = false;
}
if (this.parmToDate() < this.parmFromDate())
{
isValid = checkFailed(strFmt("@SYS21592"));
isValid = false;
}
return isValid;
}
Now Create Menu Item
attach Contoller class and Report

outpu
1)Create temp Table with Following Fields
2) create Query
Based on image u shown below(Tables used in this query)
3) Create Data Contract Class
[
DataContractAttribute,
SysOperationContractProcessingAttribute(classStr(DLS1016_SalesInvoiceUIBuilder))
]
public class DLS1016_SalesInvoicecontractclass
{
List salesId,custAccount,CustGroup;
TransDate FromDate,ToDate;
-------------
3-1)parmcustAccountmethod
[
DataMemberAttribute("Cust Account"),
AifCollectionTypeAttribute("Cust Account",Types::String),
SysOperationLabelAttribute("Cust Account"),
SysOperationDisplayOrderAttribute('5')
]
public List parmcustAccount(List _custAccount = custAccount)
{
custAccount =_custAccount;
return custAccount;
}
}
----------
3-2)parmCustGroup
[
DataMemberAttribute("Cust Group "),
AifCollectionTypeAttribute("Cust Group",Types::String),
SysOperationLabelAttribute("Cust Group"),
SysOperationDisplayOrderAttribute('3')
]
public List parmCustGroup(List _CustGroup = CustGroup)
{
CustGroup = _CustGroup;
return CustGroup;
}
-----
3-3) parmSalesID
[
DataMemberAttribute("Sales ID"),
AifCollectionTypeAttribute("SalesID",Types::String),
SysOperationLabelAttribute("Sales ID"),
SysOperationDisplayOrderAttribute('4')
]
public List parmSalesID(List _salesId = SalesId)
{
salesId =_salesId;
return salesId;
}
---
3-4) parmfromDate
[
DataMemberAttribute,
SysOperationLabelAttribute(" From Date"),
SysOperationDisplayOrderAttribute('1')
]
public TransDate parmfromDate(TransDate _FromDate = FromDate)
{
FromDate =_FromDate;
return FromDate;
}
----
3-5)parmToDate
[
DataMemberAttribute,
SysOperationLabelAttribute("To Date"),
SysOperationDisplayOrderAttribute('2')
]
public TransDate parmToDate(TransDate _ToDate = ToDate)
{
ToDate =_ToDate;
return ToDate;
}
-----
3-6) validate()
public boolean validate()
{
boolean isValid = true;
if (!this.parmFromDate())
{
isValid = checkFailed(strFmt("@SYS31433"));
isValid = false;
}
if (!this.parmToDate())
{
isValid = checkFailed(strFmt("@SYS77972"));
isValid = false;
}
if (this.parmToDate() < this.parmFromDate())
{
isValid = checkFailed(strFmt("@SYS21592"));
isValid = false;
}
return isValid;
}
------------------
4) UI Builder Classs:
class DLS1016_SalesInvoiceUIBuilder extends SrsReportDataContractUIBuilder
{
DLS1016_SalesInvoicecontractclass contractClass;
DialogField Fromdate,Todate,DialogSalesId,Custaccount,CustGroup;
// container custGroupContainer,salesIdContainer;
}
4-1) build()
public void build()
{
super();
contractClass = this.dataContractObject() as DLS1016_SalesInvoicecontractclass;
}
4-2) CustAccountLookUp
public void CustAccountLookUp(FormStringControl _control)
{
Query query = new Query();
container con;
QueryBuildRange qbr;
List CustAcc;
ListEnumerator CustAccEnumerator;
QueryBuildDataSource qbds;
this.getFromDialog();
CustAcc = contractclass.parmSalesID();
CustAccEnumerator = CustAcc.getEnumerator();
qbds = query.addDataSource(tableNum(CustInvoiceJour));
qbr = qbds.addRange(fieldNum(CustInvoiceJour,SalesId));
while(CustAccEnumerator.moveNext())
{
qbr.value(queryRangeConcat(qbr.value(),CustAccEnumerator.current()));
}
qbds.addSelectionField(fieldNum(SalesTable,CustAccount));
//queryBuildDataSource.addSelectionField(fieldNum(LogisticsAddressState, CountryRegionId));
SysLookupMultiSelectGrid::lookup(query, _control, _control, con);
}
4-3) CustGroupLookUp
public void CustGroupLookUp(FormStringControl _control)
{
Query query = new Query();
container con;
QueryBuildDataSource queryBuildDataSource;
queryBuildDataSource = query.addDataSource(tableNum(CustInvoiceJour));
queryBuildDataSource.addSelectionField(fieldNum(CustInvoiceJour,CustGroup));
queryBuildDataSource.addGroupByField(fieldNum(CustInvoiceJour,CustGroup));
SysLookupMultiSelectGrid::lookup(query,_control,_control,con);
}
4-4) SalesIdLookUp
public void SalesIdLookUp(FormStringControl _control)
{
Query query = new Query();
container con;
QueryBuildRange qbr;
List salesId;
ListEnumerator salesIdEnumerator;
QueryBuildDataSource qbds;
this.getFromDialog();
salesId = contractclass.parmCustGroup();
salesIdEnumerator = salesId.getEnumerator();
qbds = query.addDataSource(tableNum(CustInvoiceJour));
qbr = qbds.addRange(fieldNum(CustInvoiceJour,CustGroup));
while(salesIdEnumerator.moveNext())
{
qbr.value(queryRangeConcat(qbr.value(),salesIdEnumerator.current()));
}
qbds.addSelectionField(fieldNum(CustInvoiceJour,SalesId));
//queryBuildDataSource.addSelectionField(fieldNum(LogisticsAddressState, CountryRegionId));
SysLookupMultiSelectGrid::lookup(query, _control, _control, con);
}
4-5)postBuild
public void postBuild()
{
}
4-6) postRun
public void postRun()
{
Dialog dlg = this.dialog();
dlg.dialogForm().formRun().controlMethodOverload(false);
Fromdate = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(DLS1016_SalesInvoicecontractclass, parmfromdate));
Todate = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(DLS1016_SalesInvoicecontractclass, parmToDate));
CustGroup = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(DLS1016_SalesInvoicecontractclass, parmCustGroup));
CustGroup.registerOverrideMethod(
methodStr(FormStringControl, lookup),
methodStr(DLS1016_SalesInvoiceUIBuilder,CustGroupLookUp),
this);
DialogSalesId = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(DLS1016_SalesInvoicecontractclass, parmSalesID));
DialogSalesId.registerOverrideMethod(
methodStr(FormStringControl, lookup),
methodStr(DLS1016_SalesInvoiceUIBuilder,SalesIdLookUp),
this);
Custaccount = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(DLS1016_SalesInvoicecontractclass, parmcustAccount));
Custaccount.registerOverrideMethod(
methodStr(FormStringControl, lookup),
methodStr(DLS1016_SalesInvoiceUIBuilder,CustAccountLookUp),
this);
}
-------
DP Class
5-1)
[
SRSReportQueryAttribute(queryStr(DLS1016_SalesInvoice)),
SRSReportParameterAttribute(classStr(DLS1016_SalesInvoicecontractclass))
]
//public class DLS1016_SalesInvoiceDP extends SrsReportDataProviderPreProcessTempDB
public class DLS1016_SalesInvoiceDP extends SrsReportDataProviderPreProcess
{
DLS1016_SalesInvoice salesInvoicetempDB;
TransDate fromDate;
TransDate toDate;
DLS1016_SalesInvoicecontractclass contractclass;
}
5-2)
[
SRSReportDataSetAttribute("DLS1016_SalesInvoice")
]
public DLS1016_SalesInvoice getDLS1016_SalesInvoicetmptable()
{
select *from salesInvoicetempDB;
return salesInvoicetempDB;
}
5-3)processReport
[
SysEntryPointAttribute(false)
]
public void processReport()
{
Query query;
QueryRun queryRun;
QueryBuildDataSource qbds,qbds1,qbds2,qbds3,qbds4;
QueryBuildRange qbr,qbr1,qbr2,qbr3;
List salesId,custAccount;
ListEnumerator salesIDEnumerator,custAccountEnumerator;
CustInvoiceJour custInvoiceJour;
CustInvoiceTrans custinvoicetrans;
SalesTable salesTable;
TaxTrans taxtrans;
InventDim inventDim;
query = this.parmQuery();
contractclass = new DLS1016_SalesInvoicecontractclass();
contractclass = this.parmDataContract() as DLS1016_SalesInvoicecontractclass;
qbds = query.dataSourceTable(tableNum(SalesTable));
qbds1 = query.dataSourceTable(tableNum(CustInvoiceJour));
qbds2 = query.dataSourceTable(tableNum(CustInvoiceTrans));
qbds3 =query.dataSourceTable(tableNum(TaxTrans));
qbds4 = query.dataSourceTable(tableNum(InventDim));
fromDate = contractclass.parmfromDate();
toDate = contractclass.parmToDate();
salesId = contractclass.parmSalesID();
custAccount = contractclass.parmcustAccount();
qbr = qbds1.addRange(fieldNum(CustInvoiceJour,SalesId));
qbr1 =qbds4.addRange(fieldNum(InventDim,InventLocationId));
qbr2 = qbds3.addRange(fieldNum(TaxTrans,TaxCode));
qbr3 = qbds.addRange(fieldNum(SalesTable,CustAccount));
SysQuery::findOrCreateRange(qbds2,fieldNum(CustInvoiceTrans,InvoiceDate)).value(queryRange(fromDate,toDate));
if(SalesId)
{
salesIDEnumerator = SalesId.getEnumerator();
while(salesIDEnumerator.moveNext())
{
qbr.value(queryRangeConcat(qbr.value(),salesIDEnumerator.current()));
}
//else (salesId)
//{
//salesid2 = salesId.getEnumerator();
//while(salesid2.moveNext())
//{
//
//}
}
queryRun = new QueryRun(query);
while(queryRun.next())
{
salesTable = queryRun.get(tableNum(SalesTable));
custInvoiceJour =queryRun.get(tableNum(CustInvoiceJour));
custinvoicetrans =queryRun.get(tableNum(CustInvoiceTrans));
inventDim =queryRun.get(tableNum(InventDim));
taxtrans = queryRun.get(tableNum(TaxTrans));
salesInvoicetempDB.SalesId = custInvoiceJour.SalesId;
salesInvoicetempDB.CustAccount = salesTable.CustAccount;
salesInvoicetempDB.InvoiceDate = custInvoiceJour.InvoiceDate;
salesInvoicetempDB.InvoiceId = custInvoiceJour.InvoiceId;
salesInvoicetempDB.LedgerVoucher = custInvoiceJour.LedgerVoucher;
salesInvoicetempDB.CurrencyCode = custInvoiceJour.CurrencyCode;
salesInvoicetempDB.InvoiceAmount = custInvoiceJour.InvoiceAmount;
salesInvoicetempDB.OrigSalesId = custinvoicetrans.OrigSalesId;
salesInvoicetempDB.ItemId =custinvoicetrans.ItemId;
salesInvoicetempDB.Site = inventDim.InventSiteId;
salesInvoicetempDB.WareHouse = inventDim.InventLocationId;
salesInvoicetempDB.Location =inventDim.wMSLocationId;
salesInvoicetempDB.Qty = custinvoicetrans.Qty;
salesInvoicetempDB.SalesPrice = custinvoicetrans.SalesPrice;
salesInvoicetempDB.Amount = custinvoicetrans.lineAmountInclTax();
salesInvoicetempDB.TransDate =taxtrans.TransDate;
// salesInvoicetempDB.TaxDirection =taxtrans.TaxDirection;
salesInvoicetempDB.TaxCode = taxtrans.TaxCode;
salesInvoicetempDB.SourceCurrencyCode = taxtrans.SourceCurrencyCode;
// salesInvoicetempDB.ActualsalesTaxAmount = (taxtrans.SourceRegulateAmountCur*taxtrans.taxchangeDisplaySign(taxtrans.taxdirection));
salesInvoicetempDB.insert();
}
}
-----
Controller Class
6-1)
class DLS1016_SalesInvoiceCotroller extends SrsReportRunController
{
DLS1016_SalesInvoicecontractclass datacontract;
}
6-2) PreRunModifyContract
protected void PreRunModifyContract()
{
datacontract =this.parmReportContract().parmRdpContract() as DLS1016_SalesInvoicecontractclass;
datacontract.parmcustAccount();
datacontract.parmSalesID();
datacontract.parmfromDate();
datacontract.parmToDate();
}
6-3) main
public static void main(Args args)
{
DLS1016_SalesInvoiceCotroller dLSControllerclass;
dLSControllerclass = new DLS1016_SalesInvoiceCotroller();
dLSControllerclass.parmReportName(ssrsReportStr(DLSSalesInvoice2,Report));
dLSControllerclass.parmDialogCaption('Sales Invoice Report with tax codes');
dLSControllerclass.parmArgs(args);
dLSControllerclass.startoperation();
}
Now Create Menu Item
attach Contoller class and Report
Comments
Post a Comment