SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1275|回复: 4
打印 上一主题 下一主题

参数传递以及Submit问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2003-10-30 12:28:38 | 只看该作者

参数传递以及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好象不行~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2003-10-30 12:42:35 | 只看该作者
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 -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2003-10-30 14:07:06 | 只看该作者
多谢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(***)应该是字符型且只有一个值啊!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2003-10-30 15:02:21 | 只看该作者
[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]的类型就说不准了。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2003-10-30 15:12:34 | 只看该作者
刚才看帮助文档发现是 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兄   以后还请多指教!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2024-5-18 12:56 , Processed in 0.149169 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表