| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- DEF VAR hBuffer AS HANDLE NO-UNDO.
- DEF VAR hQuery AS HANDLE NO-UNDO.
- DEF VAR cName AS CHAR NO-UNDO.
- DEF VAR cWhere AS CHAR NO-UNDO.
- DEF VAR cLabel AS CHAR NO-UNDO.
- DEF VAR cString AS CHAR NO-UNDO.
- DEF VAR ij AS INT NO-UNDO.
- DEF VAR iRet AS INT NO-UNDO.
- DEF VAR cDelim AS CHAR NO-UNDO INIT '£'.
-
- DO WITH FRAME {&FRAME-NAME}:
- hQuery = {&BROWSE-NAME}:QUERY.
- hBuffer = hQuery:GET-BUFFER-HANDLE(1).
- IF NOT VALID-HANDLE ( hBuffer ) THEN RETURN.
- cName = SESSION:TEMP-DIR
- + ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.')
- + '.csv'.
- cWhere = SUBSTITUTE('FOR EACH &1 NO-LOCK', hBuffer:NAME ) NO-ERROR.
- hQuery:QUERY-PREPARE(cWhere).
- hQuery:QUERY-OPEN().
- OUTPUT TO VALUE(cName).
- SESSION:SET-WAIT-STATE('GENERAL').
- cString = ''.
- DO ij = 1 TO hBuffer:NUM-FIELDS:
- IF hBuffer:BUFFER-FIELD(ij):NAME BEGINS 'row' THEN NEXT.
- FIND FIRST tBrowser NO-LOCK
- WHERE tBrowser.Feld = hBuffer:BUFFER-FIELD(ij):NAME
- AND tBrowser.fVisible = TRUE NO-ERROR.
- IF NOT AVAILABLE tBrowser THEN NEXT.
- cLabel = hBuffer:BUFFER-FIELD(ij):LABEL.
- IF cLabel = ? OR
- cLabel = '' THEN cLabel = hBuffer:BUFFER-FIELD(ij):NAME.
- cString = cString + cDelim + cLabel.
- END.
- IF cString <> '' THEN cString = SUBSTRING(cString,02).
- cString = REPLACE(cString, ';', ':').
- cString = REPLACE(cString, cDelim, ';').
- PUT CONTROL cString CHR(10).
- hQuery:GET-FIRST(NO-LOCK).
- DO WHILE NOT hQuery:QUERY-OFF-END:
- cString = ''.
- DO ij = 1 TO hBuffer:NUM-FIELDS:
- IF hBuffer:BUFFER-FIELD(ij):NAME BEGINS 'row' THEN NEXT.
- FIND FIRST tBrowser NO-LOCK
- WHERE tBrowser.Feld = hBuffer:BUFFER-FIELD(ij):NAME
- AND tBrowser.fVisible = TRUE NO-ERROR.
- IF NOT AVAILABLE tBrowser THEN NEXT.
- cLabel = hBuffer:BUFFER-FIELD(ij):BUFFER-VALUE(0).
- IF cLabel = ? THEN cLabel = ''.
- IF hBuffer:BUFFER-FIELD(ij):DATA-TYPE BEGINS 'CHAR' THEN DO:
- cLabel = REPLACE(cLabel, CHR(10), ' ').
- END.
- cString = cString + cDelim + cLabel.
- END.
- IF cString <> '' THEN cString = SUBSTRING(cString,02).
- cString = REPLACE(cString, ';', ':').
- cString = REPLACE(cString, cDelim, ';').
- PUT CONTROL cString CHR(10).
- hQuery:GET-NEXT(NO-LOCK).
- END.
- OUTPUT CLOSE.
- hQuery:QUERY-CLOSE().
- hQuery:QUERY-OPEN().
- SESSION:SET-WAIT-STATE('').
- END.
- RUN ShellExecuteA ( INPUT 0,
- INPUT 'open',
- INPUT 'Excel.exe',
- INPUT cName,
- INPUT '',
- INPUT 1,
- OUTPUT iRet ).
|