ExportDebitorDetails.p 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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 tDebst LIKE Debst
  23. FIELD Kondition AS CHARACTER
  24. FIELD Vertreter AS CHARACTER
  25. FIELD ABCGruppe AS CHARACTER
  26. FIELD Fakturaart AS CHARACTER
  27. FIELD Preisgruppe AS CHARACTER
  28. FIELD Rabattgruppe AS CHARACTER
  29. FIELD Bonusgruppe AS CHARACTER
  30. FIELD Kundengruppe AS CHARACTER
  31. FIELD Verbandgruppe AS CHARACTER
  32. FIELD SubVerband AS CHARACTER
  33. FIELD Tour AS CHARACTER
  34. FIELD Lieferbedingung AS CHARACTER
  35. FIELD Abladevorschrift AS CHARACTER
  36. FIELD Wirtesonntag AS CHARACTER
  37. FIELD Avisierung AS CHARACTER
  38. FIELD Bierverband AS CHARACTER
  39. FIELD Regionbez AS CHARACTER
  40. FIELD Lieferart AS CHARACTER
  41. .
  42. DEFINE VARIABLE htDebst AS HANDLE NO-UNDO.
  43. htDebst = TEMP-TABLE tDebst:DEFAULT-BUFFER-HANDLE.
  44. { funktionen.i }
  45. cString = SUBSTITUTE('&1&4&2&4&3', 'SYSTEM', 'SYSTEM', '1000', CHR(01)).
  46. RUN ANMELDUNG ( cString ).
  47. cDateiName = 'exports\DebitorDetails.csv'.
  48. iMax = htDebst:NUM-FIELDS.
  49. FOR EACH Debst NO-LOCK
  50. WHERE Debst.Firma = '1000'
  51. AND Debst.Knr > 0:
  52. CREATE tDebst.
  53. BUFFER-COPY Debst
  54. TO tDebst.
  55. FIND FIRST Kondi NO-LOCK
  56. WHERE Kondi.Kond = Debst.Kond NO-ERROR.
  57. IF AVAILABLE Kondi THEN tDebst.Kondition = Kondi.KoText.
  58. RUN FIND_VERTRETER ( Debst.Vertr, OUTPUT cString ).
  59. tDebst.Vertreter = ENTRY(2, cString, CHR(01)).
  60. FIND FIRST Tabel NO-LOCK
  61. WHERE Tabel.Firma = Debst.Firma
  62. AND Tabel.Recart = 'ABCGRP'
  63. AND Tabel.CodeI = Debst.ABC_Grp NO-ERROR.
  64. IF AVAILABLE Tabel THEN tDebst.ABCGruppe = Tabel.Bez1.
  65. FIND FIRST Tabel NO-LOCK
  66. WHERE Tabel.Firma = Debst.Firma
  67. AND Tabel.Recart = 'FAKART'
  68. AND Tabel.CodeI = Debst.Fak_Art NO-ERROR.
  69. IF AVAILABLE Tabel THEN tDebst.Fakturaart = Tabel.Bez1.
  70. RUN FIND_PREISGRUPPE (Debst.Preis_Grp, OUTPUT cString ).
  71. tDebst.Preisgruppe = ENTRY(2, cString, CHR(01)).
  72. RUN FIND_RABATTGRP ( Debst.Rab_Grp, OUTPUT cString ).
  73. tDebst.Rabattgruppe = ENTRY(2, cString, CHR(01)).
  74. FIND FIRST Tabel NO-LOCK
  75. WHERE Tabel.Firma = Debst.Firma
  76. AND Tabel.Recart = 'BONUS'
  77. AND Tabel.CodeI = Debst.Bonus_Grp NO-ERROR.
  78. IF AVAILABLE Tabel THEN tDebst.Bonusgruppe = Tabel.Bez1.
  79. RUN FIND_KUNDENGRUPPE ( Debst.Ku_Grp, OUTPUT cString ).
  80. tDebst.Kundengruppe = ENTRY(2, cString, CHR(01)).
  81. FIND FIRST Tabel NO-LOCK
  82. WHERE Tabel.Firma = Debst.Firma
  83. AND Tabel.Recart = 'VERBAND'
  84. AND Tabel.CodeI = Debst.Verband_Grp NO-ERROR.
  85. IF AVAILABLE Tabel THEN tDebst.Verbandgruppe = Tabel.Bez1.
  86. FIND FIRST Tabel NO-LOCK
  87. WHERE Tabel.Firma = Debst.Firma
  88. AND Tabel.Recart = 'SUBVERBAND'
  89. AND Tabel.CodeI = Debst.Subverband_Grp
  90. AND Tabel.CodeC = STRING(Debst.Verband_Grp,'999999')NO-ERROR.
  91. IF AVAILABLE Tabel THEN tDebst.SubVerband = Tabel.Bez1.
  92. FIND FIRST Tabel NO-LOCK
  93. WHERE Tabel.Firma = Debst.Firma
  94. AND Tabel.Recart = 'TOUR1'
  95. AND Tabel.CodeI = Debst.Tour_Nr1 NO-ERROR.
  96. IF AVAILABLE Tabel THEN tDebst.Tour = Tabel.Bez1.
  97. FIND FIRST Tabel NO-LOCK
  98. WHERE Tabel.Firma = Debst.Firma
  99. AND Tabel.Recart = 'LIEFBED'
  100. AND Tabel.CodeI = Debst.Lief_Bed NO-ERROR.
  101. IF AVAILABLE Tabel THEN tDebst.Lieferbedingung = Tabel.Bez1.
  102. FIND FIRST Tabel NO-LOCK
  103. WHERE Tabel.Firma = Debst.Firma
  104. AND Tabel.Recart = 'ABLAD'
  105. AND Tabel.CodeI = Debst.Ablad_Vor NO-ERROR.
  106. IF AVAILABLE Tabel THEN tDebst.Abladevorschrift = Tabel.Bez1.
  107. RUN FIND_WIRTESONNTAG ( Debst.Wirt_So, OUTPUT cString ).
  108. tDebst.Wirtesonntag = ENTRY(2, cString, CHR(01)).
  109. FIND FIRST Tabel NO-LOCK
  110. WHERE Tabel.Firma = Debst.Firma
  111. AND Tabel.Recart = 'AVIS'
  112. AND Tabel.CodeI = Debst.Avis NO-ERROR.
  113. IF AVAILABLE Tabel THEN tDebst.Avisierung = Tabel.Bez1.
  114. FIND FIRST Tabel NO-LOCK
  115. WHERE Tabel.Firma = Debst.Firma
  116. AND Tabel.Recart = 'BIER'
  117. AND Tabel.CodeI = Debst.Bier_Cd NO-ERROR.
  118. IF AVAILABLE Tabel THEN tDebst.Bierverband = Tabel.Bez1.
  119. FIND FIRST Tabel NO-LOCK
  120. WHERE Tabel.Firma = Debst.Firma
  121. AND Tabel.Recart = 'REG'
  122. AND Tabel.CodeI = Debst.Region NO-ERROR.
  123. IF AVAILABLE Tabel THEN tDebst.Regionbez = Tabel.Bez1.
  124. END.
  125. OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  126. DO i = 1 TO iMax:
  127. IF i > 1 THEN PUT CONTROL ';'.
  128. hFeld = htDebst:BUFFER-FIELD (i).
  129. iExtent = hFeld:EXTENT.
  130. IF iExtent = 0 THEN
  131. DO:
  132. PUT CONTROL htDebst:BUFFER-FIELD (i):LABEL.
  133. NEXT.
  134. END.
  135. DO ix = 1 TO iExtent:
  136. cString = hFeld:LABEL + '-' + STRING(ix).
  137. PUT CONTROL cString.
  138. IF ix < iExtent THEN PUT CONTROL ';'.
  139. END.
  140. END.
  141. PUT CONTROL CHR(10).
  142. FOR EACH tDebst NO-LOCK:
  143. DO i = 1 TO iMax:
  144. IF i > 1 THEN PUT CONTROL ';'.
  145. hFeld = htDebst:BUFFER-FIELD (i).
  146. iExtent = hFeld:EXTENT.
  147. IF iExtent = 0 THEN
  148. DO:
  149. cString = hFeld:BUFFER-VALUE(0).
  150. cString = REPLACE(cString, CHR(13), '' ).
  151. cString = REPLACE(cString, CHR(10), '%NL%' ).
  152. PUT CONTROL REPLACE(cString, ';', ':').
  153. NEXT.
  154. END.
  155. DO ix = 1 TO iExtent:
  156. cString = hFeld:BUFFER-VALUE(ix).
  157. cString = REPLACE(cString, CHR(13), '' ).
  158. cString = REPLACE(cString, CHR(10), '%NL%' ).
  159. PUT CONTROL REPLACE(cString, ';', ':').
  160. IF ix < iExtent THEN PUT CONTROL ';'.
  161. END.
  162. END.
  163. PUT CONTROL CHR(10).
  164. END.
  165. OUTPUT CLOSE.
  166. /*PUT CONTROL MESSAGE i '->' '-' EXTENT (oProperties) '-' oProperties[i]:Name '-' oProperties[i]:DataType '-' oProperties[i]:ToString()*/
  167. /* VIEW-AS ALERT-BOX. */
  168. /*DEF VAR theValue AS Progress.Lang.Object NO-UNDO. */
  169. /* */
  170. /*theValue = DYNAMIC-PROPERTY(oInvoice, "Amount"). */
  171. /* */
  172. /*IF theValue:WHATS-THE-TYPE = "decimal" THEN */
  173. /* RETURN STRING(theValue, ">>>>>9.99"). */
  174. /*ELSE */
  175. /* RETURN TRIM(theValue). // It is a character field*/