&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases */ &Scoped-define WINDOW-NAME DigitalDrink {adecomm/appserv.i} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS DigitalDrink /*------------------------------------------------------------------------ File: Description: from cntnrwin.w - ADM SmartWindow Template Input Parameters: Output Parameters: History: New V9 Version - January 15, 1998 ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AB. */ /*----------------------------------------------------------------------*/ /* 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 --- */ { incl/windefinition.i } { properties.i } DEFINE VARIABLE rAdresse AS RECID NO-UNDO. DEFINE VARIABLE iArt AS INTEGER NO-UNDO. DEFINE VARIABLE cStrichcode AS CHARACTER NO-UNDO. DEFINE VARIABLE ctArtstSort AS CHARACTER NO-UNDO INIT 'Bez'. DEFINE VARIABLE lMeldung AS LOGICAL NO-UNDO. DEFINE VARIABLE hqtArtst AS HANDLE NO-UNDO. DEFINE VARIABLE hqtArtstOK AS HANDLE NO-UNDO. DEFINE VARIABLE hqttDDArtikel AS HANDLE NO-UNDO. DEFINE BUFFER bAdresse FOR Adresse . DEFINE BUFFER bLiefst FOR Liefst . DEFINE BUFFER bArtst FOR Artst . DEFINE BUFFER bArtLief FOR ArtLief . { ttDDArtikel.i } DEFINE BUFFER bttDDArtikel FOR ttDDArtikel. DEFINE TEMP-TABLE tArtst LIKE Artst FIELD S_Artnr AS CHARACTER FIELD EANKGeb AS CHARACTER FIELD EANVGeb AS CHARACTER FIELD EANGGeb AS CHARACTER FIELD KGebinde AS CHARACTER FIELD rArtst AS RECID FIELD KGebMe AS INTEGER FIELD VGebMe AS INTEGER FIELD GGebMe AS INTEGER FIELD DDKGebCd AS CHARACTER FIELD DDVGebCd AS CHARACTER FIELD DDGGebCd AS CHARACTER FIELD lFound AS LOGICAL FIELD lS_Artnr AS LOGICAL FIELD lEANVGeb AS LOGICAL FIELD lAnzeigen AS LOGICAL INDEX tArtst-k1 IS PRIMARY Firma Artnr Inhalt Jahr INDEX tArtst-k2 S_Artnr INDEX tArtst-k3 Strichcode INDEX tArtst-k4 EANKGeb INDEX tArtst-k5 EANVGeb INDEX tArtst-k6 EANGGeb . DEFINE BUFFER btArtst FOR tArtst. DEFINE TEMP-TABLE tArtstOK LIKE Artst FIELD S_Artnr AS CHARACTER FIELD EANKGeb AS CHARACTER FIELD EANVGeb AS CHARACTER FIELD EANGGeb AS CHARACTER FIELD KGebinde AS CHARACTER FIELD iArt AS INTEGER FIELD KGebMe AS INTEGER FIELD VGebMe AS INTEGER FIELD GGebMe AS INTEGER FIELD DDKGebCd AS CHARACTER FIELD DDVGebCd AS CHARACTER FIELD DDGGebCd AS CHARACTER FIELD lAktiv AS LOGICAL FIELD lVerfuegbar AS LOGICAL FIELD rtArtst AS RECID FIELD rttDDArtikel AS RECID . DEFINE VARIABLE httDDArtikel AS HANDLE NO-UNDO. DEFINE VARIABLE htArtst AS HANDLE NO-UNDO. DEFINE VARIABLE htArtstOK AS HANDLE NO-UNDO. httDDArtikel = TEMP-TABLE ttDDArtikel:DEFAULT-BUFFER-HANDLE. htArtst = TEMP-TABLE tArtst :DEFAULT-BUFFER-HANDLE. htArtstOK = TEMP-TABLE tArtstOK :DEFAULT-BUFFER-HANDLE. {src/adm2/widgetprto.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartWindow &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER WINDOW &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME fMain &Scoped-define BROWSE-NAME Br_tArtst /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES tArtst tArtstOK ttDDArtikel /* Definitions for BROWSE Br_tArtst */ &Scoped-define FIELDS-IN-QUERY-Br_tArtst tArtst.Artnr tArtst.Inhalt tArtst.Jahr tArtst.KGebinde tArtst.Bez tArtst.EANKGeb tArtst.EANVGeb tArtst.S_Artnr &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_tArtst &Scoped-define SELF-NAME Br_tArtst &Scoped-define QUERY-STRING-Br_tArtst FOR EACH tArtst &Scoped-define OPEN-QUERY-Br_tArtst OPEN QUERY {&SELF-NAME} FOR EACH tArtst. &Scoped-define TABLES-IN-QUERY-Br_tArtst tArtst &Scoped-define FIRST-TABLE-IN-QUERY-Br_tArtst tArtst /* Definitions for BROWSE Br_tArtstOK */ &Scoped-define FIELDS-IN-QUERY-Br_tArtstOK tArtstOK.Artnr tArtstOK.Inhalt tArtstOK.Jahr tArtstOK.KGebinde tArtstOK.Bez tArtstOK.EANKGeb tArtstOK.EANVGeb tArtstOK.S_Artnr &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_tArtstOK &Scoped-define SELF-NAME Br_tArtstOK &Scoped-define QUERY-STRING-Br_tArtstOK FOR EACH tArtstOK &Scoped-define OPEN-QUERY-Br_tArtstOK OPEN QUERY {&SELF-NAME} FOR EACH tArtstOK. &Scoped-define TABLES-IN-QUERY-Br_tArtstOK tArtstOK &Scoped-define FIRST-TABLE-IN-QUERY-Br_tArtstOK tArtstOK /* Definitions for BROWSE Br_ttDDArtikel */ &Scoped-define FIELDS-IN-QUERY-Br_ttDDArtikel ttDDArtikel.Bezeichnung ttDDArtikel.HerstArtnr ttDDArtikel.EANKGeb ttDDArtikel.EANVGeb &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_ttDDArtikel &Scoped-define SELF-NAME Br_ttDDArtikel &Scoped-define QUERY-STRING-Br_ttDDArtikel FOR EACH ttDDArtikel &Scoped-define OPEN-QUERY-Br_ttDDArtikel OPEN QUERY {&SELF-NAME} FOR EACH ttDDArtikel. &Scoped-define TABLES-IN-QUERY-Br_ttDDArtikel ttDDArtikel &Scoped-define FIRST-TABLE-IN-QUERY-Br_ttDDArtikel ttDDArtikel /* Definitions for FRAME fMain */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_Knr F_Lieferant F_GlnNr Btn_Sammeln ~ Btn_DDAbgleich Br_tArtst Br_tArtstOK Btn_ARTIKELOK Br_ttDDArtikel ~ Btn_ARTIKELNOK Bt_OK Btn_Cancel &Scoped-Define DISPLAYED-OBJECTS F_Knr F_Lieferant F_GlnNr /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_Knr F_Lieferant F_GlnNr /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD checkDoppelte DigitalDrink FUNCTION checkDoppelte RETURNS LOGICAL ( ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD fillDaten DigitalDrink FUNCTION fillDaten RETURNS LOGICAL ( iprttDDArtikel AS RECID, iprtArtst AS RECID ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getProgname DigitalDrink FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR DigitalDrink AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_ARTIKELNOK IMAGE-UP FILE "grafik/prev.bmp":U IMAGE-DOWN FILE "grafik/prev.bmp":U LABEL "Button 2" SIZE 3.6 BY .86. DEFINE BUTTON Btn_ARTIKELOK IMAGE-UP FILE "grafik/next.bmp":U IMAGE-DOWN FILE "grafik/next.bmp":U LABEL "Button 1" SIZE 3.6 BY .86. DEFINE BUTTON Btn_Cancel LABEL "abbrechen" SIZE 15 BY 1. DEFINE BUTTON Btn_DDAbgleich LABEL "mit DigitalDrink abgleichen" SIZE 30 BY 1. DEFINE BUTTON Btn_Sammeln LABEL "Sammeln" SIZE 15 BY 1. DEFINE BUTTON Bt_OK LABEL "mutieren" SIZE 15 BY 1. DEFINE VARIABLE F_GlnNr AS CHARACTER FORMAT "x(20)":U LABEL "GLN-Nr" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "Lieferanten-Nr" VIEW-AS FILL-IN NATIVE SIZE 12 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Lieferant AS CHARACTER FORMAT "X(256)":U LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 80 BY 1 BGCOLOR 15 NO-UNDO. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_tArtst FOR tArtst SCROLLING. DEFINE QUERY Br_tArtstOK FOR tArtstOK SCROLLING. DEFINE QUERY Br_ttDDArtikel FOR ttDDArtikel SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_tArtst &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_tArtst DigitalDrink _FREEFORM QUERY Br_tArtst DISPLAY tArtst.Artnr FORMAT '999999' LABEL 'Artnr' tArtst.Inhalt FORMAT '9999' LABEL 'Inhalt' tArtst.Jahr FORMAT '9999' LABEL 'Jahr' tArtst.KGebinde FORMAT 'x(12)' LABEL 'KGebinde' tArtst.Bez FORMAT 'x(54)' LABEL 'Artikel' tArtst.EANKGeb FORMAT 'x(17)' LABEL 'EAN-/KGeb' tArtst.EANVGeb FORMAT 'x(17)' LABEL 'EAN-/VGeb' tArtst.S_Artnr FORMAT 'x(20)' LABEL 'Artnr Lief' /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 144 BY 12.86. DEFINE BROWSE Br_tArtstOK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_tArtstOK DigitalDrink _FREEFORM QUERY Br_tArtstOK DISPLAY tArtstOK.Artnr FORMAT '999999' LABEL 'Artnr' tArtstOK.Inhalt FORMAT '9999' LABEL 'Inhalt' tArtstOK.Jahr FORMAT '9999' LABEL 'Jahr' tArtstOK.KGebinde FORMAT 'x(12)' LABEL 'KGebinde' tArtstOK.Bez FORMAT 'x(54)' LABEL 'Artikel' tArtstOK.EANKGeb FORMAT 'x(17)' LABEL 'EAN-/KGebinde' tArtstOK.EANVGeb FORMAT 'x(17)' LABEL 'EAN-/VGebinde' tArtstOK.S_Artnr FORMAT 'x(20)' LABEL 'Artnr Lief' /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 150 BY 27.62. DEFINE BROWSE Br_ttDDArtikel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_ttDDArtikel DigitalDrink _FREEFORM QUERY Br_ttDDArtikel DISPLAY ttDDArtikel.Bezeichnung FORMAT 'x(68)' LABEL 'DD-Artikel' ttDDArtikel.HerstArtnr FORMAT 'x(18)' LABEL 'Artnr Lief' ttDDArtikel.EANKGeb FORMAT 'x(19)' LABEL 'EAN-Code KGeb' ttDDArtikel.EANVGeb FORMAT 'x(19)' LABEL 'EAN-Code VGeb' ttDDArtikel.GGebMe FORMAT 'zz9' LABEL 'GGeb Me' /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 144 BY 12.86. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain F_Knr AT ROW 2 COL 20 COLON-ALIGNED WIDGET-ID 2 F_Lieferant AT ROW 2 COL 35 COLON-ALIGNED WIDGET-ID 4 NO-TAB-STOP F_GlnNr AT ROW 2 COL 130 COLON-ALIGNED WIDGET-ID 6 NO-TAB-STOP Btn_Sammeln AT ROW 2 COL 170 WIDGET-ID 8 Btn_DDAbgleich AT ROW 2 COL 196.2 WIDGET-ID 10 Br_tArtst AT ROW 3.86 COL 5 WIDGET-ID 200 Br_tArtstOK AT ROW 3.86 COL 161 WIDGET-ID 400 Btn_ARTIKELOK AT ROW 13.38 COL 152 WIDGET-ID 16 Br_ttDDArtikel AT ROW 18.62 COL 5 WIDGET-ID 300 Btn_ARTIKELNOK AT ROW 21.48 COL 152 WIDGET-ID 18 Bt_OK AT ROW 32.52 COL 132 WIDGET-ID 20 Btn_Cancel AT ROW 32.52 COL 163 WIDGET-ID 22 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 314.2 BY 33.33 CANCEL-BUTTON Btn_Cancel WIDGET-ID 100. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartWindow Allow: Basic,Browse,DB-Fields,Query,Smart,Window Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source Other Settings: COMPILE APPSERVER */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW DigitalDrink ASSIGN HIDDEN = YES TITLE = "Artikel von Digital Drink" HEIGHT = 33.33 WIDTH = 314.2 MAX-HEIGHT = 65.57 MAX-WIDTH = 512 VIRTUAL-HEIGHT = 65.57 VIRTUAL-WIDTH = 512 RESIZE = NO SCROLL-BARS = NO STATUS-AREA = NO BGCOLOR = ? FGCOLOR = ? THREE-D = YES MESSAGE-AREA = NO SENSITIVE = YES. ELSE {&WINDOW-NAME} = CURRENT-WINDOW. &IF '{&WINDOW-SYSTEM}' NE 'TTY' &THEN IF NOT DigitalDrink:LOAD-ICON("grafik/appl.ico":U) THEN MESSAGE "Unable to load icon: grafik/appl.ico" VIEW-AS ALERT-BOX WARNING BUTTONS OK. &ENDIF /* END WINDOW DEFINITION */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB DigitalDrink /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW DigitalDrink VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain FRAME-NAME */ /* BROWSE-TAB Br_tArtst Btn_DDAbgleich fMain */ /* BROWSE-TAB Br_tArtstOK Br_tArtst fMain */ /* BROWSE-TAB Br_ttDDArtikel Btn_ARTIKELOK fMain */ ASSIGN Br_tArtst:ALLOW-COLUMN-SEARCHING IN FRAME fMain = TRUE Br_tArtst:COLUMN-RESIZABLE IN FRAME fMain = TRUE. ASSIGN Br_tArtstOK:COLUMN-RESIZABLE IN FRAME fMain = TRUE. ASSIGN Br_ttDDArtikel:COLUMN-RESIZABLE IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_GlnNr IN FRAME fMain 6 */ ASSIGN F_GlnNr:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_Knr IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Lieferant IN FRAME fMain 6 */ ASSIGN F_Lieferant:READ-ONLY IN FRAME fMain = TRUE. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(DigitalDrink) THEN DigitalDrink:HIDDEN = YES. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_tArtst /* Query rebuild information for BROWSE Br_tArtst _START_FREEFORM OPEN QUERY {&SELF-NAME} FOR EACH tArtst. _END_FREEFORM _Query is NOT OPENED */ /* BROWSE Br_tArtst */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_tArtstOK /* Query rebuild information for BROWSE Br_tArtstOK _START_FREEFORM OPEN QUERY {&SELF-NAME} FOR EACH tArtstOK. _END_FREEFORM _Query is NOT OPENED */ /* BROWSE Br_tArtstOK */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_ttDDArtikel /* Query rebuild information for BROWSE Br_ttDDArtikel _START_FREEFORM OPEN QUERY {&SELF-NAME} FOR EACH ttDDArtikel. _END_FREEFORM _Query is NOT OPENED */ /* BROWSE Br_ttDDArtikel */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME DigitalDrink &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL DigitalDrink DigitalDrink ON END-ERROR OF DigitalDrink /* Artikel von Digital Drink */ OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO: /* This case occurs when the user presses the "Esc" key. In a persistently run window, just ignore this. If we did not, the application would exit. */ IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY. /* ****************************** */ RUN ENDE. RETURN NO-APPLY. /* ****************************** */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL DigitalDrink DigitalDrink ON WINDOW-CLOSE OF DigitalDrink /* Artikel von Digital Drink */ DO: /* This ADM code must be left here in order for the SmartWindow and its descendents to terminate properly on exit. */ RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_tArtst &Scoped-define SELF-NAME Br_tArtst &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtst DigitalDrink ON DELETE-CHARACTER OF Br_tArtst IN FRAME fMain DO: Br_tArtst:FETCH-SELECTED-ROW(1). DELETE tArtst. Br_tArtst:DELETE-SELECTED-ROW (1). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtst DigitalDrink ON END-ERROR OF Br_tArtst IN FRAME fMain OR ENDKEY OF Br_tArtst DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtst DigitalDrink ON LEFT-MOUSE-DBLCLICK OF Br_tArtst IN FRAME fMain DO: DEFINE VARIABLE cEANKGeb AS CHARACTER NO-UNDO. DEFINE VARIABLE cEANVGeb AS CHARACTER NO-UNDO. DEFINE VARIABLE cS_Artnr AS CHARACTER NO-UNDO. DEFINE VARIABLE lOK AS LOGICAL NO-UNDO. DEFINE VARIABLE rwtArtst AS ROWID NO-UNDO. Br_tArtst:FETCH-SELECTED-ROW(1). rwtArtst = ROWID(tArtst). ASSIGN cEANKGeb = tArtst.EANKGeb cEANVGeb = tArtst.EANVGeb cS_Artnr = tArtst.S_Artnr. RUN g-ddwerteingabe.w ( INPUT-OUTPUT cEANKGeb, INPUT-OUTPUT cEANVGeb, INPUT-OUTPUT cS_Artnr, OUTPUT lOK ) NO-ERROR. IF NOT lOK THEN RETURN NO-APPLY. tArtst.EANKGeb = cEANKGeb. tArtst.EANVGeb = cEANVGeb. tArtst.S_Artnr = cS_Artnr. lMeldung = DYNAMIC-FUNCTION ('checkDoppelte':U) NO-ERROR. hqtArtst:QUERY-OPEN (). hqtArtst:REPOSITION-TO-ROWID (ROWID(tArtst)). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtst DigitalDrink ON RETURN OF Br_tArtst IN FRAME fMain DO: DEFINE VARIABLE cEANKGeb AS CHARACTER NO-UNDO. DEFINE VARIABLE cEANVGeb AS CHARACTER NO-UNDO. DEFINE VARIABLE cS_Artnr AS CHARACTER NO-UNDO. DEFINE VARIABLE lOK AS LOGICAL NO-UNDO. DEFINE VARIABLE rwtArtst AS ROWID NO-UNDO. Br_tArtst:FETCH-SELECTED-ROW(1). rwtArtst = ROWID(tArtst). ASSIGN cEANKGeb = tArtst.EANKGeb cEANVGeb = tArtst.EANVGeb cS_Artnr = tArtst.S_Artnr. RUN g-ddwerteingabe.w ( INPUT-OUTPUT cEANKGeb, INPUT-OUTPUT cEANVGeb, INPUT-OUTPUT cS_Artnr, OUTPUT lOK ) NO-ERROR. IF NOT lOK THEN RETURN NO-APPLY. tArtst.EANKGeb = cEANKGeb. tArtst.EANVGeb = cEANVGeb. tArtst.S_Artnr = cS_Artnr. lMeldung = DYNAMIC-FUNCTION ('checkDoppelte':U) NO-ERROR. hqtArtst:QUERY-OPEN (). hqtArtst:REPOSITION-TO-ROWID (ROWID(tArtst)). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtst DigitalDrink ON ROW-DISPLAY OF Br_tArtst IN FRAME fMain DO: IF tArtst.lS_Artnr THEN tArtst.S_Artnr:BGCOLOR IN BROWSE Br_tArtst = 14. ELSE tArtst.S_Artnr:BGCOLOR IN BROWSE Br_tArtst = 15. IF tArtst.lEANVGeb THEN tArtst.EANVGeb:BGCOLOR IN BROWSE Br_tArtst = 14. ELSE tArtst.EANVGeb:BGCOLOR IN BROWSE Br_tArtst = 15. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtst DigitalDrink ON START-SEARCH OF Br_tArtst IN FRAME fMain DO: DEF VAR cString AS CHAR NO-UNDO. DEF VAR hCol AS HANDLE NO-UNDO. DEF VAR iSort AS INT NO-UNDO. hCol = SELF:CURRENT-COLUMN. ctArtstSort = hCol:NAME . APPLY 'END-SEARCH' TO {&BROWSE-NAME}. hqtArtst:QUERY-PREPARE (SUBSTITUTE('FOR EACH tArtst WHERE tArtst.Aktiv AND tArtst.lAnzeigen BY &1', ctArtstSort)). hqtArtst:QUERY-OPEN (). APPLY 'ENTRY' TO Br_tArtst. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtst DigitalDrink ON VALUE-CHANGED OF Br_tArtst IN FRAME fMain DO: Br_tArtst:FETCH-SELECTED-ROW(1). RUN FIND_DDARTIKEL ( tArtst.Bez ). PUBLISH 'DDABGLEICH' ( tArtst.Artnr, tArtst.Inhalt, tArtst.Jahr). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_tArtstOK &Scoped-define SELF-NAME Br_tArtstOK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtstOK DigitalDrink ON END-ERROR OF Br_tArtstOK IN FRAME fMain OR ENDKEY OF Br_tArtstOK DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtstOK DigitalDrink ON ROW-DISPLAY OF Br_tArtstOK IN FRAME fMain DO: Br_tArtstOK:BGCOLOR = ?. Br_tArtstOK:FGCOLOR = ?. FIND FIRST bArtLief NO-LOCK WHERE bArtLief.Firma = Firma AND bArtLief.Knr = F_Knr AND bArtLief.Artnr = tArtstOK.Artnr AND bArtLief.Inhalt = tArtstOK.Inhalt AND bArtLief.Jahr = tArtstOK.Jahr NO-ERROR. IF NOT tArtstOK.lAktiv THEN DO: ASSIGN tArtstOK.Artnr :BGCOLOR IN BROWSE Br_tArtstOK = 12 tArtstOK.Artnr :FGCOLOR = 15 tArtstOK.Inhalt :BGCOLOR = 12 tArtstOK.Inhalt :FGCOLOR = 15 tArtstOK.Jahr :BGCOLOR = 12 tArtstOK.Jahr :FGCOLOR = 15 tArtstOK.KGebinde:BGCOLOR = 12 tArtstOK.KGebinde:FGCOLOR = 15 tArtstOK.Bez :BGCOLOR = 12 tArtstOK.Bez :FGCOLOR = 15 tArtstOK.EANKGeb :BGCOLOR = 12 tArtstOK.EANKGeb :FGCOLOR = 15 tArtstOK.EANVGeb :BGCOLOR = 12 tArtstOK.EANVGeb :FGCOLOR = 15 tArtstOK.S_Artnr :BGCOLOR = 12 tArtstOK.S_Artnr :FGCOLOR = 15 . END. IF NOT tArtstOK.lVerfuegbar THEN DO: ASSIGN tArtstOK.Artnr :BGCOLOR = 13 tArtstOK.Artnr :FGCOLOR = 0 tArtstOK.Inhalt :BGCOLOR = 13 tArtstOK.Inhalt :FGCOLOR = 0 tArtstOK.Jahr :BGCOLOR = 13 tArtstOK.Jahr :FGCOLOR = 0 tArtstOK.KGebinde:BGCOLOR = 13 tArtstOK.KGebinde:FGCOLOR = 0 tArtstOK.Bez :BGCOLOR = 13 tArtstOK.Bez :FGCOLOR = 0 tArtstOK.EANKGeb :BGCOLOR = 13 tArtstOK.EANKGeb :FGCOLOR = 0 tArtstOK.EANVGeb :BGCOLOR = 13 tArtstOK.EANVGeb :FGCOLOR = 0 tArtstOK.S_Artnr :BGCOLOR = 13 tArtstOK.S_Artnr :FGCOLOR = 0 . END. IF bArtLief.Strichcode_KGeb <> tArtstOK.EANKGeb THEN tArtstOK.EANKGeb:BGCOLOR IN BROWSE Br_tArtstOK = 14. /* ELSE tArtstOK.EANKGeb:BGCOLOR IN BROWSE Br_tArtstOK = 15.*/ IF bArtLief.Strichcode_VGeb <> tArtstOK.EANVGeb THEN tArtstOK.EANVGeb:BGCOLOR IN BROWSE Br_tArtstOK = 14. /* ELSE tArtstOK.EANVGeb:BGCOLOR IN BROWSE Br_tArtstOK = 15.*/ IF bArtLief.S_Artnr <> tArtstOK.S_Artnr THEN tArtstOK.S_Artnr:BGCOLOR IN BROWSE Br_tArtstOK = 14. /* ELSE tArtstOK.S_Artnr:BGCOLOR IN BROWSE Br_tArtstOK = 15.*/ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_tArtstOK DigitalDrink ON VALUE-CHANGED OF Br_tArtstOK IN FRAME fMain DO: Br_tArtstOK:FETCH-SELECTED-ROW(1). PUBLISH 'DDABGLEICH' ( tArtstOK.Artnr, tArtstOK.Inhalt, tArtstOK.Jahr). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_ttDDArtikel &Scoped-define SELF-NAME Br_ttDDArtikel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_ttDDArtikel DigitalDrink ON DELETE-CHARACTER OF Br_ttDDArtikel IN FRAME fMain DO: Br_ttDDArtikel:FETCH-SELECTED-ROW(1). DELETE ttDDArtikel. Br_ttDDArtikel:DELETE-SELECTED-ROW (1). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_ttDDArtikel DigitalDrink ON END-ERROR OF Br_ttDDArtikel IN FRAME fMain OR ENDKEY OF Br_tArtstOK DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_ttDDArtikel DigitalDrink ON ROW-DISPLAY OF Br_ttDDArtikel IN FRAME fMain DO: Br_ttDDArtikel:BGCOLOR = ?. Br_ttDDArtikel:FGCOLOR = ?. IF NOT ttDDArtikel.lAktiv THEN DO: ASSIGN ttDDArtikel.Bezeichnung:BGCOLOR IN BROWSE Br_ttDDArtikel = 12 ttDDArtikel.Bezeichnung:FGCOLOR = 15 ttDDArtikel.HerstArtnr :BGCOLOR = 12 ttDDArtikel.HerstArtnr :FGCOLOR = 15 ttDDArtikel.EANKGeb :BGCOLOR = 12 ttDDArtikel.EANKGeb :FGCOLOR = 15 ttDDArtikel.EANVGeb :BGCOLOR = 12 ttDDArtikel.EANVGeb :FGCOLOR = 15 . END. IF NOT ttDDArtikel.lVerfuegbar THEN DO: ASSIGN ttDDArtikel.Bezeichnung:BGCOLOR = 13 ttDDArtikel.Bezeichnung:FGCOLOR = 0 ttDDArtikel.HerstArtnr :BGCOLOR = 13 ttDDArtikel.HerstArtnr :FGCOLOR = 0 ttDDArtikel.EANKGeb :BGCOLOR = 13 ttDDArtikel.EANKGeb :FGCOLOR = 0 ttDDArtikel.EANVGeb :BGCOLOR = 13 ttDDArtikel.EANVGeb :FGCOLOR = 0 . END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_ARTIKELNOK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_ARTIKELNOK DigitalDrink ON CHOOSE OF Btn_ARTIKELNOK IN FRAME fMain /* Button 2 */ DO: RUN ARTIKEL_NOK. APPLY 'ENTRY' TO Br_tArtst. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_ARTIKELOK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_ARTIKELOK DigitalDrink ON CHOOSE OF Btn_ARTIKELOK IN FRAME fMain /* Button 1 */ DO: RUN ARTIKEL_OK. APPLY 'ENTRY' TO Br_tArtst. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel DigitalDrink ON CHOOSE OF Btn_Cancel IN FRAME fMain /* abbrechen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_DDAbgleich &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_DDAbgleich DigitalDrink ON CHOOSE OF Btn_DDAbgleich IN FRAME fMain /* mit DigitalDrink abgleichen */ DO: SESSION:SET-WAIT-STATE ('GENERAL'). RUN DD_ABGLEICH. SESSION:SET-WAIT-STATE (''). APPLY 'ENTRY' TO Br_tArtst. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_DDAbgleich DigitalDrink ON END-ERROR OF Btn_DDAbgleich IN FRAME fMain /* mit DigitalDrink abgleichen */ OR ENDKEY OF Btn_DDAbgleich DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Sammeln &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Sammeln DigitalDrink ON CHOOSE OF Btn_Sammeln IN FRAME fMain /* Sammeln */ DO: SESSION:SET-WAIT-STATE ('GENERAL'). RUN ARTIKEL_SAMMELN. IF lMeldung THEN DO: FIND FIRST tArtst NO-LOCK WHERE tArtst.lS_Artnr OR tArtst.lEANVGeb NO-ERROR. IF AVAILABLE tArtst THEN DO: hqtArtst:REPOSITION-TO-ROWID (ROWID(tArtst)). END. END. SESSION:SET-WAIT-STATE (''). IF lMeldung THEN APPLY 'ENTRY' TO Br_tArtst IN FRAME {&FRAME-NAME}. ELSE APPLY 'ENTRY' TO Btn_DDAbgleich IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Sammeln DigitalDrink ON END-ERROR OF Btn_Sammeln IN FRAME fMain /* Sammeln */ OR ENDKEY OF Btn_Sammeln DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Bt_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Bt_OK DigitalDrink ON CHOOSE OF Bt_OK IN FRAME fMain /* mutieren */ DO: RUN ARTIKEL_MUTATION. APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Knr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr DigitalDrink ON ALT-F OF F_Knr IN FRAME fMain /* Lieferanten-Nr */ DO: DO WITH FRAME {&FRAME-NAME}: RUN g-suchen-adresse.w ( 'LIE', OUTPUT rAdresse ). IF rAdresse = ? OR rAdresse = 0 THEN DO: APPLY 'ENTRY' TO F_Knr. RETURN NO-APPLY. END. FIND bAdresse NO-LOCK WHERE RECID(bAdresse) = rAdresse. FIND bLiefst NO-LOCK WHERE bLiefst.Firma = Firma AND bLiefst.Knr = bAdresse.Knr. ASSIGN F_Knr = bLiefst.Knr F_Lieferant = bAdresse.Anzeig_Br F_GlnNr = bLiefst.GLN_Nr1. DISPLAY {&List-6}. EMPTY TEMP-TABLE tArtstOK. hqtArtstOK:QUERY-OPEN (). EMPTY TEMP-TABLE ttDDArtikel. hqttDDArtikel:QUERY-OPEN (). APPLY 'ENTRY' TO Btn_Sammeln. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr DigitalDrink ON LEAVE OF F_Knr IN FRAME fMain /* Lieferanten-Nr */ DO: IF LASTKEY <> 13 AND LASTKEY <> 10 AND LASTKEY <> 09 THEN RETURN. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&list-6}. FIND bAdresse NO-LOCK WHERE bAdresse.FIrma = AdFirma AND bAdresse.Knr = F_Knr NO-ERROR. IF F_Knr = 0 OR NOT AVAILABLE bAdresse THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. FIND bLiefst NO-LOCK WHERE bLiefst.Firma = Firma AND bLiefst.Knr = F_Knr NO-ERROR. IF NOT AVAILABLE bAdresse THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. ASSIGN F_Knr = bLiefst.Knr F_Lieferant = bAdresse.Anzeig_Br F_GlnNr = bLiefst.GLN_Nr1. DISPLAY {&List-6}. EMPTY TEMP-TABLE tArtstOK. hqtArtstOK:QUERY-OPEN (). EMPTY TEMP-TABLE ttDDArtikel. hqttDDArtikel:QUERY-OPEN (). APPLY 'ENTRY' TO Btn_Sammeln. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_tArtst &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK DigitalDrink /* *************************** Main Block *************************** */ { incl/winmainblock.i } {src/adm2/windowmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects DigitalDrink _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 ARTIKEL_MUTATION DigitalDrink PROCEDURE ARTIKEL_MUTATION : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. END. FOR EACH tArtstOK: FIND Artst WHERE Artst.Firma = Firma AND Artst.Artnr = tArtstOK.Artnr AND Artst.Inhalt = tArtstOK.Inhalt AND Artst.Jahr = tArtstOK.Jahr. IF tArtstOK.EANKGeb <> '' THEN ASSIGN Artst.Strichcode = tArtstOK.Strichcode. FIND KGebinde WHERE KGebinde.Firma = Artst.Firma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR. IF AVAILABLE KGebinde AND tArtstOK.DDKGebCd <> '' THEN DO: IF LOOKUP(tArtstOK.DDKGebCd, KGebinde.DD_Code, ';') = 0 THEN DO: KGebinde.DD_Code = KGebinde.DD_Code + (IF KGebinde.DD_Code = '' THEN '' ELSE ';') + tArtstOK.DDKGebCd. KGebinde.DD_Code = REPLACE(KGebinde.DD_Code, ';;', ';'). END. END. FIND VGebinde WHERE VGebinde.Firma = Artst.Firma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR. IF AVAILABLE VGebinde AND tArtstOK.DDVGebCd <> '' THEN DO: IF LOOKUP(tArtstOK.DDVGebCd, VGebinde.DD_Code, ';') = 0 THEN DO: VGebinde.DD_Code = VGebinde.DD_Code + (IF VGebinde.DD_Code = '' THEN '' ELSE ';') + tArtstOK.DDVGebCd. VGebinde.DD_Code = REPLACE(VGebinde.DD_Code, ';;', ';'). END. END. FIND GGebinde WHERE GGebinde.Firma = Artst.Firma AND GGebinde.Geb_Cd = Artst.GGeb_Cd NO-ERROR. IF AVAILABLE GGebinde AND tArtstOK.DDGGebCd <> '' THEN DO: IF LOOKUP(tArtstOK.DDGGebCd, GGebinde.DD_Code, ';') = 0 THEN DO: GGebinde.DD_Code = GGebinde.DD_Code + (IF GGebinde.DD_Code = '' THEN '' ELSE ';') + tArtstOK.DDGGebCd. GGebinde.DD_Code = REPLACE(GGebinde.DD_Code, ';;', ';'). END. END. RELEASE KGebinde. RELEASE VGebinde. RELEASE GGebinde. FOR EACH ArtLief USE-INDEX ArtLief-k1 WHERE ArtLief.Firma = Firma AND ArtLief.Artnr = tArtstOK.Artnr AND ArtLief.Inhalt = tArtstOK.Inhalt AND ArtLief.Jahr = tArtstOK.Jahr. ASSIGN ArtLief.Strichcode_KGeb = tArtstOK.EANKGeb ArtLief.S_Artnr = (IF tArtstOK.S_Artnr <> '' THEN tArtstOK.S_Artnr ELSE ArtLief.S_Artnr). IF tArtstOK.EANVGeb <> '' THEN ArtLief.Strichcode_VGeb = tArtstOK.EANVGeb. IF tArtstOK.EANGGeb <> '' AND ArtLief.Knr = F_Knr THEN ArtLief.Strichcode_GGeb = tArtstOK.EANGGeb. RELEASE Artst. RELEASE ArtLief. END. END. EMPTY TEMP-TABLE tArtst . EMPTY TEMP-TABLE tArtstOK . EMPTY TEMP-TABLE ttDDArtikel. hqtArtst :QUERY-OPEN (). hqtArtstOK :QUERY-OPEN (). hqttDDArtikel:QUERY-OPEN (). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKEL_NOK DigitalDrink PROCEDURE ARTIKEL_NOK : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. Br_tArtstOK:FETCH-SELECTED-ROW (1). END. CREATE tArtst. FIND tArtst WHERE RECID(tArtst) = tArtstOK.rtArtst. FIND ttDDArtikel WHERE RECID(ttDDArtikel) = tArtstOK.rttDDArtikel. ASSIGN ttDDArtikel.Artnr = 0 ttDDArtikel.Inhalt = 0 ttDDArtikel.Jahr = 0 ttDDArtikel.rArtst = 0 ttDDArtikel.LieferGLN = F_GlnNr ttDDArtikel.lFound = FALSE ttDDArtikel.lAnzeigen = TRUE tArtst.lANzeigen = TRUE. DELETE tArtstOK. hqtArtst :QUERY-OPEN (). hqtArtstOK :QUERY-OPEN (). hqttDDArtikel:QUERY-OPEN (). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKEL_OK DigitalDrink PROCEDURE ARTIKEL_OK : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE VARIABLE rwtArtstOK AS ROWID NO-UNDO. DO WITH FRAME {&FRAME-NAME}: Br_tArtst :FETCH-SELECTED-ROW (1). Br_ttDDArtikel:FETCH-SELECTED-ROW (1). END. CREATE tArtstOK. BUFFER-COPY tArtst TO tArtstOK ASSIGN tArtstOK.EANKGeb = ttDDArtikel.EANKGeb tArtstOK.EANVGeb = ttDDArtikel.EANVGeb tArtstOK.S_Artnr = (IF ttDDArtikel.HerstArtnr <> '' THEN ttDDArtikel.HerstArtnr ELSE tArtst.S_Artnr) tArtstOK.iArt = ttDDArtikel.iArt tArtstOK.lAktiv = ttDDArtikel.lAktiv tArtstOK.lVerfuegbar = ttDDArtikel.lVerfuegbar tArtstOK.rtArtst = RECID(tArtst) tArtstOK.rttDDArtikel = RECID(ttDDArtikel). rwtArtstOK = ROWID(tArtstOK). ASSIGN tArtst.lAnzeigen = FALSE ttDDArtikel.lAnzeigen = FALSE. hqtArtst :QUERY-OPEN (). hqtArtstOK :QUERY-OPEN (). hqttDDArtikel:QUERY-OPEN (). hqtArtstOK:REPOSITION-TO-ROWID (rwtArtstOK). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ARTIKEL_SAMMELN DigitalDrink PROCEDURE ARTIKEL_SAMMELN : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE VARIABLE cDDVGebinde AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. EMPTY TEMP-TABLE tArtst. FOR EACH ArtLief NO-LOCK WHERE ArtLief.Firma = Firma AND ArtLief.Knr = F_Knr , FIRST Artst NO-LOCK WHERE Artst.Firma = ArtLief.Firma AND Artst.Artnr = ArtLief.Artnr AND Artst.Inhalt = ArtLief.Inhalt AND Artst.Jahr = ArtLief.Jahr AND Artst.Leih_Art = FALSE AND Artst.Aktiv = TRUE AND Artst.Ausverk < 9 , FIRST Artbez NO-LOCK OF Artst: FIND FIRST tArtst NO-LOCK OF Artst NO-ERROR. IF AVAILABLE tArtst THEN NEXT. FIND KGebinde NO-LOCK WHERE KGebinde.Firma = Artst.Firma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-ERROR. FIND VGebinde NO-LOCK WHERE VGebinde.Firma = Artst.Firma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR. FIND GGebinde NO-LOCK WHERE GGebinde.Firma = Artst.Firma AND GGebinde.Geb_Cd = Artst.GGeb_Cd NO-ERROR. CREATE tArtst. BUFFER-COPY Artst TO tArtst ASSIGN tArtst.Bez = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2) tArtst.S_Artnr = ArtLief.S_Artnr tArtst.KGebinde = (IF AVAILABLE KGebinde THEN KGebinde.KBez ELSE '') tArtst.rArtst = RECID(Artst) tArtst.EANKGeb = ArtLief.Strichcode_KGeb tArtst.EANVGeb = ArtLief.Strichcode_VGeb tArtst.EANGGeb = ArtLief.Strichcode_GGeb tArtst.KGebMe = (IF AVAILABLE KGebinde THEN KGebinde.Inhalt ELSE 1) tArtst.VGebMe = (IF AVAILABLE VGebinde THEN VGebinde.Inhalt ELSE 1) tArtst.GGebMe = (IF AVAILABLE GGebinde THEN GGebinde.Inhalt ELSE 1) tArtst.DDKGebCd = (IF AVAILABLE KGebinde THEN KGebinde.DD_Code ELSE '') tArtst.DDVGebCd = (IF AVAILABLE VGebinde THEN VGebinde.DD_Code ELSE '') tArtst.DDGGebCd = (IF AVAILABLE GGebinde THEN GGebinde.DD_Code ELSE '') tArtst.lFound = FALSE tArtst.lS_Artnr = FALSE tArtst.lEANVGeb = FALSE tArtst.lAnzeigen = TRUE . IF tArtst.EANKGeb = '' THEN tArtst.EANKGeb = tArtst.Strichcode. END. lMeldung = DYNAMIC-FUNCTION ('checkDoppelte':U) NO-ERROR. END. hqtArtst:QUERY-OPEN (). IF lMeldung THEN MESSAGE 'Es hat Unstimmigkeiten in der Auswahl' VIEW-AS ALERT-BOX INFORMATION . END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage DigitalDrink PROCEDURE changePage : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ RUN SUPER. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. CASE AktSeite: WHEN 1 THEN DO: /* RUN addLink ( hAktionen , 'TableIO':U , h_v-auftr ). */ /* RUN addLink ( hAktionen , 'Navigation':U , h_d-auftr ). */ /* RUN setButtons IN hAktionen ( 'initial-TableIo' ) NO-ERROR. */ END. WHEN 2 THEN DO: END. END CASE. RUN ENTRY_CURSOR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DD_ABGLEICH DigitalDrink PROCEDURE DD_ABGLEICH : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE cConString AS CHARACTER NO-UNDO. DEFINE VARIABLE hServer AS HANDLE NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE iLauf AS INTEGER NO-UNDO. DEFINE VARIABLE rtArtst AS RECID NO-UNDO. DEFINE VARIABLE rttDDArtikel AS RECID NO-UNDO. DEFINE VARIABLE lok AS LOGICAL NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. EMPTY TEMP-TABLE ttDDArtikel. cConString = SUBSTITUTE('-AppService &1 -H &2 -S &3 -sessionModel session-free', cERPAppServer, cERPServer, cNSPort ). CREATE SERVER hServer. hServer:CONNECT(cConString) NO-ERROR. IF NOT hServer:CONNECTED() THEN DO: MESSAGE 'Kein AppServer für asERP' SKIP 'Connect-String -> ' cConString VIEW-AS ALERT-BOX. RETURN. END. RUN 'ddartikelexport.p' ON hServer ( F_GlnNr, OUTPUT TABLE ttDDArtikel). /* Aufruf Schnittstelle */ hServer:DISCONNECT(). DELETE OBJECT hServer NO-ERROR. FIND FIRST ttDDArtikel NO-ERROR. IF NOT AVAILABLE ttDDArtikel THEN RETURN NO-APPLY. FOR EACH bttDDArtikel WHERE bttDDArtikel.iArt = 0: FOR EACH ttDDArtikel WHERE ttDDArtikel.iArt = 1 AND ttDDArtikel.EANKGeb = bttDDArtikel.EANKGeb: ASSIGN ttDDArtikel.KGebCd = bttDDArtikel.KGebCd ttDDArtikel.KGebMe = bttDDArtikel.KGebMe. END. END. FOR EACH bttDDArtikel WHERE bttDDArtikel.iArt = 1: FOR EACH ttDDArtikel WHERE ttDDArtikel.iArt = 2 AND ttDDArtikel.EANKGeb = bttDDArtikel.EANKGeb AND ttDDArtikel.EANVGeb = bttDDArtikel.EANVGeb: ASSIGN ttDDArtikel.KGebCd = bttDDArtikel.KGebCd ttDDArtikel.KGebMe = bttDDArtikel.KGebMe ttDDArtikel.VGebCd = bttDDArtikel.VGebCd ttDDArtikel.VGebMe = bttDDArtikel.VGebMe. IF bttDDArtikel.HerstArtnr = ttDDArtikel.HerstArtnr THEN DO: ASSIGN bttDDArtikel.GGebMe = ttDDArtikel.GGebMe. END. END. END. /* OUTPUT TO 'C:\Entwicklung\TEMP\OE117WRK\ttDDArtikel.csv' NO-MAP NO-CONVERT.*/ /* FOR EACH ttddArtikel: */ /* EXPORT DELIMITER ';' ttddArtikel. */ /* END. */ /* OUTPUT CLOSE. */ /* -------------------------------------------------------------- */ /* alle bereits eindeutig zugeteilten Artikel */ /* -------------------------------------------------------------- */ FOR EACH ttDDArtikel WHERE ttDDArtikel.iArt = 2 AND ttDDArtikel.lFound = FALSE: FIND FIRST tArtst WHERE tArtst.EANKGeb = ttDDArtikel.EANKGeb AND tArtst.EANVGeb = ttDDArtikel.EANVGeb AND tArtst.S_Artnr = ttDDArtikel.HerstArtnr AND tArtst.KGebMe = ttDDArtikel.KGebMe AND tArtst.VGebMe = ttDDArtikel.VGebMe AND tArtst.GGebMe = ttDDArtikel.GGebMe NO-ERROR. IF NOT AVAILABLE tArtst THEN NEXT. lok = DYNAMIC-FUNCTION ('fillDaten':U, RECID(ttDDArtikel), RECID(tArtst) ). END. iArt = 1. iLauf = 0. DDARTIKEL: FOR EACH ttDDArtikel WHERE ttDDArtikel.lFound = FALSE AND ttDDArtikel.lAnzeigen = TRUE AND ttDDArtikel.iArt = iArt : CASE iLauf: WHEN 0 THEN cStrichcode = ttDDArtikel.EANKGeb. WHEN 1 THEN cStrichcode = ttDDArtikel.EANVGeb. WHEN 2 THEN cStrichcode = ttDDArtikel.EANGGeb. END CASE. IF cStrichcode = '' THEN NEXT. IF cStrichcode = ? THEN NEXT. IF iLauf = 0 AND ttDDArtikel.HerstArtnr <> '' THEN DO: ii = 0. FOR EACH tArtst USE-INDEX tArtst-k1 WHERE tArtst.S_Artnr = ttDDArtikel.HerstArtnr AND tArtst.KGebMe = ttDDArtikel.KGebMe AND tArtst.VGebMe = ttDDArtikel.VGebMe AND tArtst.GGebMe = ttDDArtikel.GGebMe AND tArtst.lFound = FALSE AND tArtst.lS_Artnr = FALSE AND tArtst.lEANVGeb = FALSE AND tArtst.lAnzeigen = TRUE: ii = ii + 1. rtArtst = RECID(tArtst). END. IF ii = 1 THEN DO: FIND tArtst WHERE RECID(tArtst) = rtArtst. ASSIGN ttDDArtikel.lFound = TRUE ttDDArtikel.Artnr = tArtst.Artnr ttDDArtikel.Inhalt = tArtst.Inhalt ttDDArtikel.Jahr = tArtst.Jahr ttDDArtikel.rArtst = tArtst.rArtst ttDDArtikel.EANKGeb = cStrichcode tArtst.lFound = TRUE. NEXT. END. IF ii > 1 THEN NEXT. DO WHILE LENGTH(cStrichcode) < 13: cStrichcode = '0' + cStrichcode. END. STRICHCODE00: DO WHILE TRUE: FIND FIRST tArtst USE-INDEX tArtst-k4 WHERE tArtst.Firma = Firma AND tArtst.EANKGeb = cStrichcode AND tArtst.VGebMe = ttDDArtikel.VGebMe AND tArtst.lFound = FALSE AND tArtst.lS_Artnr = FALSE AND tArtst.lEANVGeb = FALSE AND tArtst.lAnzeigen = TRUE NO-ERROR. lok = FALSE. DO WHILE AVAILABLE tArtst: IF ttDDArtikel.KGebMe < (tArtst.KGebMe - 1) THEN LEAVE. IF ttDDArtikel.KGebMe > (tArtst.KGebMe + 1) THEN LEAVE. /* IF ttDDArtikel.VGebMe <> tArtst.VGebMe THEN LEAVE.*/ /* IF ttDDArtikel.GGebMe <> tArtst.GGebMe THEN LEAVE.*/ lok = DYNAMIC-FUNCTION ('fillDaten':U, RECID(ttDDArtikel), RECID(tArtst) ). LEAVE. END. IF lok THEN LEAVE STRICHCODE00. IF NOT cStrichcode BEGINS '0' THEN LEAVE. cStrichcode = SUBSTRING(cStrichcode,02). END. END. END. END. /* ------------------------------------------------------ */ /* Artikelnummer Lieferant und Mengen stimmen überein */ /* ------------------------------------------------------ */ FOR EACH tArtst WHERE tArtst.S_Artnr <> '' AND tArtst.lFound = FALSE AND tArtst.lAnzeigen = TRUE: ii = 0. FOR EACH ttDDArtikel WHERE ttDDArtikel.lFound = FALSE AND ttDDArtikel.lAnzeigen = TRUE AND ttDDArtikel.iArt = iArt AND ttDDArtikel.HerstArtnr = tArtst.S_Artnr AND ttDDArtikel.KGebMe = tArtst.KGebMe AND ttDDArtikel.VGebMe = tArtst.VGebMe AND ttDDArtikel.GGebMe = tArtst.GGebMe : ii = ii + 1. rttDDArtikel = RECID(ttDDArtikel). END. IF ii <> 1 THEN NEXT. FIND ttDDArtikel WHERE RECID(ttDDArtikel) = rttDDArtikel. ASSIGN ttDDArtikel.lFound = TRUE ttDDArtikel.Artnr = tArtst.Artnr ttDDArtikel.Inhalt = tArtst.Inhalt ttDDArtikel.Jahr = tArtst.Jahr ttDDArtikel.rArtst = tArtst.rArtst tArtst.lFound = TRUE. NEXT. END. /* ------------------------------------------------------ */ /* Artikel-EAN und Mengen stimmen überein (KGebEAN) */ /* ------------------------------------------------------ */ FOR EACH tArtst WHERE tArtst.EANKGeb <> '' AND tArtst.lFound = FALSE AND tArtst.lAnzeigen = TRUE: ii = 0. FOR EACH ttDDArtikel WHERE ttDDArtikel.lFound = FALSE AND ttDDArtikel.lAnzeigen = TRUE AND ttDDArtikel.iArt = iArt AND ttDDArtikel.EANKGeb = tArtst.EANKGeb AND ttDDArtikel.KGebMe = tArtst.KGebMe AND ttDDArtikel.VGebMe = tArtst.VGebMe AND ttDDArtikel.GGebMe = tArtst.GGebMe : ii = ii + 1. rttDDArtikel = RECID(ttDDArtikel). END. IF ii <> 1 THEN NEXT. FIND ttDDArtikel WHERE RECID(ttDDArtikel) = rttDDArtikel. ASSIGN ttDDArtikel.lFound = TRUE ttDDArtikel.Artnr = tArtst.Artnr ttDDArtikel.Inhalt = tArtst.Inhalt ttDDArtikel.Jahr = tArtst.Jahr ttDDArtikel.rArtst = tArtst.rArtst tArtst.lFound = TRUE. NEXT. END. /* ------------------------------------------------------ */ /* Verkauf-EAN und Mengen stimmen überein (VGebEAN) */ /* ------------------------------------------------------ */ FOR EACH tArtst WHERE tArtst.EANVGeb <> '' AND tArtst.lFound = FALSE AND tArtst.lAnzeigen = TRUE: ii = 0. FOR EACH ttDDArtikel WHERE ttDDArtikel.lFound = FALSE AND ttDDArtikel.lAnzeigen = TRUE AND ttDDArtikel.iArt = iArt AND ttDDArtikel.EANVGeb = tArtst.EANVGeb AND ttDDArtikel.KGebMe = tArtst.KGebMe AND ttDDArtikel.VGebMe = tArtst.VGebMe AND ttDDArtikel.GGebMe = tArtst.GGebMe : ii = ii + 1. rttDDArtikel = RECID(ttDDArtikel). END. IF ii <> 1 THEN NEXT. FIND ttDDArtikel WHERE RECID(ttDDArtikel) = rttDDArtikel. ASSIGN ttDDArtikel.lFound = TRUE ttDDArtikel.Artnr = tArtst.Artnr ttDDArtikel.Inhalt = tArtst.Inhalt ttDDArtikel.Jahr = tArtst.Jahr ttDDArtikel.rArtst = tArtst.rArtst tArtst.lFound = TRUE. NEXT. END. EMPTY TEMP-TABLE tArtstOK. FOR EACH ttDDArtikel WHERE ttDDArtikel.lFound = TRUE. FIND FIRST tArtst WHERE tArtst.Firma = Firma AND tArtst.Artnr = ttDDArtikel.Artnr AND tArtst.Inhalt = ttDDArtikel.Inhalt AND tArtst.Jahr = ttDDArtikel.Jahr NO-ERROR. IF NOT AVAILABLE tArtst THEN NEXT. CREATE tArtstOK. BUFFER-COPY tArtst TO tArtstOK ASSIGN tArtstOK.EANKGeb = ttDDArtikel.EANKGeb tArtstOK.EANVGeb = ttDDArtikel.EANVGeb tArtstOK.EANGGeb = ttDDArtikel.EANGGeb tArtstOK.S_Artnr = (IF ttDDArtikel.HerstArtnr <> '' THEN ttDDArtikel.HerstArtnr ELSE tArtstOK.S_Artnr) tArtstOK.iArt = ttDDArtikel.iArt tArtstOK.lAktiv = ttDDArtikel.lAktiv tArtstOK.lVerfuegbar = ttDDArtikel.lVerfuegbar tArtstOK.rtArtst = RECID(tArtst) tArtstOK.rttDDArtikel = RECID(ttDDArtikel) tArtst.lAnzeigen = FALSE ttDDArtikel.lAnzeigen = FALSE. END. FOR EACH ttDDArtikel WHERE ttDDArtikel.lFound = FALSE AND ttDDArtikel.iArt = 1 : cStrichcode = ttDDArtikel.EANKGeb. IF cStrichcode = '' THEN NEXT. IF cStrichcode = ? THEN NEXT. FIND FIRST bttDDArtikel USE-INDEX ttDDArtikel-k3 WHERE bttDDArtikel.iArt = 0 AND bttDDArtikel.HerstArtnr = ttDDArtikel.HerstArtnr NO-ERROR. IF AVAILABLE bttDDArtikel THEN DO: ASSIGN bttDDArtikel.EANVGeb = ttDDArtikel.EANVGeb. NEXT. END. FIND FIRST bttDDArtikel USE-INDEX ttDDArtikel-k4 WHERE bttDDArtikel.iArt = 0 AND bttDDArtikel.EANKGeb = cStrichcode NO-ERROR. IF NOT AVAILABLE (bttDDArtikel) THEN NEXT. ASSIGN bttDDArtikel.EANVGeb = ttDDArtikel.EANVGeb. END. FOR EACH tArtstOK: IF NOT tArtstOK.Aktiv OR tArtstOK.Ausverk = 9 THEN DELETE tArtstOK. END. FOR EACH tArtst: IF NOT tArtst.Aktiv OR tArtst.Ausverk = 9 THEN DELETE tArtst. END. hqtArtst :QUERY-OPEN (). hqtArtstOK :QUERY-OPEN (). hqttDDArtikel:QUERY-OPEN (). APPLY 'VALUE-CHANGED' TO Br_tArtst. RETURN. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject DigitalDrink PROCEDURE destroyObject : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ IF VALID-OBJECT ( hqtArtst ) THEN DO: hqtArtst:QUERY-CLOSE(). DELETE OBJECT hqtArtst. END. IF VALID-OBJECT ( hqtArtstOK ) THEN DO: hqtArtstOK:QUERY-CLOSE(). DELETE OBJECT hqtArtstOK. END. IF VALID-OBJECT ( hqttDDArtikel ) THEN DO: hqttDDArtikel:QUERY-CLOSE(). DELETE OBJECT hqttDDArtikel. END. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI DigitalDrink _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. ------------------------------------------------------------------------------*/ /* Delete the WINDOW we created */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(DigitalDrink) THEN DELETE WIDGET DigitalDrink. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject DigitalDrink PROCEDURE enableObject : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ CREATE QUERY hqtArtst. hqtArtst:SET-BUFFERS (TEMP-TABLE tArtst:DEFAULT-BUFFER-HANDLE). /* hqtArtst:QUERY-PREPARE ('FOR EACH tArtst WHERE tArtst.Aktiv AND tArtst.Ausverk < 9 BY tArtst.Bez').*/ hqtArtst:QUERY-PREPARE (SUBSTITUTE('FOR EACH tArtst WHERE tArtst.Aktiv AND tArtst.lAnzeigen BY &1', ctArtstSort)). CREATE QUERY hqtArtstOK. hqtArtstOK:SET-BUFFERS (TEMP-TABLE tArtstOK:DEFAULT-BUFFER-HANDLE). hqtArtstOK:QUERY-PREPARE ('FOR EACH tArtstOK WHERE tArtstOK.Aktiv AND tArtstOK.Ausverk < 9 BY tArtstOK.Bez BY tArtstOK.KGebinde '). CREATE QUERY hqttDDArtikel. hqttDDArtikel:SET-BUFFERS (TEMP-TABLE ttDDArtikel:DEFAULT-BUFFER-HANDLE). hqttDDArtikel:QUERY-PREPARE ('FOR EACH ttDDArtikel WHERE ttDDArtikel.iArt = 1 AND ttDDArtikel.lAnzeigen'). { incl/winenableobject.i } RUN SUPER. BROWSE Br_tArtst :QUERY = hqtArtst. BROWSE Br_tArtstOK :QUERY = hqtArtstOK. BROWSE Br_ttDDArtikel:QUERY = hqttDDArtikel. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI DigitalDrink _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_Knr F_Lieferant F_GlnNr WITH FRAME fMain IN WINDOW DigitalDrink. ENABLE F_Knr F_Lieferant F_GlnNr Btn_Sammeln Btn_DDAbgleich Br_tArtst Br_tArtstOK Btn_ARTIKELOK Br_ttDDArtikel Btn_ARTIKELNOK Bt_OK Btn_Cancel WITH FRAME fMain IN WINDOW DigitalDrink. {&OPEN-BROWSERS-IN-QUERY-fMain} VIEW DigitalDrink. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE DigitalDrink PROCEDURE ENDE : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ { incl/winende.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR DigitalDrink PROCEDURE ENTRY_CURSOR : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. FMutFlag = DYNAMIC-FUNCTION('getMutflag':U, INPUT Progname) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO F_Knr. END. CASE AktSeite: /* WHEN 1 THEN DO: */ /* IF FMutFlag THEN RUN applyEntry IN h_v- ( INPUT ? ). */ /* ELSE RUN applyEntry IN h_b- ( INPUT ? ). */ /* END. */ /* WHEN 2 THEN RUN applyEntry IN h_f-adrkomm ( INPUT ? ). */ /* WHEN 3 THEN RUN applyEntry IN h_b-auftbb ( INPUT ? ). */ /* WHEN 4 THEN RUN applyEntry IN h_b-aufdet ( INPUT ? ). */ /* WHEN 5 THEN RUN applyEntry IN h_b-aufstreu ( INPUT ? ). */ /* WHEN 6 THEN RUN applyEntry IN h_b-auffak ( INPUT ? ). */ /* WHEN 7 THEN RUN applyEntry IN h_b-position ( INPUT ? ). */ END CASE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject DigitalDrink PROCEDURE exitObject : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Notes: */ /*------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE FIND_DDARTIKEL DigitalDrink PROCEDURE FIND_DDARTIKEL : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipcBez AS CHARACTER NO-UNDO. DEFINE VARIABLE cBez AS CHARACTER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE iNum AS INTEGER NO-UNDO. iNum = NUM-ENTRIES(ipcBez, ' '). DO WHILE iNum > 0: cBez = ''. DO ii = 1 TO iNum: cBez = cBez + (IF cBez = '' THEN '' ELSE ' ') + ENTRY(ii, ipcBez, ' '). END. FIND FIRST ttDDArtikel NO-LOCK WHERE ttDDArtikel.iArt = 1 AND ttDDArtikel.Bezeichnung BEGINS cBez AND ttDDArtikel.lAnzeigen = TRUE NO-ERROR. IF NOT AVAILABLE ttDDArtikel THEN DO: iNum = iNum - 1. NEXT. END. DO WHILE iNum > 0 WITH FRAME {&FRAME-NAME}: hqttDDArtikel:REPOSITION-TO-ROWID (ROWID(ttDDArtikel)). LEAVE. END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject DigitalDrink PROCEDURE initializeObject : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. { incl/wininitializeobject.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SEITENWECHSEL DigitalDrink PROCEDURE SEITENWECHSEL : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ { incl/winseitenwechsel.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage DigitalDrink PROCEDURE selectPage : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE INPUT PARAMETER piPageNum AS INTEGER NO-UNDO. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO. DEFINE VARIABLE MutProg AS CHARACTER NO-UNDO. FMutFlag = DYNAMIC-FUNCTION ('getMutflag':U, INPUT Progname) NO-ERROR. IF FMutFlag THEN RETURN NO-APPLY. CASE piPageNum: END CASE. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. CASE AktSeite: WHEN 1 THEN DO: /* RUN removeLink ( hAktionen , 'TableIO':U , h_v-auftr ). */ /* RUN removeLink ( hAktionen , 'Navigation':U , h_d-auftr ). */ END. END CASE. RUN SUPER( INPUT piPageNum). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR DigitalDrink PROCEDURE TOOLBAR : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ { incl/wintoolbar.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject DigitalDrink PROCEDURE viewObject : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ RUN SUPER. RUN ENTRY_CURSOR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION checkDoppelte DigitalDrink FUNCTION checkDoppelte RETURNS LOGICAL ( ): /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ FOR EACH tArtst: ASSIGN tArtst.lS_Artnr = FALSE tArtst.lEANVGeb = FALSE. END. FOR EACH tArtst WHERE tArtst.S_Artnr <> '' BREAK BY tArtst.S_Artnr: IF NOT FIRST-OF ( tArtst.S_Artnr ) THEN tArtst.lS_Artnr = TRUE. IF NOT LAST-OF ( tArtst.S_Artnr ) THEN tArtst.lS_Artnr = TRUE. END. FOR EACH tArtst WHERE tArtst.EANVGeb <> '' BREAK BY tArtst.EANVGeb: IF NOT FIRST-OF ( tArtst.EANVGeb ) THEN tArtst.lEANVGeb = TRUE. IF NOT LAST-OF ( tArtst.EANVGeb ) THEN tArtst.lEANVGeb = TRUE. END. lMeldung = FALSE. FOR EACH btArtst: IF btArtst.lS_Artnr OR btArtst.lEANVGeb THEN DO: lMeldung = TRUE. LEAVE. END. END. RETURN lMeldung. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION fillDaten DigitalDrink FUNCTION fillDaten RETURNS LOGICAL ( iprttDDArtikel AS RECID, iprtArtst AS RECID ): /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ DEFINE BUFFER btArtst FOR tArtst. FIND bttDDArtikel WHERE RECID(bttDDArtikel) = iprttDDArtikel. FIND btArtst WHERE RECID(btArtst) = iprtArtst . ASSIGN ttDDArtikel.lFound = TRUE ttDDArtikel.Artnr = tArtst.Artnr ttDDArtikel.Inhalt = tArtst.Inhalt ttDDArtikel.Jahr = tArtst.Jahr ttDDArtikel.rArtst = tArtst.rArtst tArtst.lFound = TRUE tArtst.DDVGebCd = ttDDArtikel.VGebCd. IF ttDDArtikel.HerstArtnr = '' AND tArtst.S_Artnr <> '' THEN ttDDArtikel.HerstArtnr = tArtst.S_Artnr. RETURN TRUE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getProgname DigitalDrink FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) : /*-------------------------------------------------------------------------------- */ /* Purpose: */ /* Parameters: */ /* Notes: */ /* ------------------------------------------------------------------------------ */ RETURN Progname. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME