&ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS bTableWin /*------------------------------------------------------------------------ File: adm2\src\browser.w Description: SmartDataBrowser Object Input Parameters: Output Parameters: ------------------------------------------------------------------------*/ /* 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 --- */ /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDataBrowser &Scoped-define DB-AWARE no &Scoped-define ADM-SUPPORTED-LINKS TableIO-Target,Data-Target,Update-Source /* Include file with RowObject temp-table definition */ &Scoped-define DATA-FIELD-DEFS "d-skontoab.i" /* Name of first Frame and/or Browse and/or first Query */ &Scoped-define FRAME-NAME F-Main &Scoped-define BROWSE-NAME br_skonto /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES rowObject /* Definitions for BROWSE br_skonto */ &Scoped-define FIELDS-IN-QUERY-br_skonto rowObject.Knr rowObject.Kunde ~ rowObject.Faknr rowObject.MWST-% rowObject.Fak_Datum rowObject.Zah_Datum ~ rowObject.Anz_Tage rowObject.Berechtigt rowObject.Brutto rowObject.Sko_Betr ~ rowObject.Sko_Abzug rowObject.VonDatum &Scoped-define ENABLED-FIELDS-IN-QUERY-br_skonto &Scoped-define OPEN-QUERY-br_skonto OPEN QUERY br_skonto FOR EACH rowObject NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-br_skonto rowObject &Scoped-define FIRST-TABLE-IN-QUERY-br_skonto rowObject /* Definitions for FRAME F-Main */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS br_skonto RECT-40 /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD GETANZAHLSELEKTIERT bTableWin FUNCTION GETANZAHLSELEKTIERT RETURNS INTEGER ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Menu Definitions */ DEFINE MENU POPUP-MENU-br_skonto MENU-ITEM m_ganzer_Kunde_markieren LABEL "ganzer Kunde markieren" MENU-ITEM m_Selektion_auf_berechtigt LABEL "Selektion auf &berechtigt stellen" MENU-ITEM m_Selektion_auf_nicht LABEL "Selektion auf &nicht berechtigt stellen". /* Definitions of the field level widgets */ DEFINE RECTANGLE RECT-40 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 139 BY 7.38. /* Query definitions */ &ANALYZE-SUSPEND DEFINE TEMP-TABLE RowObject {{&DATA-FIELD-DEFS}} {src/adm2/robjflds.i}. DEFINE QUERY br_skonto FOR rowObject SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE br_skonto &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS br_skonto bTableWin _STRUCTURED QUERY br_skonto NO-LOCK DISPLAY rowObject.Knr FORMAT "999999":U rowObject.Kunde FORMAT "x(50)":U WIDTH 40 rowObject.Faknr FORMAT "9999999":U rowObject.MWST-% COLUMN-LABEL "MW-%" FORMAT "zz9.99":U WIDTH 7 rowObject.Fak_Datum COLUMN-LABEL "FakDatum" FORMAT "99.99.9999":U rowObject.Zah_Datum COLUMN-LABEL "ZahlDatum" FORMAT "99.99.9999":U rowObject.Anz_Tage COLUMN-LABEL "Tage" FORMAT "->>9":U WIDTH 6 rowObject.Berechtigt COLUMN-LABEL "Ber" FORMAT "J/N":U WIDTH 4 rowObject.Brutto FORMAT "->,>>>,>>9.99":U rowObject.Sko_Betr COLUMN-LABEL "Skonto" FORMAT "->,>>9.99":U rowObject.Sko_Abzug COLUMN-LABEL "Abgez." FORMAT "->,>>9.99":U WIDTH 10 rowObject.VonDatum FORMAT "99.99.9999":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ASSIGN NO-AUTO-VALIDATE NO-ROW-MARKERS SEPARATORS MULTIPLE SIZE 137 BY 6.91 BGCOLOR 15 EXPANDABLE. /* ************************ Frame Definitions *********************** */ DEFINE FRAME F-Main br_skonto AT ROW 1.48 COL 3 RECT-40 AT ROW 1.24 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SCROLLABLE . /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDataBrowser Data Source: "d-skontoab.w" Allow: Basic,Browse Frames: 1 Add Fields to: Neither Other Settings: PERSISTENT-ONLY COMPILE */ /* This procedure should always be RUN PERSISTENT. Report the error, */ /* then cleanup and return. */ IF NOT THIS-PROCEDURE:PERSISTENT THEN DO: MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U VIEW-AS ALERT-BOX ERROR BUTTONS OK. RETURN. END. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW /* DESIGN Window definition (used by the UIB) CREATE WINDOW bTableWin ASSIGN HEIGHT = 7.95 WIDTH = 141.2. /* END WINDOW DEFINITION */ */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB bTableWin /* ************************* Included-Libraries *********************** */ {src/adm2/browser.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW bTableWin NOT-VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME F-Main NOT-VISIBLE Size-to-Fit */ /* BROWSE-TAB br_skonto 1 F-Main */ ASSIGN FRAME F-Main:SCROLLABLE = FALSE FRAME F-Main:HIDDEN = TRUE. ASSIGN br_skonto:POPUP-MENU IN FRAME F-Main = MENU POPUP-MENU-br_skonto:HANDLE. ASSIGN rowObject.VonDatum:VISIBLE IN BROWSE br_skonto = FALSE. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE br_skonto /* Query rebuild information for BROWSE br_skonto _TblList = "rowObject" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] > _.rowObject.Knr "rowObject.Knr" ? ? "integer" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" _FldNameList[2] > _.rowObject.Kunde "rowObject.Kunde" ? ? "character" ? ? ? ? ? ? no "?" no no "40" yes no no "U" "" "" _FldNameList[3] > _.rowObject.Faknr "rowObject.Faknr" ? ? "integer" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" _FldNameList[4] > _.rowObject.MWST-% "rowObject.MWST-%" "MW-%" ? "decimal" ? ? ? ? ? ? no "?" no no "7" yes no no "U" "" "" _FldNameList[5] > _.rowObject.Fak_Datum "rowObject.Fak_Datum" "FakDatum" ? "date" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" _FldNameList[6] > _.rowObject.Zah_Datum "rowObject.Zah_Datum" "ZahlDatum" ? "date" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" _FldNameList[7] > _.rowObject.Anz_Tage "rowObject.Anz_Tage" "Tage" ? "integer" ? ? ? ? ? ? no "?" no no "6" yes no no "U" "" "" _FldNameList[8] > _.rowObject.Berechtigt "rowObject.Berechtigt" "Ber" ? "logical" ? ? ? ? ? ? no "?" no no "4" yes no no "U" "" "" _FldNameList[9] > _.rowObject.Brutto "rowObject.Brutto" ? ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" _FldNameList[10] > _.rowObject.Sko_Betr "rowObject.Sko_Betr" "Skonto" ? "decimal" ? ? ? ? ? ? no "?" no no ? yes no no "U" "" "" _FldNameList[11] > _.rowObject.Sko_Abzug "rowObject.Sko_Abzug" "Abgez." ? "decimal" ? ? ? ? ? ? no ? no no "10" yes no no "U" "" "" _FldNameList[12] > _.rowObject.VonDatum "rowObject.VonDatum" ? ? "date" ? ? ? ? ? ? no ? no no ? no no no "U" "" "" _Query is NOT OPENED */ /* BROWSE br_skonto */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main /* Query rebuild information for FRAME F-Main _Options = "NO-LOCK" _Query is NOT OPENED */ /* FRAME F-Main */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define BROWSE-NAME br_skonto &Scoped-define SELF-NAME br_skonto &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON CTRL-END OF br_skonto IN FRAME F-Main DO: APPLY "END":U TO BROWSE {&BROWSE-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON CTRL-HOME OF br_skonto IN FRAME F-Main DO: APPLY "HOME":U TO BROWSE {&BROWSE-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON END OF br_skonto IN FRAME F-Main DO: {src/adm2/brsend.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON HOME OF br_skonto IN FRAME F-Main DO: {src/adm2/brshome.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON OFF-END OF br_skonto IN FRAME F-Main DO: {src/adm2/brsoffnd.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON OFF-HOME OF br_skonto IN FRAME F-Main DO: {src/adm2/brsoffhm.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON ROW-ENTRY OF br_skonto IN FRAME F-Main DO: {src/adm2/brsentry.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON ROW-LEAVE OF br_skonto IN FRAME F-Main DO: {src/adm2/brsleave.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON SCROLL-NOTIFY OF br_skonto IN FRAME F-Main DO: {src/adm2/brsscrol.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL br_skonto bTableWin ON VALUE-CHANGED OF br_skonto IN FRAME F-Main DO: {src/adm2/brschnge.i} END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_ganzer_Kunde_markieren &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_ganzer_Kunde_markieren bTableWin ON CHOOSE OF MENU-ITEM m_ganzer_Kunde_markieren /* ganzer Kunde markieren */ DO: RUN KUNDEMARKIEREN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Selektion_auf_berechtigt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Selektion_auf_berechtigt bTableWin ON CHOOSE OF MENU-ITEM m_Selektion_auf_berechtigt /* Selektion auf berechtigt stellen */ DO: RUN BERECHTIGT ( INPUT TRUE ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME m_Selektion_auf_nicht &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL m_Selektion_auf_nicht bTableWin ON CHOOSE OF MENU-ITEM m_Selektion_auf_nicht /* Selektion auf nicht berechtigt stellen */ DO: RUN BERECHTIGT ( INPUT FALSE ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK bTableWin /* *************************** Main Block *************************** */ SUBSCRIBE TO 'ACTIVATE_POPUPMENU' ANYWHERE. &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN RUN initializeObject. &ENDIF /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ACTIVATE_POPUPMENU bTableWin PROCEDURE ACTIVATE_POPUPMENU : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipFlag AS LOG NO-UNDO. DEF VAR hPopup AS HANDLE NO-UNDO. hPopup = {&BROWSE-NAME}:POPUP-MENU IN FRAME {&FRAME-NAME}. hPopup:SENSITIVE = ipFlag. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BERECHTIGT bTableWin PROCEDURE BERECHTIGT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipFlag AS LOG NO-UNDO. DEF VAR io AS LOG NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR Firma AS CHAR NO-UNDO. DEF VAR Sko_Sta AS INT NO-UNDO. DEF VAR Knr AS INT NO-UNDO. DEF VAR VonDatum AS DATE NO-UNDO. DEF VAR Faknr AS INT NO-UNDO. DEF VAR MWST-% AS DEC NO-UNDO. DEF VAR hQuery AS HANDLE NO-UNDO. DEF VAR hBuffer AS HANDLE NO-UNDO. DEF VAR hData AS HANDLE NO-UNDO. DEF VAR hFeld AS HANDLE NO-UNDO. DEF VAR sRowid AS ROWID NO-UNDO. hData = DYNAMIC-FUNCTION('getDataSource':U ) NO-ERROR. hQuery = DYNAMIC-FUNCTION('getDataHandle':U IN hData) NO-ERROR. hBuffer = hQuery:GET-BUFFER-HANDLE(1) NO-ERROR. sRowid = ?. DO WITH FRAME {&FRAME-NAME}: DO ix = 1 TO BROWSE {&BROWSE-NAME}:NUM-SELECTED-ROWS. io = BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(ix) NO-ERROR. IF NOT io THEN NEXT. hFeld = hBuffer:BUFFER-FIELD('Firma') NO-ERROR. Firma = hFeld:BUFFER-VALUE NO-ERROR. hFeld = hBuffer:BUFFER-FIELD('Sko_Sta') NO-ERROR. Sko_Sta = INTEGER(hFeld:BUFFER-VALUE) NO-ERROR. hFeld = hBuffer:BUFFER-FIELD('Knr') NO-ERROR. Knr = INTEGER(hFeld:BUFFER-VALUE) NO-ERROR. hFeld = hBuffer:BUFFER-FIELD('VonDatum') NO-ERROR. VonDatum = DATE(hFeld:BUFFER-VALUE) NO-ERROR. hFeld = hBuffer:BUFFER-FIELD('Faknr') NO-ERROR. Faknr = INTEGER(hFeld:BUFFER-VALUE) NO-ERROR. hFeld = hBuffer:BUFFER-FIELD('MWST-%') NO-ERROR. MWST-% = DECIMAL(hFeld:BUFFER-VALUE) NO-ERROR. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: io = FALSE. FIND SkontoAb USE-INDEX SkontoAb-k1 WHERE SkontoAb.Firma = Firma AND SkontoAb.Sko_Sta = Sko_Sta AND SkontoAb.Knr = Knr AND SkontoAb.VonDatum = VonDatum AND SkontoAb.Faknr = Faknr AND SkontoAb.MWST-% = MWST-% NO-ERROR. IF NOT AVAILABLE SkontoAb THEN LEAVE. IF sRowid = ? THEN sRowid = ROWID(SkontoAb). SkontoAb.Berechtigt = ipFlag. RELEASE SkontoAb. io = TRUE. LEAVE. END. IF NOT io THEN NEXT. END. DYNAMIC-FUNCTION('openQuery':U IN hData) NO-ERROR. RUN REPOS IN hData ( INPUT sRowid ). BROWSE {&BROWSE-NAME}:SELECT-FOCUSED-ROW(). RUN KUNDEMARKIEREN. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI bTableWin _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 F-Main. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject bTableWin PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE GETSKONTODATEN bTableWin PROCEDURE GETSKONTODATEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR io AS LOG NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR hQuery AS HANDLE NO-UNDO. DEF VAR hBuffer AS HANDLE NO-UNDO. DEF VAR hData AS HANDLE NO-UNDO. DEF VAR hFeld AS HANDLE NO-UNDO. hData = DYNAMIC-FUNCTION('getDataSource':U ) NO-ERROR. hQuery = DYNAMIC-FUNCTION('getDataHandle':U IN hData) NO-ERROR. hBuffer = hQuery:GET-BUFFER-HANDLE(1) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: cDaten = ''. io = BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(01) NO-ERROR. IF NOT io THEN RETURN 'ERROR'. hFeld = hBuffer:BUFFER-FIELD('Firma') NO-ERROR. cDaten = cDaten + hFeld:BUFFER-VALUE + CHR(01). hFeld = hBuffer:BUFFER-FIELD('Sko_Sta') NO-ERROR. cDaten = CDaten + hFeld:BUFFER-VALUE + CHR(01). hFeld = hBuffer:BUFFER-FIELD('Knr') NO-ERROR. cDaten = CDaten + hFeld:BUFFER-VALUE + CHR(01). hFeld = hBuffer:BUFFER-FIELD('VonDatum') NO-ERROR. cDaten = CDaten + hFeld:BUFFER-VALUE + CHR(01). hFeld = hBuffer:BUFFER-FIELD('Faknr') NO-ERROR. cDaten = CDaten + hFeld:BUFFER-VALUE + CHR(01). hFeld = hBuffer:BUFFER-FIELD('MWST-%') NO-ERROR. cDaten = CDaten + hFeld:BUFFER-VALUE. RETURN cDaten. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KUNDEMARKIEREN bTableWin PROCEDURE KUNDEMARKIEREN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR io AS LOG NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR Knr AS INT NO-UNDO. DEF VAR hQuery AS HANDLE NO-UNDO. DEF VAR hBuffer AS HANDLE NO-UNDO. DEF VAR hData AS HANDLE NO-UNDO. DEF VAR hFeld AS HANDLE NO-UNDO. DEF VAR sRowid AS ROWID NO-UNDO. DEF VAR eRowid AS ROWID NO-UNDO. hData = DYNAMIC-FUNCTION('getDataSource':U ) NO-ERROR. hQuery = DYNAMIC-FUNCTION('getDataHandle':U IN hData) NO-ERROR. hBuffer = hQuery:GET-BUFFER-HANDLE(1) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: io = BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1) NO-ERROR. IF NOT io THEN RETURN NO-APPLY. hFeld = hBuffer:BUFFER-FIELD('Knr') NO-ERROR. Knr = INTEGER(hFeld:BUFFER-VALUE) NO-ERROR. sRowid = hBuffer:ROWID. eRowid = hBuffer:ROWID. BROWSE {&BROWSE-NAME}:DESELECT-ROWS(). BROWSE {&BROWSE-NAME}:SELECT-FOCUSED-ROW() NO-ERROR. DO WHILE TRUE: io = BROWSE {&BROWSE-NAME}:SELECT-PREV-ROW() NO-ERROR. IF NOT io THEN LEAVE. hFeld = hBuffer:BUFFER-FIELD('Knr') NO-ERROR. IF INTEGER(hFeld:BUFFER-VALUE) <> Knr THEN LEAVE. sRowid = hBuffer:ROWID. END. DO WHILE TRUE: io = BROWSE {&BROWSE-NAME}:SELECT-NEXT-ROW() NO-ERROR. IF NOT io THEN LEAVE. hFeld = hBuffer:BUFFER-FIELD('Knr') NO-ERROR. IF INTEGER(hFeld:BUFFER-VALUE) <> Knr THEN LEAVE. eRowid = hBuffer:ROWID. END. BROWSE {&BROWSE-NAME}:SELECT-ALL ( sRowid, eRowid ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOESCHEN bTableWin PROCEDURE LOESCHEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR ix AS INT NO-UNDO. DEF VAR hQuery AS HANDLE NO-UNDO. DEF VAR hBuffer AS HANDLE NO-UNDO. DEF VAR hData AS HANDLE NO-UNDO. hData = DYNAMIC-FUNCTION('getDataSource':U ) NO-ERROR. hQuery = DYNAMIC-FUNCTION('getDataHandle':U IN hData) NO-ERROR. hBuffer = hQuery:GET-BUFFER-HANDLE(1) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: DO ix = 1 TO BROWSE {&BROWSE-NAME}:NUM-SELECTED-ROWS: BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(ix). DYNAMIC-FUNCTION('deleteRow':U IN hData, INPUT STRING(hBuffer:ROWID)). END. {&BROWSE-NAME}:DELETE-SELECTED-ROWS(). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION GETANZAHLSELEKTIERT bTableWin FUNCTION GETANZAHLSELEKTIERT RETURNS INTEGER ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: RETURN {&BROWSE-NAME}:NUM-SELECTED-ROWS. END. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME