LöschenAdresse.p 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. DEF VAR Firma AS CHAR NO-UNDO INIT '1000'.
  2. DEF VAR AdFirma AS CHAR NO-UNDO INIT '1000'.
  3. DEF VAR Knr AS INT NO-UNDO INIT 0.
  4. DEF TEMP-TABLE tDateien
  5. FIELD Datei AS CHAR
  6. FIELD Firma AS LOG.
  7. DEF TEMP-TABLE tBesko LIKE Besko
  8. INDEX tBesko-k1 AS PRIMARY
  9. Firma
  10. Knr.
  11. EMPTY TEMP-TABLE tDateien.
  12. FOR EACH _Field WHERE _Field._Field-Name BEGINS 'Knr' NO-LOCK:
  13. FIND _File OF _Field NO-LOCK.
  14. IF _File._File-Name = 'Benutzer' THEN NEXT.
  15. FIND FIRST tDateien WHERE tDateien.Datei = _File._File-Name NO-ERROR.
  16. IF AVAILABLE tDateien THEN NEXT.
  17. CREATE tDateien.
  18. ASSIGN
  19. tDateien.Datei = _File._File-Name
  20. tDateien.Firma = FALSE.
  21. END.
  22. FOR EACH _Field WHERE _Field._Field-Name BEGINS 'Firma' NO-LOCK:
  23. FIND _File OF _Field NO-LOCK.
  24. FIND FIRST tDateien WHERE tDateien.Datei = _File._File-Name NO-LOCK NO-ERROR.
  25. IF NOT AVAILABLE tDateien THEN NEXT.
  26. tDateien.Firma = TRUE.
  27. END.
  28. FIND Adresse USE-INDEX Adresse-k1
  29. WHERE Adresse.Firma = AdFirma
  30. AND Adresse.Knr = Knr NO-LOCK NO-ERROR.
  31. IF AVAILABLE Adresse THEN RUN LOESCHEN.
  32. PROCEDURE LOESCHEN:
  33. DEF VAR bHandle AS WIDGET-HANDLE NO-UNDO.
  34. DEF VAR dHandle AS WIDGET-HANDLE NO-UNDO.
  35. DEF VAR qHandle AS WIDGET-HANDLE NO-UNDO.
  36. DEF VAR sSelektion AS CHAR NO-UNDO.
  37. DEF VAR fErst AS LOG NO-UNDO.
  38. DEF VAR iRecid AS RECID NO-UNDO.
  39. DEF VAR cFirma AS CHAR NO-UNDO.
  40. DISABLE TRIGGERS FOR LOAD OF Aufze .
  41. DISABLE TRIGGERS FOR LOAD OF ArtLager.
  42. DISABLE TRIGGERS FOR LOAD OF ArtLief .
  43. DISABLE TRIGGERS FOR LOAD OF Aufko .
  44. DISABLE TRIGGERS FOR LOAD OF BesEing .
  45. DISABLE TRIGGERS FOR LOAD OF ArtLief .
  46. DISABLE TRIGGERS FOR LOAD OF Besze .
  47. DISABLE TRIGGERS FOR LOAD OF Debst .
  48. DISABLE TRIGGERS FOR LOAD OF Liefst .
  49. DISABLE TRIGGERS FOR LOAD OF AufLot .
  50. DISABLE TRIGGERS FOR LOAD OF RuestAuf.
  51. CREATE QUERY qHandle.
  52. FOR EACH Steuer NO-LOCK
  53. WHERE Steuer.AdFirma = AdFirma:
  54. MESSAGE Steuer.Firma Steuer.AdFirma knr
  55. VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  56. cFirma = Steuer.Firma.
  57. FOR EACH tDateien NO-LOCK
  58. BY tDateien.Datei:
  59. IF tDateien.Datei = 'Adresse' THEN NEXT.
  60. IF tDateien.Datei = 'HoReLager' THEN NEXT.
  61. IF tDateien.Datei = 'Artbw' AND
  62. Knr = 0 THEN NEXT.
  63. IF tDateien.Firma = FALSE AND
  64. cFirma <> AdFirma THEN NEXT.
  65. CREATE BUFFER bHandle FOR TABLE tDateien.Datei.
  66. qHandle:SET-BUFFERS(bHandle).
  67. IF tDateien.Firma = TRUE THEN
  68. DO:
  69. sSelektion = 'FOR EACH '
  70. + tDateien.Datei
  71. + ' WHERE '
  72. + tDateien.Datei + '.Firma = "' + cFirma + '" AND '
  73. + tDateien.Datei + '.Knr = ' + STRING(Knr).
  74. END.
  75. ELSE
  76. DO:
  77. sSelektion = 'FOR EACH '
  78. + tDateien.Datei
  79. + ' WHERE '
  80. + tDateien.Datei + '.Knr = ' + STRING(Knr).
  81. END.
  82. qHandle:QUERY-PREPARE(sSelektion).
  83. qHandle:SKIP-DELETED-RECORD = TRUE.
  84. qHandle:QUERY-OPEN().
  85. fErst = TRUE.
  86. REPEAT TRANSACTION:
  87. IF fErst THEN qHandle:GET-FIRST(EXCLUSIVE-LOCK, NO-WAIT).
  88. ELSE qHandle:GET-NEXT (EXCLUSIVE-LOCK, NO-WAIT).
  89. IF qHandle:QUERY-OFF-END THEN LEAVE.
  90. fErst = FALSE.
  91. dHandle = qHandle:GET-BUFFER-HANDLE().
  92. IF dHandle:LOCKED THEN NEXT.
  93. DO WHILE TRUE:
  94. IF bHandle:NAME <> 'Aufko' THEN LEAVE.
  95. iRecid = dHandle:RECID.
  96. FIND Aufko WHERE RECID(Aufko) = iRecid NO-LOCK NO-ERROR.
  97. FOR EACH AufGebKo OF Aufko:
  98. DELETE AufGebKo.
  99. END.
  100. FOR EACH AufGKon OF Aufko:
  101. DELETE AufGKon.
  102. END.
  103. FOR EACH AufRabSu OF Aufko:
  104. DELETE AufRabSu.
  105. END.
  106. FOR EACH AufSpRab USE-INDEX AufSpRab-k1
  107. WHERE AufSpRab.Firma = Aufko.Firma
  108. AND AufSpRab.Aufnr = Aufko.Aufnr:
  109. DELETE AufSpRab.
  110. END.
  111. FOR EACH Aufze OF Aufko:
  112. DELETE Aufze.
  113. END.
  114. FOR EACH AufLot OF Aufko:
  115. DELETE AufLot.
  116. END.
  117. FOR EACH RuestAuf OF Aufko:
  118. DELETE RuestAuf.
  119. END.
  120. RELEASE Aufko.
  121. LEAVE.
  122. END.
  123. DO WHILE TRUE:
  124. IF bHandle:NAME <> 'Besko' THEN LEAVE.
  125. iRecid = dHandle:RECID.
  126. FIND Besko WHERE RECID(Besko) = iRecid NO-LOCK NO-ERROR.
  127. FOR EACH BesGebKo OF Besko:
  128. DELETE BesGebKo.
  129. END.
  130. FOR EACH Besze OF Besko:
  131. DELETE Besze.
  132. END.
  133. RELEASE Besko.
  134. LEAVE.
  135. END.
  136. DO WHILE TRUE:
  137. IF bHandle:NAME <> 'Savko' THEN LEAVE.
  138. iRecid = dHandle:RECID.
  139. FIND Savko WHERE RECID(Savko) = iRecid NO-LOCK NO-ERROR.
  140. FOR EACH SavGebKo OF Savko:
  141. DELETE SavGebKo.
  142. END.
  143. FOR EACH SavGKon OF Savko:
  144. DELETE SavGKon.
  145. END.
  146. FOR EACH SavRabSu OF Savko:
  147. DELETE SavRabSu.
  148. END.
  149. FOR EACH SavSpRab USE-INDEX SavSpRab-k1
  150. WHERE SavSpRab.Firma = Savko.Firma
  151. AND SavSpRab.Aufnr = Savko.Aufnr:
  152. DELETE SavSpRab.
  153. END.
  154. FOR EACH Savze OF Savko:
  155. DELETE Savze.
  156. END.
  157. FOR EACH SavLot OF Savko:
  158. DELETE SavLot.
  159. END.
  160. FOR EACH RuestSav OF Savko:
  161. DELETE RuestSav.
  162. END.
  163. RELEASE Savko.
  164. LEAVE.
  165. END.
  166. dHandle:BUFFER-DELETE().
  167. END.
  168. qHandle:QUERY-CLOSE().
  169. DELETE OBJECT bHandle.
  170. END.
  171. REPEAT TRANSACTION:
  172. FIND Adresse USE-INDEX Adresse-k1
  173. WHERE Adresse.Firma = AdFirma
  174. AND Adresse.Knr = Knr NO-ERROR.
  175. IF AVAILABLE Adresse THEN DELETE Adresse.
  176. LEAVE.
  177. END.
  178. END.
  179. DELETE OBJECT qHandle.
  180. END PROCEDURE.