buildArtbezWortindex.p 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. DEF VAR cDiff AS CHAR NO-UNDO.
  2. DEF VAR cFeld AS CHAR NO-UNDO.
  3. DEF VAR kk AS INT NO-UNDO.
  4. DEF VAR kx AS INT NO-UNDO.
  5. DEF VAR cWort AS CHAR NO-UNDO.
  6. DISABLE TRIGGERS FOR LOAD OF Artbez.
  7. DISABLE TRIGGERS FOR LOAD OF ArtLief.
  8. FOR EACH Artst:
  9. IF Artst.Suchbe = '' THEN Artst.Suchbe = ENTRY(1, Artst.Bez, ' ').
  10. cWort = ''.
  11. FIND Artbez USE-INDEX Artbez-k1
  12. WHERE Artbez.Firma = Artst.Firma
  13. AND Artbez.Artnr = Artst.Artnr
  14. AND Artbez.Inhalt = Artst.Inhalt
  15. AND Artbez.Jahr = Artst.Jahr
  16. AND Artbez.Sprcd = 1 EXCLUSIVE-LOCK NO-WAIT NO-ERROR.
  17. IF NOT AVAILABLE Artbez THEN RETURN.
  18. RUN BEREINIGEN ( 0, Artbez.Bez1 ).
  19. RUN BEREINIGEN ( 0, Artbez.Bez2 ).
  20. DO kk = 1 TO 10:
  21. cFeld = Artbez.Zustext[kk].
  22. IF cFeld = '' THEN NEXT.
  23. RUN BEREINIGEN ( 0, cFeld ).
  24. END.
  25. RUN BEREINIGEN ( 0, Artst.Suchbe ).
  26. RUN BEREINIGEN ( 0, Artst.Strichcode ).
  27. RUN BEREINIGEN ( 0, TRIM(STRING(Artst.Artnr,'>>>>>9')) ).
  28. IF Artst.Inhalt > 0 THEN RUN BEREINIGEN ( 0, 'Inhalt=' + TRIM(STRING(Artst.Inhalt,'>>>>>9')) ).
  29. IF Artst.Jahr > 0 THEN RUN BEREINIGEN ( 0, 'Jahr=' + TRIM(STRING(Artst.Jahr ,'>>>>>9')) ).
  30. IF Artst.FremdNr <> '' THEN DO:
  31. RUN BEREINIGEN ( 0, STRING(Artst.FremdNr,'XXXXXX XXXX XXXX')).
  32. RUN BEREINIGEN ( 0, TRIM(STRING(INTEGER(SUBSTRING(Artst.FremdNr,01,06)),'>>>>>9'))).
  33. END.
  34. FIND KGebinde NO-LOCK
  35. WHERE KGebinde.Firma = Artst.Firma
  36. AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR.
  37. IF AVAILABLE KGebinde THEN RUN BEREINIGEN ( 0, KGebinde.KBez ).
  38. FOR EACH ArtLief NO-LOCK USE-INDEX ArtLief-k1
  39. WHERE ArtLief.Firma = Artst.Firma
  40. AND ArtLief.Artnr = Artst.Artnr
  41. AND ArtLief.Inhalt = Artst.Inhalt
  42. AND ArtLief.Jahr = Artst.Jahr :
  43. RUN BEREINIGEN ( 0, ArtLief.S_Artnr ).
  44. RUN BEREINIGEN ( 0, ArtLief.Strichcode_GGeb ).
  45. RUN BEREINIGEN ( 0, ArtLief.Strichcode_VGeb ).
  46. RUN BEREINIGEN ( 0, ArtLief.Strichcode_KGeb ).
  47. /*
  48. RUN BEREINIGEN ( 0, ArtLief.S_Bez1 ).
  49. RUN BEREINIGEN ( 0, ArtLief.S_Bez2 ).
  50. */
  51. cFeld = 'XLIEFSTX' + STRING(ArtLief.Knr,'999999').
  52. RUN BEREINIGEN ( 0, cFeld ).
  53. END.
  54. Artbez.WortIndex = TRIM(cWort).
  55. RELEASE KGebinde.
  56. RELEASE Artbez.
  57. RELEASE ArtLief.
  58. END.
  59. PROCEDURE BEREINIGEN:
  60. DEF INPUT PARAMETER ipArt AS INT NO-UNDO.
  61. DEF INPUT PARAMETER ipString AS CHAR NO-UNDO.
  62. DEF VAR wString AS CHAR NO-UNDO.
  63. DEF VAR xString AS CHAR NO-UNDO.
  64. DEF VAR yy AS INT NO-UNDO.
  65. IF ipString = '' THEN RETURN.
  66. wString = ipString.
  67. IF ipArt = 1 THEN DO:
  68. wString = REPLACE(wString, ' ', '').
  69. wString = REPLACE(wString, '.', '').
  70. wString = REPLACE(wString, '/', '').
  71. wString = REPLACE(wString, '-', '').
  72. END.
  73. wString = REPLACE(wString, '*' , '' ).
  74. wString = REPLACE(wString, '&' , ' ').
  75. wString = REPLACE(wString, '+' , '' ).
  76. wString = REPLACE(wString, '(' , '' ).
  77. wString = REPLACE(wString, ')' , '' ).
  78. wString = REPLACE(wString, '!' , '' ).
  79. wString = REPLACE(wString, '|' , '' ).
  80. wString = REPLACE(wString, '^' , '' ).
  81. wString = REPLACE(wString, ';' , '' ).
  82. wString = REPLACE(wString, "'" , '' ).
  83. wString = REPLACE(wString, ',' , '' ).
  84. wString = REPLACE(wString, ' ', ' ').
  85. wString = REPLACE(wString, '-' , ' ').
  86. wString = TRIM(wString).
  87. IF wString = '' THEN RETURN.
  88. DO yy = 1 TO NUM-ENTRIES(wString, ' '):
  89. xString = ENTRY(yy, wString, ' ').
  90. IF LOOKUP(xString, cWort, ' ') > 0 THEN NEXT.
  91. cWort = cWort + (IF cWort = '' THEN '' ELSE ' ')
  92. + xString.
  93. END.
  94. END PROCEDURE.