SAS中文论坛

标题: 参数传递以及Submit问题 [打印本页]

作者: shiyiming    时间: 2003-10-30 12:28
标题: 参数传递以及Submit问题
1. 我在Form1中可以call display('Form2.frame',value);
    得到Form2中的变量value
    请问怎样由Form1向Form2传参数呢?

2. 使用sql语句
    Submit Continue;
         Proc sql;
            Select Max(age) Into :value From Table;
         Quit;
      EndSubmit;
      那么我如何在SCL中调用value呢?  &value好象不行~
作者: shiyiming    时间: 2003-10-30 12:42
1、call display('form2.frame',value);就是form1向form2传递参数。在form2.scl头上加上entry optional=value:update:num,表示在form2关闭后,被更新的value值会自动返回form1,实现了form2向form1传递参数。

2、加上value=symget("value");以后就能顺利调用了。

看老兄的coding风格很像是VB的。 <!-- s:o --><img src="{SMILIES_PATH}/icon_surprised.gif" alt=":o" title="Surprised" /><!-- s:o -->
作者: shiyiming    时间: 2003-10-30 14:07
多谢shiyiming兄   我是Delphi程序员出身的    <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->

sql步的定义是:Select  ...  &lt;Into macro-variable_list&gt;
那么 value=symget("value");  应该是返回一个list吧?
我用  Dcl List value;
         ...
           Select Max(***) Into :value From Table;
         ...
         value=symget("value");  
         choice=Popmenu(value);
结果报错 Popmenu could not be displayed because item 2 is numeric or a sublist.

但取得的Max(***)应该是字符型且只有一个值啊!
作者: shiyiming    时间: 2003-10-30 15:02
[color=blue:d2de8]value[/color:d2de8]=symget("[color=red:d2de8]value[/color:d2de8]");
[color=red:d2de8]value[/color:d2de8]是宏变量,宏变量只有字符类型。
[color=blue:d2de8]value[/color:d2de8]是scl中的变量,由于是从宏变量取来的,所以[color=blue:d2de8]value[/color:d2de8]刚赋值的时候也是字符型。但是SAS会根据你的程序应用自动转换num和char,所以以后[color=blue:d2de8]value[/color:d2de8]的类型就说不准了。
作者: shiyiming    时间: 2003-10-30 15:12
刚才看帮助文档发现是 Into :macro-variable-specification
所以 value=symget("value");  可以顺利得到需要的结果了
而高惠璇的《BASE SAS软件使用手册》写的是 Into macro-variable_list <!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? --> <!-- s:x --><img src="{SMILIES_PATH}/icon_mad.gif" alt=":x" title="Mad" /><!-- s:x -->
使用AF的过程真是个痛苦的过程....
再次感谢shiyiming兄   以后还请多指教!




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2