SAS DDE для Excel 2016 исправить / альтернатива? - PullRequest
0 голосов
/ 29 января 2019

Я относительно новичок в программировании на SAS и унаследовал код, написанный на DDE для открытия и экспорта данных в шаблон.

Ниже приведен код, используемый:

** Use DDE to port the data to Excel template.;
* Start Excel.;

OPTIONS NOXWAIT NOXSYNC;

X "'C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE'";

DATA _NULL_;
   zzzz = sleep(20);
RUN;

* Open the Excel file.;

FILENAME CMDEXCEL DDE 'EXCEL|SYSTEM';

DATA _NULL_;
   FILE CMDEXCEL;
    PUT '[OPEN("I:\J3 O\J3 OP Integration Division\Customer Support\RESEARCH\Weekly Workload\Open Ticket SAS Reports\Open_detail_Template.xlsx")]';
RUN;

DATA _NULL_;
   zzzz = sleep(20);
RUN;


* Move labels.;

FILENAME DDEWRITE DDE "EXCEL|Open!r2c1:r7000c14" NOTAB;

DATA _NULL_;
   FILE DDEWRITE;
   set todays_detail;
    if crm_group = 'OP';
   put
       color '09'x
       employee '09'x
       ticket_number '09'x
       pri_text '09'x
       open_date '09'x
       due_date '09'x
       classification '09'x
       requisition_num '09'x
       nsn '09'x
       dodaac '09'x
       depot '09'x
       status '09'x
       tot_tix '09'x
       tot_actions
   ;
run;

DATA _NULL_;
   zzzz = sleep(2);
RUN;



DATA _NULL_;
   FILE CMDEXCEL;
  PUT '[SAVE.as("'"I:\J3 O\J3 OP Integration Division\Customer Support\RESEARCH\Weekly Workload\Open Ticket SAS Reports\Open Ticket Detail Report &rpt_date2..xlsx"'")]';
  PUT '[QUIT()]';
run;

Что я заметил, так это то, что оператор X открывает приложение Excel в порядке.Однако это то, где это зависает.На компьютерах моих коллег открывается шаблон, и вы можете видеть, как данные записываются в соответствующие поля шаблона.Я пробовал много разных вещей, чтобы попытаться заставить работать соединение DDE.Я пытался отключить все надстройки, отключить и включить флажок игнорировать другие приложения в Excel, закрыть все приложения и запустить только SAS EG, перезагрузить компьютер, запустить его и т. Д. И т. Д.

Я также посмотрел вответы от

SAS помещает данные в Excel через DDE

Проблемы с SAS DDE с Office 2010

Изменитьиз DDE в proc, потому что Office 2016 не поддерживает его

Последняя ссылка, которую я считаю наиболее полезной, но я хотел бы попытаться сохранить код как есть.

У меня есть лицензия SAS PC / ACCESS, поэтому я подумал, что может быть предложен импорт proc и экспорт proc.Я не совсем уверен, как бы я повторил это, чтобы сделать те же шаги, что и код DDE.

Спасибо за помощь.Я очень ценю время.

Примечание. Я прочитал вариант восстановления работоспособности Microsoft, однако на данный момент этот вариант не подходит.

1 Ответ

0 голосов
/ 30 января 2019

DDE - это древняя технология.Есть некоторые странные взаимодействия с другими процессами на вашем ПК, которые могут привести к его поломке.Вы можете заставить его работать, если сможете выяснить, какая другая программа, которая работает, захватывает сигналы DDE, и закрыть ее.

Или переключиться на другой метод.Например, Visual Basic.

Посмотрите на эту статью.Смотрите пример 8, чтобы узнать что-то близкое к вашей ситуации.

http://www.sascommunity.org/mwiki/images/d/d6/2444-2018.pdf

...