ExportRabatgruppenDetails.p 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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 tRabattgruppen
  23. FIELD Firma AS CHARACTER LABEL 'Firma'
  24. FIELD RabDebitor AS INTEGER LABEL 'RabattGrp Debitor'
  25. FIELD RabArtikel AS INTEGER LABEL 'RabattGrp Artikel'
  26. FIELD RabArt AS LOGICAL LABEL 'Prozent/Betrag' FORMAT "Prozent/Betrag"
  27. FIELD RabAuf AS INTEGER LABEL 'Rabatt auf 0=Kleingebinde/1= Auftragszeile'
  28. FIELD Wert AS DECIMAL LABEL 'Wert'
  29. FIELD SummGrp AS INTEGER LABEL 'SummenGrp'
  30. FIELD abMenge AS DECIMAL LABEL 'ab Menge'
  31. FIELD abBetrag AS DECIMAL LABEL 'ab Betrag'
  32. FIELD abInhalt AS DECIMAL LABEL 'ab Centiliter'
  33. FIELD SumRabArt AS LOGICAL LABEL 'Prozent/Betrag' FORMAT "Prozent/Betrag"
  34. FIELD SumRabAuf AS INTEGER LABEL 'Rabatt auf 0=Menge/1=Betrag/2=Inhalt'
  35. FIELD SumWert AS INTEGER LABEL 'Summen Wert'
  36. .
  37. DEFINE VARIABLE htRabattgruppen AS HANDLE NO-UNDO.
  38. htRabattgruppen = TEMP-TABLE tRabattgruppen:DEFAULT-BUFFER-HANDLE.
  39. cDateiName = 'exports\RabatgruppenDetails.csv'.
  40. iMax = htRabattgruppen:NUM-FIELDS.
  41. FOR EACH RabTab NO-LOCK
  42. WHERE RabTab.Firma = '1000',
  43. FIRST RabSumm NO-LOCK
  44. WHERE RabSumm.Firma = RabTab.Firma
  45. AND RabSumm.Rab_Summ = RabTab.Rab_Summ
  46. :
  47. CREATE tRabattgruppen.
  48. ASSIGN
  49. tRabattgruppen.Firma = RabTab.Firma
  50. tRabattgruppen.RabDebitor = RabTab.Ku_Rab
  51. tRabattgruppen.RabArtikel = RabTab.Art_Rab
  52. tRabattgruppen.RabArt = RabTab.Proz_Betr
  53. tRabattgruppen.RabAuf = RabTab.Rab_Art
  54. tRabattgruppen.Wert = RabTab.Wert
  55. tRabattgruppen.SummGrp = RabTab.Rab_Summ
  56. tRabattgruppen.abMenge = RabSumm.Menge
  57. tRabattgruppen.abBetrag = RabSumm.Betrag
  58. tRabattgruppen.abInhalt = RabSumm.Inhalt
  59. tRabattgruppen.SumRabArt = RabSumm.F_Proz_Betr
  60. tRabattgruppen.SumRabAuf = RabSumm.F_Rab_Art
  61. tRabattgruppen.SumWert = RabSumm.F_Wert
  62. .
  63. END.
  64. OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  65. DO i = 1 TO iMax:
  66. IF i > 1 THEN PUT CONTROL ';'.
  67. hFeld = htRabattgruppen:BUFFER-FIELD (i).
  68. iExtent = hFeld:EXTENT.
  69. IF iExtent = 0 THEN
  70. DO:
  71. PUT CONTROL htRabattgruppen:BUFFER-FIELD (i):LABEL.
  72. NEXT.
  73. END.
  74. DO ix = 1 TO iExtent:
  75. cString = hFeld:LABEL + '-' + STRING(ix).
  76. PUT CONTROL cString.
  77. IF ix < iExtent THEN PUT CONTROL ';'.
  78. END.
  79. END.
  80. PUT CONTROL CHR(10).
  81. FOR EACH tRabattgruppen NO-LOCK:
  82. DO i = 1 TO iMax:
  83. IF i > 1 THEN PUT CONTROL ';'.
  84. hFeld = htRabattgruppen:BUFFER-FIELD (i).
  85. iExtent = hFeld:EXTENT.
  86. IF iExtent = 0 THEN
  87. DO:
  88. cString = STRING(hFeld:BUFFER-VALUE(0)).
  89. cString = REPLACE(cString, CHR(13), '' ).
  90. cString = REPLACE(cString, CHR(10), '%NL%' ).
  91. PUT CONTROL REPLACE(cString, ';', ':').
  92. NEXT.
  93. END.
  94. DO ix = 1 TO iExtent:
  95. cString = STRING(hFeld:BUFFER-VALUE(ix)).
  96. cString = REPLACE(cString, CHR(13), '' ).
  97. cString = REPLACE(cString, CHR(10), '%NL%' ).
  98. PUT CONTROL REPLACE(cString, ';', ':').
  99. IF ix < iExtent THEN PUT CONTROL ';'.
  100. END.
  101. END.
  102. PUT CONTROL CHR(10).
  103. END.
  104. OUTPUT CLOSE.
  105. /*PUT CONTROL MESSAGE i '->' '-' EXTENT (oProperties) '-' oProperties[i]:Name '-' oProperties[i]:DataType '-' oProperties[i]:ToString()*/
  106. /* VIEW-AS ALERT-BOX. */
  107. /*DEF VAR theValue AS Progress.Lang.Object NO-UNDO. */
  108. /* */
  109. /*theValue = DYNAMIC-PROPERTY(oInvoice, "Amount"). */
  110. /* */
  111. /*IF theValue:WHATS-THE-TYPE = "decimal" THEN */
  112. /* RETURN STRING(theValue, ">>>>>9.99"). */
  113. /*ELSE */
  114. /* RETURN TRIM(theValue). // It is a character field*/