SageOpAbExcelErstellen.p 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. DEF VAR iKnr AS INT NO-UNDO.
  2. DEF VAR dDatum AS DATE NO-UNDO.
  3. DEF VAR iFaknr AS INT NO-UNDO.
  4. DEF VAR iNummer AS INT NO-UNDO.
  5. DEF VAR lNummer AS LOG NO-UNDO.
  6. DEF VAR lDatum AS LOG NO-UNDO.
  7. DEF TEMP-TABLE tExcel
  8. FIELD Feld_1 AS CHAR
  9. FIELD Feld_2 AS CHAR
  10. FIELD Feld_3 AS CHAR
  11. FIELD Feld_4 AS CHAR
  12. FIELD Feld_5 AS CHAR
  13. FIELD Feld_6 AS CHAR
  14. FIELD Feld_7 AS CHAR
  15. FIELD Feld_8 AS CHAR
  16. FIELD Feld_9 AS CHAR
  17. FIELD Feld_10 AS CHAR
  18. FIELD Feld_11 AS CHAR
  19. FIELD Feld_12 AS CHAR
  20. FIELD Feld_13 AS CHAR
  21. .
  22. DEF TEMP-TABLE tSageOp
  23. FIELD Knr AS INT
  24. FIELD Faknr AS INT
  25. Field FakBetr AS DEC
  26. FIELD Saldo AS DEC
  27. FIELD GeMIS_Saldo AS DEC
  28. FIELD GeMIS_Found AS LOG INIT FALSE
  29. FIELD Sage_Found AS LOG INIT FALSE
  30. .
  31. DEF TEMP-TABLE tGemisOp
  32. FIELD Knr AS INT
  33. FIELD Faknr AS INT
  34. Field FakBetr AS DEC
  35. FIELD Saldo AS DEC
  36. FIELD Sage_Saldo AS DEC
  37. FIELD Sage_Found AS LOG INIT FALSE
  38. .
  39. EMPTY TEMP-TABLE tExcel.
  40. EMPTY TEMP-TABLE tSageOp.
  41. EMPTY TEMP-TABLE tGeMisOp.
  42. INPUT FROM 'C:\Entwicklung\TEMP\Huber\DebitorenlisteSage.csv' NO-MAP NO-CONVERT.
  43. REPEAT TRANSACTION ON STOP UNDO, LEAVE:
  44. CREATE tExcel.
  45. IMPORT DELIMITER ';' tExcel.
  46. END.
  47. INPUT CLOSE.
  48. FOR EACH tExcel:
  49. IF tExcel.Feld_1 = '' THEN NEXT.
  50. iNummer = INTEGER(tExcel.Feld_1) NO-ERROR.
  51. IF ERROR-STATUS:ERROR OR
  52. iNummer = 0 THEN lNummer = FALSE.
  53. ELSE lNummer = TRUE.
  54. dDatum = DATE(tExcel.Feld_1) NO-ERROR.
  55. IF ERROR-STATUS:ERROR OR
  56. dDatum = ? THEN lDatum = FALSE.
  57. ELSE lDatum = TRUE.
  58. IF NOT lNummer AND
  59. NOT lDatum THEN DO:
  60. DELETE tExcel.
  61. NEXT.
  62. END.
  63. IF lNummer THEN DO:
  64. iKnr = iNummer.
  65. NEXT.
  66. END.
  67. CREATE tSageOp.
  68. ASSIGN tSageOp.Knr = iKnr
  69. tSageOp.Faknr = INTEGER(tExcel.Feld_2)
  70. tSageOp.FakBetr = DECIMAL(tExcel.Feld_7)
  71. tSageOp.Saldo = DECIMAL(tExcel.Feld_8)
  72. tSageOp.Sage_Found = TRUE.
  73. END.
  74. FOR EACH Debop NO-LOCK
  75. WHERE Debop.Firma = '1000'
  76. AND Debop.Saldo <> 0:
  77. FIND FIRST tSageOp
  78. WHERE tSageOp.Knr = Debop.Knr
  79. AND tSageOp.Faknr = Debop.Faknr NO-ERROR.
  80. IF AVAILABLE tSageOp THEN DO:
  81. ASSIGN tSageOp.GeMIS_Found = TRUE
  82. tSageOp.GeMIS_Saldo = Debop.Saldo.
  83. NEXT.
  84. END.
  85. CREATE tSageOp.
  86. ASSIGN tSageOp.Knr = Debop.Knr
  87. tSageOp.Faknr = Debop.Faknr
  88. tSageOp.FakBetr = Debop.Fakbetr
  89. tSageOp.Saldo = 0
  90. tSageOp.Sage_Found = FALSE
  91. tSageOp.GeMIS_Found = TRUE
  92. tSageOp.GeMIS_Saldo = Debop.Saldo.
  93. END.
  94. OUTPUT TO 'C:\Entwicklung\Temp\Huber\SAGE_OP_Kurz.csv' NO-MAP NO-CONVERT.
  95. FOR EACH tSageOP:
  96. EXPORT DELIMITER ';' tSageOp.
  97. END.
  98. OUTPUT CLOSE.