&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME wBilder {adecomm/appserv.i} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wBilder /*------------------------------------------------------------------------ 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 --- */ DEF VAR cDefPath AS CHAR NO-UNDO. DEF VAR hQuery AS HANDLE NO-UNDO. { incl/windefinition.i } DEF TEMP-TABLE tBilder NO-UNDO FIELD iNummer AS INT FIELD cName AS CHAR FIELD cDatei AS CHAR FIELD cBarcode AS CHAR FIELD cExt AS CHAR FIELD iArtnr AS INT FIELD iInhalt AS INT FIELD iJahr AS INT FIELD iRecid AS RECID. DEF BUFFER btBilder FOR tBilder. {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 /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Bild F_Pfad Btn_Bilder Btn_Ende F_Artnr ~ F_Inhalt F_Jahr F_Bez Btn_OK Btn_Prev Btn_Next &Scoped-Define DISPLAYED-OBJECTS F_Pfad F_Artnr F_Inhalt F_Jahr F_Bez /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_Artnr F_Inhalt F_Jahr F_Bez /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getProgname wBilder FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD isArtikelNrName wBilder FUNCTION isArtikelNrName RETURNS LOGICAL ( ipcArtikel AS CHAR ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR wBilder AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Bilder LABEL "Lesen" SIZE 12 BY 1. DEFINE BUTTON Btn_Ende LABEL "schliessen" SIZE 15 BY 1. DEFINE BUTTON Btn_Next IMAGE-UP FILE "grafik/next.bmp":U LABEL "vorwärts" SIZE 6 BY 1.14. DEFINE BUTTON Btn_OK LABEL "Bestätigen" SIZE 15 BY 1. DEFINE BUTTON Btn_Prev IMAGE-UP FILE "grafik/prev.bmp":U LABEL "zurück" SIZE 6 BY 1.14. DEFINE VARIABLE F_Artnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "Artikel" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bez AS CHARACTER FORMAT "x(60)":U LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 49.2 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Inhalt AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Jahr AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "/" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Pfad AS CHARACTER FORMAT "x(60)":U LABEL "Bild-Pfad" VIEW-AS FILL-IN NATIVE SIZE 49.2 BY 1 BGCOLOR 15 NO-UNDO. DEFINE IMAGE Bild FILENAME "grafik/select.bmp":U SIZE 148 BY 21.52. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain F_Pfad AT ROW 1.52 COL 11 COLON-ALIGNED WIDGET-ID 12 Btn_Bilder AT ROW 1.52 COL 65 WIDGET-ID 14 Btn_Ende AT ROW 1.52 COL 137.8 WIDGET-ID 16 F_Artnr AT ROW 3 COL 11 COLON-ALIGNED WIDGET-ID 4 F_Inhalt AT ROW 3 COL 24 COLON-ALIGNED WIDGET-ID 6 F_Jahr AT ROW 3 COL 35 COLON-ALIGNED WIDGET-ID 8 F_Bez AT ROW 3 COL 46 COLON-ALIGNED WIDGET-ID 10 NO-TAB-STOP Btn_OK AT ROW 3 COL 105.4 WIDGET-ID 22 Btn_Prev AT ROW 4.52 COL 12.6 WIDGET-ID 18 Btn_Next AT ROW 4.52 COL 18.8 WIDGET-ID 20 Bild AT ROW 7.29 COL 7 WIDGET-ID 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 160 BY 30.48 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 wBilder ASSIGN HIDDEN = YES TITLE = "Bilder den Artikeln zuweisen" HEIGHT = 30.48 WIDTH = 160 MAX-HEIGHT = 30.48 MAX-WIDTH = 160 VIRTUAL-HEIGHT = 30.48 VIRTUAL-WIDTH = 160 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 wBilder: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 wBilder /* ************************* 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 wBilder VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain FRAME-NAME */ /* SETTINGS FOR FILL-IN F_Artnr IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Bez IN FRAME fMain 6 */ ASSIGN F_Bez:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Jahr IN FRAME fMain 6 */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wBilder) THEN wBilder:HIDDEN = yes. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME wBilder &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wBilder wBilder ON END-ERROR OF wBilder /* Bilder den Artikeln zuweisen */ 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 wBilder wBilder ON WINDOW-CLOSE OF wBilder /* Bilder den Artikeln zuweisen */ 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 SELF-NAME Btn_Bilder &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Bilder wBilder ON CHOOSE OF Btn_Bilder IN FRAME fMain /* Lesen */ DO: DEF VAR cInput AS CHAR NO-UNDO. DEF VAR cName AS CHAR NO-UNDO. DEF VAR cExt AS CHAR NO-UNDO. DEF VAR cArtikel AS CHAR NO-UNDO. DEF VAR cStrichcode AS CHAR NO-UNDO. DEF VAR cPfad AS CHAR NO-UNDO. DEF VAR iAnz AS INT NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR lJa AS LOG NO-UNDO. DEF VAR cFormat AS CHAR NO-UNDO INIT 'png,jpg,tif,gif,bmp'. DEF VAR iRecid AS RECID NO-UNDO. EMPTY TEMP-TABLE tBilder. cPfad = F_Pfad:SCREEN-VALUE. IF SUBSTRING(cPfad,LENGTH(cPfad),01) <> '/' AND SUBSTRING(cPfad,LENGTH(cPfad),01) <> '\' THEN cPfad = cPfad + '\'. cDefPath = cPfad. PUT-KEY-VALUE SECTION 'eShop' KEY 'Bildpfad' VALUE cDefPath. SESSION:SET-WAIT-STATE('GENERAL'). INPUT FROM OS-DIR(cPfad) NO-MAP NO-CONVERT. REPEAT TRANSACTION ON STOP UNDO, LEAVE: IMPORT cInput. cName = cPfad + cInput. FILE-INFO:FILE-NAME = cName. IF FILE-INFO:FILE-NAME = ? THEN NEXT. IF FILE-INFO:FULL-PATHNAME = ? THEN NEXT. IF NOT FILE-INFO:FILE-TYPE BEGINS 'F' THEN NEXT. iAnz = iAnz + 1. CREATE tBilder. ASSIGN tBilder.cName = FILE-INFO:FULL-PATHNAME tBilder.cDatei = REPLACE(FILE-INFO:FILE-NAME, cDefPath, ''). tBilder.iNummer = iAnz. END. INPUT CLOSE. FOR EACH tBilder: ii = R-INDEX(tBilder.cDatei, '.'). IF ii = 0 THEN NEXT. cExt = SUBSTRING(tBilder.cDatei,ii + 1). tBilder.cExt = cExt. IF LOOKUP(cExt, cFormat, ',') = 0 THEN DO: DELETE tBilder. NEXT. END. cArtikel = SUBSTRING(tBilder.cDatei,01,ii - 1). IF LENGTH(cArtikel) = 14 THEN DO: lJa = DYNAMIC-FUNCTION('isArtikelNrName':U, cArtikel ). IF lJa THEN DO: DELETE tBilder. NEXT. END. END. cStrichcode = ''. DO ii = 1 TO LENGTH(cArtikel): IF SUBSTRING(cArtikel,ii,01) >= '0' AND SUBSTRING(cArtikel,ii,01) <= '9' THEN DO: cStrichcode = cStrichcode + SUBSTRING(cArtikel,ii,01). NEXT. END. IF SUBSTRING(cArtikel,ii,01) >= 'A' AND SUBSTRING(cArtikel,ii,01) <= 'z' THEN DO: cStrichcode = cStrichcode + SUBSTRING(cArtikel,ii,01). NEXT. END. LEAVE. END. iRecid = ?. FOR EACH Artst NO-LOCK WHERE Artst.Firma = '1000' AND Artst.Strichcode = cStrichcode: iRecid = RECID(Artst). ASSIGN tBilder.iArtnr = Artst.Artnr tBilder.iInhalt = Artst.Inhalt tBilder.iJahr = Artst.Jahr tBilder.iRecid = iRecid. LEAVE. END. IF iRecid <> ? THEN NEXT. FOR EACH Artlief NO-LOCK WHERE Artlief.Firma = '1000' AND Artlief.Strichcode_KGeb = cStrichcode, FIRST Artst NO-LOCK OF ArtLief: iRecid = RECID(Artst). ASSIGN tBilder.iArtnr = ArtLief.Artnr tBilder.iInhalt = ArtLief.Inhalt tBilder.iJahr = ArtLief.Jahr tBilder.iRecid = iRecid. END. IF iRecid <> ? THEN NEXT. FOR EACH Artlief NO-LOCK WHERE Artlief.Firma = '1000' AND Artlief.Strichcode_VGeb = cStrichcode, FIRST Artst NO-LOCK OF ArtLief: iRecid = RECID(Artst). ASSIGN tBilder.iArtnr = ArtLief.Artnr tBilder.iInhalt = ArtLief.Inhalt tBilder.iJahr = ArtLief.Jahr tBilder.iRecid = iRecid. END. IF iRecid <> ? THEN NEXT. FOR EACH Artlief NO-LOCK WHERE Artlief.Firma = '1000' AND Artlief.Strichcode_GGeb = cStrichcode, FIRST Artst NO-LOCK OF ArtLief: iRecid = RECID(Artst). ASSIGN tBilder.iArtnr = ArtLief.Artnr tBilder.iInhalt = ArtLief.Inhalt tBilder.iJahr = ArtLief.Jahr tBilder.iRecid = iRecid. END. IF iRecid <> ? THEN NEXT. END. FOR EACH tBilder WHERE tBilder.iArtnr > 0: FIND Artst NO-LOCK WHERE RECID(Artst) = tBilder.iRecid NO-ERROR. IF NOT AVAILABLE Artst THEN NEXT. IF Artst.Res_c2 <> '' THEN DO: DELETE tBilder. NEXT. END. END. SESSION:SET-WAIT-STATE(''). CREATE QUERY hQuery. hQuery:SET-BUFFERS( TEMP-TABLE tBilder:DEFAULT-BUFFER-HANDLE ). hQuery:QUERY-PREPARE('FOR EACH tBilder BY tBilder.iArtnr DESCENDING'). hQuery:QUERY-OPEN(). hQuery:GET-FIRST(). IF NOT hQuery:QUERY-OFF-END THEN RUN LOAD_PICTURE ( RECID(tBilder) ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Ende &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Ende wBilder ON CHOOSE OF Btn_Ende IN FRAME fMain /* schliessen */ DO: RUN ENDE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Next &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Next wBilder ON CHOOSE OF Btn_Next IN FRAME fMain /* vorwärts */ DO: RUN NEXT_PICTURE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK wBilder ON CHOOSE OF Btn_OK IN FRAME fMain /* Bestätigen */ DO: RUN BESTAETIGUNG ( RECID(tBilder) ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Prev &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Prev wBilder ON CHOOSE OF Btn_Prev IN FRAME fMain /* zurück */ DO: RUN PREV_PICTURE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr wBilder ON ALT-F OF F_Artnr IN FRAME fMain /* Artikel */ DO: DEF VAR iRecid AS RECID NO-UNDO. RUN g-suchen-artikel.w ( '', OUTPUT iRecid) NO-ERROR. IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND Artst NO-LOCK WHERE RECID(Artst) = iRecid. ASSIGN tBilder.iArtnr = Artst.Artnr tBilder.iInhalt = Artst.Artnr tBilder.iJahr = Artst.Artnr tBilder.iRecid = RECID(Artst). RUN LOAD_PICTURE ( RECID(tBilder) ). RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Jahr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr wBilder ON LEAVE OF F_Jahr IN FRAME fMain /* / */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. FIND Artst NO-LOCK WHERE Artst.Firma = Firma AND Artst.Artnr = F_Artnr AND Artst.Inhalt = F_Inhalt AND Artst.Jahr = F_Jahr NO-ERROR. IF NOT AVAILABLE Artst THEN DO: MESSAGE 'ungültige Artikelnummer' VIEW-AS ALERT-BOX. APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. FIND FIRST Artbez NO-LOCK OF Artst. F_Bez = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2). DISPLAY {&List-6}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wBilder /* *************************** 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 wBilder _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 BESTAETIGUNG wBilder PROCEDURE BESTAETIGUNG : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. DEF VAR cNeuerName AS CHAR NO-UNDO. DEF VAR cAlterName AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. END. FIND btBilder WHERE RECID(btBilder) = ipRecid. ASSIGN btBilder.iArtnr = F_Artnr btBilder.iInhalt = F_Inhalt btBilder.iJahr = F_Jahr. REPEAT TRANSACTION: FIND Artst WHERE Artst.Firma = Firma AND Artst.Artnr = F_Artnr AND Artst.Inhalt = F_Inhalt AND Artst.Jahr = F_Jahr. Artst.Res_c2 = 'Ja'. RELEASE Artst. LEAVE. END. cNeuerName = cDefPath + STRING(F_Artnr ,'999999') + STRING(F_Inhalt,'9999') + STRING(F_Jahr ,'9999') + '.' + btBilder.cExt. cAlterName = cDefPath + btBilder.cDatei. IF SEARCH(cNeuerName) = ? THEN OS-COPY VALUE(cAlterName) VALUE(cNeuerName). IF SEARCH(cNeuerName) <> ? THEN OS-DELETE VALUE(cAlterName). APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage wBilder PROCEDURE changePage : /*------------------------------------------------------------------------------ Purpose: Super Override 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 disable_UI wBilder _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(wBilder) THEN DELETE WIDGET wBilder. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wBilder PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/winenableobject.i } RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wBilder _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_Pfad F_Artnr F_Inhalt F_Jahr F_Bez WITH FRAME fMain IN WINDOW wBilder. ENABLE Bild F_Pfad Btn_Bilder Btn_Ende F_Artnr F_Inhalt F_Jahr F_Bez Btn_OK Btn_Prev Btn_Next WITH FRAME fMain IN WINDOW wBilder. {&OPEN-BROWSERS-IN-QUERY-fMain} VIEW wBilder. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wBilder PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF VALID-HANDLE ( hQuery ) THEN DO: IF hQuery:QUERY-OPEN THEN hQuery:QUERY-CLOSE(). DELETE OBJECT hQuery. END. { incl/winende.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR wBilder PROCEDURE ENTRY_CURSOR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. FMutFlag = DYNAMIC-FUNCTION('getMutflag':U, INPUT Progname) NO-ERROR. CASE AktSeite: /* WHEN 1 THEN DO: */ /* IF FMutFlag THEN RUN applyEntry IN h_v- ( INPUT ? ). */ /* ELSE RUN applyEntry IN h_b- ( INPUT ? ). */ /* END. */ /* WHEN 1 THEN RUN applyEntry IN h_v-adresse ( INPUT ? ). */ /* 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 wBilder PROCEDURE exitObject : /*------------------------------------------------------------------------------ Purpose: Window-specific override of this procedure which destroys its contents and itself. Notes: ------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject wBilder PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cFwPath AS CHAR NO-UNDO. GET-KEY-VALUE SECTION 'eShop' KEY 'Bildpfad' VALUE cFwPath. IF cFwPath = ? THEN cFwPath = ''. F_Pfad = cFwPath. RUN SUPER. { incl/wininitializeobject.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE LOAD_PICTURE wBilder PROCEDURE LOAD_PICTURE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipRecid AS RECID NO-UNDO. FIND btBilder WHERE RECID(btBilder) = ipRecid. DO WITH FRAME {&FRAME-NAME}: IF btBilder.iArtnr > 0 THEN DO: FIND Artst NO-LOCK WHERE RECID(Artst) = btBilder.iRecid NO-ERROR. ASSIGN F_Artnr = Artst.Artnr F_Inhalt = Artst.Inhalt F_Jahr = Artst.Jahr. FIND FIRST Artbez NO-LOCK OF Artst. F_Bez = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2). END. ELSE DO: ASSIGN F_Artnr = 0 F_Inhalt = 0 F_Jahr = 0 F_Bez = ''. END. DISPLAY {&List-6}. Bild:LOAD-IMAGE(btBilder.cName). APPLY 'ENTRY' TO F_Artnr. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXT_PICTURE wBilder PROCEDURE NEXT_PICTURE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ hQuery:GET-NEXT() NO-ERROR. IF hQuery:QUERY-OFF-END THEN DO: hQuery:GET-LAST(). MESSAGE 'Letztes Bild' VIEW-AS ALERT-BOX. RETURN. END. RUN LOAD_PICTURE ( RECID(tBilder) ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREV_PICTURE wBilder PROCEDURE PREV_PICTURE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ hQuery:GET-PREV() NO-ERROR. IF hQuery:QUERY-OFF-END THEN DO: hQuery:GET-FIRST(). MESSAGE 'Erstes Bild' VIEW-AS ALERT-BOX. RETURN. END. RUN LOAD_PICTURE ( RECID(tBilder) ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SEITENWECHSEL wBilder PROCEDURE SEITENWECHSEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/winseitenwechsel.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage wBilder PROCEDURE selectPage : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER piPageNum AS INT NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO. DEF VAR MutProg AS CHAR 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 wBilder PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/wintoolbar.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wBilder PROCEDURE viewObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN SUPER. RUN ENTRY_CURSOR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getProgname wBilder FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ RETURN Progname. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION isArtikelNrName wBilder FUNCTION isArtikelNrName RETURNS LOGICAL ( ipcArtikel AS CHAR ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ DEF VAR iArtnr AS INT NO-UNDO. DEF VAR iInhalt AS INT NO-UNDO. DEF VAR iJahr AS INT NO-UNDO. iArtnr = INTEGER(SUBSTRING(ipcArtikel,01,06)) NO-ERROR. IF iArtnr = 0 OR iArtnr = ? THEN RETURN FALSE. iInhalt = INTEGER(SUBSTRING(ipcArtikel,07,04)) NO-ERROR. IF iInhalt = 0 OR iInhalt = ? THEN RETURN FALSE. iJahr = INTEGER(SUBSTRING(ipcArtikel,11,04)) NO-ERROR. IF iJahr = 0 OR iJahr = ? THEN RETURN FALSE. FIND Artst NO-LOCK WHERE Artst.Firma = Firma AND Artst.Artnr = iArtnr AND Artst.Inhalt = iInhalt AND Artst.Jahr = iJahr NO-ERROR. IF NOT AVAILABLE Artst THEN RETURN FALSE. IF Artst.Res_c2 = 'Ja' THEN RETURN TRUE. RETURN FALSE. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME