Я поддерживаю некоторый устаревший код прогресса 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, он работает нормально.
Есть идеи, как мне устранить эту проблему?
Спасибо!