SAS中文论坛

标题: 请教一个关于宏工具输入输出的问题%window 谢谢 [打印本页]

作者: shiyiming    时间: 2009-6-3 19:17
标题: 请教一个关于宏工具输入输出的问题%window 谢谢
%macro rtff;
%do n=1 %to &aa;
#&n  @80 tff&n 15 attr=underline
%end;
%mend rtff;

%window windowi
# 0 @3 "Pleast input how many kinds of nutrient you cared about"
   @80 aa 1 attr=underline;

%window  www
# 0 @80 "input the values"  
%rtff;

%macro test;

%global aa;
%display windowi;
%put &aa;

%rtff;
%do i=1 %to &aa;
%global tff&i;
%end;


%display www;

%do i=1 %to &aa;
%put &&tff&i;
%end;

%mend test;
%test;

这个程序是简化的,目的是想根据用户的需要来输入一系列的宏参数,假设用户关心的是3个相关的变量,于是先用%window windowi 的宏参数aa来记录个数,然后再根据aa的具体数据生成重复文本#&n  @80 tff&n 15 attr=underline,这个重复文本是
%macro rtff 来实现的。然后在%window www里面调用宏rtff。可是好像1是#&n有问题,另一个就是aa的值传到%window www中有问题,因为我运行这个程序第一遍的时候报错是:
    #1
      -
      180

ERROR 180-322: Statement is not valid or it is used out of proper order.

然后运行第二遍的时候,报错依然没有变,但是功能是可以实现了,只是aa是上一次运行的aa的值。
为什么这个程序不可以实现呢?
有劳大家帮忙啦!




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