&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases */ &Scoped-define WINDOW-NAME wBestellvorschlag {adecomm/appserv.i} &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wBestellvorschlag /*------------------------------------------------------------------------ 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 --- */ DEFINE INPUT PARAMETER iphtVorschlag AS HANDLE NO-UNDO. /* Local Variable Definitions --- */ DEFINE VARIABLE hDaten AS HANDLE NO-UNDO. DEFINE VARIABLE hFenster AS HANDLE NO-UNDO. DEFINE VARIABLE Sektion AS CHARACTER NO-UNDO. DEFINE VARIABLE hQuery AS HANDLE NO-UNDO. DEFINE VARIABLE hQueryVorschlag AS HANDLE NO-UNDO. DEFINE VARIABLE hQueryPaletten AS HANDLE NO-UNDO. DEFINE VARIABLE hQueryPalArt AS HANDLE NO-UNDO. DEFINE VARIABLE iBesnr AS INTEGER NO-UNDO. DEFINE VARIABLE iKnr AS INTEGER NO-UNDO. DEFINE VARIABLE cGGeb_Cd AS CHARACTER NO-UNDO. DEFINE TEMP-TABLE tPaletten FIELD GGeb_Cd AS CHARACTER FIELD GGebinde AS CHARACTER FIELD GGeb_Inhalt AS INTEGER FIELD VGeb_Cd AS CHARACTER FIELD VGebinde AS CHARACTER FIELD VGeb_Inhalt AS INTEGER FIELD VGeb_Menge AS INTEGER FIELD Anz_Paletten AS INTEGER . DEFINE TEMP-TABLE tPalArtikel FIELD GGeb_Cd AS CHARACTER FIELD Artnr AS INTEGER FIELD Inhalt AS INTEGER FIELD Jahr AS INTEGER FIELD Bez AS CHARACTER FIELD VGeb_Me AS INTEGER FIELD KGeb_Me AS INTEGER INDEX tPalArtikel-k1 IS PRIMARY GGeb_Cd Artnr . DEFINE TEMP-TABLE tBrowser NO-UNDO FIELD Feld AS CHARACTER FIELD Pos AS INTEGER FIELD Breit AS DECIMAL FIELD fAktiv AS LOG FIELD fVisible AS LOG FIELD PosAkt AS INTEGER FIELD BreitAkt AS DECIMAL FIELD hCol AS HANDLE FIELD cType AS CHARACTER FIELD cFormat AS CHARACTER FIELD cInitial AS CHARACTER FIELD cLabel AS CHARACTER. DEFINE TEMP-TABLE tMenuItems NO-UNDO FIELD hMenuItem AS HANDLE. DEFINE TEMP-TABLE tBesze LIKE Besze FIELD iStatus AS INTEGER. DEFINE VARIABLE htBesze AS HANDLE NO-UNDO. htBesze = TEMP-TABLE tBesze:DEFAULT-BUFFER-HANDLE. { incl/ttbestellvorschlag.i } { 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 Br_PalArt /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES tPalArtikel tPaletten tVorschlag /* Definitions for BROWSE Br_PalArt */ &Scoped-define FIELDS-IN-QUERY-Br_PalArt tPalArtikel.Artnr tPalArtikel.Inhalt tPalArtikel.Jahr tPalArtikel.Bez tPalArtikel.VGeb_Me tPalArtikel.KGeb_Me &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_PalArt &Scoped-define SELF-NAME Br_PalArt &Scoped-define QUERY-STRING-Br_PalArt FOR EACH tPalArtikel &Scoped-define OPEN-QUERY-Br_PalArt OPEN QUERY {&SELF-NAME} FOR EACH tPalArtikel. &Scoped-define TABLES-IN-QUERY-Br_PalArt tPalArtikel &Scoped-define FIRST-TABLE-IN-QUERY-Br_PalArt tPalArtikel /* Definitions for BROWSE Br_Paletten */ &Scoped-define FIELDS-IN-QUERY-Br_Paletten tPaletten.GGeb_Cd tPaletten.GGebinde tPaletten.GGeb_Inhalt tPaletten.GGebinde tPaletten.VGeb_Cd tPaletten.VGebinde tPaletten.VGeb_Inhalt tPaletten.VGeb_Menge tPaletten.Anz_Paletten &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Paletten &Scoped-define SELF-NAME Br_Paletten &Scoped-define QUERY-STRING-Br_Paletten FOR EACH tPaletten &Scoped-define OPEN-QUERY-Br_Paletten OPEN QUERY {&SELF-NAME} FOR EACH tPaletten. &Scoped-define TABLES-IN-QUERY-Br_Paletten tPaletten &Scoped-define FIRST-TABLE-IN-QUERY-Br_Paletten tPaletten /* Definitions for BROWSE Br_Vorschlag */ &Scoped-define FIELDS-IN-QUERY-Br_Vorschlag tVorschlag.Artnr tVorschlag.Inhalt tVorschlag.Jahr tVorschlag.KGeb_Text tVorschlag.Artikel tVorschlag.lBeschaff tVorschlag.Bestand tVorschlag.TagesBestand tVorschlag.Bestellt tVorschlag.Rueckstand tVorschlag.Reserviert tVorschlag.Mind_Bestand tVorschlag.Soll_Bestand tVorschlag.Meld_Bestand tVorschlag.Mind_Berechnet tVorschlag.Vorschlag_Me tVorschlag.Bestellung tVorschlag.Verbrauch_VorMt1 tVorschlag.Verbrauch_VorMt2 tVorschlag.Verbrauch_VorMt3 tVorschlag.Verbrauch_12Mt tVorschlag.Verbrauch_0106 tVorschlag.Verbrauch_0712 tVorschlag.Verbrauch_Aktiv tVorschlag.Verbrauch_Verg tVorschlag.Verbrauch_VjPer1 /* Menge vor 1 Jahr für Bestellperiode + 1 (Bestelldatum + Bestellintervall + Lieferzeit */ tVorschlag.Verbrauch_VjPer2 /* Menge vor 1 Jahr für Bestellperiode + 2 */ tVorschlag.Verbrauch_VjPer3 /* Menge vor 1 Jahr für Bestellperiode + 3 */ tVorschlag.Verbrauch_Letzt tVorschlag.GGeb_Me tVorschlag.VGeb_Me tVorschlag.KGeb_Me tVorschlag.lBewegungen &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Vorschlag &Scoped-define SELF-NAME Br_Vorschlag &Scoped-define QUERY-STRING-Br_Vorschlag FOR EACH tVorschlag &Scoped-define OPEN-QUERY-Br_Vorschlag OPEN QUERY {&SELF-NAME} FOR EACH tVorschlag. &Scoped-define TABLES-IN-QUERY-Br_Vorschlag tVorschlag &Scoped-define FIRST-TABLE-IN-QUERY-Br_Vorschlag tVorschlag /* Definitions for FRAME fMain */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_Lieferant F_Paletten F_Angebrochen ~ F_Betrag F_Mindest F_MinBetrag Br_Vorschlag Br_Paletten Br_PalArt ~ Btn_Erfassen Btn_Cancel &Scoped-Define DISPLAYED-OBJECTS F_Lieferant F_Paletten F_Angebrochen ~ F_Betrag F_Mindest F_MinBetrag /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Prototypes ********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD calculatePaletten wBestellvorschlag FUNCTION calculatePaletten RETURNS INTEGER ( ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD getProgname wBestellvorschlag FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD SetFarbe wBestellvorschlag FUNCTION SetFarbe RETURNS LOGICAL ( ipFarbe AS INTEGER ) FORWARD. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VAR wBestellvorschlag AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel LABEL "Abbrechen" SIZE 29 BY 1.14. DEFINE BUTTON Btn_Erfassen LABEL "Bestellung erfassen" SIZE 29 BY 1.14. DEFINE VARIABLE F_Angebrochen AS INTEGER FORMAT "zzz,zz9-":U INITIAL 0 LABEL "angebrochene Paletten" VIEW-AS FILL-IN NATIVE SIZE 13 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Betrag AS INTEGER FORMAT "zzz,zzz,zz9.99-":U INITIAL 0 LABEL "Betrag" VIEW-AS FILL-IN NATIVE SIZE 24 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Lieferant AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 100 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_MinBetrag AS INTEGER FORMAT "zzz,zzz,zz9.99-":U INITIAL 0 LABEL "Mind. Betrag" VIEW-AS FILL-IN NATIVE SIZE 24 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Mindest AS INTEGER FORMAT "zzz,zz9-":U INITIAL 0 LABEL "Mind. Paletten" VIEW-AS FILL-IN NATIVE SIZE 13 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Paletten AS INTEGER FORMAT "zzz,zz9-":U INITIAL 0 LABEL "Paletten" VIEW-AS FILL-IN NATIVE SIZE 13 BY 1 BGCOLOR 15 NO-UNDO. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_PalArt FOR tPalArtikel SCROLLING. DEFINE QUERY Br_Paletten FOR tPaletten SCROLLING. DEFINE QUERY Br_Vorschlag FOR tVorschlag SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_PalArt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_PalArt wBestellvorschlag _FREEFORM QUERY Br_PalArt DISPLAY tPalArtikel.Artnr FORMAT '999999' tPalArtikel.Inhalt FORMAT '9999' tPalArtikel.Jahr FORMAT '9999' tPalArtikel.Bez FORMAT 'x(40)' LABEL 'Artikel' tPalArtikel.VGeb_Me FORMAT '->>>,>>9' LABEL 'Me VGeb' tPalArtikel.KGeb_Me FORMAT '->>>,>>9' LABEL 'Me KGeb' /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 90 BY 8.57. DEFINE BROWSE Br_Paletten &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Paletten wBestellvorschlag _FREEFORM QUERY Br_Paletten DISPLAY tPaletten.GGeb_Cd FORMAT "x(12)" LABEL 'GGeb_Cd' tPaletten.GGebinde FORMAT "x(30)" LABEL 'GGebinde' tPaletten.GGeb_Inhalt FORMAT "zzzz9" LABEL 'Inhalt' tPaletten.GGebinde FORMAT "x(30)" LABEL 'Gebinde' tPaletten.VGeb_Cd FORMAT "x(12)" LABEL 'VGeb_Cd' tPaletten.VGebinde FORMAT "x(30)" LABEL 'VGebinde' tPaletten.VGeb_Inhalt FORMAT "zzzz9" LABEL 'Inhalt' tPaletten.VGeb_Menge FORMAT "zzzz9" LABEL 'VGeb Menge' tPaletten.Anz_Paletten FORMAT "zz9" LABEL 'Anz. Pal' /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 130 BY 8.57. DEFINE BROWSE Br_Vorschlag &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Vorschlag wBestellvorschlag _FREEFORM QUERY Br_Vorschlag DISPLAY tVorschlag.Artnr FORMAT 'z999999' COLUMN-LABEL '!Artnr' tVorschlag.Inhalt FORMAT 'z9999' COLUMN-LABEL '!Inhalt' tVorschlag.Jahr FORMAT 'zzzzz' COLUMN-LABEL '!Jahr' tVorschlag.KGeb_Text FORMAT "x(12)" COLUMN-LABEL '!Inhalt' tVorschlag.Artikel FORMAT "x(40)" COLUMN-LABEL '!Artikel' tVorschlag.lBeschaff FORMAT "Ja/Nein" COLUMN-LABEL 'Beschaff!Artikel' tVorschlag.Bestand FORMAT '->>>,>>9' COLUMN-LABEL '!Bestand' tVorschlag.TagesBestand FORMAT '->>>,>>9' COLUMN-LABEL 'Tages!Bestand' tVorschlag.Bestellt FORMAT '->>>,>>9' COLUMN-LABEL '!Bestellt' tVorschlag.Rueckstand FORMAT '->>>,>>9' COLUMN-LABEL 'Rück!stand' tVorschlag.Reserviert FORMAT '->>>,>>9' COLUMN-LABEL 'Reser!viert' tVorschlag.Mind_Bestand FORMAT '->>>,>>9' COLUMN-LABEL 'Mindest!Bestand' tVorschlag.Soll_Bestand FORMAT '->>>,>>9' COLUMN-LABEL 'Soll!Bestand' tVorschlag.Meld_Bestand FORMAT '->>>,>>9' COLUMN-LABEL 'Meld!Bestand' tVorschlag.Mind_Berechnet FORMAT '->>>,>>9' COLUMN-LABEL 'Mind!BestMe' tVorschlag.Vorschlag_Me FORMAT '->>>,>>9' COLUMN-LABEL 'Menge!Vorschlag' tVorschlag.Bestellung FORMAT '->>>,>>9' COLUMN-LABEL 'Bestellen' tVorschlag.Verbrauch_VorMt1 FORMAT '->>>,>>9' COLUMN-LABEL 'Verbr!vorMt-1' tVorschlag.Verbrauch_VorMt2 FORMAT '->>>,>>9' COLUMN-LABEL 'Verbr!vorMt-2' tVorschlag.Verbrauch_VorMt3 FORMAT '->>>,>>9' COLUMN-LABEL 'Verbr!vorMt-3' tVorschlag.Verbrauch_12Mt FORMAT '->>>,>>9' COLUMN-LABEL 'Verbr!Lzt12Mt' tVorschlag.Verbrauch_0106 FORMAT '->>>,>>9' COLUMN-LABEL 'Verbr!Mt01-06' tVorschlag.Verbrauch_0712 FORMAT '->>>,>>9' COLUMN-LABEL 'Verbr!Mt07-12' tVorschlag.Verbrauch_Aktiv FORMAT '->>>,>>9' COLUMN-LABEL 'Verbr!VorjPer' tVorschlag.Verbrauch_Verg FORMAT '->>>,>>9' COLUMN-LABEL 'Verbr!VergPer' tVorschlag.Verbrauch_VjPer1 FORMAT '->>>,>>9' COLUMN-LABEL 'Vj Best!Periode-1' /* Menge vor 1 Jahr für Bestellperiode + 1 (Bestelldatum + Bestellintervall + Lieferzeit */ tVorschlag.Verbrauch_VjPer2 FORMAT '->>>,>>9' COLUMN-LABEL 'Vj Best!Periode-2' /* Menge vor 1 Jahr für Bestellperiode + 2 */ tVorschlag.Verbrauch_VjPer3 FORMAT '->>>,>>9' COLUMN-LABEL 'Vj Best!Periode-3' /* Menge vor 1 Jahr für Bestellperiode + 3 */ tVorschlag.Verbrauch_Letzt FORMAT '->>>,>>9' COLUMN-LABEL 'Verbr!LetztPer' tVorschlag.GGeb_Me FORMAT '->>>,>>9' COLUMN-LABEL 'GGeb!Menge' tVorschlag.VGeb_Me FORMAT '->>>,>>9' COLUMN-LABEL 'VGeb!Menge' tVorschlag.KGeb_Me FORMAT '->>>,>>9' COLUMN-LABEL 'KGeb!Menge' tVorschlag.lBewegungen FORMAT 'Ja/Nein' COLUMN-LABEL 'Beweg!ungen' /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 296 BY 23.81. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain F_Lieferant AT ROW 1.48 COL 3 COLON-ALIGNED NO-LABEL WIDGET-ID 2 NO-TAB-STOP F_Paletten AT ROW 1.48 COL 118 COLON-ALIGNED WIDGET-ID 8 NO-TAB-STOP F_Angebrochen AT ROW 1.48 COL 160 COLON-ALIGNED WIDGET-ID 16 NO-TAB-STOP F_Betrag AT ROW 1.48 COL 193 COLON-ALIGNED WIDGET-ID 10 NO-TAB-STOP F_Mindest AT ROW 1.48 COL 240.8 COLON-ALIGNED WIDGET-ID 14 NO-TAB-STOP F_MinBetrag AT ROW 1.48 COL 272.8 COLON-ALIGNED WIDGET-ID 18 NO-TAB-STOP Br_Vorschlag AT ROW 2.91 COL 3 WIDGET-ID 200 Br_Paletten AT ROW 27.52 COL 43 WIDGET-ID 300 Br_PalArt AT ROW 27.52 COL 181.8 WIDGET-ID 400 Btn_Erfassen AT ROW 36.52 COL 91.8 WIDGET-ID 4 Btn_Cancel AT ROW 36.52 COL 191.8 WIDGET-ID 6 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 300 BY 37.38 CANCEL-BUTTON Btn_Cancel WIDGET-ID 100. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartWindow Allow: Basic,Browse,DB-Fields,Query,Smart,Window Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source Other Settings: COMPILE APPSERVER */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW wBestellvorschlag ASSIGN HIDDEN = YES TITLE = "Bestellvorschlag" HEIGHT = 37.38 WIDTH = 300 MAX-HEIGHT = 99.86 MAX-WIDTH = 768 VIRTUAL-HEIGHT = 99.86 VIRTUAL-WIDTH = 768 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 wBestellvorschlag: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 wBestellvorschlag /* ************************* 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 wBestellvorschlag VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain FRAME-NAME */ /* BROWSE-TAB Br_Vorschlag F_MinBetrag fMain */ /* BROWSE-TAB Br_Paletten Br_Vorschlag fMain */ /* BROWSE-TAB Br_PalArt Br_Paletten fMain */ ASSIGN Br_Vorschlag:ALLOW-COLUMN-SEARCHING IN FRAME fMain = TRUE Br_Vorschlag:COLUMN-RESIZABLE IN FRAME fMain = TRUE Br_Vorschlag:COLUMN-MOVABLE IN FRAME fMain = TRUE. ASSIGN F_Angebrochen:READ-ONLY IN FRAME fMain = TRUE. ASSIGN F_Betrag:READ-ONLY IN FRAME fMain = TRUE. ASSIGN F_Lieferant:READ-ONLY IN FRAME fMain = TRUE. ASSIGN F_MinBetrag:READ-ONLY IN FRAME fMain = TRUE. ASSIGN F_Mindest:READ-ONLY IN FRAME fMain = TRUE. ASSIGN F_Paletten:READ-ONLY IN FRAME fMain = TRUE. IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wBestellvorschlag) THEN wBestellvorschlag:HIDDEN = YES. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_PalArt /* Query rebuild information for BROWSE Br_PalArt _START_FREEFORM OPEN QUERY {&SELF-NAME} FOR EACH tPalArtikel _END_FREEFORM _Query is NOT OPENED */ /* BROWSE Br_PalArt */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Paletten /* Query rebuild information for BROWSE Br_Paletten _START_FREEFORM OPEN QUERY {&SELF-NAME} FOR EACH tPaletten. _END_FREEFORM _Query is NOT OPENED */ /* BROWSE Br_Paletten */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Vorschlag /* Query rebuild information for BROWSE Br_Vorschlag _START_FREEFORM OPEN QUERY {&SELF-NAME} FOR EACH tVorschlag. _END_FREEFORM _Query is NOT OPENED */ /* BROWSE Br_Vorschlag */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME wBestellvorschlag &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wBestellvorschlag wBestellvorschlag ON END-ERROR OF wBestellvorschlag /* Bestellvorschlag */ 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 wBestellvorschlag wBestellvorschlag ON WINDOW-CLOSE OF wBestellvorschlag /* Bestellvorschlag */ DO: /* This ADM code must be left here in order for the SmartWindow and its descendents to terminate properly on exit. */ RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Paletten &Scoped-define SELF-NAME Br_Paletten &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Paletten wBestellvorschlag ON VALUE-CHANGED OF Br_Paletten IN FRAME fMain DO: BROWSE Br_Paletten:FETCH-SELECTED-ROW(1). cGGeb_Cd = tPaletten.GGeb_Cd. hQueryPalArt:QUERY-PREPARE(SUBSTITUTE('FOR EACH tPalArtikel NO-LOCK WHERE tPalArtikel.GGeb_Cd = &1', QUOTER(cGGeb_Cd))). hQueryPalArt:QUERY-OPEN(). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Vorschlag &Scoped-define SELF-NAME Br_Vorschlag &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Vorschlag wBestellvorschlag ON CTRL-0 OF Br_Vorschlag IN FRAME fMain DO: FOR EACH tVorschlag: tVorschlag.Bestellung = 0. END. hQueryVorschlag:QUERY-OPEN(). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Vorschlag wBestellvorschlag ON DELETE-CHARACTER OF Br_Vorschlag IN FRAME fMain DO: BROWSE Br_Vorschlag:FETCH-SELECTED-ROW(1). DELETE tVorschlag. BROWSE Br_Vorschlag:DELETE-SELECTED-ROW (1). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Vorschlag wBestellvorschlag ON RETURN OF Br_Vorschlag IN FRAME fMain DO: DEFINE VARIABLE iRest AS INTEGER NO-UNDO. BROWSE Br_Vorschlag:FETCH-SELECTED-ROW (1). RUN g-bestell-mengen.w ( INPUT-OUTPUT htVorschlag ). tVorschlag.Bestellung:SCREEN-VALUE = STRING(tVorschlag.Bestellung). tVorschlag.GGeb_Me :SCREEN-VALUE = STRING(tVorschlag.GGeb_Me). tVorschlag.VGeb_Me :SCREEN-VALUE = STRING(tVorschlag.VGeb_Me). tVorschlag.KGeb_Me :SCREEN-VALUE = STRING(tVorschlag.KGeb_Me). RUN BETRAG_PALETTEN_RECHNEN ( RECID(tVorschlag) ). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Vorschlag wBestellvorschlag ON ROW-DISPLAY OF Br_Vorschlag IN FRAME fMain DO: DEFINE VARIABLE iFarbe AS INTEGER INIT 15. IF tVorschlag.Typ = 2 THEN iFarbe = 11. DYNAMIC-FUNCTION ('setFarbe':U, iFarbe ) NO-ERROR. tVorschlag.Vorschlag_Me:BGCOLOR IN BROWSE Br_Vorschlag = 08. tVorschlag.Bestellung :BGCOLOR IN BROWSE Br_Vorschlag = 14. IF tVorschlag.Verbrauch_VjPer1 > (tVorschlag.Verbrauch_Letzt * 1.2) THEN tVorschlag.Verbrauch_VjPer1:BGCOLOR IN BROWSE Br_Vorschlag = 14. IF tVorschlag.Verbrauch_VjPer2 > (tVorschlag.Verbrauch_Letzt * 1.2) THEN tVorschlag.Verbrauch_VjPer2:BGCOLOR IN BROWSE Br_Vorschlag = 14. IF tVorschlag.Verbrauch_VjPer3 > (tVorschlag.Verbrauch_Letzt * 1.2) THEN tVorschlag.Verbrauch_VjPer3:BGCOLOR IN BROWSE Br_Vorschlag = 14. IF tVorschlag.Vorschlag_Me > 0 AND tVorschlag.Mind_Berechnet > 0 AND tVorschlag.lMindBestMenge THEN ASSIGN tVorschlag.Vorschlag_Me :BGCOLOR IN BROWSE Br_Vorschlag = 14 tVorschlag.Mind_Berechnet:BGCOLOR IN BROWSE Br_Vorschlag = 14. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Vorschlag wBestellvorschlag ON START-SEARCH OF Br_Vorschlag IN FRAME fMain DO: END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Vorschlag wBestellvorschlag ON VALUE-CHANGED OF Br_Vorschlag IN FRAME fMain DO: PUBLISH 'BESTELLVORSCHLAG' ( tVorschlag.Artnr, tVorschlag.Inhalt, tVorschlag.Jahr ). APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel wBestellvorschlag ON CHOOSE OF Btn_Cancel IN FRAME fMain /* Abbrechen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Erfassen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Erfassen wBestellvorschlag ON CHOOSE OF Btn_Erfassen IN FRAME fMain /* Bestellung erfassen */ DO: RUN BESTELLUNG_ERFASSEN. PUBLISH 'BESTELLUNG_ERFASST' ( iBesnr ). RUN ENDE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_PalArt &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wBestellvorschlag /* *************************** Main Block *************************** */ { incl/winmainblock.i } PROCEDURE ShellExecuteA EXTERNAL "shell32.dll": DEFINE INPUT PARAMETER hwnd AS LONG. /* Handle to parent window */ DEFINE INPUT PARAMETER lpOperation AS CHARACTER. /* Operation to perform: open, print */ DEFINE INPUT PARAMETER lpFile AS CHARACTER. /* Document or executable name */ DEFINE INPUT PARAMETER lpParameters AS CHARACTER. /* Command line parameters to executable in lpFile */ DEFINE INPUT PARAMETER lpDirectory AS CHARACTER. /* Default directory */ DEFINE INPUT PARAMETER nShowCmd AS LONG. /* whether shown when opened: 0 hidden, 1 normal, minimized 2, maximized 3, 0 if lpFile is a document */ DEFINE RETURN PARAMETER hInstance AS LONG. /* Less than or equal to 32 */ END PROCEDURE. /* PROCEDURE EXPORT_EXCEL: */ /* { incl/brwexportexcel.i } */ /* END PROCEDURE. */ /* */ /* PROCEDURE FILTER_SETZEN: */ /* { incl/brwfilter.i } */ /* END PROCEDURE. */ /* */ /* PROCEDURE ZURUECKSETZEN: */ /* { incl/brwresetbreitespalte.i } */ /* END PROCEDURE. */ /* */ PROCEDURE SORTIERBAR: DEF INPUT PARAMETER ipSort AS HANDLE NO-UNDO. DEF INPUT PARAMETER ipMove AS HANDLE NO-UNDO. DEF VAR hBrowser AS HANDLE NO-UNDO. ipMove:CHECKED = FALSE. ipSort:CHECKED = TRUE . hBrowser = Br_Vorschlag:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:COLUMN-MOVABLE = FALSE. hBrowser:ALLOW-COLUMN-SEARCHING = TRUE. END PROCEDURE. /* */ /* PROCEDURE VERSCHIEBBAR: */ /* DEF INPUT PARAMETER ipMove AS HANDLE NO-UNDO. */ /* DEF INPUT PARAMETER ipSort AS HANDLE NO-UNDO. */ /* */ /* DEF VAR hBrowser AS HANDLE NO-UNDO. */ /* */ /* ipSort:CHECKED = FALSE. */ /* ipMove:CHECKED = FALSE. */ /* hBrowser = Br_Vorschlag:HANDLE IN FRAME {&FRAME-NAME}. */ /* hBrowser:ALLOW-COLUMN-SEARCHING = FALSE. */ /* hBrowser:COLUMN-MOVABLE = TRUE. */ /* END PROCEDURE. */ {src/adm2/windowmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wBestellvorschlag _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 BESTELLUNG_ERFASSEN wBestellvorschlag PROCEDURE BESTELLUNG_ERFASSEN : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE rBesze AS RECID NO-UNDO. REPEAT TRANSACTION ON ERROR UNDO, LEAVE: FOR EACH tVorschlag WHERE tVorschlag.Bestellung > 0: EMPTY TEMP-TABLE tBesze. CREATE tBesze. ASSIGN tBesze.Firma = Firma tBesze.Besnr = tVorschlag.Besnr tBesze.iStatus = 0 tBesze.Artnr = tVorschlag.Artnr tBesze.Inhalt = tVorschlag.Inhalt tBesze.Jahr = tVorschlag.Jahr . DYNAMIC-FUNCTION ('fillBesze':U, INPUT-OUTPUT htBesze) NO-ERROR. IF ERROR-STATUS:ERROR THEN NEXT. FIND FIRST tBesze. ASSIGN tBesze.GGeb_Me = tVorschlag.GGeb_Me tBesze.VGeb_Me = tVorschlag.VGeb_Me tBesze.KGeb_Me = tVorschlag.KGeb_Me tBesze.MBest = tVorschlag.KGeb_Me tBesze.Verbrauch = tVorschlag.Verbrauch_Letzt . CREATE Besze. BUFFER-COPY tBesze TO Besze. rBesze = RECID(Besze). RELEASE Besze. DYNAMIC-FUNCTION ('calculateBeszeNetto':U, Firma, 0, 0, rBesze ) NO-ERROR. END. FOR EACH Besze WHERE Besze.Firma = Firma AND Besze.Besnr = iBesnr AND Besze.Artnr > 0: FIND ArtLief NO-LOCK WHERE ArtLief.Firma = Firma AND ArtLief.Knr = iKnr AND ArtLief.Artnr = Besze.Artnr AND ArtLief.Inhalt = Besze.Inhalt AND ArtLief.Jahr = Besze.Jahr NO-ERROR. IF NOT AVAILABLE ArtLief THEN NEXT. IF ArtLief.S_Artnr = '' THEN NEXT. Besze.S_Artnr = ArtLief.S_Artnr. END. LEAVE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BETRAG_PALETTEN_RECHNEN wBestellvorschlag PROCEDURE BETRAG_PALETTEN_RECHNEN : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER iprtVorschlag AS RECID NO-UNDO. DEFINE VARIABLE iAnzPal AS INTEGER NO-UNDO. DEFINE BUFFER btVorschlag FOR tVorschlag. FIND btVorschlag WHERE RECID(btVorschlag) = iprtVorschlag. EMPTY TEMP-TABLE tBesze. CREATE tBesze. ASSIGN tBesze.Firma = Firma tBesze.Besnr = tVorschlag.Besnr tBesze.iStatus = 0 tBesze.Artnr = tVorschlag.Artnr tBesze.Inhalt = tVorschlag.Inhalt tBesze.Jahr = tVorschlag.Jahr . DYNAMIC-FUNCTION ('fillBesze':U, INPUT-OUTPUT htBesze) NO-ERROR. IF ERROR-STATUS:ERROR THEN RETURN. ASSIGN tBesze.GGeb_Me = tVorschlag.GGeb_Me tBesze.VGeb_Me = tVorschlag.VGeb_Me tBesze.KGeb_Me = tVorschlag.KGeb_Me tBesze.MBest = tVorschlag.KGeb_Me tBesze.Verbrauch = tVorschlag.Verbrauch_Letzt . DYNAMIC-FUNCTION ('calculatetBeszeNetto':U, INPUT-OUTPUT htBesze ) NO-ERROR. DO WITH FRAME {&FRAME-NAME}: ASSIGN F_Betrag = F_Betrag - tVorschlag.nNetto tVorschlag.nNetto = tBesze.Netto F_Betrag = F_Betrag + tVorschlag.nNetto. DISPLAY F_Betrag. END. iAnzPal = 0. FOR EACH btVorschlag: iAnzPal = iAnzPal + tVorschlag.GGeb_Me. END. F_Paletten:SCREEN-VALUE = STRING(iAnzPal). DYNAMIC-FUNCTION ('calculatePaletten':U) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage wBestellvorschlag PROCEDURE changePage : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ RUN SUPER. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. CASE AktSeite: WHEN 1 THEN DO: /* RUN addLink ( hAktionen , 'TableIO':U , h_v-auftr ). */ /* RUN addLink ( hAktionen , 'Navigation':U , h_d-auftr ). */ /* RUN setButtons IN hAktionen ( 'initial-TableIo' ) NO-ERROR. */ END. WHEN 2 THEN DO: END. END CASE. RUN ENTRY_CURSOR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE destroyObject wBestellvorschlag PROCEDURE destroyObject : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ IF VALID-HANDLE(hQueryVorschlag) THEN DO: hQueryVorschlag:QUERY-CLOSE(). DELETE OBJECT hQueryVorschlag. END. IF VALID-HANDLE(hQueryPaletten) THEN DO: hQueryPaletten:QUERY-CLOSE(). DELETE OBJECT hQueryPaletten. END. IF VALID-HANDLE(hQueryPalArt) THEN DO: hQueryPalArt:QUERY-CLOSE(). DELETE OBJECT hQueryPalArt. END. DEF VAR hBrowser AS HANDLE NO-UNDO. hBrowser = Br_Vorschlag:HANDLE IN FRAME {&FRAME-NAME}. DYNAMIC-FUNCTION('setBrowserDaten':U, INPUT hBrowser, INPUT Sektion ) NO-ERROR. RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI wBestellvorschlag _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(wBestellvorschlag) THEN DELETE WIDGET wBestellvorschlag. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wBestellvorschlag PROCEDURE enableObject : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ Sektion = 'Br_Vorschlag'. CREATE QUERY hQueryVorschlag. hQueryVorschlag:SET-BUFFERS(htVorschlag). hQueryVorschlag:QUERY-PREPARE('FOR EACH tVorschlag'). BROWSE Br_Vorschlag:QUERY = hQueryVorschlag. CREATE QUERY hQueryPaletten. hQueryPaletten:SET-BUFFERS(TEMP-TABLE tPaletten:DEFAULT-BUFFER-HANDLE). hQueryPaletten:QUERY-PREPARE('FOR EACH tPaletten NO-LOCK'). BROWSE Br_Paletten:QUERY = hQueryPaletten. CREATE QUERY hQueryPalArt. hQueryPalArt:SET-BUFFERS(TEMP-TABLE tPalArtikel:DEFAULT-BUFFER-HANDLE). hQueryPalArt:QUERY-PREPARE(SUBSTITUTE('FOR EACH tPalArtikel NO-LOCK WHERE tPalArtikel.GGeb_Cd = &1', QUOTER(cGGeb_Cd))). BROWSE Br_PalArt:QUERY = hQueryPalArt. { incl/winenableobject.i } RUN SUPER. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wBestellvorschlag _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY F_Lieferant F_Paletten F_Angebrochen F_Betrag F_Mindest F_MinBetrag WITH FRAME fMain IN WINDOW wBestellvorschlag. ENABLE F_Lieferant F_Paletten F_Angebrochen F_Betrag F_Mindest F_MinBetrag Br_Vorschlag Br_Paletten Br_PalArt Btn_Erfassen Btn_Cancel WITH FRAME fMain IN WINDOW wBestellvorschlag. {&OPEN-BROWSERS-IN-QUERY-fMain} VIEW wBestellvorschlag. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wBestellvorschlag PROCEDURE ENDE : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ { incl/winende.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR wBestellvorschlag 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 wBestellvorschlag PROCEDURE exitObject : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject wBestellvorschlag PROCEDURE initializeObject : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. { incl/wininitializeobject.i } DEFINE VARIABLE hBrowser AS HANDLE NO-UNDO. DEFINE VARIABLE htBrowser AS HANDLE NO-UNDO. DEFINE VARIABLE hMenu AS HANDLE NO-UNDO. DEFINE VARIABLE hMenuItem AS HANDLE NO-UNDO. DEFINE VARIABLE hItem_Filter AS HANDLE NO-UNDO. DEFINE VARIABLE hItem_Excel AS HANDLE NO-UNDO. DEFINE VARIABLE hItem_zurueck AS HANDLE NO-UNDO. DEFINE VARIABLE hItem_sort AS HANDLE NO-UNDO. DEFINE VARIABLE hItem_move AS HANDLE NO-UNDO. DEFINE VARIABLE hItem_Rule AS HANDLE NO-UNDO. DEFINE VARIABLE cMenu AS CHARACTER NO-UNDO. DEFINE VARIABLE hxMenu AS HANDLE NO-UNDO. DEFINE VARIABLE hxMenuItem AS HANDLE EXTENT 10 NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR. hFenster = DYNAMIC-FUNCTION('getContainerSource':U) NO-ERROR. IF VALID-HANDLE(hFenster) THEN Progname = DYNAMIC-FUNCTION('getProgname':U IN hFenster ) NO-ERROR. EMPTY TEMP-TABLE tBrowser . EMPTY TEMP-TABLE tMenuItems . hBrowser = Br_Vorschlag:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:COLUMN-MOVABLE = TRUE. htBrowser = TEMP-TABLE tBrowser:DEFAULT-BUFFER-HANDLE. hMenu = hBrowser:POPUP-MENU NO-ERROR. hMenuItem = hMenu :FIRST-CHILD NO-ERROR. DO WHILE VALID-HANDLE (hMenuItem): IF hMenuItem:NAME = ? OR NOT hMenuItem:NAME BEGINS 'x_' THEN DO: hMenuItem = hMenuItem:NEXT-SIBLING. NEXT. END. CREATE tMenuItems. ASSIGN tMenuItems.hMenuItem = hMenuItem. hMenuItem = hMenuItem:NEXT-SIBLING. END. hMenu = ?. CREATE MENU hMenu ASSIGN POPUP-ONLY = TRUE TITLE = 'Browser Menu'. CREATE MENU-ITEM hItem_Excel ASSIGN LABEL = 'Export in Excel' NAME = 'm_excel' PARENT = hMenu. CREATE MENU-ITEM hItem_Filter ASSIGN LABEL = 'Filter setzen' NAME = 'm_filter' PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. CREATE MENU-ITEM hItem_zurueck ASSIGN LABEL = 'Spalten und Breite zurücksetzen' NAME = 'm_zurueck' PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. CREATE MENU-ITEM hItem_sort ASSIGN LABEL = 'Spalten sortierbar' NAME = 'm_zurueck' TOGGLE-BOX = TRUE CHECKED = FALSE PARENT = hMenu. CREATE MENU-ITEM hItem_move ASSIGN LABEL = 'Spalten verschiebbar' NAME = 'm_move' TOGGLE-BOX = TRUE CHECKED = TRUE PARENT = hMenu. CREATE MENU-ITEM hItem_Rule ASSIGN SUBTYPE = 'RULE':U PARENT = hMenu. FOR EACH tMenuItems ii = 1 TO 10: CREATE MENU-ITEM hxMenuItem[ii] ASSIGN LABEL = tMenuItems.hMenuItem:LABEL NAME = SUBSTRING(tMenuItems.hMenuItem:NAME,03) TOGGLE-BOX = tMenuItems.hMenuItem:TOGGLE-BOX PARENT = hMenu. IF hxMenuItem[ii]:TOGGLE-BOX = TRUE THEN hxMenuItem[ii]:CHECKED = FALSE. ON CHOOSE OF hxMenuItem[ii] PERSISTENT RUN VALUE(hxMenuItem[ii]:NAME) IN TARGET-PROCEDURE. ON VALUE-CHANGED OF hxMenuItem[ii] PERSISTENT RUN VALUE(hxMenuItem[ii]:NAME) IN TARGET-PROCEDURE. END. hBrowser:POPUP-MENU = hMenu NO-ERROR. ON CHOOSE OF hItem_Filter PERSISTENT RUN FILTER_SETZEN IN TARGET-PROCEDURE. ON CHOOSE OF hItem_Excel PERSISTENT RUN EXPORT_EXCEL IN TARGET-PROCEDURE. ON CHOOSE OF hItem_zurueck PERSISTENT RUN ZURUECKSETZEN IN TARGET-PROCEDURE. ON VALUE-CHANGED OF hItem_sort PERSISTENT RUN SORTIERBAR IN TARGET-PROCEDURE ( hItem_sort, hItem_move ). ON VALUE-CHANGED OF hItem_move PERSISTENT RUN VERSCHIEBBAR IN TARGET-PROCEDURE ( hItem_move, hItem_sort ). DYNAMIC-FUNCTION('getBrowserDaten':U, INPUT htBrowser, INPUT hBrowser, INPUT Sektion ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE OPENQUERY wBestellvorschlag PROCEDURE OPENQUERY : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Notes: */ /* Parameters: */ /*------------------------------------------------------------------------------*/ IF VALID-HANDLE(hQuery) THEN DO: hQuery:QUERY-CLOSE() NO-ERROR. DELETE OBJECT hQuery. END. EMPTY TEMP-TABLE tVorschlag. ASSIGN iKnr = 0 iBesnr = 0. CREATE QUERY hQuery. hQuery:SET-BUFFERS(iphtVorschlag). hQuery:QUERY-PREPARE('FOR EACH tVorschlag'). hQuery:QUERY-OPEN(). hQuery:GET-FIRST() NO-ERROR. F_Betrag = 0. DO WHILE NOT hQuery:QUERY-OFF-END: CREATE tVorschlag. htVorschlag:BUFFER-COPY (iphtVorschlag ). IF iKnr = 0 THEN iKnr = tVorschlag.Knr. IF iBesnr = 0 THEN iBesnr = tVorschlag.Besnr. F_Betrag = F_Betrag + tVorschlag.nNetto. hQuery:GET-NEXT(). END. hQuery:QUERY-CLOSE(). DELETE OBJECT hQuery. DO WITH FRAME {&FRAME-NAME}: FIND Adresse NO-LOCK WHERE Adresse.Firma = AdFirma AND Adresse.Knr = iKnr. FIND Liefst NO-LOCK WHERE Liefst.Firma = Firma AND Liefst.Knr = iKnr NO-ERROR. IF Liefst.Min_GGebinde > 0 THEN DO: F_Mindest:LABEL = 'Mindestmenge GGebinde'. F_Mindest:SCREEN-VALUE = STRING (Liefst.Min_GGebinde). END. IF Liefst.Min_VGebinde > 0 THEN DO: F_Mindest:LABEL = 'Mindestmenge VGebinde'. F_Mindest:SCREEN-VALUE = STRING (Liefst.Min_VGebinde). END. IF Liefst.Min_KGebinde > 0 THEN DO: F_Mindest:LABEL = 'Mindestmenge KGebinde'. F_Mindest:SCREEN-VALUE = STRING (Liefst.Min_KGebinde). END. F_Lieferant:SCREEN-VALUE = STRING(iKnr,'999999 ') + Adresse.Anzeig_br. F_Betrag :SCREEN-VALUE = STRING(F_Betrag). F_MinBetrag:SCREEN-VALUE = STRING(Liefst.Min_Betrag). RELEASE Adresse. RELEASE Liefst. END. DYNAMIC-FUNCTION ('calculatePaletten':U IN THIS-PROCEDURE) NO-ERROR. hQueryVorschlag:QUERY-OPEN(). APPLY 'VALUE-CHANGED' TO BROWSE Br_Vorschlag. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SEITENWECHSEL wBestellvorschlag PROCEDURE SEITENWECHSEL : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Notes: */ /* Parameters: */ /*------------------------------------------------------------------------------*/ { incl/winseitenwechsel.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage wBestellvorschlag PROCEDURE selectPage : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Notes: */ /* Parameters: */ /*------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER piPageNum AS INTEGER NO-UNDO. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO. DEFINE VARIABLE MutProg AS CHARACTER NO-UNDO. FMutFlag = DYNAMIC-FUNCTION ('getMutflag':U, INPUT Progname) NO-ERROR. IF FMutFlag THEN RETURN NO-APPLY. CASE piPageNum: END CASE. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. CASE AktSeite: WHEN 1 THEN DO: /* RUN removeLink ( hAktionen , 'TableIO':U , h_v-auftr ). */ /* RUN removeLink ( hAktionen , 'Navigation':U , h_d-auftr ). */ END. END CASE. RUN SUPER( INPUT piPageNum). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR wBestellvorschlag PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ { incl/wintoolbar.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wBestellvorschlag PROCEDURE viewObject : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ RUN SUPER. RUN ENTRY_CURSOR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ************************ Function Implementations ***************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION calculatePaletten wBestellvorschlag FUNCTION calculatePaletten RETURNS INTEGER ( ): /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ DEFINE VARIABLE iRest AS INTEGER NO-UNDO. DEFINE VARIABLE GGeb_Voll AS INTEGER NO-UNDO. F_Paletten = 0. F_Angebrochen = 0. EMPTY TEMP-TABLE tPaletten. EMPTY TEMP-TABLE tPalArtikel. FOR EACH tVorschlag WHERE tVorschlag.Bestellung > 0: FIND FIRST tPaletten WHERE tPaletten.GGeb_Inhalt = tVorschlag.GGeb_Inhalt AND tPaletten.VGeb_Inhalt = tVorschlag.VGeb_Inhalt NO-ERROR. IF NOT AVAILABLE tPaletten THEN DO: CREATE tPaletten. ASSIGN tPaletten.GGeb_Cd = tVorschlag.GGeb_Cd tPaletten.VGeb_Cd = tVorschlag.VGeb_Cd tPaletten.GGeb_Inhalt = tVorschlag.GGeb_Inhalt tPaletten.VGeb_Inhalt = tVorschlag.VGeb_Inhalt . FIND GGebinde NO-LOCK WHERE GGebinde.Firma = Firma AND GGebinde.Geb_Cd = tVorschlag.GGeb_Cd NO-ERROR. tPaletten.GGebinde = (IF AVAILABLE GGebinde THEN GGebinde.Bez ELSE FILL('?', 15)). RELEASE GGebinde. FIND VGebinde NO-LOCK WHERE VGebinde.Firma = Firma AND VGebinde.Geb_Cd = tVorschlag.VGeb_Cd NO-ERROR. tPaletten.VGebinde = (IF AVAILABLE VGebinde THEN VGebinde.Bez ELSE FILL('?', 15)). RELEASE VGebinde. END. tPaletten.VGeb_Menge = tPaletten.VGeb_Menge + tVorschlag.VGeb_Me. FIND FIRST tPalArtikel WHERE tPalArtikel.GGeb_Cd = tVorschlag.GGeb_Cd AND tPalArtikel.Artnr = tVorschlag.Artnr AND tPalArtikel.Inhalt = tVorschlag.Inhalt AND tPalArtikel.Jahr = tVorschlag.Jahr NO-ERROR. IF NOT AVAILABLE tPalArtikel THEN DO: CREATE tPalArtikel. ASSIGN tPalArtikel.GGeb_Cd = tVorschlag.GGeb_Cd tPalArtikel.Artnr = tVorschlag.Artnr tPalArtikel.Inhalt = tVorschlag.Inhalt tPalArtikel.Jahr = tVorschlag.Jahr. FIND FIRST Artbez NO-LOCK WHERE Artbez.Firma = Firma AND Artbez.Artnr = tVorschlag.Artnr AND Artbez.Inhalt = tVorschlag.Inhalt AND Artbez.Jahr = tVorschlag.Jahr. tPalArtikel.Bez = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2). END. ASSIGN tPalArtikel.VGeb_Me = tPalArtikel.VGeb_Me + tVorschlag.VGeb_Me tPalArtikel.KGeb_Me = tPalArtikel.KGeb_Me + tVorschlag.KGeb_Me. END. FOR EACH tPaletten: IF tPaletten.GGeb_Inhalt = 0 THEN NEXT. iRest = tPaletten.VGeb_Menge MOD tPaletten.GGeb_Inhalt. tPaletten.Anz_Paletten = (tPaletten.VGeb_Menge - iRest) / tPaletten.GGeb_Inhalt. F_Paletten = F_Paletten + tPaletten.Anz_Paletten. IF iRest > 0 THEN F_Angebrochen = F_Angebrochen + 1. END. F_Paletten :SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(F_Paletten) . F_Angebrochen:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(F_Angebrochen). hQueryPaletten:QUERY-OPEN(). IF BROWSE br_Paletten:NUM-ENTRIES > 0 THEN DO: APPLY 'OFF-HOME' TO Br_Paletten. BROWSE br_Paletten:SELECT-FOCUSED-ROW(). cGGeb_Cd = tPaletten.GGeb_Cd. END. hQueryPalArt:QUERY-PREPARE(SUBSTITUTE('FOR EACH tPalArtikel NO-LOCK WHERE tPalArtikel.GGeb_Cd = &1', QUOTER(cGGeb_Cd))). hQueryPalArt:QUERY-OPEN(). END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION getProgname wBestellvorschlag FUNCTION getProgname RETURNS CHARACTER ( /* parameter-definitions */ ) : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ RETURN Progname. END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION SetFarbe wBestellvorschlag FUNCTION SetFarbe RETURNS LOGICAL ( ipFarbe AS INTEGER ): /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ { incl/brwsetzeilenfarbe.i } END FUNCTION. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME