You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求SAS EG 9.4环境下遍历缺失行获取用户输入更新表的方案

SAS EG 9.4 手动补全缺失评估值方案指导

核心思路

针对ITEM_EVALUATION表中EVALUATION为空且ITEM非空的记录,通过SAS宏循环遍历目标行,在EG交互环境中提示用户输入对应评估值,实时更新表数据。

实现步骤

1. 编写SAS交互更新代码

以下代码可直接用于EG程序节点,包含待补全记录筛选、用户输入交互、数据更新三个核心环节:

/* 1. 备份原表(可选但推荐) */
DATA ITEM_EVALUATION_BACKUP;
    SET ITEM_EVALUATION;
RUN;

/* 2. 筛选待补全记录,生成项目列表及数量 */
PROC SQL NOPRINT;
    SELECT ITEM INTO :item_list SEPARATED BY '|'
    FROM ITEM_EVALUATION
    WHERE MISSING(EVALUATION) AND NOT MISSING(ITEM);
    
    SELECT COUNT(*) INTO :item_count
    FROM ITEM_EVALUATION
    WHERE MISSING(EVALUATION) AND NOT MISSING(ITEM);
QUIT;

/* 3. 宏循环:遍历项目获取输入并更新 */
%MACRO update_evaluation;
    %IF &item_count. > 0 %THEN %DO;
        %DO i = 1 %TO &item_count.;
            %LET current_item = %SCAN(&item_list., &i., |);
            
            /* 提示用户输入,支持非空校验 */
            DATA _NULL_;
                PUT "===== 请输入项目【&current_item.】的评估值 =====";
                DO UNTIL(eval_value NE '');
                    INPUT eval_value $;
                    IF eval_value = '' THEN PUT "输入不能为空,请重新输入!";
                END;
                CALL SYMPUTX('eval_val', eval_value);
            RUN;
            
            /* 更新对应记录 */
            PROC SQL;
                UPDATE ITEM_EVALUATION
                SET EVALUATION = "&eval_val."
                WHERE ITEM = "&current_item." AND MISSING(EVALUATION);
            QUIT;
        %END;
        
        /* 提交更新,确保数据持久化 */
        PROC DATASETS LIB=WORK NOLIST;
            MODIFY ITEM_EVALUATION;
        RUN;
        QUIT;
        
        DATA _NULL_;
            PUT "===== 所有待补全评估值已更新完成 =====";
        RUN;
    %END;
    %ELSE %DO;
        DATA _NULL_;
            PUT "===== 没有需要补全的评估值记录 =====";
        RUN;
    %END;
%MEND update_evaluation;

/* 执行更新宏 */
%update_evaluation;

2. 集成到现有EGP项目

  • 打开目标EGP项目,点击菜单栏新建 > SAS程序,创建一个新的程序节点。
  • 将上述代码粘贴到程序编辑器中,保存节点(例如命名为「补全评估值」)。
  • 配置节点依赖:如果ITEM_EVALUATION表由其他节点生成,右键点击该程序节点,选择依赖关系 > 添加依赖,关联到生成原表的节点,确保程序运行时原表已加载。
  • 运行节点:点击节点的「运行」按钮,EG会弹出日志窗口,用户需在日志底部的输入框中依次输入每个项目的评估值,按回车确认即可。

关键注意事项

  • ITEM唯一性:若表中存在重复ITEM值,UPDATE语句会批量更新所有对应空值的记录。如需精准更新单行,建议给表添加唯一主键(如ROW_ID),修改WHERE条件为WHERE ROW_ID = 对应行号。
  • 交互模式要求:必须在EG的交互模式下运行程序,若使用批量提交模式,程序无法接收用户输入。
  • 输入校验扩展:可根据业务需求修改输入校验逻辑,比如限制输入可选值、匹配特定格式等,避免无效数据写入。

内容的提问来源于stack exchange,提问作者meteque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:10:32