Kbase P20080: How to export records to Excel using a SmartDataObjects where clause but not the SmartDataObject its
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  15/10/2008 |
|
Status: Verified
GOAL:
How to export records to Excel using a SmartDataObjects where clause but not the SmartDataObject itself
GOAL:
How to send the records to Excel using ActiveX Automation
FACT(s) (Environment):
Progress 9.x
FIX:
DEFINE VARIABLE cTable AS CHARACTER NO-UNDO.
DEFINE VARIABLE cFields AS CHARACTER NO-UNDO.
DEFINE VARIABLE hQuery AS HANDLE NO-UNDO.
DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
DEFINE VARIABLE hField AS HANDLE NO-UNDO.
DEFINE VARIABLE iFields AS INTEGER NO-UNDO.
DEFINE VARIABLE iRow AS INTEGER NO-UNDO.
DEFINE VARIABLE cRow AS CHARACTER NO-UNDO INITIAL "A".
DEFINE VARIABLE chExcelApplication AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chWorkbook AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE chWorksheet AS COM-HANDLE NO-UNDO.
CREATE "Excel.Application" chExcelApplication.
ASSIGN chExcelApplication:Visible = TRUE
chWorkbook = chExcelApplication:Workbooks:Add()
chWorkSheet = chExcelApplication:Sheets:Item(1)
cTable = "Employee"
cFields = "EmpNum,FirstName,LastName,WorkPhone".
CREATE QUERY hQuery.
CREATE BUFFER hBuffer FOR TABLE cTable.
hQuery:SET-BUFFERS(hBuffer).
hQuery:QUERY-PREPARE(DYNAMIC-FUNCTION('getQueryWhere' IN h_demployee)).
hQuery:QUERY-OPEN().
IF hQuery:GET-FIRST() = FALSE THEN
DO:
hQuery:QUERY-CLOSE().
chExcelApplication:QUIT().
RELEASE OBJECT chWorkSheet NO-ERROR.
RELEASE OBJECT chWorkBook NO-ERROR.
RELEASE OBJECT chExcelApplication NO-ERROR.
DELETE OBJECT hBuffer NO-ERROR.
DELETE OBJECT hQuery NO-ERROR.
RETURN.
END.
REPEAT:
ASSIGN iRow = iRow + 1.
DO iFields = 1 TO NUM-ENTRIES(cFields):
hField = hBuffer:BUFFER-FIELD(ENTRY(iFields,cFields)).
chWorkSheet:range((CHR(ASC(cRow) + iFields - 1)) + STRING(iRow)):Value = hField:BUFFER-VALUE.
END.
IF hQuery:GET-NEXT() =FALSE THEN
LEAVE.
END.
hQuery:QUERY-CLOSE().
DELETE OBJECT hField NO-ERROR.
DELETE OBJECT hBuffer NO-ERROR.
DELETE OBJECT hQuery NO-ERROR.
RELEASE OBJECT chExcelApplication NO-ERROR.
RELEASE OBJECT chWorkBook NO-ERROR.
RELEASE OBJECT chWorkSheet NO-ERROR.