[
SRSReportQueryAttribute(queryStr(InventCostReport)),
SRSReportParameterAttribute(classStr(InventCostReportContract))
]
class InventCostReportDP extends SrsReportDataProviderPreProcess
{
[
[SRSReportDataSetAttribute(tableStr(InventCostTmpTransBreakdown))]
]
//在vs中的数据源 一般为临时表
public InventCostTmpTransBreakdown getInventCostTmpTransBreakdown()
{
select inventCostTmpTransBreakdown;
return inventCostTmpTransBreakdown;
}
// 重写方法 实现自己的逻辑
[SysEntryPointAttribute(false)]
public void processReport()
{
}
}
以上为DP类。
[
DataContractAttribute,
SysOperationContractProcessingAttribute(classStr(InventCostReportUIBuilder), SysOperationDataContractProcessingMode::CreateSeparateUIBuilderForEachContract),
SysOperationGroupAttribute('AxisGroup', "@SYS118176", '2'),
SysOperationGroupAttribute('CostDistributionGroup', "@SYS118179", '3'),
SysOperationGroupAttribute('DetailGroup', "@SYS53422", '4')
]
public class InventCostReportContract
{
DateCode dateCode;
FromDate fromDate;
ToDate toDate;
InventDimViewContract inventDimViewContract;
InventCostDateCodeContract inventCostDateCodeContract;
SRSCatalogItemName reportName;
[
DataMemberAttribute('InventCostDateCodeContract'),
SysOperationDisplayOrderAttribute('1')
]
public InventCostDateCodeContract parmInventCostDateCodeContract(InventCostDateCodeContract _inventCostDateCodeContract = inventCostDateCodeContract)
{
inventCostDateCodeContract = _inventCostDateCodeContract;
return inventCostDateCodeContract;
}
[
DataMemberAttribute('InventDimViewContract')
]
public InventDimViewContract parmInventDimViewContract(InventDimViewContract _inventDimViewContract = inventDimViewContract)
{
inventDimViewContract = _inventDimViewContract;
return inventDimViewContract;
}
[
DataMemberAttribute('ReportName')
]
public SRSCatalogItemName parmReportName(SRSCatalogItemName _reportName = reportName)
{
reportName = _reportName;
return reportName;
}
}
以上为contract类
class InventCostReportController extends SrsReportRunController
{
#define.costValueReportPrefix ('InventCostValue.')
#define.costVariancesReportPrefix ('InventCostVariances.')
#define.reportPostFix ('Report')
public void preRunModifyContract()
{
InventCostReportContract inventCostReportContract;
inventCostReportContract = this.parmReportContract().parmRdpContract() as InventCostReportContract;
inventCostReportContract.parmSite(InventCostReportController::getSite(this.parmReportContra ct().parmQueryContracts().lookup(this.getFirstQueryContractKey())));
inventCostReportContract.parmReportName(this.parmReportName());
this.parmReportContract().parmReportName(this.parmReportName());
// SrsReportHelper::addParameterValueRangeToQuery();
}
}
以为为controller类
class InventCostReportUIBuilder extends SrsReportDataContractUIBuilder
{
DialogField detailField;
DialogField levelField;
public void build()
{
FormBuildGroupControl formBuildGroupControl;
SrsReportRunController myController;
formBuildGroupControl = dialog.curFormGroup();
formBuildGroupControl.columns(2);
super();
// Hide site
this.bindInfo().getDialogField(this.dataContractObject(), methodStr(InventCostReportContract, parmSite)).visible(false);
// IncludeBeginning is not shown on variances report
myController = this.controller();
if (myController.parmReportName() == ssrsReportStr(InventCostVariances, Report))
{
this.bindInfo().getDialogField(this.dataContractObject(), methodStr(InventCostReportContract, parmIncludeBeginning)).visible(false);
}
// Get dialog fields for visibility checks
levelField = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(InventCostReportContract, parmLevel));
detailField = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(InventCostReportContract, parmDetail));
this.setVisibilityForSelectionControls();
}
public void postRun()
{
super();
dialog.dialogForm().formRun().controlMethodOverload(false);
detailField.registerOverrideMethod(methodStr(FormStringControl, modified), methodStr(InventCostReportUIBuilder, detailModified), this);
}
public boolean detailModified(FormStringControl _control)
{
boolean ret;
ret = _control.modified();
if (ret)
{
this.setVisibilityForSelectionControls();
}
return ret;
}
}
以上为UIBuilder类