相对较新的SAS企业指南。我正在寻找一种在流程流执行期间提示用户上传文件的方法。该文件将用于流程流的后续步骤。
这个是可能的吗?有哪些替代方案可用?
发布于 2017-11-11 07:58:01
SAS似乎不支持对文件打开对话框的“本机”调用,但它允许您调用Windows API,该API提供了随处可见的通用文件选择器对话框。
为此,您需要使用sascbtbl文件名并调用modulec。我暂时把这个答案放在这里作为存根,下周我会尝试扩展它。
同时,下面是一个示例,说明如何使用上面的代码获取windows中的当前进程ID (PID):
filename sascbtbl "%sysfunc(pathname(work))\sascbtbl.txt" lrecl=500;
data _null_;
file sascbtbl;
infile datalines;
input;
put _infile_;
datalines4;
routine GetCurrentProcessId
minarg=0
maxarg=0
stackpop=called
callseq=byvalue
module=kernel32;
;;;;
run;
%let current_sas_process_id = %sysfunc(modulen(*e,GetCurrentProcessId));
%put ¤t_sas_process_id;以上是您需要采用的基本方法,但是您可能需要调用FileOpenDialog类或类似的类(因为它接受参数,所以更复杂),而不是调用GetCurrentProcessId类。
https://stackoverflow.com/questions/47231139
复制相似问题