存储过程子表在某些情况下也是非常有用的,比如在某张单据中,我们希望显示相关联的信息,而这些信息又不能通过单据引用(单据引用只能引用单个字段,不能引用子表),那么可以通过存储过程子表来继续引用。
存储过程子表位于开发平台“工具箱\常规控件”下:
要使用存储过程子表,首先我们必须先准备一个存储过程,如下:
存储过程名称:sp_GetPolicyItem
参数:只有一个参数@PolicyID
返回字段:必须和存储过程子表控件列设置中的每一列的数据库字段保持一致;
属性说明:
别名:Web上显示的控件标签,比如这里是“统筹种类信息”;
取数类型:SP(其他两个选项涉及到后台插件开发,暂时请忽略);
存储过程:填写存储过程名,这里填sp_GetPolicyItem;
过滤条件:由于我们存储过程是带了参数@PolicyID的,所以需要传入参数,点击属性右侧按钮后弹出如下条件设置窗口,其中字段名必须对应存储过程参数名(不带@,如这里的PolicyID),如果存储过程有多个属性,请填写多行不同的字段名。值这里用E6脚本取本单据所引用的PolicyCarCase的__FK_PolicyView_字段,具体脚本参考《脚本》、《输入框之间的联动计算》、《根据条件隐藏显示》、《子表单元格之间的计算》、《子表列汇总》等
列设置:点击列设置属性右侧的按钮后,弹出下面的“设置列表字段”窗口,如下图,根据存储过程实际的返回值类型,选择“自定义类类型”后点击“添加”:
设置新增加的每一列的“列标题”和“数据库字段”,并注意每一列的数据库字段名必须和存储过程的SELECT的字段名称保持一致(如下面选中的“统筹种类”):
保存发布后,就可以通过存储过程取数并显示在子表中了,如图1所示。