ExportAdressDetails.p 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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 tAdresse LIKE Adresse
  23. FIELD Land AS CHARACTER
  24. FIELD Sprache AS CHARACTER
  25. FIELD Anzeige AS CHARACTER
  26. FIELD Anrede AS CHARACTER
  27. .
  28. DEFINE VARIABLE htAdresse AS HANDLE NO-UNDO.
  29. htAdresse = TEMP-TABLE tAdresse:DEFAULT-BUFFER-HANDLE.
  30. cDateiName = 'exports\AdressDetails.csv'.
  31. iMax = htAdresse:NUM-FIELDS.
  32. FOR EACH Adresse NO-LOCK
  33. WHERE Adresse.Firma = '1000'
  34. AND Adresse.Knr > 0,
  35. FIRST Sprache NO-LOCK
  36. WHERE Sprache.Sprcd = Adresse.Sprcd,
  37. FIRST Anrede NO-LOCK
  38. WHERE Anrede.Sprcd = Adresse.Sprcd
  39. AND Anrede.Anrcd = Adresse.Anrcd:
  40. CREATE tAdresse.
  41. BUFFER-COPY Adresse
  42. TO tAdresse
  43. ASSIGN
  44. tAdresse.Sprache = Sprache.Bez
  45. tAdresse.Anzeige = Anrede.Anr_Anzeige
  46. tAdresse.Anrede = Anrede.Anr_Anrede.
  47. END.
  48. OUTPUT TO VALUE(cDateiName) NO-MAP NO-CONVERT.
  49. DO i = 1 TO iMax:
  50. IF i > 1 THEN PUT CONTROL ';'.
  51. hFeld = htAdresse:BUFFER-FIELD (i).
  52. iExtent = hFeld:EXTENT.
  53. IF iExtent = 0 THEN
  54. DO:
  55. PUT CONTROL htAdresse:BUFFER-FIELD (i):LABEL.
  56. NEXT.
  57. END.
  58. DO ix = 1 TO iExtent:
  59. cString = hFeld:LABEL + '-' + STRING(ix).
  60. PUT CONTROL cString.
  61. IF ix < iExtent THEN PUT CONTROL ';'.
  62. END.
  63. END.
  64. PUT CONTROL CHR(10).
  65. FOR EACH tAdresse NO-LOCK:
  66. DO i = 1 TO iMax:
  67. IF i > 1 THEN PUT CONTROL ';'.
  68. hFeld = htAdresse:BUFFER-FIELD (i).
  69. iExtent = hFeld:EXTENT.
  70. IF iExtent = 0 THEN
  71. DO:
  72. cString = hFeld:BUFFER-VALUE(0).
  73. cString = REPLACE(cString, CHR(13), '' ).
  74. cString = REPLACE(cString, CHR(10), '%NL%' ).
  75. PUT CONTROL REPLACE(cString, ';', ':').
  76. NEXT.
  77. END.
  78. DO ix = 1 TO iExtent:
  79. cString = hFeld:BUFFER-VALUE(ix).
  80. cString = REPLACE(cString, CHR(13), '' ).
  81. cString = REPLACE(cString, CHR(10), '%NL%' ).
  82. PUT CONTROL REPLACE(cString, ';', ':').
  83. IF ix < iExtent THEN PUT CONTROL ';'.
  84. END.
  85. END.
  86. PUT CONTROL CHR(10).
  87. END.
  88. OUTPUT CLOSE.
  89. /*PUT CONTROL MESSAGE i '->' '-' EXTENT (oProperties) '-' oProperties[i]:Name '-' oProperties[i]:DataType '-' oProperties[i]:ToString()*/
  90. /* VIEW-AS ALERT-BOX. */
  91. /*DEF VAR theValue AS Progress.Lang.Object NO-UNDO. */
  92. /* */
  93. /*theValue = DYNAMIC-PROPERTY(oInvoice, "Amount"). */
  94. /* */
  95. /*IF theValue:WHATS-THE-TYPE = "decimal" THEN */
  96. /* RETURN STRING(theValue, ">>>>>9.99"). */
  97. /*ELSE */
  98. /* RETURN TRIM(theValue). // It is a character field*/