&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME wLagerOrtStrichcode {adecomm/appserv.i} /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE tArtbw NO-UNDO LIKE Artbw FIELD KGebinde AS CHAR FIELD KGeb_Inh AS INT . &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wLagerOrtStrichcode /*------------------------------------------------------------------------ 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 FeldInhalt AS CHAR NO-UNDO. DEF VAR VArtnr AS INT NO-UNDO. DEF VAR VInhalt AS INT NO-UNDO. DEF VAR VJahr AS INT NO-UNDO. DEF VAR ARecid AS RECID NO-UNDO. DEF VAR LRecid AS RECID NO-UNDO. DEF VAR iLager AS INT NO-UNDO. DEF VAR iDatum AS DATE NO-UNDO. DEF VAR cFeld AS CHAR NO-UNDO. DEF VAR cAusnahme AS CHAR NO-UNDO INIT 'Btn_Cancel,CB_Datum,CB_Lager,T_Strichcode,Btn_1,Btn_2,Btn_3,Btn_4,Btn_5,~ Btn_6,Btn_7,Btn_8,Btn_9,Btn_10,Btn_Clear,Btn_Minus,Btn_Search'. DEF VAR hFeld AS HANDLE NO-UNDO. DEF VAR cGGeb_SC AS CHAR NO-UNDO. DEF VAR cVGeb_SC AS CHAR NO-UNDO. DEF VAR cKGeb_SC AS CHAR NO-UNDO. DEF VAR iKnr AS INT NO-UNDO. DEF BUFFER BArtst FOR Artst. DEF BUFFER BArtbez FOR Artbez . DEF BUFFER BKGebinde FOR KGebinde. DEF BUFFER BVGebinde FOR VGebinde. DEF BUFFER BGGebinde FOR GGebinde. { incl/windefinition.i } {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 CB_Lager Btn_Search F_Strichcode F_Artnr ~ F_Inhalt F_Jahr T_Strichcode F_Ort F_KGebinde_SC F_VGebinde_SC ~ F_GGebinde_SC F_Bezeichnung Btn_OK Btn_Cancel F_Kleingebinde Btn_1 Btn_2 ~ Btn_3 Btn_4 Btn_5 Btn_6 Btn_7 Btn_8 Btn_9 Btn_10 Btn_Clear Btn_Enter ~ Btn_Minus F_Bestand RECT-43 &Scoped-Define DISPLAYED-OBJECTS CB_Lager F_Strichcode F_Artnr F_Inhalt ~ F_Jahr T_Strichcode F_Ort F_KGebinde_SC F_VGebinde_SC F_GGebinde_SC ~ F_Bezeichnung F_Kleingebinde F_Bestand /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-5 F_Strichcode F_Artnr F_Inhalt F_Jahr F_KGebinde_SC ~ F_VGebinde_SC F_GGebinde_SC F_Bezeichnung F_Kleingebinde F_Bestand &Scoped-define List-6 F_Ort F_KGebinde_SC F_VGebinde_SC F_GGebinde_SC /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getProgname wLagerOrtStrichcode FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR wLagerOrtStrichcode AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_1 LABEL "1" SIZE 8 BY 1.52. DEFINE BUTTON Btn_10 LABEL "0" SIZE 8 BY 1.52. DEFINE BUTTON Btn_2 LABEL "2" SIZE 8 BY 1.52. DEFINE BUTTON Btn_3 LABEL "3" SIZE 8 BY 1.52. DEFINE BUTTON Btn_4 LABEL "4" SIZE 8 BY 1.52. DEFINE BUTTON Btn_5 LABEL "5" SIZE 8 BY 1.52. DEFINE BUTTON Btn_6 LABEL "6" SIZE 8 BY 1.52. DEFINE BUTTON Btn_7 LABEL "7" SIZE 8 BY 1.52. DEFINE BUTTON Btn_8 LABEL "8" SIZE 8 BY 1.52. DEFINE BUTTON Btn_9 LABEL "9" SIZE 8 BY 1.52. DEFINE BUTTON Btn_Cancel AUTO-END-KEY LABEL "Abbrechen" SIZE 15 BY 1.14. DEFINE BUTTON Btn_Clear LABEL "CL" SIZE 8 BY 1.52. DEFINE BUTTON Btn_Enter LABEL "TAB" SIZE 24 BY 1.52. DEFINE BUTTON Btn_Minus LABEL "--" SIZE 8 BY 1.52. DEFINE BUTTON Btn_OK LABEL "Speichern" SIZE 15 BY 1.14. DEFINE BUTTON Btn_Search DEFAULT IMAGE-UP FILE "grafik/select.bmp":U IMAGE-DOWN FILE "grafik/select.bmp":U LABEL "Button 1" SIZE 8 BY 1.52. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U INITIAL "00" LABEL "Lager" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Lager (00)","00", "Lager (01)","01" DROP-DOWN-LIST SIZE 25 BY 1 NO-UNDO. DEFINE VARIABLE F_Artnr AS CHARACTER FORMAT "x(30)":U LABEL "Artnr / Inhalt / Jahr" VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bestand AS INTEGER FORMAT "zzz,zz9-":U INITIAL 0 LABEL "Bestand" VIEW-AS FILL-IN NATIVE SIZE 14 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Bezeichnung AS CHARACTER FORMAT "X(256)":U LABEL "Artikel" VIEW-AS FILL-IN NATIVE SIZE 60 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_GGebinde_SC AS CHARACTER FORMAT "X(256)":U LABEL "Strichcode GGeb" VIEW-AS FILL-IN NATIVE SIZE 60 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_KGebinde_SC AS CHARACTER FORMAT "X(256)":U LABEL "Strichcode KGeb" VIEW-AS FILL-IN NATIVE SIZE 60 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Kleingebinde AS CHARACTER FORMAT "X(256)":U LABEL "Kleingebinde" VIEW-AS FILL-IN NATIVE SIZE 60 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Ort AS CHARACTER FORMAT "x(15)":U LABEL "Lagerort" VIEW-AS FILL-IN NATIVE SIZE 20 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Strichcode AS CHARACTER FORMAT "X(256)":U LABEL "Strichcode" VIEW-AS FILL-IN NATIVE SIZE 60 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VGebinde_SC AS CHARACTER FORMAT "X(256)":U LABEL "Strichcode VGeb" VIEW-AS FILL-IN NATIVE SIZE 60 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-43 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 168 BY 12.38. DEFINE VARIABLE T_Strichcode AS LOGICAL INITIAL no LABEL "Strichcode" VIEW-AS TOGGLE-BOX SIZE 20 BY 1.52 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain CB_Lager AT ROW 1.52 COL 20 COLON-ALIGNED WIDGET-ID 2 Btn_Search AT ROW 1.52 COL 120 WIDGET-ID 74 F_Strichcode AT ROW 4.52 COL 20 COLON-ALIGNED WIDGET-ID 8 F_Artnr AT ROW 5.52 COL 20 COLON-ALIGNED WIDGET-ID 10 F_Inhalt AT ROW 5.52 COL 38 COLON-ALIGNED WIDGET-ID 12 F_Jahr AT ROW 5.52 COL 50 COLON-ALIGNED WIDGET-ID 14 T_Strichcode AT ROW 1.52 COL 50 WIDGET-ID 6 NO-TAB-STOP F_Ort AT ROW 8 COL 20 COLON-ALIGNED WIDGET-ID 28 F_KGebinde_SC AT ROW 8 COL 67 COLON-ALIGNED WIDGET-ID 60 F_VGebinde_SC AT ROW 9 COL 67 COLON-ALIGNED WIDGET-ID 64 F_GGebinde_SC AT ROW 10 COL 67 COLON-ALIGNED WIDGET-ID 66 F_Bezeichnung AT ROW 5.48 COL 67 COLON-ALIGNED WIDGET-ID 16 NO-TAB-STOP Btn_OK AT ROW 11.52 COL 20.2 WIDGET-ID 34 Btn_Cancel AT ROW 11.52 COL 69 WIDGET-ID 36 F_Kleingebinde AT ROW 6.52 COL 67 COLON-ALIGNED WIDGET-ID 18 NO-TAB-STOP Btn_1 AT ROW 1.52 COL 140 WIDGET-ID 38 NO-TAB-STOP Btn_2 AT ROW 1.52 COL 148 WIDGET-ID 40 NO-TAB-STOP Btn_3 AT ROW 1.52 COL 156 WIDGET-ID 42 NO-TAB-STOP Btn_4 AT ROW 3 COL 140 WIDGET-ID 44 NO-TAB-STOP Btn_5 AT ROW 3 COL 148 WIDGET-ID 46 NO-TAB-STOP Btn_6 AT ROW 3 COL 156 WIDGET-ID 48 NO-TAB-STOP Btn_7 AT ROW 4.52 COL 140 WIDGET-ID 50 NO-TAB-STOP Btn_8 AT ROW 4.52 COL 148 WIDGET-ID 52 NO-TAB-STOP Btn_9 AT ROW 4.52 COL 156 WIDGET-ID 54 NO-TAB-STOP Btn_10 AT ROW 6 COL 140 WIDGET-ID 56 NO-TAB-STOP Btn_Clear AT ROW 6 COL 156 WIDGET-ID 58 NO-TAB-STOP Btn_Enter AT ROW 7.52 COL 140 WIDGET-ID 68 NO-TAB-STOP Btn_Minus AT ROW 6 COL 148 WIDGET-ID 70 NO-TAB-STOP F_Bestand AT ROW 10 COL 20 COLON-ALIGNED WIDGET-ID 76 NO-TAB-STOP RECT-43 AT ROW 1.24 COL 2 WIDGET-ID 62 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 170 BY 12.86 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 Temp-Tables and Buffers: TABLE: tArtbw T "?" NO-UNDO AnaDat Artbw ADDITIONAL-FIELDS: FIELD KGebinde AS CHAR FIELD KGeb_Inh AS INT END-FIELDS. END-TABLES. */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW wLagerOrtStrichcode ASSIGN HIDDEN = YES TITLE = "Lagerort und Strichcode aufnehmen" HEIGHT = 12.95 WIDTH = 170 MAX-HEIGHT = 48.48 MAX-WIDTH = 384 VIRTUAL-HEIGHT = 48.48 VIRTUAL-WIDTH = 384 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 wLagerOrtStrichcode: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 wLagerOrtStrichcode /* ************************* 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 wLagerOrtStrichcode VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain FRAME-NAME Custom */ /* SETTINGS FOR FILL-IN F_Artnr IN FRAME fMain 5 */ /* SETTINGS FOR FILL-IN F_Bestand IN FRAME fMain 5 */ ASSIGN F_Bestand:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_Bezeichnung IN FRAME fMain 5 */ ASSIGN F_Bezeichnung:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_GGebinde_SC IN FRAME fMain 5 6 */ /* SETTINGS FOR FILL-IN F_Inhalt IN FRAME fMain 5 */ /* SETTINGS FOR FILL-IN F_Jahr IN FRAME fMain 5 */ /* SETTINGS FOR FILL-IN F_KGebinde_SC IN FRAME fMain 5 6 */ /* SETTINGS FOR FILL-IN F_Kleingebinde IN FRAME fMain 5 */ ASSIGN F_Kleingebinde:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_Ort IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_Strichcode IN FRAME fMain 5 */ /* SETTINGS FOR FILL-IN F_VGebinde_SC IN FRAME fMain 5 6 */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wLagerOrtStrichcode) THEN wLagerOrtStrichcode:HIDDEN = yes. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME wLagerOrtStrichcode &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wLagerOrtStrichcode wLagerOrtStrichcode ON END-ERROR OF wLagerOrtStrichcode /* Lagerort und Strichcode aufnehmen */ 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 wLagerOrtStrichcode wLagerOrtStrichcode ON WINDOW-CLOSE OF wLagerOrtStrichcode /* Lagerort und Strichcode aufnehmen */ 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_1 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_1 wLagerOrtStrichcode ON CHOOSE OF Btn_1 IN FRAME fMain /* 1 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 1. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_10 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_10 wLagerOrtStrichcode ON CHOOSE OF Btn_10 IN FRAME fMain /* 0 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 0. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_2 wLagerOrtStrichcode ON CHOOSE OF Btn_2 IN FRAME fMain /* 2 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 2. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_3 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_3 wLagerOrtStrichcode ON CHOOSE OF Btn_3 IN FRAME fMain /* 3 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 3. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_4 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_4 wLagerOrtStrichcode ON CHOOSE OF Btn_4 IN FRAME fMain /* 4 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 4. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_5 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_5 wLagerOrtStrichcode ON CHOOSE OF Btn_5 IN FRAME fMain /* 5 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 5. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_6 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_6 wLagerOrtStrichcode ON CHOOSE OF Btn_6 IN FRAME fMain /* 6 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 6. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_7 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_7 wLagerOrtStrichcode ON CHOOSE OF Btn_7 IN FRAME fMain /* 7 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 7. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_8 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_8 wLagerOrtStrichcode ON CHOOSE OF Btn_8 IN FRAME fMain /* 8 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 8. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_9 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_9 wLagerOrtStrichcode ON CHOOSE OF Btn_9 IN FRAME fMain /* 9 */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS DEC NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = DECIMAL(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = (iWert * 10) + 9. hFocus:SCREEN-VALUE = TRIM(STRING(iWert,'>>>>>>>>>>>>>>>>>>>>')). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel wLagerOrtStrichcode ON CHOOSE OF Btn_Cancel IN FRAME fMain /* Abbrechen */ DO: RUN ENDE. APPLY "WINDOW-CLOSE":U TO THIS-PROCEDURE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Clear &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Clear wLagerOrtStrichcode ON CHOOSE OF Btn_Clear IN FRAME fMain /* CL */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS INT NO-UNDO. DO WHILE TRUE: hFocus = hFeld. hFocus:SCREEN-VALUE = ''. LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Enter &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Enter wLagerOrtStrichcode ON CHOOSE OF Btn_Enter IN FRAME fMain /* TAB */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS INT NO-UNDO. hFocus = hFeld. APPLY 'TAB' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Minus &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Minus wLagerOrtStrichcode ON CHOOSE OF Btn_Minus IN FRAME fMain /* -- */ DO: DEF VAR hFocus AS HANDLE NO-UNDO. DEF VAR iWert AS INT NO-UNDO. DO WHILE TRUE: hFocus = hFeld. iWert = INTEGER(hFocus:SCREEN-VALUE) NO-ERROR. IF ERROR-STATUS:ERROR THEN LEAVE. iWert = iWert * -1. hFocus:SCREEN-VALUE = STRING(iWert). LEAVE. END. APPLY 'ENTRY' TO hFOCUS. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK wLagerOrtStrichcode ON CHOOSE OF Btn_OK IN FRAME fMain /* Speichern */ DO: RUN SPEICHERN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Search &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Search wLagerOrtStrichcode ON CHOOSE OF Btn_Search IN FRAME fMain /* Button 1 */ DO: RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Lager &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager wLagerOrtStrichcode ON VALUE-CHANGED OF CB_Lager IN FRAME fMain /* Lager */ DO: iLager = INTEGER(SELF:SCREEN-VALUE). RUN LAGER_EINSTELLUNGEN. APPLY 'ENTRY' TO F_Strichcode. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr wLagerOrtStrichcode ON ENTRY OF F_Artnr IN FRAME fMain /* Artnr / Inhalt / Jahr */ DO: hFeld = SELF:HANDLE. ASSIGN cGGeb_SC = '' cVGeb_SC = '' cKGeb_SC = '' . END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Artnr wLagerOrtStrichcode ON LEAVE OF F_Artnr IN FRAME fMain /* Artnr / Inhalt / Jahr */ DO: DEF VAR cName AS CHAR NO-UNDO. cName = LAST-EVENT:WIDGET-ENTER:NAME. IF cName = 'T_Strichcode' THEN DO WITH FRAME {&FRAME-NAME}: ASSIGN F_Artnr :SCREEN-VALUE = '' F_Inhalt:SCREEN-VALUE = '' F_Jahr :SCREEN-VALUE = ''. RETURN. END. IF LOOKUP(cName, cAusnahme, ',') > 0 THEN RETURN. ASSIGN F_Artnr. FeldInhalt = F_Artnr. ARecid = ?. IF F_Artnr:SENSITIVE = FALSE THEN LEAVE. RUN ARTIKELNUMMER. IF ARecid = ? OR ARecid = 0 OR RETURN-VALUE = 'ERROR' THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. ASSIGN cFeld = 'F_Artnr'. RUN DETAIL_ANZEIGEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_GGebinde_SC &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_GGebinde_SC wLagerOrtStrichcode ON LEAVE OF F_GGebinde_SC IN FRAME fMain /* Strichcode GGeb */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Inhalt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt wLagerOrtStrichcode ON ENTRY OF F_Inhalt IN FRAME fMain /* / */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt wLagerOrtStrichcode ON LEAVE OF F_Inhalt IN FRAME fMain /* / */ DO: ASSIGN F_Artnr F_Inhalt. IF F_Inhalt:SENSITIVE = FALSE THEN LEAVE. FIND FIRST BArtst NO-LOCK WHERE BArtst.Firma = Firma AND BArtst.Artnr = VArtnr AND BArtst.Inhalt = F_Inhalt NO-ERROR. IF NOT AVAILABLE BArtst THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. ASSIGN ARecid = RECID(BArtst) VInhalt = BArtst.Inhalt VJahr = BArtst.Jahr cFeld = 'F_Inhalt'. RUN DETAIL_ANZEIGEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Jahr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr wLagerOrtStrichcode ON ENTRY OF F_Jahr IN FRAME fMain /* / */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Jahr wLagerOrtStrichcode ON LEAVE OF F_Jahr IN FRAME fMain /* / */ DO: ASSIGN F_Artnr F_Inhalt F_Jahr. IF F_Jahr:SENSITIVE = FALSE THEN LEAVE. FIND FIRST BArtst NO-LOCK WHERE BArtst.Firma = Firma AND BArtst.Artnr = VArtnr AND BArtst.Inhalt = VInhalt AND BArtst.Jahr = F_Jahr NO-ERROR. IF NOT AVAILABLE BArtst THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. ASSIGN ARecid = RECID(BArtst) VInhalt = BArtst.Inhalt VJahr = BArtst.Jahr cFeld = 'F_Jahr'. RUN DETAIL_ANZEIGEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_KGebinde_SC &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_KGebinde_SC wLagerOrtStrichcode ON ENTRY OF F_KGebinde_SC IN FRAME fMain /* Strichcode KGeb */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_KGebinde_SC wLagerOrtStrichcode ON LEAVE OF F_KGebinde_SC IN FRAME fMain /* Strichcode KGeb */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Ort &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Ort wLagerOrtStrichcode ON ENTRY OF F_Ort IN FRAME fMain /* Lagerort */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Strichcode &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Strichcode wLagerOrtStrichcode ON END-ERROR OF F_Strichcode IN FRAME fMain /* Strichcode */ DO: RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Strichcode wLagerOrtStrichcode ON ENTRY OF F_Strichcode IN FRAME fMain /* Strichcode */ DO: hFeld = SELF:HANDLE. ASSIGN F_Bezeichnung :SCREEN-VALUE = '' F_Kleingebinde:SCREEN-VALUE = '' F_KGebinde_SC :SCREEN-VALUE = '' F_VGebinde_SC :SCREEN-VALUE = '' F_GGebinde_SC :SCREEN-VALUE = '' F_Ort :SCREEN-VALUE = '' . END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Strichcode wLagerOrtStrichcode ON LEAVE OF F_Strichcode IN FRAME fMain /* Strichcode */ DO: DEF VAR cName AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. cName = LAST-EVENT:WIDGET-ENTER:NAME. IF cName = 'T_Strichcode' THEN DO WITH FRAME {&FRAME-NAME}: F_Strichcode:SCREEN-VALUE = ''. RETURN. END. IF cName = 'Btn_Search' THEN DO WITH FRAME {&FRAME-NAME}: ARecid = ?. RUN ARTIKELNUMMER. IF ARecid = ? THEN RETURN NO-APPLY. FIND BArtst NO-LOCK WHERE RECID(BArtst) = ARecid. F_Strichcode:SCREEN-VALUE = STRING(BArtst.Artnr ,'999999') + '.' + STRING(BArtst.Inhalt,'9999') + '.' + STRING(BArtst.Jahr ,'9999'). APPLY 'ENTRY' TO SELF. END. ELSE IF LOOKUP(cName, cAusnahme, ',') > 0 THEN RETURN. ASSIGN F_Strichcode ARecid = ? iKnr = 0 VArtnr = 0 VInhalt = 0 VJahr = 0 cGGeb_SC = '' cVGeb_SC = '' cKGeb_SC = '' . IF F_Strichcode = '' THEN DO: IF cName <> 'Btn_Search' THEN RETURN NO-APPLY. END. FIND FIRST ArtLief NO-LOCK USE-INDEX Strichcode-KGeb WHERE ArtLief.Firma = Firma AND ArtLief.Strichcode_KGeb = F_Strichcode NO-ERROR. IF NOT AVAILABLE ArtLief THEN DO: FIND FIRST ArtLief NO-LOCK USE-INDEX Strichcode-VGeb WHERE ArtLief.Firma = Firma AND ArtLief.Strichcode_VGeb = F_Strichcode NO-ERROR. END. IF NOT AVAILABLE ArtLief THEN DO: FIND FIRST ArtLief NO-LOCK USE-INDEX Strichcode-GGeb WHERE ArtLief.Firma = Firma AND ArtLief.Strichcode_GGeb = F_Strichcode NO-ERROR. END. IF AVAILABLE ArtLief THEN DO: ASSIGN VArtnr = ArtLief.Artnr VInhalt = ArtLief.Inhalt VJahr = ArtLief.Jahr iKnr = ArtLief.Knr cGGeb_SC = ArtLief.Strichcode_GGeb cVGeb_SC = ArtLief.Strichcode_VGeb cKGeb_SC = ArtLief.Strichcode_KGeb. FIND BArtst NO-LOCK WHERE BArtst.Firma = ArtLief.Firma AND BArtst.Artnr = ArtLief.Artnr AND BArtst.Inhalt = ArtLief.Inhalt AND BArtst.Jahr = ArtLief.Jahr. ARecid = RECID(BArtst). END. ELSE DO: ix = 0. IF LENGTH(F_Strichcode) > 6 THEN DO: FOR EACH BArtst NO-LOCK USE-INDEX Artst-Strichcode WHERE BArtst.Firma = Firma AND BArtst.Strichcode = F_Strichcode: ix = ix + 1. ARecid = RECID(BArtst). END. END. IF ix = 1 THEN DO: FIND BArtst NO-LOCK WHERE RECID(BArtst) = ARecid. ASSIGN VArtnr = BArtst.Artnr VInhalt = BArtst.Inhalt VJahr = BArtst.Jahr ARecid = RECID(BArtst). END. ELSE DO: F_Strichcode = REPLACE(F_Strichcode, "'", "."). F_Strichcode = REPLACE(F_Strichcode, "ß", "."). F_Strichcode = LOWER (F_Strichcode). DO ix = 1 TO LENGTH(F_Strichcode): IF SUBSTRING(F_Strichcode,ix,01) >= 'a' AND SUBSTRING(F_Strichcode,ix,01) <= 'z' THEN NEXT. IF SUBSTRING(F_Strichcode,ix,01) < '0' OR SUBSTRING(F_Strichcode,ix,01) > '9' THEN SUBSTRING(F_Strichcode,ix) = '.'. END. F_Strichcode:SCREEN-VALUE = F_Strichcode. DO ix = 1 TO NUM-ENTRIES(F_Strichcode, '.'): CASE ix: WHEN 1 THEN VArtnr = INTEGER(ENTRY(ix, F_Strichcode, '.')) NO-ERROR. WHEN 2 THEN VInhalt = INTEGER(ENTRY(ix, F_Strichcode, '.')) NO-ERROR. WHEN 3 THEN VJahr = INTEGER(ENTRY(ix, F_Strichcode, '.')) NO-ERROR. END. END. FIND BArtst NO-LOCK USE-INDEX Artst-k1 WHERE BArtst.Firma = Firma AND BArtst.Artnr = VArtnr AND BArtst.Inhalt = VInhalt AND BArtst.Jahr = VJahr NO-ERROR. IF NOT AVAILABLE BArtst THEN DO: FeldInhalt = F_Strichcode. RUN ARTIKELNUMMER. END. ELSE ARecid = RECID(BArtst). END. END. IF ARecid = ? THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. cFeld = ''. RUN DETAIL_ANZEIGEN. APPLY 'ENTRY' TO F_Ort. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_VGebinde_SC &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VGebinde_SC wLagerOrtStrichcode ON LEAVE OF F_VGebinde_SC IN FRAME fMain /* Strichcode VGeb */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Strichcode &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Strichcode wLagerOrtStrichcode ON VALUE-CHANGED OF T_Strichcode IN FRAME fMain /* Strichcode */ DO: ASSIGN T_Strichcode. CASE T_Strichcode: WHEN TRUE THEN DO: F_Artnr :SENSITIVE = FALSE. F_Inhalt:SENSITIVE = FALSE. F_Jahr :SENSITIVE = FALSE. F_Strichcode:SENSITIVE = TRUE. APPLY 'ENTRY' TO F_Strichcode. RETURN NO-APPLY. END. WHEN FALSE THEN DO: F_Artnr :SENSITIVE = TRUE. F_Inhalt:SENSITIVE = TRUE. F_Jahr :SENSITIVE = TRUE. F_Strichcode:SENSITIVE = FALSE. APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. END CASE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wLagerOrtStrichcode /* *************************** 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 wLagerOrtStrichcode _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 ARTIKELNUMMER wLagerOrtStrichcode PROCEDURE ARTIKELNUMMER : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Anzahl AS INT NO-UNDO. DEF VAR xWort AS CHAR NO-UNDO. DEF VAR zWorte AS CHAR NO-UNDO. DEF VAR yy AS INT NO-UNDO. DEF VAR zz AS INT NO-UNDO. DEF VAR Zahl AS INT NO-UNDO. Zahl = 0. Anzahl = 0. ARecid = ?. cGGeb_SC = ''. cVGeb_SC = ''. cKGeb_SC = ''. iKnr = 0. zWorte = ''. DO yy = 1 TO NUM-ENTRIES(FeldInhalt, ' '): xWort = ENTRY(yy, FeldInhalt, ' '). Zahl = INTEGER(xWort) NO-ERROR. IF ERROR-STATUS:ERROR THEN DO: zWorte = zWorte + (IF zWorte = '' THEN '' ELSE ' ') + xWort. NEXT. END. xWort = TRIM(STRING(Zahl,'>>>>>>>>>9')) NO-ERROR. IF ERROR-STATUS:ERROR THEN xWort = ENTRY(yy, FeldInhalt, ' '). zWorte = zWorte + (IF zWorte = '' THEN '' ELSE ' ') + xWort. END. FOR EACH Artbez NO-LOCK WHERE Artbez.Firma = Firma AND Artbez.Sprcd = 1 AND Artbez.WortIndex CONTAINS zWorte, FIRST BArtst NO-LOCK OF Artbez WHERE BArtst.Aktiv = TRUE AND BArtst.Ausverk < 9 : Anzahl = Anzahl + 1. IF Anzahl > 1 THEN LEAVE. VArtnr = BArtst.Artnr. ARecid = RECID(BArtst). END. IF Anzahl = 1 THEN DO: FIND BArtst WHERE RECID(BArtst) = ARecid NO-LOCK NO-ERROR. VArtnr = BArtst.Artnr. VInhalt = BArtst.Inhalt. VJahr = BArtst.Jahr. RETURN ''. END. RUN g-suchen-artikel.w ( INPUT FeldInhalt, OUTPUT ARecid ). IF ARecid = 0 OR ARecid = ? THEN DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO F_Artnr. RETURN NO-APPLY. END. FIND BArtst WHERE RECID(BArtst) = ARecid NO-LOCK NO-ERROR. VArtnr = BArtst.Artnr. VInhalt = BArtst.Inhalt. VJahr = BArtst.Jahr. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage wLagerOrtStrichcode 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 DETAIL_ANZEIGEN wLagerOrtStrichcode PROCEDURE DETAIL_ANZEIGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cBez AS CHAR NO-UNDO. DEF VAR cKGebinde AS CHAR NO-UNDO. DEF VAR iGGeb AS INT NO-UNDO. DEF VAR iVGeb AS INT NO-UNDO. DEF VAR iKGeb AS INT NO-UNDO. DO WITH FRAME {&FRAME-NAME}: FIND BArtst NO-LOCK WHERE RECID(BArtst) = ARecid. FIND FIRST BArtbez NO-LOCK OF BArtst NO-ERROR. IF AVAILABLE BArtbez THEN cBez = BArtbez.Bez1 + ' ' + BArtbez.Bez2. ELSE cBez = BArtst.Bez. FIND BKGebinde NO-LOCK WHERE BKGebinde.Firma = BArtst.Firma AND BKGebinde.Geb_Cd = BArtst.KGeb_Cd NO-ERROR. IF AVAILABLE BKGebinde THEN DO: cKGebinde = BKGebinde.KBez + ' / ' + STRING(BKGebinde.Inhalt) + ' / ' + BKGebinde.Bez. END. ELSE cKGebinde = ''. iLager = INTEGER(CB_Lager:SCREEN-VALUE). FIND ArtLager NO-LOCK WHERE ArtLager.Firma = BArtst.Firma AND ArtLager.Artnr = BArtst.Artnr AND ArtLager.Inhalt = BArtst.Inhalt AND ArtLager.Jahr = BArtst.Jahr AND ArtLager.Lager = iLager NO-ERROR. IF NOT AVAILABLE ArtLager THEN DO: CREATE ArtLager. ASSIGN ArtLager.Firma = BArtst.Firma ArtLager.Artnr = BArtst.Artnr ArtLager.Inhalt = BArtst.Inhalt ArtLager.Jahr = BArtst.Jahr ArtLager.Lager = iLager ArtLager.Datum_Inv = ? ArtLager.Inv_Best = 0 ArtLager.Inv_Alt = 0 ArtLager.Eingang = 0 ArtLager.Ausgang = 0 ArtLager.Bestand = 0 ArtLager.Ort = ''. END. F_Ort = ArtLager.Ort. IF iKnr = 0 THEN DO: FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Firma = BArtst.Firma AND ArtLief.Artnr = BArtst.Artnr AND ArtLief.Inhalt = BArtst.Inhalt AND ArtLief.Jahr = BArtst.Jahr AND ArtLief.Haupt = TRUE NO-ERROR. IF NOT AVAILABLE ArtLief THEN FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Firma = BArtst.Firma AND ArtLief.Artnr = BArtst.Artnr AND ArtLief.Inhalt = BArtst.Inhalt AND ArtLief.Jahr = BArtst.Jahr NO-ERROR. END. ELSE DO: FIND ArtLief NO-LOCK WHERE ArtLief.Firma = BArtst.Firma AND ArtLief.Artnr = BArtst.Artnr AND ArtLief.Inhalt = BArtst.Inhalt AND ArtLief.Jahr = BArtst.Jahr AND ArtLief.Knr = iKnr NO-ERROR. END. IF cKGeb_SC = '' THEN cKGeb_SC = BArtst.Strichcode. IF AVAILABLE ArtLief THEN DO: ASSIGN cGGeb_SC = ArtLief.Strichcode_GGeb cVGeb_SC = ArtLief.Strichcode_VGeb cKGeb_SC = (IF ArtLief.Strichcode_KGeb <> '' THEN ArtLief.Strichcode_KGeb ELSE BArtst.Strichcode) iKnr = ArtLief.Knr. END. LRecid = RECID(ArtLager). ASSIGN F_Artnr :SCREEN-VALUE = STRING(BArtst.Artnr) F_Inhalt :SCREEN-VALUE = STRING(BArtst.Inhalt) F_Jahr :SCREEN-VALUE = STRING(BArtst.Jahr) F_Ort :SCREEN-VALUE = STRING(ArtLager.Ort) F_Bezeichnung :SCREEN-VALUE = cBez F_Kleingebinde:SCREEN-VALUE = cKGebinde F_KGebinde_SC :SCREEN-VALUE = cKGeb_SC F_VGebinde_SC :SCREEN-VALUE = cVGeb_SC F_GGebinde_SC :SCREEN-VALUE = cGGeb_SC . cFeld = ''. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wLagerOrtStrichcode _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(wLagerOrtStrichcode) THEN DELETE WIDGET wLagerOrtStrichcode. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wLagerOrtStrichcode PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ T_Strichcode = TRUE. { incl/winenableobject.i } RUN SUPER. DO WITH FRAME {&FRAME-NAME}: ASSIGN F_Artnr :SENSITIVE = FALSE. F_Inhalt:SENSITIVE = FALSE. F_Jahr :SENSITIVE = FALSE. F_Strichcode:SENSITIVE = TRUE. iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR. RUN COMBO_LAGER ( CB_Lager:HANDLE ). RUN LAGER_EINSTELLUNGEN. APPLY 'ENTRY' TO F_Strichcode. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wLagerOrtStrichcode _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 CB_Lager F_Strichcode F_Artnr F_Inhalt F_Jahr T_Strichcode F_Ort F_KGebinde_SC F_VGebinde_SC F_GGebinde_SC F_Bezeichnung F_Kleingebinde F_Bestand WITH FRAME fMain IN WINDOW wLagerOrtStrichcode. ENABLE CB_Lager Btn_Search F_Strichcode F_Artnr F_Inhalt F_Jahr T_Strichcode F_Ort F_KGebinde_SC F_VGebinde_SC F_GGebinde_SC F_Bezeichnung Btn_OK Btn_Cancel F_Kleingebinde Btn_1 Btn_2 Btn_3 Btn_4 Btn_5 Btn_6 Btn_7 Btn_8 Btn_9 Btn_10 Btn_Clear Btn_Enter Btn_Minus F_Bestand RECT-43 WITH FRAME fMain IN WINDOW wLagerOrtStrichcode. {&OPEN-BROWSERS-IN-QUERY-fMain} VIEW wLagerOrtStrichcode. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wLagerOrtStrichcode PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ IF hFeld:NAME <> 'F_Artnr' AND hFeld:NAME <> 'F_Strichcode' THEN DO WITH FRAME {&FRAME-NAME}: ASSIGN T_Strichcode. CASE T_Strichcode: WHEN FALSE THEN DO: ASSIGN F_Artnr :SCREEN-VALUE = '' F_Inhalt:SCREEN-VALUE = '' F_Jahr :SCREEN-VALUE = ''. APPLY 'ENTRY' TO F_Artnr. END. WHEN TRUE THEN DO: ASSIGN F_Strichcode:SCREEN-VALUE = '' F_Artnr :SCREEN-VALUE = '' F_Inhalt :SCREEN-VALUE = '' F_Jahr :SCREEN-VALUE = ''. APPLY 'ENTRY' TO F_Strichcode. END. END CASE. RETURN NO-APPLY. END. { incl/winende.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR wLagerOrtStrichcode 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 wLagerOrtStrichcode 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 wLagerOrtStrichcode PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override 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 LAGER_EINSTELLUNGEN wLagerOrtStrichcode PROCEDURE LAGER_EINSTELLUNGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Datum AS DATE FORMAT '99.99.9999' NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: CB_Lager:SCREEN-VALUE = STRING(iLager,'999999'). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SEITENWECHSEL wLagerOrtStrichcode PROCEDURE SEITENWECHSEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/winseitenwechsel.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage wLagerOrtStrichcode 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 SPEICHERN wLagerOrtStrichcode PROCEDURE SPEICHERN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR LRecid AS RECID NO-UNDO. DEF VAR ja AS LOG NO-UNDO. DEF VAR i1 AS INT NO-UNDO. REPEAT TRANSACTION WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. ASSIGN {&List-5}. iLager = INTEGER(CB_Lager:SCREEN-VALUE). FIND Steuer NO-LOCK WHERE Steuer.Firma = Firma. FIND Artst WHERE Artst.Firma = Firma AND Artst.Artnr = INTEGER(F_Artnr) AND Artst.Inhalt = F_Inhalt AND Artst.Jahr = F_Jahr. IF F_KGebinde_SC = '.' THEN Artst.Strichcode = ''. ELSE Artst.Strichcode = F_KGebinde_SC. FIND ArtLager USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = Artst.Firma AND ArtLager.Artnr = Artst.Artnr AND ArtLager.Inhalt = Artst.Inhalt AND ArtLager.Jahr = Artst.Jahr AND ArtLager.Lager = iLager NO-ERROR. IF NOT AVAILABLE ArtLager THEN DO: CREATE ArtLager. ASSIGN ArtLager.Firma = Artst.Firma ArtLager.Artnr = Artst.Artnr ArtLager.Inhalt = Artst.Inhalt ArtLager.Jahr = Artst.Jahr ArtLager.Lager = iLager. END. LRecid = RECID(ArtLAger). ASSIGN ArtLager.Ort = F_Ort. IF iKnr = 0 THEN DO: FOR EACH ArtLief OF Artst NO-LOCK: iKnr = ArtLief.Knr. IF ArtLief.Haupt THEN LEAVE. END. END. IF iKnr <> 0 THEN DO: FIND ArtLief WHERE ArtLief.Firma = Firma AND ArtLief.Knr = iKnr AND ArtLief.Artnr = Artst.Artnr AND ArtLief.Inhalt = Artst.Inhalt and ArtLief.Jahr = Artst.Jahr NO-ERROR. IF AVAILABLE ArtLief THEN DO: IF F_KGebinde_SC <> '' THEN ArtLief.Strichcode_KGeb = (IF F_KGebinde_SC = '.' THEN '' ELSE F_KGebinde_SC). IF F_VGebinde_SC <> '' THEN ArtLief.Strichcode_VGeb = (IF F_VGebinde_SC = '.' THEN '' ELSE F_VGebinde_SC). IF F_GGebinde_SC <> '' THEN ArtLief.Strichcode_GGeb = (IF F_GGebinde_SC = '.' THEN '' ELSE F_GGebinde_SC). END. END. RELEASE Artst. RELEASE ArtLager. RELEASE Artbw. ASSIGN F_Strichcode = '' F_Artnr = '' F_Inhalt = 0 F_Jahr = 0 F_Bestand = 0 F_Ort = '' F_Bezeichnung = '' F_Kleingebinde = ''. DISPLAY {&List-5}. IF T_Strichcode THEN APPLY 'ENTRY' TO F_Strichcode. ELSE APPLY 'ENTRY' TO F_Artnr. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR wLagerOrtStrichcode PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/wintoolbar.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wLagerOrtStrichcode 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 wLagerOrtStrichcode FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ RETURN Progname. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME