【问题标题】:Automatic parameter and definition display for macro functions in SAS EGSAS EG 中宏功能的自动参数和定义显示
【发布时间】:2018-05-30 08:24:39
【问题描述】:

SAS EG 中有一个简洁的功能,可以让人们在键入时查看宏函数的参数及其定义。

例如,如果我执行:

%macro test
(a /* this is a */
,b /* this is b */
);
%put a b;
%mend;

然后输入%test(,弹出窗口会显示“a : this is a”等...

不幸的是,由于某种原因,它似乎只有在当前程序中定义了宏函数时才有效(所以基本上是在您真正不需要它的唯一地方,因为在这种情况下,它应该在您的脑海中很新鲜)。

  • 在其他程序和其他流程中,有什么方法可以从该功能中受益?

  • 更重要的是,我如何从存储的已编译宏的此功能中受益?

比如说我在另一个会话中定义的:

options mstored sasmstore=mylib;
%macro test2
(c /* this is c */
,d /* this is d */
) / store source des='show c and d';
%put c d;
%mend;

我想一种解决方法是创建一个宏%redefine_all,它将遍历目录并执行每个存储的宏定义,但这很丑陋,我不完全确定我会如何去做...

【问题讨论】:

  • 这个问题也与自动调用宏有关吗?显示创建存储的已编译宏的示例代码,该宏将在未来的 EG 会话中可用,但不
  • 请查看更新后的问题。该宏在其他会话中可用,但不会触发此自动显示功能。

标签: sas enterprise-guide


【解决方案1】:

听起来像是“其中之一”。

EG 帮助“关于程序编辑器”-“使用自动完成功能”指出:

程序编辑器还可以读取您当前的程序并提出建议 这些程序元素的语法:

  • 使用 %LET 语句或 SYMPUT CALL 例程定义的宏变量
  • 使用 %MACRO 语句定义的宏例程
  • 使用 DATA 步定义的数据集名称 陈述

    注意:程序编辑器不会自动列出宏 在当前定义之外的变量和例程 文档(例如,外部宏程序、%include 文件和 自动执行文件)。

  • 【讨论】:

    • 我将把它添加到我要咆哮的事情清单中......我想知道这些人有时在想什么。我认为我的解决方法应该是可行的,如果我可以编写代码,我会将其发布为答案。
    • 标准宏功能自动完成具有弹出背景(蓝色),其颜色与用户/程序编辑器弹出背景(棕褐色)不同,因此有可能发现和模仿背后的机制标准弹出窗口。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多