<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我希望有一个脚本允许我从所选数据表(仍处于打开状态)中选择列。 我通过从打开的数据表列表中进行选择来启动脚本。不知何故,这个选择的数据表没有分配给 ColumnDialog
如何通过从打开的数据表列表中选择来设置当前数据表并将其分配给 ColumnDialog?
我的脚本如下:
数据
OpenDT = List();
For( i = 1, i <= N Table(), i++, Insert Into( OpenDT, Data Table(i) ));
dlgDT = Dialog("请选择1个数据表进行分析",
VList(selectDT = List Box(OpenDT)) ,
HList (Button("OK", dt_name = selectDT << Get Name, set << current data table (dt_name)),
按钮(“取消”,停止())
));
colDT = ColumnDialog(标题(“测试”),
L1uSelect = ColList ("L1 u_prime:", Max Col (1), Min Col (1), DataType ( Numeric )),
L1vSelect = ColList ("L1 v_prime:", Max Col (1), Min Col (1), DataType ( Numeric )),
L2uSelect = ColList ("L2 u_prime:", Max Col (1), Min Col (1), DataType ( Numeric )),
L2vSelect = ColList ("L2 v_prime:", Max Col (1), Min Col (1), DataType ( Numeric ))
);
L1u = colDT["L1uSelect"];
L1v = colDT["L1vSelect"];
L2u = colDT["L2uSelect"];
L2v = colDT["L2vSelect"];
Dialog() 函数返回在对话框中构建的项目列表。您不要将表达式放在 Dialog() 的 Button() 元素中。相反,您在对话框关闭后解压缩列表。
这是您的示例的工作形式:
开放式DT =列表() ;
为了(一世= 1 ,一世<= N表() ,一世++,
插入(开放式DT ,数据表(一世) )
) ;
dlgDT =对话(
“请选择1个数据表进行分析” ,
视频列表(选择DT =列表框(开放式DT ) ) ,
列表(按钮( “好的” ) ,按钮( “取消” ) )
) ;
展示( dlgDT ) ;
如果( dlgDT [ “按钮” ] == 1 ,
从...除去( dlgDT , N 项( dlgDT ) ) ;
评估列表( dlgDT ) ;
) ;
当前数据表(选择DT [ 1 ] ) ;
冷DT =列对话框(
标题( “测试” ) ,
L1uSelect =列表( “L1 u_prime:” ,马克斯·科尔( 1 ) ,民科尔( 1 ) ,数据类型(数字) ) ,
L1v选择=列表( “L1 v_prime:” ,马克斯·科尔( 1 ) ,民科尔( 1 ) ,数据类型(数字) ) ,
L2uSelect =列表( “L2 u_prime:” ,马克斯·科尔( 1 ) ,民科尔( 1 ) ,数据类型(数字) ) ,
L2v选择=列表( “L2 v_prime:” ,马克斯·科尔( 1 ) ,民科尔( 1 ) ,数据类型(数字) )
) ;
L1u =冷DT [ “L1uSelect” ] ;
L1v =冷DT [ “L1v选择” ] ;
L2u =冷DT [ “L2uSelect” ] ;
L2V =冷DT [ “L2v选择” ] ;
坦率地说,Dialog() 不如 New Window() 构造用于构建显示方便。它需要用于显示元素的特殊构造函数,并且它返回的列表处理起来很笨拙。这是它被弃用的原因之一。见用于创建模态显示的在线文档查看如何使用 New Window() 代替。
-杰夫