SSRS Report UI Builder Class sample code

UI Builder class will be very useful class for the ssrs reports based on selection of parameter selection values will differ from field to field.

Here Am using 4 fiedls in contract class.

UI Builder Class 

public class FOFS_JobTypeSummaryUIBuilder extends SysOperationAutomaticUIBuilder
{
DialogField dialogCustomerAcc;
DialogField dialogContractCode;
DialogField dialogFromDate;
DialogField dialogToDate;
fofs_JobtypesummaryContract fofs_JobTypeSummaryContract;
}

Build Method :

public void build()
{
Dialog dialogLocal = this.dialog();
fofs_JobtypesummaryContract contract = this.dataContractObject();
dialogCustomerAcc = this.addDialogField(methodStr(fofs_JobtypesummaryContract,parmCustAccount),contract);
dialogCustomerAcc.lookupButton();
dialogContractCode = this.addDialogField(methodStr(fofs_JobtypesummaryContract,parmContractCode),contract);
dialogContractCode.lookupButton();
dialogFromDate = this.addDialogField(methodStr(fofs_JobtypesummaryContract,parmFromDate),contract);
dialogToDate = this.addDialogField(methodStr(fofs_JobtypesummaryContract,parmToDate),contract);
dialogJobTypeCode = this.addDialogField(methodStr(fofs_JobtypesummaryContract,parmJobTypecode),contract);
dialogFieldCode = this.addDialogField(methodStr(fofs_JobtypesummaryContract,parmFieldcode),contract);
dialogRigCode = this.addDialogField(methodStr(fofs_JobtypesummaryContract,parmRigCode),contract);
dialogWellCode = this.addDialogField(methodStr(fofs_JobtypesummaryContract,parmWellCode),contract);
dialogCellCode = this.addDialogField(methodStr(fofs_JobtypesummaryContract,parmCellCode),contract);

}

Contract Code Lookup Method: 

private void ContractCodeLookUp(FormStringControl contractCodeLookUp)
{
Query query = new Query();
QueryBuildDataSource qbds;
SysTableLookup sysTableLookup;
sysTableLookup = SysTableLookup::newParameters(tableNum(FOFS_JobCard),contractCodeLookUp);
sysTableLookup.addLookupfield(fieldNum(FOFS_JobCard,ContractCode));
qbds = query.addDataSource(tableNum(FOFS_JobCard));
qbds.addRange(fieldNum(FOFS_JobCard,CustAccount)).value(queryValue(dialogCustomerAcc.value()));
qbds.addGroupByField(fieldNum(FOFS_JobCard,ContractCode));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();

}

Contract Code Modified :

public boolean contractCodeModified(FormStringControl contractCodeModified)
{
dialogContractCode.value(contractCodeModified.valueStr());
dialogFromDate.value(”);
dialogToDate.value(”);
dialogJobTypeCode.value(”);
dialogFieldCode.value(”);
dialogRigCode.value(”);
dialogWellCode.value(”);
dialogCellCode.value(”);
return true;
}

Cust Account Lookup : 

private void CustAccLookUp(FormStringControl custAccountLookUp)
{
Query query = new Query();
SysTableLookup sysTableLookup;
sysTableLookup = SysTableLookup::newParameters(tableNum(FOFS_JobCard),custAccountLookUp);
sysTableLookup.addLookupfield(fieldNum(FOFS_JobCard,CustAccount),true);
query.addDataSource(tableNum(FOFS_JobCard)).addGroupByField(fieldNum(FOFS_JobCard,CustAccount));
sysTableLookup.addLookupMethod(identifierStr(CustomerName));
//sysTableLookup.addLookupMethod(‘CustomerName’);
//sysTableLookup.addLookupMethod(“CustomerName”);
//sysTableLookup.addLookupMethod(tableMethodStr(FOFS_JobCard,CustomerName));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}

Cust Account Modified: 

public boolean CustAccModified(FormStringControl custAccModified)
{
dialogCustomerAcc.value(custAccModified.valueStr());
dialogContractCode.value(”);
dialogFromDate.value(”);
dialogToDate.value(”);
dialogJobTypeCode.value(”);
dialogFieldCode.value(”);
dialogRigCode.value(”);
dialogWellCode.value(”);
dialogCellCode.value(”);
return true;
}

Get From Dailog method :

public void getFromDialog()
{
fofs_JobTypeSummaryContract = this.dataContractObject();
super();
}

Post Build Method :

public void postBuild()
{
super();
dialogCustomerAcc = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmCustAccount));
if(dialogCustomerAcc)
{
dialogCustomerAcc.lookupButton(2);
}
dialogCustomerAcc.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(FOFS_JobTypeSummaryUIBuilder,CustAccLookUp),this);
dialogCustomerAcc.registerOverrideMethod(methodStr(FormStringControl, modified),methodStr(FOFS_JobTypeSummaryUIBuilder,CustAccModified),this);
dialogContractCode = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmContractCode));

if(dialogContractCode)
{
dialogContractCode.lookupButton(2);
}
dialogContractCode.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(FOFS_JobTypeSummaryUIBuilder,ContractCodeLookUp),this);
dialogContractCode.registerOverrideMethod(methodStr(FormStringControl, modified),methodStr(FOFS_JobTypeSummaryUIBuilder,contractCodeModified),this);
}

Post Run Method :

public void postRun()
{
Dialog dialogLocal = this.dialog();
DialogField dialogFieldFromDate;
DialogField dialogFieldToDate;
DialogField dialogFieldJobTypeCode;
DialogField dialogFieldFieldCode;
DialogField dialogFieldRigCode;
DialogField dialogFieldWellCode;
DialogField dialogFieldCellCode;
super();
dialogLocal.dialogForm().formRun().controlMethodOverload(false);
// dialogFieldCustAccNum = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmCustAccount));
// dialogFieldCustAccNum.registerOverrideMethod(methodStr(FormStringControl, lookup),methodStr(fofs_JobtypesummaryUIBuilder,CustAccLookUp),this);

// dialogFieldContCode = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmContractCode));
// dialogFieldContCode.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(FOFS_JobTypeSummaryUIBuilder,ContractCodeLookUp),this);

dialogFieldFromDate = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmFromDate));
dialogFieldToDate = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmToDate));
dialogFieldJobTypeCode = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmJobTypecode));
dialogFieldJobTypeCode.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(FOFS_JobTypeSummaryUIBuilder,JobTypeCodeLookup),this);

dialogFieldFieldCode = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmFieldCode));
dialogFieldFieldCode.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(FOFS_JobTypeSummaryUIBuilder,fieldCodeLookup),this);

dialogFieldRigCode = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmRigCode));
dialogFieldRigCode.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(FOFS_JobTypeSummaryUIBuilder,rigCodeLookup),this);

dialogFieldWellCode = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmWellCode));
dialogFieldWellCode.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(FOFS_JobTypeSummaryUIBuilder,wellCodeLookup),this);

dialogFieldCellCode = this.bindInfo().getDialogField(this.dataContractObject(),methodStr(fofs_JobtypesummaryContract,parmCellCode));
dialogFieldCellCode.registerOverrideMethod(methodStr(FormStringControl,lookup),methodStr(FOFS_JobTypeSummaryUIBuilder,cellCodeLookup),this);

}

DP Class 

Class Declaration method;

[SRSReportParameterAttribute(classStr(fofs_JobtypesummaryContract))]
class fofs_JobtypesummaryDP extends SrsReportDataProviderBase
{
FOFS_JobTypeSummaryTmp JobtypeSummaryTmp;
}

Getting Report Table Buffer:

[SRSReportDataSetAttribute(tableStr(FOFS_JobTypeSummaryTmp))]
public FOFS_JobTypeSummaryTmp getJobtypesummary()
{
select * from JobtypeSummaryTmp;
return JobtypeSummaryTmp;
}

Process Report Method :

[SysEntryPointAttribute]
public void processReport()
{
FOFS_JobCard fofs_JobCard;
FOFS_JobCardLines fofs_JobCardLines;
CustAccount custAccount;
FOFS_ContractCode ContractCode;
FromDate fromDate;
ToDate toDate;
FOFS_JobTypeSummaryContract fofs_JobTypeSummaryContract;
;
fofs_JobTypeSummaryContract = this.parmDataContract();
JobTypeCode = fofs_JobTypeSummaryContract.parmJobTypecode();
custAccount = fofs_JobTypeSummaryContract.parmCustAccount();
ContractCode = fofs_JobTypeSummaryContract.parmContractCode();
fromDate = fofs_JobTypeSummaryContract.parmFromDate();
toDate = fofs_JobTypeSummaryContract.parmToDate();

if(JobTypeCode == “”)

{
JobTypeCode = ‘*’;
}

if(custAccount == “”)
{
custAccount = ‘*’;
}

if(ContractCode == “”)
{
ContractCode = ‘*’;
}

ttsBegin;
while select count(RecId),sum(LineAmount) from fofs_JobCardLines join fofs_JobCard group by fofs_JobCard.JobTypeCode
where fofs_JobCard.JobCardNum == fofs_JobCardLines.JobCardNum && fofs_JobCard.EndDate >= fromDate && fofs_JobCard.EndDate <= toDate
&& fofs_JobCard.FieldCode like FieldCode && fofs_JobCard.WellCode like WellCode && fofs_JobCard.RigCode like RigCode && fofs_JobCard.CellCode like CellCode
&& fofs_JobCard.JobTypeCode like JobTypeCode && fofs_JobCard.CustAccount like custAccount && fofs_JobCard.ContractCode like ContractCode
{
//info(strFmt(” Job Type Code = %1 & Count = %2 Net Amount = %3″,fofs_JobCard.JobTypeCode,fofs_JobCardLines.RecId,fofs_JobCardLines.LineAmount));
JobtypeSummaryTmp.Services = strFmt(“%1”,fofs_JobCardLines.RecId);
JobtypeSummaryTmp.LineAmount = fofs_JobCardLines.LineAmount;
JobtypeSummaryTmp.JobTypeCode = fofs_JobCard.JobTypeCode;
JobtypeSummaryTmp.insert();
}
ttsCommit;
}

Leave a comment