&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME wInventar {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 wInventar /*------------------------------------------------------------------------ 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 iStufe AS INT NO-UNDO. DEF VAR cFeld AS CHAR NO-UNDO. DEF VAR cAusnahme AS CHAR NO-UNDO INIT 'F_Inhalt,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 VAR hQuery AS HANDLE 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. DEF TEMP-TABLE tDatum NO-UNDO FIELD Datum AS DATE INDEX tDatum-k1 IS PRIMARY Datum DESCENDING. { 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 &Scoped-define BROWSE-NAME BROWSE-3 /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES tArtbw /* Definitions for BROWSE BROWSE-3 */ &Scoped-define FIELDS-IN-QUERY-BROWSE-3 Artnr KGeb_Inh Bez1 Bez2 Menge KGebinde GGeb_Me VGeb_Me KGeb_Me Inhalt Jahr &Scoped-define ENABLED-FIELDS-IN-QUERY-BROWSE-3 &Scoped-define SELF-NAME BROWSE-3 &Scoped-define QUERY-STRING-BROWSE-3 FOR EACH tArtbw NO-LOCK INDEXED-REPOSITION &Scoped-define OPEN-QUERY-BROWSE-3 OPEN QUERY {&SELF-NAME} FOR EACH tArtbw NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-BROWSE-3 tArtbw &Scoped-define FIRST-TABLE-IN-QUERY-BROWSE-3 tArtbw /* Definitions for FRAME fMain */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS BROWSE-3 CB_Lager CB_Datum Btn_Search ~ F_Strichcode T_Strichcode F_Artnr F_Inhalt F_Jahr F_GGeb F_VGeb F_KGeb ~ F_Bezeichnung Btn_OK Btn_Cancel F_Kleingebinde F_KGebinde_SC F_VGebinde_SC ~ F_GGebinde_SC Btn_1 Btn_2 Btn_3 F_Bestand F_Inventar Btn_4 Btn_5 Btn_6 ~ Btn_7 Btn_8 Btn_9 Btn_10 Btn_Clear Btn_Enter Btn_Minus RECT-43 RECT-44 &Scoped-Define DISPLAYED-OBJECTS CB_Lager CB_Datum F_Strichcode ~ T_Strichcode F_Artnr F_Inhalt F_Jahr F_GGeb F_VGeb F_KGeb F_Bezeichnung ~ F_Kleingebinde F_KGebinde_SC F_VGebinde_SC F_GGebinde_SC F_Bestand ~ F_Inventar /* 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_GGeb F_VGeb ~ F_KGeb F_Bezeichnung F_Kleingebinde F_KGebinde_SC F_VGebinde_SC ~ F_GGebinde_SC F_Bestand F_Inventar &Scoped-define List-6 F_GGeb F_VGeb F_KGeb 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 wInventar FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR wInventar 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 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_Datum AS CHARACTER FORMAT "X(256)":U INITIAL "00" LABEL "Inventardatum" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEMS "01.01.2010" DROP-DOWN-LIST SIZE 16 BY 1 NO-UNDO. 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_GGeb AS INTEGER FORMAT "-999999":U INITIAL 0 LABEL "Grossgebinde" VIEW-AS FILL-IN NATIVE SIZE 12 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_Inventar AS INTEGER FORMAT "zzz,zz9-":U INITIAL 0 LABEL "Inventar" VIEW-AS FILL-IN NATIVE SIZE 14 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_KGeb AS INTEGER FORMAT "-999999":U INITIAL 0 LABEL "Kleingebinde" VIEW-AS FILL-IN NATIVE SIZE 12 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_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_VGeb AS INTEGER FORMAT "-999999":U INITIAL 0 LABEL "Verkaufsgebinde" VIEW-AS FILL-IN NATIVE SIZE 12 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 RECTANGLE RECT-44 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 168 BY 7.86. DEFINE VARIABLE T_Strichcode AS LOGICAL INITIAL no LABEL "Strichcode" VIEW-AS TOGGLE-BOX SIZE 20 BY 1.52 NO-UNDO. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY BROWSE-3 FOR tArtbw SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE BROWSE-3 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS BROWSE-3 wInventar _FREEFORM QUERY BROWSE-3 NO-LOCK DISPLAY Artnr FORMAT "999999" LABEL 'Artnr' KGeb_Inh FORMAT "zzz9" LABEL 'GebInh' Bez1 FORMAT "x(30)" LABEL 'Bezeichnung' Bez2 FORMAT "x(30)" LABEL 'Zusatzbezeichnung' Menge FORMAT "zzz,zz9-" LABEL 'Menge' KGebinde FORMAT "x(10)" LABEL 'Gebinde' GGeb_Me FORMAT "z,zz9-" LABEL 'GGeb' VGeb_Me FORMAT "zzz,zz9-" LABEL 'VGeb' KGeb_Me FORMAT "zzz,zz9-" LABEL 'KGeb' Inhalt FORMAT "9999" LABEL 'Inhalt' Jahr FORMAT "9999" LABEL 'Jahr' /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS NO-TAB-STOP SIZE 166 BY 7.14. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain BROWSE-3 AT ROW 14 COL 3 WIDGET-ID 200 CB_Lager AT ROW 1.52 COL 20 COLON-ALIGNED WIDGET-ID 2 CB_Datum AT ROW 2.52 COL 20 COLON-ALIGNED WIDGET-ID 4 Btn_Search AT ROW 1.52 COL 120 WIDGET-ID 74 F_Strichcode AT ROW 4.52 COL 20 COLON-ALIGNED WIDGET-ID 8 T_Strichcode AT ROW 1.52 COL 50 WIDGET-ID 6 NO-TAB-STOP 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 F_GGeb AT ROW 8 COL 28 COLON-ALIGNED WIDGET-ID 20 F_VGeb AT ROW 9 COL 28 COLON-ALIGNED WIDGET-ID 22 F_KGeb AT ROW 10 COL 28 COLON-ALIGNED WIDGET-ID 24 F_Bezeichnung AT ROW 5.52 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 F_KGebinde_SC AT ROW 10 COL 106 COLON-ALIGNED WIDGET-ID 60 F_VGebinde_SC AT ROW 11 COL 106 COLON-ALIGNED WIDGET-ID 64 F_GGebinde_SC AT ROW 12 COL 106 COLON-ALIGNED WIDGET-ID 66 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 F_Bestand AT ROW 8 COL 67 COLON-ALIGNED WIDGET-ID 28 NO-TAB-STOP F_Inventar AT ROW 9 COL 67 COLON-ALIGNED WIDGET-ID 30 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 RECT-43 AT ROW 1.24 COL 2 WIDGET-ID 62 RECT-44 AT ROW 13.62 COL 2 WIDGET-ID 72 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 170 BY 20.81 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 wInventar ASSIGN HIDDEN = YES TITLE = "Inventaraufnahme" HEIGHT = 20.81 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 wInventar: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 wInventar /* ************************* 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 wInventar VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain FRAME-NAME Custom */ /* BROWSE-TAB BROWSE-3 1 fMain */ ASSIGN BROWSE-3:COLUMN-RESIZABLE IN FRAME fMain = TRUE. /* 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_GGeb IN FRAME fMain 5 6 */ /* 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_Inventar IN FRAME fMain 5 */ ASSIGN F_Inventar:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_Jahr IN FRAME fMain 5 */ /* SETTINGS FOR FILL-IN F_KGeb IN FRAME fMain 5 6 */ /* 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_Strichcode IN FRAME fMain 5 */ /* SETTINGS FOR FILL-IN F_VGeb IN FRAME fMain 5 6 */ /* SETTINGS FOR FILL-IN F_VGebinde_SC IN FRAME fMain 5 6 */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wInventar) THEN wInventar:HIDDEN = yes. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE BROWSE-3 /* Query rebuild information for BROWSE BROWSE-3 _START_FREEFORM OPEN QUERY {&SELF-NAME} FOR EACH tArtbw NO-LOCK INDEXED-REPOSITION. _END_FREEFORM _Options = "NO-LOCK INDEXED-REPOSITION" _Query is NOT OPENED */ /* BROWSE BROWSE-3 */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME wInventar &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wInventar wInventar ON END-ERROR OF wInventar /* Inventaraufnahme */ 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 wInventar wInventar ON WINDOW-CLOSE OF wInventar /* Inventaraufnahme */ 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 wInventar ON CHOOSE OF Btn_1 IN FRAME fMain /* 1 */ 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 * 10) + 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_10 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_10 wInventar ON CHOOSE OF Btn_10 IN FRAME fMain /* 0 */ 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 * 10) + 0. 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_2 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_2 wInventar ON CHOOSE OF Btn_2 IN FRAME fMain /* 2 */ 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 * 10) + 2. 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_3 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_3 wInventar ON CHOOSE OF Btn_3 IN FRAME fMain /* 3 */ 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 * 10) + 3. 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_4 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_4 wInventar ON CHOOSE OF Btn_4 IN FRAME fMain /* 4 */ 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 * 10) + 4. 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_5 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_5 wInventar ON CHOOSE OF Btn_5 IN FRAME fMain /* 5 */ 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 * 10) + 5. 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_6 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_6 wInventar ON CHOOSE OF Btn_6 IN FRAME fMain /* 6 */ 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 * 10) + 6. 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_7 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_7 wInventar ON CHOOSE OF Btn_7 IN FRAME fMain /* 7 */ 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 * 10) + 7. 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_8 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_8 wInventar ON CHOOSE OF Btn_8 IN FRAME fMain /* 8 */ 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 * 10) + 8. 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_9 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_9 wInventar ON CHOOSE OF Btn_9 IN FRAME fMain /* 9 */ 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 * 10) + 9. 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_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel wInventar 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 wInventar 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 wInventar 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 wInventar 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 wInventar 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 wInventar 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_Datum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Datum wInventar ON VALUE-CHANGED OF CB_Datum IN FRAME fMain /* Inventardatum */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Lager &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Lager wInventar 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 wInventar 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 wInventar 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 iStufe = 0 cFeld = 'F_Artnr'. RUN DETAIL_ANZEIGEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_GGeb &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_GGeb wInventar ON ENTRY OF F_GGeb IN FRAME fMain /* Grossgebinde */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_GGeb wInventar ON LEAVE OF F_GGeb IN FRAME fMain /* Grossgebinde */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF F_GGeb = 0 THEN RETURN. IF F_GGeb > 1000 THEN RETURN. IF AVAILABLE BGGebinde THEN F_VGeb = F_GGeb * BGGebinde.Inhalt. IF AVAILABLE BVGebinde THEN F_KGeb = F_VGeb * BVGebinde.Inhalt. DISPLAY {&List-6}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_GGebinde_SC &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_GGebinde_SC wInventar ON LEAVE OF F_GGebinde_SC IN FRAME fMain /* Strichcode GGeb */ DO: IF F_Strichcode:SENSITIVE = FALSE THEN RETURN. IF LAST-EVENT:WIDGET-ENTER:NAME = 'T_Strichcode' THEN DO WITH FRAME {&FRAME-NAME}: F_Strichcode:SCREEN-VALUE = ''. RETURN. END. ASSIGN F_Strichcode ARecid = ? iStufe = 3. IF F_Strichcode = '' THEN RETURN NO-APPLY. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Strichcode_GGeb = F_Strichcode NO-ERROR. IF NOT AVAILABLE ArtLief THEN DO: iStufe = 2. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Strichcode_VGeb = F_Strichcode NO-ERROR. END. IF NOT AVAILABLE ArtLief THEN DO: iStufe = 1. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Strichcode_KGeb = F_Strichcode NO-ERROR. END. IF AVAILABLE ArtLief THEN DO: ASSIGN VArtnr = ArtLief.Artnr VInhalt = ArtLief.Inhalt VJahr = ArtLief.Jahr. 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: iStufe = 0. FIND FIRST BArtst NO-LOCK USE-INDEX Artst-Strichcode WHERE BArtst.Strichcode = F_Strichcode NO-ERROR. IF AVAILABLE BArtst THEN DO: ASSIGN VArtnr = BArtst.Artnr VInhalt = BArtst.Inhalt VJahr = BArtst.Jahr. END. ARecid = RECID(BArtst). END. IF ARecid = ? THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. cFeld = ''. RUN DETAIL_ANZEIGEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Inhalt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Inhalt wInventar 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 wInventar 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 iStufe = 0 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 wInventar 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 wInventar 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 iStufe = 0 cFeld = 'F_Jahr'. RUN DETAIL_ANZEIGEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_KGeb &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_KGeb wInventar ON CURSOR-UP OF F_KGeb IN FRAME fMain /* Kleingebinde */ DO: APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_KGeb wInventar ON ENTRY OF F_KGeb IN FRAME fMain /* Kleingebinde */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_KGeb wInventar ON LEAVE OF F_KGeb IN FRAME fMain /* Kleingebinde */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF F_KGeb = 0 THEN RETURN. IF F_KGeb > 100000 THEN RETURN. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_KGebinde_SC &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_KGebinde_SC wInventar ON LEAVE OF F_KGebinde_SC IN FRAME fMain /* Strichcode KGeb */ DO: IF F_Strichcode:SENSITIVE = FALSE THEN RETURN. IF LAST-EVENT:WIDGET-ENTER:NAME = 'T_Strichcode' THEN DO WITH FRAME {&FRAME-NAME}: F_Strichcode:SCREEN-VALUE = ''. RETURN. END. ASSIGN F_Strichcode ARecid = ? iStufe = 3. IF F_Strichcode = '' THEN RETURN NO-APPLY. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Strichcode_GGeb = F_Strichcode NO-ERROR. IF NOT AVAILABLE ArtLief THEN DO: iStufe = 2. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Strichcode_VGeb = F_Strichcode NO-ERROR. END. IF NOT AVAILABLE ArtLief THEN DO: iStufe = 1. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Strichcode_KGeb = F_Strichcode NO-ERROR. END. IF AVAILABLE ArtLief THEN DO: ASSIGN VArtnr = ArtLief.Artnr VInhalt = ArtLief.Inhalt VJahr = ArtLief.Jahr. 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: iStufe = 0. FIND FIRST BArtst NO-LOCK USE-INDEX Artst-Strichcode WHERE BArtst.Strichcode = F_Strichcode NO-ERROR. IF AVAILABLE BArtst THEN DO: ASSIGN VArtnr = BArtst.Artnr VInhalt = BArtst.Inhalt VJahr = BArtst.Jahr. END. ARecid = RECID(BArtst). END. IF ARecid = ? THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. cFeld = ''. RUN DETAIL_ANZEIGEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Strichcode &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Strichcode wInventar 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_Bestand :SCREEN-VALUE = '' F_Inventar :SCREEN-VALUE = '' . END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Strichcode wInventar ON LEAVE OF F_Strichcode IN FRAME fMain /* Strichcode */ DO: DEF VAR cName AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR iAnz AS INT NO-UNDO. DEF VAR cSuch AS CHAR NO-UNDO. DEF VAR iRecid AS RECID 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 = ? iStufe = 3 iKnr = 0 VArtnr = 0 VInhalt = 0 VJahr = 0. IF F_Strichcode = '' THEN DO: IF cName <> 'Btn_Search' THEN RETURN NO-APPLY. END. DO WHILE TRUE: /* Strichcode GGebinde Lieferant */ iAnz = 0. cSuch = ''. iRecid = 0. FOR EACH ArtLief NO-LOCK WHERE ArtLief.Strichcode_GGeb = F_Strichcode: iAnz = iAnz + 1. iRecid = RECID(ArtLief). cSuch = cSuch + (IF cSuch = '' THEN '' ELSE ' ') + TRIM(STRING(ArtLief.Artnr,'>>>>>>9')). END. IF iAnz = 1 THEN DO: FIND ArtLief NO-LOCK WHERE RECID(ArtLief) = iRecid. FIND bArtst NO-LOCK OF ArtLief. ARecid = RECID(bArtst). LEAVE. END. IF iAnz > 1 THEN DO: RUN g-suchen-artikel.w ( INPUT cSuch, OUTPUT ARecid ). IF ARecid = 0 OR ARecid = ? THEN DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. LEAVE. END. /* Strichcode VGebinde Lieferant */ iAnz = 0. cSuch = 'INVENTAR,00;'. iRecid = 0. iStufe = 2. FOR EACH ArtLief NO-LOCK WHERE ArtLief.Strichcode_VGeb = F_Strichcode: iAnz = iAnz + 1. iRecid = RECID(ArtLief). cSuch = cSuch + (IF cSuch = '' THEN '' ELSE ' ') + TRIM(STRING(ArtLief.Artnr,'>>>>>>9')). END. IF iAnz = 1 THEN DO: FIND ArtLief NO-LOCK WHERE RECID(ArtLief) = iRecid. FIND bArtst NO-LOCK OF ArtLief. ARecid = RECID(bArtst). LEAVE. END. IF iAnz > 1 THEN DO: RUN g-suchen-artikel.w ( INPUT cSuch, OUTPUT ARecid ). IF ARecid = 0 OR ARecid = ? THEN DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. LEAVE. END. /* Strichcode KGebinde Lieferant */ iAnz = 0. cSuch = 'INVENTAR,00;'. iRecid = 0. iStufe = 1. FOR EACH ArtLief NO-LOCK WHERE ArtLief.Strichcode_KGeb = F_Strichcode: iAnz = iAnz + 1. iRecid = RECID(ArtLief). cSuch = cSuch + (IF cSuch = '' THEN '' ELSE ' ') + TRIM(STRING(ArtLief.Artnr,'>>>>>>9')). END. IF iAnz = 1 THEN DO: FIND ArtLief NO-LOCK WHERE RECID(ArtLief) = iRecid. FIND bArtst NO-LOCK OF ArtLief. ARecid = RECID(bArtst). LEAVE. END. IF iAnz > 1 THEN DO: RUN g-suchen-artikel.w ( INPUT cSuch, OUTPUT ARecid ). IF ARecid = 0 OR ARecid = ? THEN DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. LEAVE. END. /* Strichcode Artikel und Artikelnummer */ cSuch = 'INVENTAR,00;'. iStufe = 0. ix = 0. IF LENGTH(F_Strichcode) > 6 THEN DO: FOR EACH bArtst NO-LOCK USE-INDEX Artst-Strichcode WHERE bArtst.Strichcode = F_Strichcode: ix = ix + 1. ARecid = RECID(bArtst). cSuch = cSuch + (IF cSuch = '' THEN '' ELSE ' ') + TRIM(STRING(ArtLief.Artnr,'>>>>>>9')). END. END. IF ix = 1 THEN LEAVE. IF ix > 1 THEN DO: RUN g-suchen-artikel.w ( INPUT cSuch, OUTPUT ARecid ). IF ARecid = 0 OR ARecid = ? THEN DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. END. 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. ix = 0. FOR EACH bArtst NO-LOCK USE-INDEX Artst-k1 WHERE bArtst.Firma = Firma AND bArtst.Artnr = VArtnr AND bArtst.Inhalt = VInhalt AND ((VJahr = 0) OR (VJahr > 0 AND bArtst.Jahr = VJahr)) : cSuch = cSuch + (IF cSuch = '' THEN '' ELSE ' ') + TRIM(STRING(bArtst.Artnr,'>>>>>>9')). ix = ix + 1. ARecid = RECID(bArtst). IF ix > 1 THEN LEAVE. END. FeldInhalt = F_Strichcode. IF ix > 1 OR ix = 0 THEN DO: RUN g-suchen-artikel.w ( INPUT F_Strichcode, OUTPUT ARecid ). IF ARecid = 0 OR ARecid = ? THEN DO WITH FRAME {&FRAME-NAME}: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. END. LEAVE. END. IF ARecid = ? THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. FIND bArtst NO-LOCK WHERE RECID(bArtst) = ARecid. ASSIGN VArtnr = bArtst.Artnr VInhalt = bArtst.Inhalt VJahr = bArtst.Jahr. cFeld = ''. RUN DETAIL_ANZEIGEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_VGeb &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VGeb wInventar ON CURSOR-UP OF F_VGeb IN FRAME fMain /* Verkaufsgebinde */ DO: APPLY 'BACK-TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VGeb wInventar ON ENTRY OF F_VGeb IN FRAME fMain /* Verkaufsgebinde */ DO: hFeld = SELF:HANDLE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VGeb wInventar ON LEAVE OF F_VGeb IN FRAME fMain /* Verkaufsgebinde */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF F_VGeb = 0 THEN RETURN. IF F_VGeb > 10000 THEN RETURN. IF AVAILABLE BVGebinde THEN F_KGeb = F_VGeb * BVGebinde.Inhalt. DISPLAY {&List-6}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_VGebinde_SC &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_VGebinde_SC wInventar ON LEAVE OF F_VGebinde_SC IN FRAME fMain /* Strichcode VGeb */ DO: IF F_Strichcode:SENSITIVE = FALSE THEN RETURN. IF LAST-EVENT:WIDGET-ENTER:NAME = 'T_Strichcode' THEN DO WITH FRAME {&FRAME-NAME}: F_Strichcode:SCREEN-VALUE = ''. RETURN. END. ASSIGN F_Strichcode ARecid = ? iStufe = 3. IF F_Strichcode = '' THEN RETURN NO-APPLY. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Strichcode_GGeb = F_Strichcode NO-ERROR. IF NOT AVAILABLE ArtLief THEN DO: iStufe = 2. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Strichcode_VGeb = F_Strichcode NO-ERROR. END. IF NOT AVAILABLE ArtLief THEN DO: iStufe = 1. FIND FIRST ArtLief NO-LOCK WHERE ArtLief.Strichcode_KGeb = F_Strichcode NO-ERROR. END. IF AVAILABLE ArtLief THEN DO: ASSIGN VArtnr = ArtLief.Artnr VInhalt = ArtLief.Inhalt VJahr = ArtLief.Jahr. 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: iStufe = 0. FIND FIRST BArtst NO-LOCK USE-INDEX Artst-Strichcode WHERE BArtst.Strichcode = F_Strichcode NO-ERROR. IF AVAILABLE BArtst THEN DO: ASSIGN VArtnr = BArtst.Artnr VInhalt = BArtst.Inhalt VJahr = BArtst.Jahr. END. ARecid = RECID(BArtst). END. IF ARecid = ? THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. cFeld = ''. RUN DETAIL_ANZEIGEN. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Strichcode &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Strichcode wInventar 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 &Scoped-define BROWSE-NAME BROWSE-3 &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wInventar /* *************************** Main Block *************************** */ { incl/winmainblock.i } hQuery = BROWSE {&BROWSE-NAME}:QUERY. {src/adm2/windowmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wInventar _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 wInventar 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 wInventar 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 DATUMTEST wInventar PROCEDURE DATUMTEST : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DO WITH FRAME {&FRAME-NAME}: ASSIGN iDatum = DATE(CB_Datum) NO-ERROR. /* IF iDatum = ? OR iDatum < TODAY - 120 OR iDatum > TODAY + 120 THEN DO: APPLY 'ENTRY' TO CB_Datum. RETURN 'ERROR'. END. */ RETURN ''. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DETAIL_ANZEIGEN wInventar 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 F_KGeb:LABEL = BKGebinde.KBez. ELSE F_KGeb:LABEL = ''. FIND BVGebinde NO-LOCK WHERE BVGebinde.Firma = BArtst.Firma AND BVGebinde.Geb_Cd = BArtst.VGeb_Cd NO-ERROR. IF AVAILABLE BVGebinde THEN F_VGeb:LABEL = BVGebinde.KBez. ELSE F_VGeb:LABEL = ''. FIND BGGebinde NO-LOCK WHERE BGGebinde.Firma = BArtst.Firma AND BGGebinde.Geb_Cd = BArtst.GGeb_Cd NO-ERROR. IF AVAILABLE BGGebinde THEN F_GGeb:LABEL = BGGebinde.KBez. ELSE F_GGeb:LABEL = ''. IF AVAILABLE BKGebinde THEN DO: cKGebinde = BKGebinde.KBez + ' / ' + STRING(BKGebinde.Inhalt) + ' / ' + BKGebinde.Bez. END. ELSE cKGebinde = ''. iLager = INTEGER(CB_Lager:SCREEN-VALUE). iDatum = DATE(CB_Datum: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 = iDatum ArtLager.Inv_Best = 0 ArtLager.Inv_Alt = 0 ArtLager.Eingang = 0 ArtLager.Ausgang = 0 ArtLager.Bestand = 0 ArtLager.Ort = ''. END. IF cGGeb_SC = '' AND cVGeb_SC = '' AND cKGeb_SC = '' THEN DO: FIND FIRST ArtLief OF Artst NO-LOCK NO-ERROR. IF AVAILABLE ArtLief THEN DO: ASSIGN cGGeb_SC = ArtLief.Strichcode_GGeb cVGeb_SC = ArtLief.Strichcode_VGeb cKGeb_SC = ArtLief.Strichcode_KGeb iKnr = ArtLief.Knr. END. END. IF cKGeb_SC = '' THEN cKGeb_SC = BArtst.Strichcode. 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_Bestand :SCREEN-VALUE = STRING(ArtLager.Bestand) F_Inventar :SCREEN-VALUE = STRING(ArtLager.Inv_Best) 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 . CASE iStufe: WHEN 0 THEN DO: ASSIGN F_GGeb:SCREEN-VALUE = '' F_VGeb:SCREEN-VALUE = '' F_KGeb:SCREEN-VALUE = ''. ASSIGN iGGeb = 0 iVGeb = 0 iKGeb = 0. END. WHEN 1 THEN ASSIGN iGGeb = 0 iVGeb = 0 iKGeb = 0. WHEN 2 THEN ASSIGN iGGeb = 0 iVGeb = 1 iKGeb = iVGeb * BVGebinde.Inhalt. WHEN 3 THEN ASSIGN iGGeb = 1 iVGeb = iGGeb * BGGebinde.Inhalt iKGeb = iVGeb * BVGebinde.Inhalt. END CASE. ASSIGN F_GGeb:SCREEN-VALUE = STRING(iGGeb) F_VGeb:SCREEN-VALUE = STRING(iVGeb) F_KGeb:SCREEN-VALUE = STRING(iKGeb). CASE iStufe: WHEN 3 THEN APPLY 'ENTRY' TO F_GGeb. WHEN 2 THEN APPLY 'ENTRY' TO F_VGeb. OTHERWISE APPLY 'ENTRY' TO F_VGeb. END CASE. cFeld = ''. RETURN NO-APPLY. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wInventar _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(wInventar) THEN DELETE WIDGET wInventar. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wInventar 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 wInventar _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 CB_Datum F_Strichcode T_Strichcode F_Artnr F_Inhalt F_Jahr F_GGeb F_VGeb F_KGeb F_Bezeichnung F_Kleingebinde F_KGebinde_SC F_VGebinde_SC F_GGebinde_SC F_Bestand F_Inventar WITH FRAME fMain IN WINDOW wInventar. ENABLE BROWSE-3 CB_Lager CB_Datum Btn_Search F_Strichcode T_Strichcode F_Artnr F_Inhalt F_Jahr F_GGeb F_VGeb F_KGeb F_Bezeichnung Btn_OK Btn_Cancel F_Kleingebinde F_KGebinde_SC F_VGebinde_SC F_GGebinde_SC Btn_1 Btn_2 Btn_3 F_Bestand F_Inventar Btn_4 Btn_5 Btn_6 Btn_7 Btn_8 Btn_9 Btn_10 Btn_Clear Btn_Enter Btn_Minus RECT-43 RECT-44 WITH FRAME fMain IN WINDOW wInventar. {&OPEN-BROWSERS-IN-QUERY-fMain} VIEW wInventar. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wInventar 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 wInventar 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 wInventar 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 wInventar 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 wInventar 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. EMPTY TEMP-TABLE tDatum. FOR EACH ArtLager NO-LOCK WHERE ArtLager.Firma = Firma AND ArtLager.Lager = iLager AND ArtLager.Datum_Inv <> ?: Datum = ArtLager.Datum_Inv. FIND FIRST tDatum WHERE tDatum.Datum = Datum NO-ERROR. IF NOT AVAILABLE tDatum THEN DO: CREATE tDatum. ASSIGN tDatum.Datum = Datum. END. END. FOR EACH tDatum: cString = cString + (IF cString = '' THEN '' ELSE ';') + STRING(tDatum.Datum,'99.99.9999'). END. FIND FIRST tDatum NO-ERROR. IF NOT AVAILABLE tDatum THEN Datum = TODAY. ELSE Datum = tDatum.Datum. DO WITH FRAME {&FRAME-NAME}: CB_Datum:DELIMITER = ';'. CB_Datum:LIST-ITEMS = cString. CB_Datum:SCREEN-VALUE = STRING(Datum,'99.99.9999') NO-ERROR. APPLY 'ENTRY' TO F_Strichcode. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SEITENWECHSEL wInventar PROCEDURE SEITENWECHSEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/winseitenwechsel.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage wInventar 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 wInventar 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}: RUN DATUMTEST. IF RETURN-VALUE <> '' THEN RETURN NO-APPLY. ASSIGN {&List-6}. iLager = INTEGER(CB_Lager:SCREEN-VALUE). DO WHILE TRUE: IF F_KGeb > 0 THEN LEAVE. MESSAGE "Wollen Sie wirklich ein Inventar mit 0 oder Minusmenge erfassen ? " VIEW-AS ALERT-BOX QUESTION BUTTONS OK-CANCEL Update Ja. IF Ja THEN LEAVE. BELL. APPLY 'ENTRY' TO F_KGeb. RETURN NO-APPLY. END. FIND Steuer NO-LOCK WHERE Steuer.Firma = Firma. DISABLE TRIGGERS FOR LOAD OF ArtLager. FIND Artst WHERE RECID(Artst) = ARecid. IF F_KGebinde_SC = '.' THEN Artst.Strichcode = ''. ELSE IF Artst.Strichcode = '' THEN 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). ArtLager.Inv_Best = ArtLager.Inv_Best + F_KGeb. 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. FIND LAST Artbw USE-INDEX Artbw-k1 WHERE Artbw.Firma = Artst.Firma NO-LOCK NO-ERROR. IF AVAILABLE Artbw THEN i1 = Artbw.Trnr + 1. ELSE i1 = 1. CREATE Artbw. ASSIGN Artbw.Firma = Artst.Firma Artbw.Trnr = i1 Artbw.Tr_Art = 21 Artbw.Artnr = Artst.Artnr Artbw.Inhalt = Artst.Inhalt Artbw.Jahr = Artst.Jahr Artbw.Bez1 = BArtbez.Bez1 Artbw.Menge = F_KGeb Artbw.Alk_Gehalt = Artst.Alk_Gehalt Artbw.Aktion = FALSE Artbw.Sk_Ber = FALSE Artbw.Netto = FALSE Artbw.Lager = iLager Artbw.KGeb_Cd = Artst.KGeb_Cd Artbw.VGeb_Cd = Artst.VGeb_Cd Artbw.GGeb_Cd = Artst.GGeb_Cd Artbw.KGeb_Me = F_KGeb Artbw.VGeb_Me = F_VGeb Artbw.GGeb_Me = F_GGeb Artbw.Liter = F_KGeb * BKGebinde.Inhalt / 100 Artbw.Datum = iDatum Artbw.Abhol = FALSE Artbw.FRW = 'CHF' Artbw.Faktor = 1 Artbw.Kurs = 1.0 Artbw.Preis = Artst.Listen_EP Artbw.Bru_Betr = Artst.Listen_EP * Artbw.Menge Artbw.Net_Betr = Artst.Listen_EP * Artbw.Menge Artbw.EP = Artst.Listen_EP. CREATE tArtbw. BUFFER-COPY Artbw TO tArtbw ASSIGN tArtbw.KGebinde = BKGebinde.KBez tArtbw.KGeb_Inh = BKGebinde.Inhalt. RELEASE Artst. RELEASE ArtLager. RELEASE Artbw. ASSIGN F_Strichcode = '' F_Artnr = '' F_Inhalt = 0 F_Jahr = 0 F_GGeb = 0 F_VGeb = 0 F_KGeb = 0 F_Bestand = 0 F_Inventar = 0 F_Bezeichnung = '' F_Kleingebinde = ''. DISPLAY {&List-5}. IF T_Strichcode THEN APPLY 'ENTRY' TO F_Strichcode. ELSE APPLY 'ENTRY' TO F_Artnr. RUN START_QUERY. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE START_QUERY wInventar PROCEDURE START_QUERY : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cWhere AS CHAR NO-UNDO. cWhere = 'FOR EACH tArtbw NO-LOCK BY Trnr DESCENDING'. IF hQuery:IS-OPEN THEN hQuery:QUERY-CLOSE(). hQuery:QUERY-PREPARE(cWhere). hQuery:QUERY-OPEN(). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR wInventar PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/wintoolbar.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wInventar 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 wInventar FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------ Purpose: Notes: ------------------------------------------------------------------------------*/ RETURN Progname. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME