g-reorg-adressen.w 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2
  2. &ANALYZE-RESUME
  3. /* Connected Databases
  4. anadat PROGRESS
  5. */
  6. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  7. &Scoped-define FRAME-NAME gLoeschAdressen
  8. /* Temp-Table and Buffer definitions */
  9. DEFINE TEMP-TABLE TAdresse NO-UNDO LIKE Adresse.
  10. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gLoeschAdressen
  11. /*------------------------------------------------------------------------
  12. File:
  13. Description: from cntnrdlg.w - ADM2 SmartDialog Template
  14. Input Parameters:
  15. <none>
  16. Output Parameters:
  17. <none>
  18. Author:
  19. Created:
  20. ------------------------------------------------------------------------*/
  21. /* This .W file was created with the Progress AppBuilder. */
  22. /*----------------------------------------------------------------------*/
  23. /* Create an unnamed pool to store all the widgets created
  24. by this procedure. This is a good default which assures
  25. that this procedure's triggers and internal procedures
  26. will execute in this procedure's storage, and that proper
  27. cleanup will occur on deletion of the procedure. */
  28. CREATE WIDGET-POOL.
  29. /* *************************** Definitions ************************** */
  30. /* Parameters Definitions --- */
  31. /* Local Variable Definitions --- */
  32. DEF VAR MaxPage AS INT NO-UNDO.
  33. DEF VAR AktSeite AS INT NO-UNDO.
  34. DEF VAR FMutFlag AS LOG NO-UNDO.
  35. DEF VAR Firma AS CHAR NO-UNDO.
  36. DEF VAR AdFirma AS CHAR NO-UNDO.
  37. DEF VAR fJa AS LOG NO-UNDO.
  38. DEF VAR Knr AS INT NO-UNDO.
  39. DEF TEMP-TABLE tDateien
  40. FIELD Datei AS CHAR
  41. FIELD Firma AS LOG.
  42. DEF TEMP-TABLE tSteuer LIKE Steuer.
  43. DEF TEMP-TABLE tBesko LIKE Besko
  44. INDEX tBesko-k1 AS PRIMARY
  45. Firma
  46. Knr.
  47. /* _UIB-CODE-BLOCK-END */
  48. &ANALYZE-RESUME
  49. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  50. /* ******************** Preprocessor Definitions ******************** */
  51. &Scoped-define PROCEDURE-TYPE SmartDialog
  52. &Scoped-define DB-AWARE no
  53. &Scoped-define ADM-CONTAINER DIALOG-BOX
  54. &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  55. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  56. &Scoped-define FRAME-NAME gLoeschAdressen
  57. &Scoped-define BROWSE-NAME Br_Artikel
  58. /* Internal Tables (found by Frame, Query & Browse Queries) */
  59. &Scoped-define INTERNAL-TABLES TAdresse
  60. /* Definitions for BROWSE Br_Artikel */
  61. &Scoped-define FIELDS-IN-QUERY-Br_Artikel TAdresse.Firma TAdresse.Knr ~
  62. TAdresse.Anzeig_br
  63. &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Artikel
  64. &Scoped-define QUERY-STRING-Br_Artikel FOR EACH TAdresse NO-LOCK INDEXED-REPOSITION
  65. &Scoped-define OPEN-QUERY-Br_Artikel OPEN QUERY Br_Artikel FOR EACH TAdresse NO-LOCK INDEXED-REPOSITION.
  66. &Scoped-define TABLES-IN-QUERY-Br_Artikel TAdresse
  67. &Scoped-define FIRST-TABLE-IN-QUERY-Br_Artikel TAdresse
  68. /* Definitions for DIALOG-BOX gLoeschAdressen */
  69. /* Standard List Definitions */
  70. &Scoped-Define ENABLED-OBJECTS RECT-41 F_Datum Br_Artikel Btn_OK Btn_Cancel
  71. &Scoped-Define DISPLAYED-OBJECTS F_Datum F_Status
  72. /* Custom List Definitions */
  73. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  74. &Scoped-define List-6 F_Datum
  75. /* _UIB-PREPROCESSOR-BLOCK-END */
  76. &ANALYZE-RESUME
  77. /* *********************** Control Definitions ********************** */
  78. /* Define a dialog box */
  79. /* Definitions of the field level widgets */
  80. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  81. LABEL "&Abbrechen"
  82. SIZE 15 BY 1.
  83. DEFINE BUTTON Btn_OK
  84. LABEL "&Start"
  85. SIZE 15 BY 1.
  86. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U
  87. LABEL "keine Bewegungen mehr seit ?"
  88. VIEW-AS FILL-IN NATIVE
  89. SIZE 16.8 BY 1
  90. BGCOLOR 15 NO-UNDO.
  91. DEFINE VARIABLE F_Status AS CHARACTER FORMAT "X(80)":U
  92. VIEW-AS FILL-IN NATIVE
  93. SIZE 98 BY 1
  94. BGCOLOR 14 FONT 6 NO-UNDO.
  95. DEFINE RECTANGLE RECT-41
  96. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  97. SIZE 108 BY 15.24.
  98. /* Query definitions */
  99. &ANALYZE-SUSPEND
  100. DEFINE QUERY Br_Artikel FOR
  101. TAdresse SCROLLING.
  102. &ANALYZE-RESUME
  103. /* Browse definitions */
  104. DEFINE BROWSE Br_Artikel
  105. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Artikel gLoeschAdressen _STRUCTURED
  106. QUERY Br_Artikel NO-LOCK DISPLAY
  107. TAdresse.Firma FORMAT "X(8)":U
  108. TAdresse.Knr FORMAT "999999":U
  109. TAdresse.Anzeig_br COLUMN-LABEL "Adresse" FORMAT "x(75)":U
  110. /* _UIB-CODE-BLOCK-END */
  111. &ANALYZE-RESUME
  112. WITH NO-ROW-MARKERS SEPARATORS SIZE 98 BY 8.52.
  113. /* ************************ Frame Definitions *********************** */
  114. DEFINE FRAME gLoeschAdressen
  115. F_Datum AT ROW 2 COL 36.2 COLON-ALIGNED
  116. Br_Artikel AT ROW 3.52 COL 8
  117. F_Status AT ROW 12.52 COL 6 COLON-ALIGNED NO-LABEL NO-TAB-STOP
  118. Btn_OK AT ROW 14.81 COL 14.2
  119. Btn_Cancel AT ROW 14.81 COL 62.2
  120. RECT-41 AT ROW 1.24 COL 2
  121. SPACE(0.99) SKIP(0.22)
  122. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  123. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  124. TITLE "Definitives löschen von Adressen"
  125. CANCEL-BUTTON Btn_Cancel.
  126. /* *********************** Procedure Settings ************************ */
  127. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  128. /* Settings for THIS-PROCEDURE
  129. Type: SmartDialog
  130. Allow: Basic,Browse,DB-Fields,Query,Smart
  131. Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target
  132. Design Page: 1
  133. Other Settings: COMPILE
  134. Temp-Tables and Buffers:
  135. TABLE: TAdresse T "?" NO-UNDO AnaDat Adresse
  136. END-TABLES.
  137. */
  138. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  139. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gLoeschAdressen
  140. /* ************************* Included-Libraries *********************** */
  141. {src/adm2/containr.i}
  142. /* _UIB-CODE-BLOCK-END */
  143. &ANALYZE-RESUME
  144. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  145. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  146. /* SETTINGS FOR DIALOG-BOX gLoeschAdressen
  147. FRAME-NAME */
  148. /* BROWSE-TAB Br_Artikel F_Datum gLoeschAdressen */
  149. ASSIGN
  150. FRAME gLoeschAdressen:SCROLLABLE = FALSE
  151. FRAME gLoeschAdressen:HIDDEN = TRUE.
  152. /* SETTINGS FOR FILL-IN F_Datum IN FRAME gLoeschAdressen
  153. 6 */
  154. /* SETTINGS FOR FILL-IN F_Status IN FRAME gLoeschAdressen
  155. NO-ENABLE */
  156. ASSIGN
  157. F_Status:HIDDEN IN FRAME gLoeschAdressen = TRUE
  158. F_Status:READ-ONLY IN FRAME gLoeschAdressen = TRUE.
  159. /* _RUN-TIME-ATTRIBUTES-END */
  160. &ANALYZE-RESUME
  161. /* Setting information for Queries and Browse Widgets fields */
  162. &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Artikel
  163. /* Query rebuild information for BROWSE Br_Artikel
  164. _TblList = "Temp-Tables.TAdresse"
  165. _Options = "NO-LOCK INDEXED-REPOSITION"
  166. _FldNameList[1] = Temp-Tables.TAdresse.Firma
  167. _FldNameList[2] = Temp-Tables.TAdresse.Knr
  168. _FldNameList[3] > Temp-Tables.TAdresse.Anzeig_br
  169. "TAdresse.Anzeig_br" "Adresse" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no
  170. _Query is NOT OPENED
  171. */ /* BROWSE Br_Artikel */
  172. &ANALYZE-RESUME
  173. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gLoeschAdressen
  174. /* Query rebuild information for DIALOG-BOX gLoeschAdressen
  175. _Options = "SHARE-LOCK"
  176. _Query is NOT OPENED
  177. */ /* DIALOG-BOX gLoeschAdressen */
  178. &ANALYZE-RESUME
  179. /* ************************ Control Triggers ************************ */
  180. &Scoped-define SELF-NAME gLoeschAdressen
  181. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gLoeschAdressen gLoeschAdressen
  182. ON END-ERROR OF FRAME gLoeschAdressen /* Definitives löschen von Adressen */
  183. DO:
  184. RUN ENDE.
  185. RETURN NO-APPLY.
  186. END.
  187. /* _UIB-CODE-BLOCK-END */
  188. &ANALYZE-RESUME
  189. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gLoeschAdressen gLoeschAdressen
  190. ON GO OF FRAME gLoeschAdressen /* Definitives löschen von Adressen */
  191. DO:
  192. /*
  193. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR.
  194. */
  195. END.
  196. /* _UIB-CODE-BLOCK-END */
  197. &ANALYZE-RESUME
  198. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gLoeschAdressen gLoeschAdressen
  199. ON WINDOW-CLOSE OF FRAME gLoeschAdressen /* Definitives löschen von Adressen */
  200. DO:
  201. RUN ENDE.
  202. RETURN NO-APPLY.
  203. END.
  204. /* _UIB-CODE-BLOCK-END */
  205. &ANALYZE-RESUME
  206. &Scoped-define SELF-NAME Btn_Cancel
  207. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gLoeschAdressen
  208. ON CHOOSE OF Btn_Cancel IN FRAME gLoeschAdressen /* Abbrechen */
  209. DO:
  210. DO WITH FRAME {&FRAME-NAME}:
  211. IF Btn_OK:LABEL = 'Reorg' THEN
  212. DO:
  213. Btn_OK:LABEL = 'Start'.
  214. FOR EACH tAdresse:
  215. DELETE tAdresse.
  216. END.
  217. RUN OPEN_ZU_LOESCHENDE_ADRESSEN.
  218. APPLY 'ENTRY' TO F_Datum.
  219. RETURN NO-APPLY.
  220. END.
  221. END.
  222. RUN ENDE.
  223. RETURN NO-APPLY.
  224. END.
  225. /* _UIB-CODE-BLOCK-END */
  226. &ANALYZE-RESUME
  227. &Scoped-define SELF-NAME Btn_OK
  228. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gLoeschAdressen
  229. ON CHOOSE OF Btn_OK IN FRAME gLoeschAdressen /* Start */
  230. DO:
  231. IF SELF:LABEL = 'Reorg' THEN
  232. DO:
  233. fJa = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, INPUT 1083 ) NO-ERROR.
  234. IF NOT fJa THEN RETURN NO-APPLY.
  235. RUN REORGANISATION.
  236. RUN ENDE.
  237. END.
  238. ELSE
  239. DO:
  240. RUN SAMMELN.
  241. END.
  242. RETURN NO-APPLY.
  243. END.
  244. /* _UIB-CODE-BLOCK-END */
  245. &ANALYZE-RESUME
  246. &Scoped-define SELF-NAME F_Datum
  247. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum gLoeschAdressen
  248. ON VALUE-CHANGED OF F_Datum IN FRAME gLoeschAdressen /* keine Bewegungen mehr seit ? */
  249. DO:
  250. IF Btn_OK:LABEL <> 'Start' THEN Btn_OK:LABEL = 'Start'.
  251. END.
  252. /* _UIB-CODE-BLOCK-END */
  253. &ANALYZE-RESUME
  254. &Scoped-define BROWSE-NAME Br_Artikel
  255. &UNDEFINE SELF-NAME
  256. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gLoeschAdressen
  257. /* *************************** Main Block *************************** */
  258. MaxPage = 1.
  259. AktSeite = 1.
  260. Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR.
  261. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR.
  262. EMPTY TEMP-TABLE tSteuer.
  263. FOR EACH Steuer WHERE Steuer.AdFirma = AdFirma NO-LOCK:
  264. FIND Mandant WHERE Mandant.Firma = Steuer.Firma NO-LOCK NO-ERROR.
  265. IF NOT AVAILABLE Mandant THEN NEXT.
  266. IF Mandant.Zustand = FALSE THEN NEXT.
  267. CREATE tSteuer.
  268. BUFFER-COPY Steuer TO tSteuer.
  269. END.
  270. SESSION:DATA-ENTRY-RETURN = TRUE.
  271. /* TRIGGERS ------------------------------------------------------ */
  272. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE
  273. DO:
  274. RUN ENDE.
  275. RETURN NO-APPLY.
  276. END.
  277. /* ------------------------------------------------------------------ */
  278. {src/adm2/dialogmn.i}
  279. /* _UIB-CODE-BLOCK-END */
  280. &ANALYZE-RESUME
  281. /* ********************** Internal Procedures *********************** */
  282. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gLoeschAdressen _ADM-CREATE-OBJECTS
  283. PROCEDURE adm-create-objects :
  284. /*------------------------------------------------------------------------------
  285. Purpose: Create handles for all SmartObjects used in this procedure.
  286. After SmartObjects are initialized, then SmartLinks are added.
  287. Parameters: <none>
  288. ------------------------------------------------------------------------------*/
  289. END PROCEDURE.
  290. /* _UIB-CODE-BLOCK-END */
  291. &ANALYZE-RESUME
  292. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gLoeschAdressen _DEFAULT-DISABLE
  293. PROCEDURE disable_UI :
  294. /*------------------------------------------------------------------------------
  295. Purpose: DISABLE the User Interface
  296. Parameters: <none>
  297. Notes: Here we clean-up the user-interface by deleting
  298. dynamic widgets we have created and/or hide
  299. frames. This procedure is usually called when
  300. we are ready to "clean-up" after running.
  301. ------------------------------------------------------------------------------*/
  302. /* Hide all frames. */
  303. HIDE FRAME gLoeschAdressen.
  304. END PROCEDURE.
  305. /* _UIB-CODE-BLOCK-END */
  306. &ANALYZE-RESUME
  307. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gLoeschAdressen
  308. PROCEDURE enableObject :
  309. /*------------------------------------------------------------------------------
  310. Purpose: Super Override
  311. Parameters:
  312. Notes:
  313. ------------------------------------------------------------------------------*/
  314. /* Code placed here will execute PRIOR to standard behavior. */
  315. RUN SUPER.
  316. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR.
  317. END PROCEDURE.
  318. /* _UIB-CODE-BLOCK-END */
  319. &ANALYZE-RESUME
  320. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gLoeschAdressen _DEFAULT-ENABLE
  321. PROCEDURE enable_UI :
  322. /*------------------------------------------------------------------------------
  323. Purpose: ENABLE the User Interface
  324. Parameters: <none>
  325. Notes: Here we display/view/enable the widgets in the
  326. user-interface. In addition, OPEN all queries
  327. associated with each FRAME and BROWSE.
  328. These statements here are based on the "Other
  329. Settings" section of the widget Property Sheets.
  330. ------------------------------------------------------------------------------*/
  331. DISPLAY F_Datum F_Status
  332. WITH FRAME gLoeschAdressen.
  333. ENABLE RECT-41 F_Datum Br_Artikel Btn_OK Btn_Cancel
  334. WITH FRAME gLoeschAdressen.
  335. VIEW FRAME gLoeschAdressen.
  336. {&OPEN-BROWSERS-IN-QUERY-gLoeschAdressen}
  337. END PROCEDURE.
  338. /* _UIB-CODE-BLOCK-END */
  339. &ANALYZE-RESUME
  340. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gLoeschAdressen
  341. PROCEDURE ENDE :
  342. /*------------------------------------------------------------------------------
  343. Purpose:
  344. Parameters: <none>
  345. Notes:
  346. ------------------------------------------------------------------------------*/
  347. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ).
  348. APPLY 'GO' TO FRAME {&FRAME-NAME}.
  349. RETURN NO-APPLY.
  350. END PROCEDURE.
  351. /* _UIB-CODE-BLOCK-END */
  352. &ANALYZE-RESUME
  353. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gLoeschAdressen
  354. PROCEDURE exitObject :
  355. /*------------------------------------------------------------------------------
  356. Purpose: Super Override
  357. Parameters:
  358. Notes:
  359. ------------------------------------------------------------------------------*/
  360. RUN ENDE.
  361. RETURN NO-APPLY.
  362. END PROCEDURE.
  363. /* _UIB-CODE-BLOCK-END */
  364. &ANALYZE-RESUME
  365. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN gLoeschAdressen
  366. PROCEDURE LOESCHEN :
  367. /*------------------------------------------------------------------------------
  368. Purpose:
  369. Parameters: <none>
  370. Notes:
  371. ------------------------------------------------------------------------------*/
  372. DEF VAR bHandle AS WIDGET-HANDLE NO-UNDO.
  373. DEF VAR dHandle AS WIDGET-HANDLE NO-UNDO.
  374. DEF VAR qHandle AS WIDGET-HANDLE NO-UNDO.
  375. DEF VAR sSelektion AS CHAR NO-UNDO.
  376. DEF VAR fErst AS LOG NO-UNDO.
  377. DEF VAR iRecid AS RECID NO-UNDO.
  378. DEF VAR cFirma AS CHAR NO-UNDO.
  379. DO WITH FRAME {&FRAME-NAME}:
  380. Btn_OK :SENSITIVE = FALSE.
  381. Btn_Cancel:SENSITIVE = FALSE.
  382. F_Status :HIDDEN = FALSE.
  383. F_Status :SENSITIVE = TRUE.
  384. END.
  385. DISABLE TRIGGERS FOR LOAD OF Aufze.
  386. DISABLE TRIGGERS FOR LOAD OF ArtLager.
  387. DISABLE TRIGGERS FOR LOAD OF ArtLief .
  388. DISABLE TRIGGERS FOR LOAD OF Aufko .
  389. DISABLE TRIGGERS FOR LOAD OF BesEing .
  390. DISABLE TRIGGERS FOR LOAD OF ArtLief .
  391. DISABLE TRIGGERS FOR LOAD OF Besze .
  392. DISABLE TRIGGERS FOR LOAD OF Debst .
  393. DISABLE TRIGGERS FOR LOAD OF Liefst .
  394. DISABLE TRIGGERS FOR LOAD OF AufLot .
  395. DISABLE TRIGGERS FOR LOAD OF RuestAuf.
  396. SESSION:IMMEDIATE-DISPLAY = TRUE.
  397. CREATE QUERY qHandle.
  398. FOR EACH tSteuer WITH FRAME {&FRAME-NAME}:
  399. cFirma = tSteuer.Firma.
  400. FOR EACH tDateien NO-LOCK
  401. BY tDateien.Datei:
  402. IF tDateien.Datei = 'Adresse' THEN NEXT.
  403. IF tDateien.Datei = 'Artbw' AND
  404. Knr = 0 THEN NEXT.
  405. IF tDateien.Firma = FALSE AND
  406. cFirma <> AdFirma THEN NEXT.
  407. CREATE BUFFER bHandle FOR TABLE tDateien.Datei.
  408. qHandle:SET-BUFFERS(bHandle).
  409. IF tDateien.Firma = TRUE THEN
  410. DO:
  411. sSelektion = 'FOR EACH '
  412. + tDateien.Datei
  413. + ' WHERE '
  414. + tDateien.Datei + '.Firma = "' + cFirma + '" AND '
  415. + tDateien.Datei + '.Knr = ' + STRING(Knr).
  416. END.
  417. ELSE
  418. DO:
  419. sSelektion = 'FOR EACH '
  420. + tDateien.Datei
  421. + ' WHERE '
  422. + tDateien.Datei + '.Knr = ' + STRING(Knr).
  423. END.
  424. qHandle:QUERY-PREPARE(sSelektion).
  425. qHandle:SKIP-DELETED-RECORD = TRUE.
  426. qHandle:QUERY-OPEN().
  427. F_Status = 'Löschen der Tabelle -> "' + bHandle:NAME
  428. + '" mit '
  429. + ' Knr = ' + STRING(Knr).
  430. F_Status:SCREEN-VALUE = F_Status.
  431. fErst = TRUE.
  432. REPEAT TRANSACTION:
  433. IF fErst THEN qHandle:GET-FIRST(EXCLUSIVE-LOCK, NO-WAIT).
  434. ELSE qHandle:GET-NEXT (EXCLUSIVE-LOCK, NO-WAIT).
  435. IF qHandle:QUERY-OFF-END THEN LEAVE.
  436. dHandle = qHandle:GET-BUFFER-HANDLE().
  437. IF dHandle:LOCKED THEN NEXT.
  438. DO WHILE TRUE:
  439. IF bHandle:NAME <> 'Aufko' THEN LEAVE.
  440. iRecid = dHandle:RECID.
  441. FIND Aufko WHERE RECID(Aufko) = iRecid NO-LOCK NO-ERROR.
  442. FOR EACH AufGebKo OF Aufko:
  443. DELETE AufGebKo.
  444. END.
  445. FOR EACH AufGKon OF Aufko:
  446. DELETE AufGKon.
  447. END.
  448. FOR EACH AufRabSu OF Aufko:
  449. DELETE AufRabSu.
  450. END.
  451. FOR EACH AufSpRab USE-INDEX AufSpRab-k1
  452. WHERE AufSpRab.Firma = Aufko.Firma
  453. AND AufSpRab.Aufnr = Aufko.Aufnr:
  454. DELETE AufSpRab.
  455. END.
  456. FOR EACH Aufze OF Aufko:
  457. DELETE Aufze.
  458. END.
  459. FOR EACH AufLot OF Aufko:
  460. DELETE AufLot.
  461. END.
  462. FOR EACH RuestAuf OF Aufko:
  463. DELETE RuestAuf.
  464. END.
  465. RELEASE Aufko.
  466. LEAVE.
  467. END.
  468. DO WHILE TRUE:
  469. IF bHandle:NAME <> 'Besko' THEN LEAVE.
  470. iRecid = dHandle:RECID.
  471. FIND Besko WHERE RECID(Besko) = iRecid NO-LOCK NO-ERROR.
  472. FOR EACH BesGebKo OF Besko:
  473. DELETE BesGebKo.
  474. END.
  475. FOR EACH Besze OF Besko:
  476. DELETE Besze.
  477. END.
  478. FOR EACH BesEing OF Besko:
  479. DELETE BesEing.
  480. END.
  481. RELEASE Besko.
  482. LEAVE.
  483. END.
  484. DO WHILE TRUE:
  485. IF bHandle:NAME <> 'Savko' THEN LEAVE.
  486. iRecid = dHandle:RECID.
  487. FIND Savko WHERE RECID(Savko) = iRecid NO-LOCK NO-ERROR.
  488. FOR EACH SavGebKo OF Savko:
  489. DELETE SavGebKo.
  490. END.
  491. FOR EACH SavGKon OF Savko:
  492. DELETE SavGKon.
  493. END.
  494. FOR EACH SavRabSu OF Savko:
  495. DELETE SavRabSu.
  496. END.
  497. FOR EACH SavSpRab USE-INDEX SavSpRab-k1
  498. WHERE SavSpRab.Firma = Savko.Firma
  499. AND SavSpRab.Aufnr = Savko.Aufnr:
  500. DELETE SavSpRab.
  501. END.
  502. FOR EACH Savze OF Savko:
  503. DELETE Savze.
  504. END.
  505. FOR EACH SavLot OF Savko:
  506. DELETE SavLot.
  507. END.
  508. FOR EACH RuestSav OF Savko:
  509. DELETE RuestSav.
  510. END.
  511. RELEASE Savko.
  512. LEAVE.
  513. END.
  514. dHandle:BUFFER-DELETE().
  515. END.
  516. qHandle:QUERY-CLOSE().
  517. DELETE OBJECT bHandle.
  518. END.
  519. REPEAT TRANSACTION:
  520. FIND Adresse USE-INDEX Adresse-k1
  521. WHERE Adresse.Firma = AdFirma
  522. AND Adresse.Knr = Knr NO-ERROR.
  523. IF AVAILABLE Adresse THEN DELETE Adresse.
  524. LEAVE.
  525. END.
  526. END.
  527. DELETE OBJECT qHandle.
  528. SESSION:IMMEDIATE-DISPLAY = FALSE.
  529. DO WITH FRAME {&FRAME-NAME}:
  530. Btn_OK :SENSITIVE = TRUE.
  531. Btn_Cancel:SENSITIVE = TRUE.
  532. Btn_OK :LABEL = 'Start'.
  533. APPLY 'ENTRY' TO Btn_OK.
  534. END.
  535. END PROCEDURE.
  536. /* _UIB-CODE-BLOCK-END */
  537. &ANALYZE-RESUME
  538. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_ZU_LOESCHENDE_ADRESSEN gLoeschAdressen
  539. PROCEDURE OPEN_ZU_LOESCHENDE_ADRESSEN :
  540. /*------------------------------------------------------------------------------
  541. Purpose:
  542. Parameters: <none>
  543. Notes:
  544. ------------------------------------------------------------------------------*/
  545. OPEN QUERY {&BROWSE-NAME}
  546. FOR EACH tAdresse NO-LOCK.
  547. END PROCEDURE.
  548. /* _UIB-CODE-BLOCK-END */
  549. &ANALYZE-RESUME
  550. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REORGANISATION gLoeschAdressen
  551. PROCEDURE REORGANISATION :
  552. /*------------------------------------------------------------------------------
  553. Purpose:
  554. Parameters: <none>
  555. Notes:
  556. ------------------------------------------------------------------------------*/
  557. DEF VAR ja AS LOG NO-UNDO.
  558. SESSION:SET-WAIT-STATE('GENERAL').
  559. DO WHILE TRUE WITH FRAME {&FRAME-NAME}:
  560. IF NUM-RESULTS('{&BROWSE-NAME}') = ? THEN LEAVE.
  561. IF NUM-RESULTS('{&BROWSE-NAME}') = 0 THEN LEAVE.
  562. ja = {&BROWSE-NAME}:SELECT-ROW(1).
  563. ja = {&BROWSE-NAME}:FETCH-SELECTED-ROW(1).
  564. F_Status:HIDDEN = FALSE.
  565. F_Status:SENSITIVE = TRUE.
  566. Btn_OK :SENSITIVE = FALSE.
  567. Btn_Cancel:SENSITIVE = FALSE.
  568. F_Datum :READ-ONLY = TRUE .
  569. EMPTY TEMP-TABLE tDateien.
  570. FOR EACH _Field WHERE _Field._Field-Name BEGINS 'Knr' NO-LOCK:
  571. FIND _File OF _Field NO-LOCK.
  572. IF _File._File-Name = 'Benutzer' THEN NEXT.
  573. FIND FIRST tDateien WHERE tDateien.Datei = _File._File-Name NO-ERROR.
  574. IF AVAILABLE tDateien THEN NEXT.
  575. CREATE tDateien.
  576. ASSIGN
  577. tDateien.Datei = _File._File-Name
  578. tDateien.Firma = FALSE.
  579. END.
  580. FOR EACH _Field WHERE _Field._Field-Name BEGINS 'Firma' NO-LOCK:
  581. FIND _File OF _Field NO-LOCK.
  582. FIND FIRST tDateien WHERE tDateien.Datei = _File._File-Name NO-LOCK NO-ERROR.
  583. IF NOT AVAILABLE tDateien THEN NEXT.
  584. tDateien.Firma = TRUE.
  585. END.
  586. DO WHILE ja:
  587. Knr = tAdresse.Knr.
  588. FIND Adresse USE-INDEX Adresse-k1
  589. WHERE Adresse.Firma = AdFirma
  590. AND Adresse.Knr = Knr NO-LOCK NO-ERROR.
  591. IF AVAILABLE Adresse THEN RUN LOESCHEN.
  592. ja = {&BROWSE-NAME}:SELECT-NEXT-ROW().
  593. END.
  594. Btn_OK :SENSITIVE = TRUE .
  595. Btn_Cancel:SENSITIVE = TRUE .
  596. F_Datum :READ-ONLY = FALSE.
  597. LEAVE.
  598. END.
  599. SESSION:SET-WAIT-STATE('').
  600. END PROCEDURE.
  601. /* _UIB-CODE-BLOCK-END */
  602. &ANALYZE-RESUME
  603. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELN gLoeschAdressen
  604. PROCEDURE SAMMELN :
  605. /*------------------------------------------------------------------------------
  606. Purpose:
  607. Parameters: <none>
  608. Notes:
  609. ------------------------------------------------------------------------------*/
  610. DEF VAR ja AS LOG NO-UNDO.
  611. DEF VAR i1 AS INT NO-UNDO.
  612. DEF BUFFER BAdresse FOR tAdresse.
  613. DO WITH FRAME {&FRAME-NAME}:
  614. ASSIGN {&List-6}.
  615. IF F_Datum = ? THEN RETURN NO-APPLY.
  616. SESSION:SET-WAIT-STATE('GENERAL').
  617. Btn_OK :SENSITIVE = FALSE.
  618. Btn_Cancel:SENSITIVE = FALSE.
  619. F_Datum :READ-ONLY = TRUE .
  620. EMPTY TEMP-TABLE tAdresse.
  621. EMPTY TEMP-TABLE tBesko .
  622. FOR EACH Adresse NO-LOCK USE-INDEX Adresse-k1
  623. WHERE Adresse.Firma = AdFirma
  624. AND Adresse.Aktiv = FALSE
  625. AND Adresse.Knr > 0:
  626. CREATE tAdresse.
  627. BUFFER-COPY Adresse TO tAdresse.
  628. END.
  629. FOR EACH Besko NO-LOCK USE-INDEX Besko-k1
  630. WHERE Besko.Best_Sta < 4
  631. AND Besko.Knr > 0 :
  632. CREATE tBesko.
  633. BUFFER-COPY Besko TO tBesko.
  634. END.
  635. FOR EACH tAdresse NO-LOCK:
  636. FOR EACH tSteuer NO-LOCK:
  637. FIND Debst USE-INDEX Debst-k1
  638. WHERE Debst.Firma = tSteuer.Firma
  639. AND Debst.Knr = tAdresse.Knr NO-LOCK NO-ERROR.
  640. IF NOT AVAILABLE Debst THEN NEXT.
  641. IF Debst.Saldo <> 0 THEN tAdresse.Aktiv = TRUE.
  642. IF Debst.LetztVK <> ? AND
  643. Debst.LetztVK >= F_Datum THEN tAdresse.Aktiv = TRUE.
  644. FIND LAST Debhi USE-INDEX Debhi-k2
  645. WHERE Debhi.Firma = tSteuer.Firma
  646. AND Debhi.Knr = tAdresse.Knr NO-LOCK NO-ERROR.
  647. IF NOT AVAILABLE Debhi THEN NEXT.
  648. IF Debhi.Datum >= F_Datum THEN tAdresse.Aktiv = TRUE.
  649. LEAVE.
  650. END.
  651. IF tAdresse.Aktiv THEN NEXT.
  652. FOR EACH tSteuer NO-LOCK:
  653. FIND Krest USE-INDEX Krest-k1
  654. WHERE Krest.Firma = tSteuer.Firma
  655. AND Krest.Knr = tAdresse.Knr NO-LOCK NO-ERROR.
  656. IF NOT AVAILABLE Krest THEN NEXT.
  657. IF Krest.Saldo <> 0 THEN tAdresse.Aktiv = TRUE.
  658. FIND LAST Krehi USE-INDEX Krehi-k2
  659. WHERE Krehi.Firma = tSteuer.Firma
  660. AND Krehi.Knr = tAdresse.Knr NO-LOCK NO-ERROR.
  661. IF NOT AVAILABLE Krehi THEN NEXT.
  662. IF Krehi.Datum >= F_Datum THEN tAdresse.Aktiv = TRUE.
  663. END.
  664. IF tAdresse.Aktiv THEN NEXT.
  665. FOR EACH tSteuer NO-LOCK:
  666. FIND LAST Artbw USE-INDEX Artbw-k3
  667. WHERE Artbw.Firma = tSteuer.Firma
  668. AND Artbw.Knr = tAdresse.Knr NO-LOCK NO-ERROR.
  669. IF NOT AVAILABLE Artbw THEN NEXT.
  670. IF Artbw.Datum >= F_Datum THEN tAdresse.Aktiv = TRUE.
  671. IF Artbw.Fak_Dat = ? THEN NEXT.
  672. IF Artbw.Fak_Dat >= F_Datum THEN tAdresse.Aktiv = TRUE.
  673. END.
  674. IF tAdresse.Aktiv THEN NEXT.
  675. FOR EACH tSteuer NO-LOCK:
  676. FIND FIRST Aufko USE-INDEX Aufko-k2
  677. WHERE Aufko.Firma = tSteuer.Firma
  678. AND Aufko.Knr = tAdresse.Knr NO-LOCK NO-ERROR.
  679. IF NOT AVAILABLE Aufko THEN NEXT.
  680. tAdresse.Aktiv = TRUE.
  681. LEAVE.
  682. END.
  683. IF tAdresse.Aktiv THEN NEXT.
  684. FOR EACH tSteuer NO-LOCK:
  685. FIND FIRST tBesko USE-INDEX tBesko-k1
  686. WHERE tBesko.Firma = tSteuer.Firma
  687. AND tBesko.Knr = tAdresse.Knr NO-LOCK NO-ERROR.
  688. IF NOT AVAILABLE tBesko THEN NEXT.
  689. tAdresse.Aktiv = TRUE.
  690. LEAVE.
  691. END.
  692. IF tAdresse.Aktiv THEN NEXT.
  693. FOR EACH tSteuer NO-LOCK:
  694. FIND FIRST ArtLief USE-INDEX ArtLief-k2
  695. WHERE ArtLief.Firma = tSteuer.Firma
  696. AND ArtLief.Knr = tAdresse.Knr NO-LOCK NO-ERROR.
  697. IF NOT AVAILABLE ArtLief THEN NEXT.
  698. tAdresse.Aktiv = TRUE.
  699. LEAVE.
  700. END.
  701. IF tAdresse.Aktiv THEN NEXT.
  702. END.
  703. FOR EACH tAdresse WHERE tAdresse.Aktiv = TRUE:
  704. DELETE tAdresse.
  705. END.
  706. RUN OPEN_ZU_LOESCHENDE_ADRESSEN.
  707. SESSION:SET-WAIT-STATE('').
  708. Btn_OK :SENSITIVE = TRUE.
  709. Btn_Cancel:SENSITIVE = TRUE.
  710. Btn_OK :LABEL = 'Reorg'.
  711. F_Datum :READ-ONLY = FALSE.
  712. APPLY 'ENTRY' TO Btn_OK.
  713. END.
  714. END PROCEDURE.
  715. /* _UIB-CODE-BLOCK-END */
  716. &ANALYZE-RESUME