A:.web中可以通过设置一个参数的值后控制另一个参数的可选值范围,即参数联动功能。
实现示例
新增两个模型
1.页面展示模型
web配置的数据源模型,包含两个参数:联动关系参数与联动参数,
其中联动参数的类型为“用户自定义”。
Function web_testdemo3(pz,future);
Begin
{
说明:参数联动配置范例—获取指定期货品种指定合约代码当天的5分钟线行情数据
参数:
pz:字符串,期货品种
future:用户自定义,期货合约
返回:数组,指定日期货合约5分钟行情
}
endt:=today();
begt:=IntToDate(spec(InfoArrayExt(753,"截止日",datetoint(endt-1))[0,"截止日"],"QI000001"));
setsysparam(pn_cycle(),cy_5m());//设置为5分钟线
t:= select ['StockID'],['StockName'],datetimetostr(['date']) as 'date',['close'],
['vol'],['amount']
from Markettable datekey begt+18/24 to endt+18/24 of future end;
return t;
End;
2.参数联动模型
通过联动关系参数值来获取联动参数可选的枚举值,必须
包含与联动关系参数别名一致的参数,返回结果包含以下两列:
“name”:web中联动参数显示的可选项;
“value”:“name”对应的实际参数值。
Function web_linkageParam(pz);
Begin
{
说明:联动参数-通过联动关系参数获取联动参数的枚举值。
参数:
pz:字符串,期货品种,别名需与联动关系参数一致
返回:数组,包含“name”与“value”列的数组
}
endt:=today();
futures:=GetFuturesID(pz,endt);
data:=select StockName(thisrow) as "name",thisrow as "value" from futures end;
return array(("name":"all","value":futures)) union data;
End;
web配置
1.数据源模型选择:web_testdemo3;
2.在市合约参数类型选择用户自定义;
3.在市合约参数选择参数联动;
4.参数联动设置:
1).联动设置为:启用
2).联动关系选择联动关系参数:期货品种;
3).数值来源选择:模型;
4).数值设定模型名为:web_linkageParam
5.保存配置页面;
6.设置期货品种参数,查看联动参数枚举值;
注:本示例执行日期为:20240403,仅供参考,不同日期配置的范例显示结果不一致是正常的
7.选择在市合约后点击查询查看页面配置结果。