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;
}