&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gLoeschAdressen /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE TAdresse NO-UNDO LIKE Adresse. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gLoeschAdressen /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR MaxPage AS INT NO-UNDO. DEF VAR AktSeite AS INT NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO. DEF VAR Firma AS CHAR NO-UNDO. DEF VAR AdFirma AS CHAR NO-UNDO. DEF VAR fJa AS LOG NO-UNDO. DEF VAR Knr AS INT NO-UNDO. DEF TEMP-TABLE tDateien FIELD Datei AS CHAR FIELD Firma AS LOG. DEF TEMP-TABLE tSteuer LIKE Steuer. DEF TEMP-TABLE tBesko LIKE Besko INDEX tBesko-k1 AS PRIMARY Firma Knr. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDialog &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER DIALOG-BOX &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME gLoeschAdressen &Scoped-define BROWSE-NAME Br_Artikel /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES TAdresse /* Definitions for BROWSE Br_Artikel */ &Scoped-define FIELDS-IN-QUERY-Br_Artikel TAdresse.Firma TAdresse.Knr ~ TAdresse.Anzeig_br &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Artikel &Scoped-define QUERY-STRING-Br_Artikel FOR EACH TAdresse NO-LOCK INDEXED-REPOSITION &Scoped-define OPEN-QUERY-Br_Artikel OPEN QUERY Br_Artikel FOR EACH TAdresse NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-Br_Artikel TAdresse &Scoped-define FIRST-TABLE-IN-QUERY-Br_Artikel TAdresse /* Definitions for DIALOG-BOX gLoeschAdressen */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-41 F_Datum Br_Artikel Btn_OK Btn_Cancel &Scoped-Define DISPLAYED-OBJECTS F_Datum F_Status /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_Datum /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel AUTO-END-KEY LABEL "&Abbrechen" SIZE 15 BY 1. DEFINE BUTTON Btn_OK LABEL "&Start" SIZE 15 BY 1. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U LABEL "keine Bewegungen mehr seit ?" VIEW-AS FILL-IN NATIVE SIZE 16.8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Status AS CHARACTER FORMAT "X(80)":U VIEW-AS FILL-IN NATIVE SIZE 98 BY 1 BGCOLOR 14 FONT 6 NO-UNDO. DEFINE RECTANGLE RECT-41 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 108 BY 15.24. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Artikel FOR TAdresse SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Artikel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Artikel gLoeschAdressen _STRUCTURED QUERY Br_Artikel NO-LOCK DISPLAY TAdresse.Firma FORMAT "X(8)":U TAdresse.Knr FORMAT "999999":U TAdresse.Anzeig_br COLUMN-LABEL "Adresse" FORMAT "x(75)":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 98 BY 8.52. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gLoeschAdressen F_Datum AT ROW 2 COL 36.2 COLON-ALIGNED Br_Artikel AT ROW 3.52 COL 8 F_Status AT ROW 12.52 COL 6 COLON-ALIGNED NO-LABEL NO-TAB-STOP Btn_OK AT ROW 14.81 COL 14.2 Btn_Cancel AT ROW 14.81 COL 62.2 RECT-41 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.22) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Definitives löschen von Adressen" CANCEL-BUTTON Btn_Cancel. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDialog Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target Design Page: 1 Other Settings: COMPILE Temp-Tables and Buffers: TABLE: TAdresse T "?" NO-UNDO AnaDat Adresse END-TABLES. */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gLoeschAdressen /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR DIALOG-BOX gLoeschAdressen FRAME-NAME */ /* BROWSE-TAB Br_Artikel F_Datum gLoeschAdressen */ ASSIGN FRAME gLoeschAdressen:SCROLLABLE = FALSE FRAME gLoeschAdressen:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN F_Datum IN FRAME gLoeschAdressen 6 */ /* SETTINGS FOR FILL-IN F_Status IN FRAME gLoeschAdressen NO-ENABLE */ ASSIGN F_Status:HIDDEN IN FRAME gLoeschAdressen = TRUE F_Status:READ-ONLY IN FRAME gLoeschAdressen = TRUE. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Artikel /* Query rebuild information for BROWSE Br_Artikel _TblList = "Temp-Tables.TAdresse" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] = Temp-Tables.TAdresse.Firma _FldNameList[2] = Temp-Tables.TAdresse.Knr _FldNameList[3] > Temp-Tables.TAdresse.Anzeig_br "TAdresse.Anzeig_br" "Adresse" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE Br_Artikel */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gLoeschAdressen /* Query rebuild information for DIALOG-BOX gLoeschAdressen _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gLoeschAdressen */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gLoeschAdressen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gLoeschAdressen gLoeschAdressen ON END-ERROR OF FRAME gLoeschAdressen /* Definitives löschen von Adressen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gLoeschAdressen gLoeschAdressen ON GO OF FRAME gLoeschAdressen /* Definitives löschen von Adressen */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gLoeschAdressen gLoeschAdressen ON WINDOW-CLOSE OF FRAME gLoeschAdressen /* Definitives löschen von Adressen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gLoeschAdressen ON CHOOSE OF Btn_Cancel IN FRAME gLoeschAdressen /* Abbrechen */ DO: DO WITH FRAME {&FRAME-NAME}: IF Btn_OK:LABEL = 'Reorg' THEN DO: Btn_OK:LABEL = 'Start'. FOR EACH tAdresse: DELETE tAdresse. END. RUN OPEN_ZU_LOESCHENDE_ADRESSEN. APPLY 'ENTRY' TO F_Datum. RETURN NO-APPLY. END. END. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gLoeschAdressen ON CHOOSE OF Btn_OK IN FRAME gLoeschAdressen /* Start */ DO: IF SELF:LABEL = 'Reorg' THEN DO: fJa = DYNAMIC-FUNCTION('ANTWORT_NEIN':U, INPUT 1083 ) NO-ERROR. IF NOT fJa THEN RETURN NO-APPLY. RUN REORGANISATION. RUN ENDE. END. ELSE DO: RUN SAMMELN. END. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Datum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Datum gLoeschAdressen ON VALUE-CHANGED OF F_Datum IN FRAME gLoeschAdressen /* keine Bewegungen mehr seit ? */ DO: IF Btn_OK:LABEL <> 'Start' THEN Btn_OK:LABEL = 'Start'. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Artikel &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gLoeschAdressen /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U ) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. EMPTY TEMP-TABLE tSteuer. FOR EACH Steuer WHERE Steuer.AdFirma = AdFirma NO-LOCK: FIND Mandant WHERE Mandant.Firma = Steuer.Firma NO-LOCK NO-ERROR. IF NOT AVAILABLE Mandant THEN NEXT. IF Mandant.Zustand = FALSE THEN NEXT. CREATE tSteuer. BUFFER-COPY Steuer TO tSteuer. END. SESSION:DATA-ENTRY-RETURN = TRUE. /* TRIGGERS ------------------------------------------------------ */ ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN ENDE. RETURN NO-APPLY. END. /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gLoeschAdressen _ADM-CREATE-OBJECTS PROCEDURE adm-create-objects : /*------------------------------------------------------------------------------ Purpose: Create handles for all SmartObjects used in this procedure. After SmartObjects are initialized, then SmartLinks are added. Parameters: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gLoeschAdressen _DEFAULT-DISABLE PROCEDURE disable_UI : /*------------------------------------------------------------------------------ Purpose: DISABLE the User Interface Parameters: Notes: Here we clean-up the user-interface by deleting dynamic widgets we have created and/or hide frames. This procedure is usually called when we are ready to "clean-up" after running. ------------------------------------------------------------------------------*/ /* Hide all frames. */ HIDE FRAME gLoeschAdressen. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gLoeschAdressen PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gLoeschAdressen _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY F_Datum F_Status WITH FRAME gLoeschAdressen. ENABLE RECT-41 F_Datum Br_Artikel Btn_OK Btn_Cancel WITH FRAME gLoeschAdressen. VIEW FRAME gLoeschAdressen. {&OPEN-BROWSERS-IN-QUERY-gLoeschAdressen} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gLoeschAdressen PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). APPLY 'GO' TO FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gLoeschAdressen PROCEDURE exitObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN gLoeschAdressen PROCEDURE LOESCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR bHandle AS WIDGET-HANDLE NO-UNDO. DEF VAR dHandle AS WIDGET-HANDLE NO-UNDO. DEF VAR qHandle AS WIDGET-HANDLE NO-UNDO. DEF VAR sSelektion AS CHAR NO-UNDO. DEF VAR fErst AS LOG NO-UNDO. DEF VAR iRecid AS RECID NO-UNDO. DEF VAR cFirma AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Btn_OK :SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. F_Status :HIDDEN = FALSE. F_Status :SENSITIVE = TRUE. END. DISABLE TRIGGERS FOR LOAD OF Aufze. DISABLE TRIGGERS FOR LOAD OF ArtLager. DISABLE TRIGGERS FOR LOAD OF ArtLief . DISABLE TRIGGERS FOR LOAD OF Aufko . DISABLE TRIGGERS FOR LOAD OF BesEing . DISABLE TRIGGERS FOR LOAD OF ArtLief . DISABLE TRIGGERS FOR LOAD OF Besze . DISABLE TRIGGERS FOR LOAD OF Debst . DISABLE TRIGGERS FOR LOAD OF Liefst . DISABLE TRIGGERS FOR LOAD OF AufLot . DISABLE TRIGGERS FOR LOAD OF RuestAuf. SESSION:IMMEDIATE-DISPLAY = TRUE. CREATE QUERY qHandle. FOR EACH tSteuer WITH FRAME {&FRAME-NAME}: cFirma = tSteuer.Firma. FOR EACH tDateien NO-LOCK BY tDateien.Datei: IF tDateien.Datei = 'Adresse' THEN NEXT. IF tDateien.Datei = 'Artbw' AND Knr = 0 THEN NEXT. IF tDateien.Firma = FALSE AND cFirma <> AdFirma THEN NEXT. CREATE BUFFER bHandle FOR TABLE tDateien.Datei. qHandle:SET-BUFFERS(bHandle). IF tDateien.Firma = TRUE THEN DO: sSelektion = 'FOR EACH ' + tDateien.Datei + ' WHERE ' + tDateien.Datei + '.Firma = "' + cFirma + '" AND ' + tDateien.Datei + '.Knr = ' + STRING(Knr). END. ELSE DO: sSelektion = 'FOR EACH ' + tDateien.Datei + ' WHERE ' + tDateien.Datei + '.Knr = ' + STRING(Knr). END. qHandle:QUERY-PREPARE(sSelektion). qHandle:SKIP-DELETED-RECORD = TRUE. qHandle:QUERY-OPEN(). F_Status = 'Löschen der Tabelle -> "' + bHandle:NAME + '" mit ' + ' Knr = ' + STRING(Knr). F_Status:SCREEN-VALUE = F_Status. fErst = TRUE. REPEAT TRANSACTION: IF fErst THEN qHandle:GET-FIRST(EXCLUSIVE-LOCK, NO-WAIT). ELSE qHandle:GET-NEXT (EXCLUSIVE-LOCK, NO-WAIT). IF qHandle:QUERY-OFF-END THEN LEAVE. dHandle = qHandle:GET-BUFFER-HANDLE(). IF dHandle:LOCKED THEN NEXT. DO WHILE TRUE: IF bHandle:NAME <> 'Aufko' THEN LEAVE. iRecid = dHandle:RECID. FIND Aufko WHERE RECID(Aufko) = iRecid NO-LOCK NO-ERROR. FOR EACH AufGebKo OF Aufko: DELETE AufGebKo. END. FOR EACH AufGKon OF Aufko: DELETE AufGKon. END. FOR EACH AufRabSu OF Aufko: DELETE AufRabSu. END. FOR EACH AufSpRab USE-INDEX AufSpRab-k1 WHERE AufSpRab.Firma = Aufko.Firma AND AufSpRab.Aufnr = Aufko.Aufnr: DELETE AufSpRab. END. FOR EACH Aufze OF Aufko: DELETE Aufze. END. FOR EACH AufLot OF Aufko: DELETE AufLot. END. FOR EACH RuestAuf OF Aufko: DELETE RuestAuf. END. RELEASE Aufko. LEAVE. END. DO WHILE TRUE: IF bHandle:NAME <> 'Besko' THEN LEAVE. iRecid = dHandle:RECID. FIND Besko WHERE RECID(Besko) = iRecid NO-LOCK NO-ERROR. FOR EACH BesGebKo OF Besko: DELETE BesGebKo. END. FOR EACH Besze OF Besko: DELETE Besze. END. FOR EACH BesEing OF Besko: DELETE BesEing. END. RELEASE Besko. LEAVE. END. DO WHILE TRUE: IF bHandle:NAME <> 'Savko' THEN LEAVE. iRecid = dHandle:RECID. FIND Savko WHERE RECID(Savko) = iRecid NO-LOCK NO-ERROR. FOR EACH SavGebKo OF Savko: DELETE SavGebKo. END. FOR EACH SavGKon OF Savko: DELETE SavGKon. END. FOR EACH SavRabSu OF Savko: DELETE SavRabSu. END. FOR EACH SavSpRab USE-INDEX SavSpRab-k1 WHERE SavSpRab.Firma = Savko.Firma AND SavSpRab.Aufnr = Savko.Aufnr: DELETE SavSpRab. END. FOR EACH Savze OF Savko: DELETE Savze. END. FOR EACH SavLot OF Savko: DELETE SavLot. END. FOR EACH RuestSav OF Savko: DELETE RuestSav. END. RELEASE Savko. LEAVE. END. dHandle:BUFFER-DELETE(). END. qHandle:QUERY-CLOSE(). DELETE OBJECT bHandle. END. REPEAT TRANSACTION: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Knr NO-ERROR. IF AVAILABLE Adresse THEN DELETE Adresse. LEAVE. END. END. DELETE OBJECT qHandle. SESSION:IMMEDIATE-DISPLAY = FALSE. DO WITH FRAME {&FRAME-NAME}: Btn_OK :SENSITIVE = TRUE. Btn_Cancel:SENSITIVE = TRUE. Btn_OK :LABEL = 'Start'. APPLY 'ENTRY' TO Btn_OK. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPEN_ZU_LOESCHENDE_ADRESSEN gLoeschAdressen PROCEDURE OPEN_ZU_LOESCHENDE_ADRESSEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ OPEN QUERY {&BROWSE-NAME} FOR EACH tAdresse NO-LOCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REORGANISATION gLoeschAdressen PROCEDURE REORGANISATION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR ja AS LOG NO-UNDO. SESSION:SET-WAIT-STATE('GENERAL'). DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF NUM-RESULTS('{&BROWSE-NAME}') = ? THEN LEAVE. IF NUM-RESULTS('{&BROWSE-NAME}') = 0 THEN LEAVE. ja = {&BROWSE-NAME}:SELECT-ROW(1). ja = {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). F_Status:HIDDEN = FALSE. F_Status:SENSITIVE = TRUE. Btn_OK :SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. F_Datum :READ-ONLY = TRUE . EMPTY TEMP-TABLE tDateien. FOR EACH _Field WHERE _Field._Field-Name BEGINS 'Knr' NO-LOCK: FIND _File OF _Field NO-LOCK. IF _File._File-Name = 'Benutzer' THEN NEXT. FIND FIRST tDateien WHERE tDateien.Datei = _File._File-Name NO-ERROR. IF AVAILABLE tDateien THEN NEXT. CREATE tDateien. ASSIGN tDateien.Datei = _File._File-Name tDateien.Firma = FALSE. END. FOR EACH _Field WHERE _Field._Field-Name BEGINS 'Firma' NO-LOCK: FIND _File OF _Field NO-LOCK. FIND FIRST tDateien WHERE tDateien.Datei = _File._File-Name NO-LOCK NO-ERROR. IF NOT AVAILABLE tDateien THEN NEXT. tDateien.Firma = TRUE. END. DO WHILE ja: Knr = tAdresse.Knr. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Knr NO-LOCK NO-ERROR. IF AVAILABLE Adresse THEN RUN LOESCHEN. ja = {&BROWSE-NAME}:SELECT-NEXT-ROW(). END. Btn_OK :SENSITIVE = TRUE . Btn_Cancel:SENSITIVE = TRUE . F_Datum :READ-ONLY = FALSE. LEAVE. END. SESSION:SET-WAIT-STATE(''). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SAMMELN gLoeschAdressen PROCEDURE SAMMELN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR ja AS LOG NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF BUFFER BAdresse FOR tAdresse. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF F_Datum = ? THEN RETURN NO-APPLY. SESSION:SET-WAIT-STATE('GENERAL'). Btn_OK :SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. F_Datum :READ-ONLY = TRUE . EMPTY TEMP-TABLE tAdresse. EMPTY TEMP-TABLE tBesko . FOR EACH Adresse NO-LOCK USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Aktiv = FALSE AND Adresse.Knr > 0: CREATE tAdresse. BUFFER-COPY Adresse TO tAdresse. END. FOR EACH Besko NO-LOCK USE-INDEX Besko-k1 WHERE Besko.Best_Sta < 4 AND Besko.Knr > 0 : CREATE tBesko. BUFFER-COPY Besko TO tBesko. END. FOR EACH tAdresse NO-LOCK: FOR EACH tSteuer NO-LOCK: FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = tSteuer.Firma AND Debst.Knr = tAdresse.Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Debst THEN NEXT. IF Debst.Saldo <> 0 THEN tAdresse.Aktiv = TRUE. IF Debst.LetztVK <> ? AND Debst.LetztVK >= F_Datum THEN tAdresse.Aktiv = TRUE. FIND LAST Debhi USE-INDEX Debhi-k2 WHERE Debhi.Firma = tSteuer.Firma AND Debhi.Knr = tAdresse.Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Debhi THEN NEXT. IF Debhi.Datum >= F_Datum THEN tAdresse.Aktiv = TRUE. LEAVE. END. IF tAdresse.Aktiv THEN NEXT. FOR EACH tSteuer NO-LOCK: FIND Krest USE-INDEX Krest-k1 WHERE Krest.Firma = tSteuer.Firma AND Krest.Knr = tAdresse.Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Krest THEN NEXT. IF Krest.Saldo <> 0 THEN tAdresse.Aktiv = TRUE. FIND LAST Krehi USE-INDEX Krehi-k2 WHERE Krehi.Firma = tSteuer.Firma AND Krehi.Knr = tAdresse.Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Krehi THEN NEXT. IF Krehi.Datum >= F_Datum THEN tAdresse.Aktiv = TRUE. END. IF tAdresse.Aktiv THEN NEXT. FOR EACH tSteuer NO-LOCK: FIND LAST Artbw USE-INDEX Artbw-k3 WHERE Artbw.Firma = tSteuer.Firma AND Artbw.Knr = tAdresse.Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Artbw THEN NEXT. IF Artbw.Datum >= F_Datum THEN tAdresse.Aktiv = TRUE. IF Artbw.Fak_Dat = ? THEN NEXT. IF Artbw.Fak_Dat >= F_Datum THEN tAdresse.Aktiv = TRUE. END. IF tAdresse.Aktiv THEN NEXT. FOR EACH tSteuer NO-LOCK: FIND FIRST Aufko USE-INDEX Aufko-k2 WHERE Aufko.Firma = tSteuer.Firma AND Aufko.Knr = tAdresse.Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Aufko THEN NEXT. tAdresse.Aktiv = TRUE. LEAVE. END. IF tAdresse.Aktiv THEN NEXT. FOR EACH tSteuer NO-LOCK: FIND FIRST tBesko USE-INDEX tBesko-k1 WHERE tBesko.Firma = tSteuer.Firma AND tBesko.Knr = tAdresse.Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE tBesko THEN NEXT. tAdresse.Aktiv = TRUE. LEAVE. END. IF tAdresse.Aktiv THEN NEXT. FOR EACH tSteuer NO-LOCK: FIND FIRST ArtLief USE-INDEX ArtLief-k2 WHERE ArtLief.Firma = tSteuer.Firma AND ArtLief.Knr = tAdresse.Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtLief THEN NEXT. tAdresse.Aktiv = TRUE. LEAVE. END. IF tAdresse.Aktiv THEN NEXT. END. FOR EACH tAdresse WHERE tAdresse.Aktiv = TRUE: DELETE tAdresse. END. RUN OPEN_ZU_LOESCHENDE_ADRESSEN. SESSION:SET-WAIT-STATE(''). Btn_OK :SENSITIVE = TRUE. Btn_Cancel:SENSITIVE = TRUE. Btn_OK :LABEL = 'Reorg'. F_Datum :READ-ONLY = FALSE. APPLY 'ENTRY' TO Btn_OK. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME