如何查找 excel sheet 是否在使用 progress 4GL 的系统上打开?
how to find if the excel sheet is opened on system using progress 4GL?
我是 4GL 的新手。我使用 progress 4GL 将一些数据导出为 CSV 文件格式。我面临的问题是,如果我第一次 运行 该程序,则会创建 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.
您无法写入文件,因为 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.
我是 4GL 的新手。我使用 progress 4GL 将一些数据导出为 CSV 文件格式。我面临的问题是,如果我第一次 运行 该程序,则会创建 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.
您无法写入文件,因为 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.