I'm troubled by Excel hanging after I terminate the process. A piece of the code is below:
SESSION:SET-WAIT-STATE("GENERAL").
CREATE "Excel.Application":U chExcel.
ASSIGN chExcel:VISIBLE = NO
chExcel:displayAlerts = FALSE
cExcelName = cExcelName + STRING(TIME)
chWorkbook = chExcel:Workbooks:Add()
iWorkSheets = 0.
FOR EACH ttData WHERE NOT ttData.Manual
BREAK BY ttData.Whs BY ttData.LineNo:
IF FIRST-OF(ttData.Whs) THEN
RUN CreateHeader.
RUN CreateLine.
IF LAST-OF(ttData.Whs) THEN
RUN FinishOrder.
DELETE ttData.
END.
IF iWorkSheets LT 3 THEN
DO i = 3 TO (iWorkSheets + 1) BY -1:
chWorksheet = chWorkbook:Worksheets(i).
chWorkSheet:delete.
END.
chWorkBook:SaveAs(cExcelName,56,,,,,).
ASSIGN chExcel:displayAlerts = YES.
chWorkBook:CLOSE().
chExcel:QUIT.
RELEASE OBJECT chWorkBook.
RELEASE OBJECT chWorkSheet.
RELEASE OBJECT chExcel.
SESSION:SET-WAIT-STATE("").
The same 4 lines starting with the QUIT terminates Excel if I am reading, but when writing out it does not. This is Office 2007 using OpenEdge 10.2A on a Windows 7 64 bit machine.
Any help would be much appreciated.
SESSION:SET-WAIT-STATE("GENERAL").
CREATE "Excel.Application":U chExcel.
ASSIGN chExcel:VISIBLE = NO
chExcel:displayAlerts = FALSE
cExcelName = cExcelName + STRING(TIME)
chWorkbook = chExcel:Workbooks:Add()
iWorkSheets = 0.
FOR EACH ttData WHERE NOT ttData.Manual
BREAK BY ttData.Whs BY ttData.LineNo:
IF FIRST-OF(ttData.Whs) THEN
RUN CreateHeader.
RUN CreateLine.
IF LAST-OF(ttData.Whs) THEN
RUN FinishOrder.
DELETE ttData.
END.
IF iWorkSheets LT 3 THEN
DO i = 3 TO (iWorkSheets + 1) BY -1:
chWorksheet = chWorkbook:Worksheets(i).
chWorkSheet:delete.
END.
chWorkBook:SaveAs(cExcelName,56,,,,,).
ASSIGN chExcel:displayAlerts = YES.
chWorkBook:CLOSE().
chExcel:QUIT.
RELEASE OBJECT chWorkBook.
RELEASE OBJECT chWorkSheet.
RELEASE OBJECT chExcel.
SESSION:SET-WAIT-STATE("").
The same 4 lines starting with the QUIT terminates Excel if I am reading, but when writing out it does not. This is Office 2007 using OpenEdge 10.2A on a Windows 7 64 bit machine.
Any help would be much appreciated.