Как преобразовать значение из SAS в закладку WORD в текстовом поле? - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь заставить SAS вставить значение в Word (через DDE). Все работает нормально , если закладка не находится в текстовом поле, тогда она не может найти закладку.

У меня нет возможности не использовать текстовое поле, я заполняю шаблоны, которые кто-то еще создал.

%macro quick_stats(ins_id);
    ** Open Word;
    options noxsync noxwait xmin;
    filename outdata dde 'winword|system' notab;

    %macro open_word;
        data _null_;
              length fid rc start stop time 8;
              fid=fopen('outdata','s');
              if (fid le 0) then do;
                    rc=system('start winword');
                    start=datetime();
                    stop=start+10;
                    do while (fid le 0);
                      fid=fopen('outdata','s');
                      time=datetime();
                      if (time ge stop) then fid=1;
                      end;
                    end;
              rc=fclose(fid);
        run;
    %mend open_word;
    %open_word;

    **Open document;
    %macro opendoc;
        data _null_;
              cmd='[FileOpen.Name =' || '"' || "&out_directory.\&ins_id..docx" || '"' || ']';
              file outdata;
              put cmd;
        run;
    %mend;
    %opendoc;

    data _null_;
        set temp_sub;
        file outdata;

        put %unquote(%bquote('[EditGoto.Destination = "MyBookmark"]'));
        ** Insert value;
        cmd = '[Insert "' || MyValue || '"]';
        put cmd;

        file outdata;
        put '[FileSave]';
        put '[FileClose]';
        put '[FileExit]';
    run;
%mend quick_stats;
...