Обновление Office 2007 ломает код прогресса 4GL - PullRequest
0 голосов
/ 10 января 2011

Я поддерживаю некоторый устаревший код прогресса 4GL.Один из наших серверов, на котором работает 4GL, был обновлен до Office 2007 без моего ведома (хорошо, правда?).В любом случае, обновление сломало сегмент кода, в котором работает COM-компонент excel.application.Финанс ведет список номеров прогноза продаж, которые они хранят в документе Excel, и следующий код загружает эти цифры:

CREATE 
   "Excel.application" chExcelApplication NO-ERROR.
ASSIGN 
   chExcelApplication:VISIBLE = NO NO-ERROR.

ASSIGN 
   chWorkbook = chExcelApplication:Workbooks:OPEN(STRING(i-infile)) NO-ERROR.

ASSIGN
        chWorkSheet = chExcelApplication:Sheets:ITEM((1)) NO-ERROR.

IF input frame f-in Plan1 <> 0 THEN
    Plan1 = input frame f-in Plan1.
ELSE
    Plan1 = chWorkSheet:range(forecastColumn + "4"):VALUE.

IF input frame f-in Plan2 <> 0 THEN
    Plan2 = input frame f-in Plan2.
ELSE
   Plan2 = chWorkSheet:range(forecastColumn + "7"):VALUE.

IF input frame f-in Plan3 <> 0 THEN
   Plan3 = input frame f-in Plan3.
ELSE
   Plan3 = chWorkSheet:range(forecastColumn + "6"):VALUE.

Когда код запускается, я получаю следующую ошибку:

"Невернокомпонент-дескриптор, на который ссылаются при обработке метода / оператора: Range. "

Странная вещь в том, что A) Он не завершается ошибкой в ​​команде" Open "или в команде" Create "- поэтому он не выглядитбыть проблема с самим объектом COM.И Б) если я запускаю тот же код со своего компьютера, на котором также работает Office 2007, он работает нормально.

Есть идеи, как мне устранить эту проблему?

Спасибо!

1 Ответ

0 голосов
/ 10 января 2011

Я скопировал содержимое Excel в новый файл, и теперь он просто тянет цифры.Weird ...

...