brwexportexcel.i 5.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. DEF VAR hBuffer AS HANDLE NO-UNDO.
  2. DEF VAR hQuery AS HANDLE NO-UNDO.
  3. DEF VAR cName AS CHAR NO-UNDO.
  4. DEF VAR cWhere AS CHAR NO-UNDO.
  5. DEF VAR cLabel AS CHAR NO-UNDO.
  6. DEF VAR cString AS CHAR NO-UNDO.
  7. DEF VAR ij AS INT NO-UNDO.
  8. DEF VAR iRet AS INT NO-UNDO.
  9. DEF VAR cDelim AS CHAR NO-UNDO INIT '£'.
  10. /* DO WITH FRAME {&FRAME-NAME}: */
  11. /* APPLY 'CTRL-END' TO BROWSE {&BROWSE-NAME}. */
  12. /* */
  13. /* hBuffer = DYNAMIC-FUNCTION('getQueryBuffer':U IN hDaten) NO-ERROR. */
  14. /* IF NOT VALID-HANDLE ( hBuffer ) THEN RETURN. */
  15. /* */
  16. /* cName = SESSION:TEMP-DIR */
  17. /* + ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') */
  18. /* + '.csv'. */
  19. /* */
  20. /* cWhere = DYNAMIC-FUNCTION('getQueryWhere':U IN hDaten) NO-ERROR. */
  21. /* */
  22. /* CREATE QUERY hQuery. */
  23. /* hQuery:SET-BUFFERS(hBuffer). */
  24. /* hQuery:QUERY-PREPARE('FOR EACH rowObject NO-LOCK'). */
  25. /* hQuery:QUERY-OPEN(). */
  26. /* */
  27. /* OUTPUT TO VALUE(cName). */
  28. /* SESSION:SET-WAIT-STATE('GENERAL'). */
  29. /* cString = ''. */
  30. /* DO ij = 1 TO hBuffer:NUM-FIELDS: */
  31. /* IF hBuffer:BUFFER-FIELD(ij):NAME BEGINS 'row' THEN NEXT. */
  32. /* cLabel = hBuffer:BUFFER-FIELD(ij):LABEL. */
  33. /* IF cLabel = ? OR */
  34. /* cLabel = '' THEN cLabel = hBuffer:BUFFER-FIELD(ij):NAME. */
  35. /* cString = cString + cDelim + cLabel. */
  36. /* END. */
  37. /* IF cString <> '' THEN cString = SUBSTRING(cString,02). */
  38. /* cString = REPLACE(cString, ';', ':'). */
  39. /* cString = REPLACE(cString, cDelim, ';'). */
  40. /* PUT CONTROL cString CHR(10). */
  41. /* */
  42. /* hQuery:GET-FIRST(NO-LOCK). */
  43. /* DO WHILE NOT hQuery:QUERY-OFF-END: */
  44. /* cString = ''. */
  45. /* DO ij = 1 TO hBuffer:NUM-FIELDS: */
  46. /* IF hBuffer:BUFFER-FIELD(ij):NAME BEGINS 'row' THEN NEXT. */
  47. /* cLabel = hBuffer:BUFFER-FIELD(ij):BUFFER-VALUE(0). */
  48. /* IF cLabel = ? THEN cLabel = ''. */
  49. /* IF hBuffer:BUFFER-FIELD(ij):DATA-TYPE BEGINS 'CHAR' THEN DO:*/
  50. /* cLabel = REPLACE(cLabel, CHR(10), ' '). */
  51. /* END. */
  52. /* cString = cString + cDelim + cLabel. */
  53. /* END. */
  54. /* IF cString <> '' THEN cString = SUBSTRING(cString,02). */
  55. /* cString = REPLACE(cString, ';', ':'). */
  56. /* cString = REPLACE(cString, cDelim, ';'). */
  57. /* PUT CONTROL cString CHR(10). */
  58. /* hQuery:GET-NEXT(NO-LOCK). */
  59. /* END. */
  60. /* OUTPUT CLOSE. */
  61. /* */
  62. /* hQuery:QUERY-CLOSE(). */
  63. /* DELETE OBJECT hQuery. */
  64. /* */
  65. /* SESSION:SET-WAIT-STATE(''). */
  66. /* END. */
  67. /* */
  68. /* RUN ShellExecuteA ( INPUT 0, */
  69. /* INPUT 'open', */
  70. /* INPUT 'Excel.exe', */
  71. /* INPUT cName, */
  72. /* INPUT '', */
  73. /* INPUT 1, */
  74. /* OUTPUT iRet ). */
  75. RUN exportData IN hDaten ( 'Excel', '', FALSE, TRUE, 10000 ).