ExportSpezialPreiseDetails.p 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /*------------------------------------------------------------------------
  2. File : FindLabelsFromObjects.p
  3. Purpose :
  4. Syntax :
  5. Description :
  6. Author(s) : walter.riechsteiner
  7. Created : Wed Sep 01 15:50:05 CEST 2021
  8. Notes :
  9. ----------------------------------------------------------------------*/
  10. /* *************************** Definitions ************************** */
  11. /* ******************** Preprocessor Definitions ******************** */
  12. /* *************************** Main Block *************************** */
  13. DEFINE VARIABLE i AS INTEGER NO-UNDO.
  14. DEFINE VARIABLE ix AS INTEGER NO-UNDO.
  15. DEFINE VARIABLE iMax AS INTEGER NO-UNDO.
  16. DEFINE VARIABLE lRetVal AS LOG NO-UNDO.
  17. DEFINE VARIABLE cString AS CHARACTER NO-UNDO.
  18. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO.
  19. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO.
  20. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO.
  21. DEFINE VARIABLE iExtent AS INTEGER NO-UNDO.
  22. DEFINE TEMP-TABLE tSpezPrei LIKE SpezPrei.
  23. DEFINE VARIABLE htSpezPrei AS HANDLE NO-UNDO.
  24. htSpezPrei = TEMP-TABLE tSpezPrei:DEFAULT-BUFFER-HANDLE.
  25. cDateiName = 'exports\KundenSpezialpreiseDetails.csv'.
  26. iMax = htSpezPrei:NUM-FIELDS.
  27. FOR EACH SpezPrei NO-LOCK
  28. WHERE SpezPrei.Firma = '1000'
  29. AND SpezPrei.Ab_Datum <= TODAY
  30. BREAK BY SpezPrei.Knr
  31. BY SpezPrei.Artnr
  32. BY SpezPrei.Inhalt
  33. BY SpezPrei.Jahr
  34. BY SpezPrei.Ab_Datum:
  35. IF NOT LAST-OF ( SpezPrei.Jahr ) THEN NEXT.
  36. CREATE tSpezPrei.
  37. BUFFER-COPY SpezPrei
  38. TO tSpezPrei
  39. ASSIGN tSPezPrei.Bis_Datum = 12/31/2022.
  40. END.
  41. OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  42. DO i = 1 TO iMax:
  43. IF i > 1 THEN PUT CONTROL ';'.
  44. hFeld = htSpezPrei:BUFFER-FIELD (i).
  45. iExtent = hFeld:EXTENT.
  46. IF iExtent = 0 THEN
  47. DO:
  48. PUT CONTROL htSpezPrei:BUFFER-FIELD (i):LABEL.
  49. NEXT.
  50. END.
  51. DO ix = 1 TO iExtent:
  52. cString = hFeld:LABEL + '-' + STRING(ix).
  53. PUT CONTROL cString.
  54. IF ix < iExtent THEN PUT CONTROL ';'.
  55. END.
  56. END.
  57. PUT CONTROL CHR(10).
  58. FOR EACH tSpezPrei NO-LOCK:
  59. DO i = 1 TO iMax:
  60. IF i > 1 THEN PUT CONTROL ';'.
  61. hFeld = htSpezPrei:BUFFER-FIELD (i).
  62. iExtent = hFeld:EXTENT.
  63. IF iExtent = 0 THEN
  64. DO:
  65. cString = hFeld:BUFFER-VALUE(0).
  66. cString = REPLACE(cString, CHR(13), '' ).
  67. cString = REPLACE(cString, CHR(10), '%NL%' ).
  68. PUT CONTROL REPLACE(cString, ';', ':').
  69. NEXT.
  70. END.
  71. DO ix = 1 TO iExtent:
  72. cString = hFeld:BUFFER-VALUE(ix).
  73. cString = REPLACE(cString, CHR(13), '' ).
  74. cString = REPLACE(cString, CHR(10), '%NL%' ).
  75. PUT CONTROL REPLACE(cString, ';', ':').
  76. IF ix < iExtent THEN PUT CONTROL ';'.
  77. END.
  78. END.
  79. PUT CONTROL CHR(10).
  80. END.
  81. OUTPUT CLOSE.
  82. /*PUT CONTROL MESSAGE i '->' '-' EXTENT (oProperties) '-' oProperties[i]:Name '-' oProperties[i]:DataType '-' oProperties[i]:ToString()*/
  83. /* VIEW-AS ALERT-BOX. */
  84. /*DEF VAR theValue AS Progress.Lang.Object NO-UNDO. */
  85. /* */
  86. /*theValue = DYNAMIC-PROPERTY(oInvoice, "Amount"). */
  87. /* */
  88. /*IF theValue:WHATS-THE-TYPE = "decimal" THEN */
  89. /* RETURN STRING(theValue, ">>>>>9.99"). */
  90. /*ELSE */
  91. /* RETURN TRIM(theValue). // It is a character field*/