Как найти, если лист Excel открывается в системе с использованием прогресса 4GL? - PullRequest
1 голос
/ 22 апреля 2020

Я новичок в прогрессе 4GL. Я экспортировал некоторые данные в формате файла CSV, используя прогресс 4GL. Проблема, с которой я сталкиваюсь, заключается в том, что если я запускаю программу в первый раз, то создается файл CSV, но если я запускаю другую программу, сохраняя файл CSV открытым на моем компьютере, тогда данные не записываются в тот же файл CSV. Вместо этого это дает ошибку. Я хочу использовать один файл CSV (sample.csv) для хранения данных из нескольких программ.

Если можно записать данные, оставив файл CSV открытым на моем компьютере, то скажите мне, как иначе Я хочу выяснить, что если файл открыт (sample.csv), то мне нужно дать пользователю сообщение «pls close CSV file».

Программа, которую я попробовал со своей стороны. Полученная ошибка прилагается.

OUTPUT TO "C:\Users\ast\Pictures\Saved Pictures\sample.csv".

EXPORT DELIMITER ";" "CustNum" "Name".
FOR EACH customer NO-LOCK:
   EXPORT DELIMITER ";" Cust-Num Name.
END.
OUTPUT CLOSE.

enter image description here

1 Ответ

2 голосов
/ 22 апреля 2020

Вы не можете записать в файл, так как Excel (в данном случае) имеет блокировку файла.

Вы можете отследить ошибку - ее номер отображается в сообщении об ошибке:

output to c:\temp\foo.csv.
put unformatted 'lockme'.
output close.

catch e as progress.lang.error:

   if e:getMessageNum(1) = 98 then 
      message 'please close the file' view-as alert-box.
   else
      undo, throw e.

end catch.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...