账表服务端取数插件负责组装SQL指令并返回取数结果给平台账表引擎,平台则将这些数据绑定到设计的账表模型上。开发过程涉及设计账表模型、过滤模型等,账表类型多样且插件需实现特定事件。不同账表类型有独特属性和方法,如分页账表和树形账表具有特定的分页和分组管理属性。
账表的服务端取数插件,是通过插件组装账表取数Sql指令,把取数结果返回给平台账表引擎,平台将取数结果绑定到账表页面的过程,简单说,平台在账表开发过程中,只负责把插件取到的账表数据绑定到设计好的账表模型上,取数逻辑由账表服务端插件完成。
开发过程中,有几个重要模型:
1、 设计账表模型
a) 账表表头字段;
b) 账表表体字段(也说成账表列头字段);
2、 设计账表过滤模型
a) 自定义快捷过滤面板;
b) 高级过滤条件面板;
c) 排序面板;
d) 分组汇总面板;
e) 显示隐藏列面板。
账表根据使用场景,分为简单账表、树形账表、分页账表、简单Sql账表(简单Sql账表没有服务取数插件)。
插件继承关系:
所有账表都须实现的重要事件:
1、Initialize
2、BuilderSelectFieldSQL
3、BuilderFromWhereSQL
4、BuilderReportSqlAndTempTable
5、GetReportTitles
6、GetReportHeaders
7、GetSummaryColumnInfo
公共属性:
1、BusinessInfo:账表模型的元数据描述信息。
2、Context:当前登录系统的上下文信息。
3、DctSpecialTempSumTable:临时汇总数据表格。
4、DynamicHeader:动态列头。
5、ReportHeader:账表列头。
6、ReportId:当前账表模型唯一标示。
7、ReportProperty: 账表属性,包含账表开发过程中的全局信息。
a)、ReportType:账表类型(默认是简单账表、如果开发的是分页或树形帐表,请在账表插件初始化事件中,对此属性进行正确赋值,否则账表引擎会默认按简单账表处理页面)。
b)、IsGroupSummary:是否支持分组汇总。
c)、IsUIDesignerColumns:账表列头是否是通过BOSIDE设计。
d)、SimpleAllCols:是否锁定账表表格列。
e)、DecimalControlFieldList:精度控制字段信息。
f)、DspInsteadColumnsInfo:列表格式化列,指示Key列被Value列内容替代。
g)、GroupSummaryInfoData:分组汇总信息。
8、ReportTitles:账表表头字段信息。
9、SummarySpecialFields:汇总字段信息。
10、TempTableNameList:临时表列表。
分页账表特有属性:
1、CurrentListPosition:分页账表属性,分页账表当前页账表数据对象的位置信息,此属性与CacheMapTempTableNameList属性一起使用。
2、CacheMapTempTableNameList:分页账表属性,记录分页账表每页账表数据对象信息,此属性与CurrentListPosition属性一起使用。
3、CacheDataList:分页账表属性,根据账表当前页位置,获取DataRow对象。
树形账表特有属性:
1、CurrentGroupID:树形账表分组标识,点击树形账表左边树时,由平台账表引擎为其赋值,其数据来源于账表插件GetTreeNodes方法返回的树节点id属性的值对应树形账表插件在BuilderReportSqlAndTempTable方法拼接账表取数sql时,需要以CurrentGroupID作为过滤条件拼接到Sql指令的Where部分。