如何查找excel表是否在系统中使用progress 4GL打开?

问题描述 投票:0回答:1

我是progress 4GL的新手。我使用progress 4GL将一些数据导出为CSV文件格式。我面临的问题是,如果我第一次运行该程序,那么就会创建 CSV 文件,但如果我运行另一个程序,在我的机器上保持 CSV 文件打开,那么数据就不会写入同一个 CSV 文件。相反,它给出了错误。我想用一个CSV(sample.csv)文件来存储多个程序的数据。

如果可以通过在我的机器上保持CSV文件打开来写入数据,那么告诉我方法,或者我想知道如果文件打开了(sample.csv),那么我需要给用户一个信息 "请关闭CSV文件"。

我这边的程序我试了一下。我得到的错误附后。

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

openedge progress-4gl
1个回答
2
投票

你不能向文件写入,因为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.
© www.soinside.com 2019 - 2024. All rights reserved.