&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gBestellvorschlag &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gBestellvorschlag /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* 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 MaxPage AS INT NO-UNDO. DEF VAR AktSeite AS INT NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO. DEF VAR Fenster AS HANDLE NO-UNDO. DEF VAR Firma AS CHAR INIT '1000' NO-UNDO. DEF VAR AdFirma AS CHAR INIT '1000' NO-UNDO. DEF VAR Besnr AS INT NO-UNDO. DEF VAR FwFRW AS CHAR NO-UNDO. DEF VAR FwSprcd AS INT NO-UNDO. DEF VAR RetVal AS CHAR NO-UNDO. DEF VAR iLager AS INT NO-UNDO. DEF VAR fMehrere AS LOG INIT FALSE NO-UNDO. DEF BUFFER BArtst FOR Artst. DEF TEMP-TABLE TArtLief NO-UNDO LIKE ArtLief FIELD Verbrauch AS DEC FIELD LagOrt AS CHAR FIELD Mind_Bestand AS DEC FIELD Bestand AS DEC FIELD Bestellt AS DEC FIELD Rueckstand AS DEC. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartDialog &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER DIALOG-BOX &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME gBestellvorschlag /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS CB_Lager T_LagOrt F_LetztEingang Hersteller ~ Warengruppen VonArtnr BisArtnr VonKnr BisKnr VonDatum BisDatum T_Rechnen ~ Unterschrittene Erfassen R_Spalte Btn_Excel T_Bewegung T_Haupt T_Warengrp ~ T_Prodgrp T_Artgrp RECT-37 &Scoped-Define DISPLAYED-OBJECTS CB_Lager T_LagOrt F_LetztEingang ~ Hersteller Warengruppen VonArtnr BisArtnr VonKnr BisKnr VonDatum BisDatum ~ T_Rechnen Unterschrittene Erfassen R_Spalte T_Bewegung T_Haupt T_Warengrp ~ T_Prodgrp T_Artgrp /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-5 Btn_Excel T_Warengrp T_Prodgrp T_Artgrp &Scoped-define List-6 T_LagOrt Hersteller Warengruppen VonArtnr BisArtnr ~ VonKnr BisKnr VonDatum BisDatum T_Rechnen Unterschrittene Erfassen R_Spalte ~ T_Bewegung T_Haupt T_Warengrp T_Prodgrp T_Artgrp /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Excel IMAGE-UP FILE "grafik/results%.ico":U LABEL "Excel" SIZE 7 BY 1.81. DEFINE VARIABLE CB_Lager AS CHARACTER FORMAT "X(256)":U LABEL "Lager" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEMS "Item 1" DROP-DOWN-LIST SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE BisArtnr AS INTEGER FORMAT "999999":U INITIAL 999999 VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE BisDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/02 VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE BisKnr AS INTEGER FORMAT "999999":U INITIAL 999999 VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_LetztEingang AS DATE FORMAT "99.99.9999":U LABEL "Letzt Eingang" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Hersteller AS CHARACTER FORMAT "X(256)":U LABEL "Hersteller" VIEW-AS FILL-IN NATIVE SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "von - bis Artikelnummer" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE VonDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/02 LABEL "Verbrauch von - bis Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE VonKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "von - bis Lieferant" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Warengruppen AS CHARACTER FORMAT "X(256)":U LABEL "Warengruppen" VIEW-AS FILL-IN NATIVE SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE R_Spalte AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "AlkoholGehalt", 1, "EWK-Code", 2 SIZE 35 BY 1.71 NO-UNDO. DEFINE RECTANGLE RECT-37 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 94 BY 17.14. DEFINE VARIABLE Erfassen AS LOGICAL INITIAL NO LABEL "Bestellung erfassen" VIEW-AS TOGGLE-BOX SIZE 35 BY 1 NO-UNDO. DEFINE VARIABLE T_Artgrp AS LOGICAL INITIAL NO LABEL "Artikelgruppe andrucken ?" VIEW-AS TOGGLE-BOX SIZE 35 BY 1 NO-UNDO. DEFINE VARIABLE T_Bewegung AS LOGICAL INITIAL NO LABEL "nur Artikel mit Bewegung" VIEW-AS TOGGLE-BOX SIZE 30 BY 1 NO-UNDO. DEFINE VARIABLE T_Haupt AS LOGICAL INITIAL NO LABEL "nur Hauptlieferanten" VIEW-AS TOGGLE-BOX SIZE 35 BY 1 NO-UNDO. DEFINE VARIABLE T_LagOrt AS LOGICAL INITIAL NO LABEL "sortiert nach Lagerort ?" VIEW-AS TOGGLE-BOX SIZE 35 BY 1 NO-UNDO. DEFINE VARIABLE T_Prodgrp AS LOGICAL INITIAL NO LABEL "Produktegruppe andrucken ?" VIEW-AS TOGGLE-BOX SIZE 35 BY 1 NO-UNDO. DEFINE VARIABLE T_Rechnen AS LOGICAL INITIAL NO LABEL "Verbrauch rechnen" VIEW-AS TOGGLE-BOX SIZE 25.6 BY 1 NO-UNDO. DEFINE VARIABLE T_Warengrp AS LOGICAL INITIAL NO LABEL "Warengruppe andrucken ?" VIEW-AS TOGGLE-BOX SIZE 35 BY 1 NO-UNDO. DEFINE VARIABLE Unterschrittene AS LOGICAL INITIAL NO LABEL "nur unterschrittene" VIEW-AS TOGGLE-BOX SIZE 35 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gBestellvorschlag CB_Lager AT ROW 1.52 COL 28 COLON-ALIGNED WIDGET-ID 2 T_LagOrt AT ROW 13.52 COL 30 F_LetztEingang AT ROW 5.52 COL 72 COLON-ALIGNED NO-TAB-STOP Hersteller AT ROW 2.52 COL 28 COLON-ALIGNED Warengruppen AT ROW 3.52 COL 28 COLON-ALIGNED VonArtnr AT ROW 4.52 COL 28 COLON-ALIGNED BisArtnr AT ROW 4.52 COL 45 COLON-ALIGNED NO-LABEL VonKnr AT ROW 5.52 COL 28 COLON-ALIGNED BisKnr AT ROW 5.52 COL 45 COLON-ALIGNED NO-LABEL VonDatum AT ROW 6.52 COL 28 COLON-ALIGNED BisDatum AT ROW 6.52 COL 45 COLON-ALIGNED NO-LABEL T_Rechnen AT ROW 6.52 COL 65 Unterschrittene AT ROW 9.52 COL 30 Erfassen AT ROW 10.52 COL 30 R_Spalte AT ROW 11.57 COL 30 NO-LABEL Btn_Excel AT ROW 9.05 COL 82.2 T_Bewegung AT ROW 7.52 COL 65 T_Haupt AT ROW 8.52 COL 30 WIDGET-ID 4 T_Warengrp AT ROW 14.52 COL 30 WIDGET-ID 6 T_Prodgrp AT ROW 15.52 COL 30 WIDGET-ID 8 T_Artgrp AT ROW 16.52 COL 30 WIDGET-ID 10 RECT-37 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.23) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Bestellvorschlag". /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartDialog Allow: Basic,Browse,DB-Fields,Query,Smart Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target Design Page: 1 Other Settings: COMPILE */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB gBestellvorschlag /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR DIALOG-BOX gBestellvorschlag FRAME-NAME Custom */ ASSIGN FRAME gBestellvorschlag:SCROLLABLE = FALSE FRAME gBestellvorschlag:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN BisArtnr IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR FILL-IN BisDatum IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR FILL-IN BisKnr IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gBestellvorschlag 5 */ /* SETTINGS FOR TOGGLE-BOX Erfassen IN FRAME gBestellvorschlag 6 */ ASSIGN F_LetztEingang:READ-ONLY IN FRAME gBestellvorschlag = TRUE. /* SETTINGS FOR FILL-IN Hersteller IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR RADIO-SET R_Spalte IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR TOGGLE-BOX T_Artgrp IN FRAME gBestellvorschlag 5 6 */ /* SETTINGS FOR TOGGLE-BOX T_Bewegung IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR TOGGLE-BOX T_Haupt IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR TOGGLE-BOX T_LagOrt IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR TOGGLE-BOX T_Prodgrp IN FRAME gBestellvorschlag 5 6 */ /* SETTINGS FOR TOGGLE-BOX T_Rechnen IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR TOGGLE-BOX T_Warengrp IN FRAME gBestellvorschlag 5 6 */ /* SETTINGS FOR TOGGLE-BOX Unterschrittene IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR FILL-IN VonArtnr IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR FILL-IN VonDatum IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR FILL-IN VonKnr IN FRAME gBestellvorschlag 6 */ /* SETTINGS FOR FILL-IN Warengruppen IN FRAME gBestellvorschlag 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gBestellvorschlag /* Query rebuild information for DIALOG-BOX gBestellvorschlag _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gBestellvorschlag */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gBestellvorschlag &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gBestellvorschlag gBestellvorschlag ON END-ERROR OF FRAME gBestellvorschlag /* Bestellvorschlag */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gBestellvorschlag gBestellvorschlag ON GO OF FRAME gBestellvorschlag /* Bestellvorschlag */ DO: RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gBestellvorschlag gBestellvorschlag ON WINDOW-CLOSE OF FRAME gBestellvorschlag /* Bestellvorschlag */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME BisKnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL BisKnr gBestellvorschlag ON ALT-F OF BisKnr IN FRAME gBestellvorschlag DO: DEF VAR iRecid AS RECID NO-UNDO. RUN 'g-suchen-adresse.w':U ( 'LIE', OUTPUT iRecid ). IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL BisKnr gBestellvorschlag ON LEAVE OF BisKnr IN FRAME gBestellvorschlag DO: IF INTEGER(SELF:SCREEN-VALUE) = 0 THEN RETURN. IF INTEGER(SELF:SCREEN-VALUE) = 999999 THEN RETURN. FIND LAST Artbw USE-INDEX Artbw-k3 WHERE Artbw.Firma = Firma AND Artbw.Knr = INTEGER(SELF:SCREEN-VALUE) AND Artbw.Tr_Art = 11 NO-LOCK NO-ERROR. IF NOT AVAILABLE Artbw THEN F_LetztEingang = ?. ELSE F_LetztEingang = Artbw.Datum. DISPLAY F_LetztEingang WITH FRAME {&FRAME-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel gBestellvorschlag ON CHOOSE OF Btn_Excel IN FRAME gBestellvorschlag /* Excel */ DO: DO WITH FRAME {&FRAME-NAME}: Btn_Excel:VISIBLE = FALSE. RUN REPORT. Btn_Excel:VISIBLE = TRUE. RUN ENDE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Erfassen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Erfassen gBestellvorschlag ON RETURN OF Erfassen IN FRAME gBestellvorschlag /* Bestellung erfassen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Hersteller &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Hersteller gBestellvorschlag ON HELP OF Hersteller IN FRAME gBestellvorschlag /* Hersteller */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'HERST' ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Hersteller gBestellvorschlag ON LEFT-MOUSE-DBLCLICK OF Hersteller IN FRAME gBestellvorschlag /* Hersteller */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'HERST' ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Bewegung &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Bewegung gBestellvorschlag ON RETURN OF T_Bewegung IN FRAME gBestellvorschlag /* nur Artikel mit Bewegung */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Bewegung gBestellvorschlag ON VALUE-CHANGED OF T_Bewegung IN FRAME gBestellvorschlag /* nur Artikel mit Bewegung */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF T_Rechnen THEN DO: VonDatum:SENSITIVE = TRUE. BisDatum:SENSITIVE = TRUE. END. ELSE DO: VonDatum:SCREEN-VALUE = ''. BisDatum:SCREEN-VALUE = ''. VonDatum:SENSITIVE = FALSE. BisDatum:SENSITIVE = FALSE. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Haupt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Haupt gBestellvorschlag ON RETURN OF T_Haupt IN FRAME gBestellvorschlag /* nur Hauptlieferanten */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_LagOrt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_LagOrt gBestellvorschlag ON VALUE-CHANGED OF T_LagOrt IN FRAME gBestellvorschlag /* sortiert nach Lagerort ? */ DO: ASSIGN {&List-6}. IF T_LagOrt THEN DO: ASSIGN T_Warengrp:SENSITIVE = FALSE T_Prodgrp :SENSITIVE = FALSE T_Artgrp :SENSITIVE = FALSE. END. ELSE DO: ASSIGN T_Warengrp:SENSITIVE = TRUE T_Prodgrp :SENSITIVE = TRUE T_Artgrp :SENSITIVE = TRUE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Rechnen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Rechnen gBestellvorschlag ON RETURN OF T_Rechnen IN FRAME gBestellvorschlag /* Verbrauch rechnen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Rechnen gBestellvorschlag ON VALUE-CHANGED OF T_Rechnen IN FRAME gBestellvorschlag /* Verbrauch rechnen */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF T_Rechnen THEN DO: VonDatum :SENSITIVE = TRUE. BisDatum :SENSITIVE = TRUE. T_Bewegung:SENSITIVE = TRUE. END. ELSE DO: T_Bewegung = FALSE. VonDatum = ?. BisDatum = ?. VonDatum :SENSITIVE = FALSE. BisDatum :SENSITIVE = FALSE. T_Bewegung:SENSITIVE = FALSE. END. DISPLAY {&List-6}. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Unterschrittene &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Unterschrittene gBestellvorschlag ON RETURN OF Unterschrittene IN FRAME gBestellvorschlag /* nur unterschrittene */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME VonKnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL VonKnr gBestellvorschlag ON ALT-F OF VonKnr IN FRAME gBestellvorschlag /* von - bis Lieferant */ DO: DEF VAR iRecid AS RECID NO-UNDO. RUN 'g-suchen-adresse.w':U ( 'LIE', OUTPUT iRecid ). IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR. SELF:SCREEN-VALUE = STRING(Adresse.Knr). BisKnr:SCREEN-VALUE = STRING(Adresse.Knr). APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL VonKnr gBestellvorschlag ON LEAVE OF VonKnr IN FRAME gBestellvorschlag /* von - bis Lieferant */ DO: IF INTEGER(SELF:SCREEN-VALUE) = 0 THEN RETURN. IF INTEGER(SELF:SCREEN-VALUE) = 999999 THEN RETURN. FIND LAST Artbw USE-INDEX Artbw-k3 WHERE Artbw.Firma = Firma AND Artbw.Knr = INTEGER(SELF:SCREEN-VALUE) AND Artbw.Tr_Art = 11 NO-LOCK NO-ERROR. IF NOT AVAILABLE Artbw THEN F_LetztEingang = ?. ELSE F_LetztEingang = Artbw.Datum. DISPLAY F_LetztEingang WITH FRAME {&FRAME-NAME}. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Warengruppen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Warengruppen gBestellvorschlag ON HELP OF Warengruppen IN FRAME gBestellvorschlag /* Warengruppen */ DO: RUN g-auswahl-wgr.w ( INPUT SELF:HANDLE ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Warengruppen gBestellvorschlag ON LEFT-MOUSE-DBLCLICK OF Warengruppen IN FRAME gBestellvorschlag /* Warengruppen */ DO: RUN g-auswahl-wgr.w ( INPUT SELF:HANDLE ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gBestellvorschlag /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwFRW' VALUE RetVal. IF RetVal = ? THEN RetVal = 'CHF'. FwFRW = RetVal. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwSprcd' VALUE RetVal. IF RetVal = ? THEN RetVal = '1'. FwSprcd = INTEGER(RetVal) NO-ERROR. SESSION:DATA-ENTRY-RETURN = TRUE. /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gBestellvorschlag _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 BEREINIGEN gBestellvorschlag PROCEDURE BEREINIGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT-OUTPUT PARAMETER ipString AS CHAR NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR ii AS INT NO-UNDO. cString = ''. DO ix = 1 TO NUM-ENTRIES(ipString, ','): IF CString <> '' THEN cString = cString + ','. cString = cString + STRING(INTEGER(ENTRY(ix, ipString)),'999'). END. ipString = cString. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BESTELLKOPF gBestellvorschlag PROCEDURE BESTELLKOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ RUN NUMMER_LOESEN ( INPUT 3, OUTPUT Besnr ). IF Besnr = ? THEN RETURN 'ERROR'. REPEAT TRANSACTION: FIND Liefst USE-INDEX Liefst-k1 WHERE Liefst.Firma = Firma AND Liefst.Knr = TArtLief.Knr NO-LOCK. CREATE Besko. ASSIGN Besko.Firma = Firma Besko.Besnr = Besnr Besko.Knr = Liefst.Knr Besko.Best_Datum = TODAY Besko.Lief_Datum = TODAY + 7 Besko.Buch_Datum = ? Besko.I_Best = Liefst.Kontakt Besko.Rabatt = Liefst.Rabatt Besko.Gedruckt = FALSE Besko.Verbucht = FALSE Besko.Best_Sta = 1 Besko.Bemerkung = Liefst.Bemerkung Besko.Kopf = Liefst.Kopf Besko.Schluss = Liefst.Schluss Besko.Kond = Liefst.Kond Besko.Lager = iLager. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1 WHERE Waehrung.Firma = Liefst.Firma AND Waehrung.FRW = Liefst.FRW NO-ERROR. IF AVAILABLE Waehrung THEN DO: ASSIGN Besko.FRW = Waehrung.FRW Besko.Faktor = Waehrung.Faktor Besko.Kurs = Waehrung.Kurs. END. ELSE DO: ASSIGN Besko.FRW = FwFRW Besko.Faktor = 1 Besko.Kurs = 1.0. END. LEAVE. END. RELEASE Besko. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BESTELLZEILE gBestellvorschlag PROCEDURE BESTELLZEILE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR VPos AS INT NO-UNDO. REPEAT TRANSACTION: FIND LAST Besze USE-INDEX Besze-k1 WHERE Besze.Firma = Firma AND Besze.Besnr = Besnr NO-LOCK NO-ERROR. IF AVAILABLE Besze THEN VPos = Besze.Pos + 10. ELSE VPos = 10. CREATE Besze. ASSIGN Besze.Firma = Firma Besze.Besnr = Besnr Besze.Pos = VPos Besze.Artnr = BArtst.Artnr Besze.Inhalt = BArtst.Inhalt Besze.Jahr = BArtst.Jahr Besze.Bez1 = Artbez.Bez1 Besze.Bez2 = Artbez.Bez2 Besze.Preis = TArtLief.S_Preis Besze.Aktion = FALSE Besze.Lager = iLager Besze.KGeb_Cd = BArtst.KGeb_Cd Besze.VGeb_Cd = BArtst.VGeb_Cd Besze.GGeb_Cd = BArtst.GGeb_Cd Besze.KGebKto = KGebinde.Geb_Kto Besze.VGebKto = VGebinde.Geb_Kto Besze.GGebKto = GGebinde.Geb_Kto Besze.EP = TArtLief.L_EP Besze.S_Artnr = TArtLief.S_Artnr Besze.S_Bez1 = TArtLief.S_Bez1 Besze.S_Bez2 = TArtLief.S_Bez2 Besze.S_Preis = TArtLief.S_Preis Besze.S_Preis_FRW = TArtLief.S_Preis_FRW Besze.L_EP = TArtLief.L_EP Besze.L_EP_FRW = TArtLief.L_EP_FRW Besze.L_Rabatt = TArtLief.L_Rabatt Besze.Spesen = TArtLief.Spesen Besze.Rabatt = TArtLief.Rabatt Besze.Verbrauch = TArtLief.Verbrauch Besze.Alter_Listen_EP = BArtst.Listen_EP Besze.Rueckstand = tArtLief.Rueckstand. LEAVE. END. RELEASE Besze. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gBestellvorschlag PROCEDURE changePage : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN DO: /* RUN addLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */ /* RUN addLink ( h_dyntoolbar , 'Navigation':U , h_d-auftr ). */ /* RUN ToolbarInit ( INPUT h_d-auftr ). */ RUN ENTRY_CURSOR. END. WHEN 2 THEN DO: RUN ENTRY_CURSOR. END. END CASE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gBestellvorschlag _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. ------------------------------------------------------------------------------*/ /* Hide all frames. */ HIDE FRAME gBestellvorschlag. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gBestellvorschlag PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. iLager = DYNAMIC-FUNCTION('getBenLager':U) NO-ERROR. RUN COMBO_LAGER ( CB_Lager:HANDLE ). CB_Lager:SCREEN-VALUE = STRING(iLager,'999999'). IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. IF VALID-HANDLE(Fenster) THEN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE(Fenster). DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF Fenster:TYPE = 'EDITOR' THEN LEAVE. IF Fenster:TYPE = 'LITERAL' THEN LEAVE. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE. IF Fenster:TYPE = 'BUTTON' THEN LEAVE. GET-KEY-VALUE SECTION 'Bestellvorschlag' KEY Fenster:NAME VALUE cString. IF cString = ? THEN LEAVE. Fenster:SCREEN-VALUE = cString. LEAVE. END. Fenster = Fenster:NEXT-SIBLING. END. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF T_Rechnen THEN DO: VonDatum:SENSITIVE = TRUE. BisDatum:SENSITIVE = TRUE. END. ELSE DO: VonDatum:SENSITIVE = FALSE. BisDatum:SENSITIVE = FALSE. END. IF T_LagOrt THEN DO: ASSIGN T_Warengrp:SENSITIVE = FALSE T_Prodgrp :SENSITIVE = FALSE T_Artgrp :SENSITIVE = FALSE. END. ELSE DO: ASSIGN T_Warengrp:SENSITIVE = TRUE T_Prodgrp :SENSITIVE = TRUE T_Artgrp :SENSITIVE = TRUE. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gBestellvorschlag _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 T_LagOrt F_LetztEingang Hersteller Warengruppen VonArtnr BisArtnr VonKnr BisKnr VonDatum BisDatum T_Rechnen Unterschrittene Erfassen R_Spalte T_Bewegung T_Haupt T_Warengrp T_Prodgrp T_Artgrp WITH FRAME gBestellvorschlag. ENABLE CB_Lager T_LagOrt F_LetztEingang Hersteller Warengruppen VonArtnr BisArtnr VonKnr BisKnr VonDatum BisDatum T_Rechnen Unterschrittene Erfassen R_Spalte Btn_Excel T_Bewegung T_Haupt T_Warengrp T_Prodgrp T_Artgrp RECT-37 WITH FRAME gBestellvorschlag. VIEW FRAME gBestellvorschlag. {&OPEN-BROWSERS-IN-QUERY-gBestellvorschlag} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gBestellvorschlag PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. IF AktSeite > 1 THEN DO: RUN selectPage ( INPUT 1 ). RETURN NO-APPLY. END. RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). APPLY 'GO' TO FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR gBestellvorschlag PROCEDURE ENTRY_CURSOR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: /* 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 gBestellvorschlag PROCEDURE exitObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gBestellvorschlag PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. Zelle = 'B1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Firma1. Zelle = 'G1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Bestellvorschlag'. Zelle = 'T1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'B2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Ort. Zelle = 'G2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = ''. Zelle = 'T2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). IF NOT T_Rechnen THEN DO: Zelle = 'O:Q'. eh:COLUMNS(Zelle):Select. eh:Selection:EntireColumn:HIDDEN = TRUE . END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gBestellvorschlag PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR Stern AS CHAR NO-UNDO. DEF VAR Alk AS CHAR NO-UNDO. DEF VAR xWgr AS CHAR NO-UNDO. DEF VAR xPgr AS CHAR NO-UNDO. DEF VAR xAgr AS CHAR NO-UNDO. DEF VAR iVG AS DEC NO-UNDO. DEF VAR iGG AS DEC NO-UNDO. DEF VAR minVG AS DEC NO-UNDO. DEF VAR minGG AS DEC NO-UNDO. DEF VAR maxVG AS DEC NO-UNDO. DEF VAR maxGG AS DEC NO-UNDO. DEF VAR OK AS LOG NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR Vorlage AS CHAR NO-UNDO. DEF VAR Dokument AS CHAR NO-UNDO. DEF VAR Daten AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. iLager = INTEGER(CB_Lager:SCREEN-VALUE). IF VonArtnr = 0 AND BisArtnr = 0 THEN BisArtnr = 999999. IF BisArtnr < VonArtnr THEN BisArtnr = VonArtnr. IF VonKnr = 0 AND BisKnr = 0 THEN BisKnr = 999999. IF BisKnr < VonKnr THEN BisKnr = VonKnr . RUN BEREINIGEN ( INPUT-OUTPUT Hersteller ). RUN BEREINIGEN ( INPUT-OUTPUT Warengruppen ). IF T_Rechnen THEN DO: IF VonDatum = ? THEN VonDatum = DATE(MONTH(TODAY - 1),01,YEAR(TODAY - 1)). IF BisDatum = ? THEN BisDatum = DATE(MONTH(TODAY),01,YEAR(TODAY)) - 1. IF BisDatum < VonDatum THEN BisDatum = VonDatum. END. DISPLAY {&list-6}. IF (BisKnr - VonKnr) > 0 THEN fMehrere = TRUE. END. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. IF VALID-HANDLE(Fenster) THEN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE(Fenster). DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF Fenster:TYPE = 'EDITOR' THEN LEAVE. IF Fenster:TYPE = 'LITERAL' THEN LEAVE. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE. IF Fenster:TYPE = 'BUTTON' THEN LEAVE. cString = Fenster:SCREEN-VALUE. PUT-KEY-VALUE SECTION 'Bestellvorschlag' KEY Fenster:NAME VALUE cString. LEAVE. END. Fenster = Fenster:NEXT-SIBLING. END. SESSION:SET-WAIT-STATE('GENERAL'). RUN SELEKTION. Vorlage = 'Bestellvorschlag.xls'. Dokument = Vorlage + CHR(01) + Vorlage. Daten = 'Bestellvorschlag.csv'. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: RUN FEHLER ( INPUT 1035 ). RETURN NO-APPLY. END. DO WHILE TRUE: RUN CREATEDATEI ( INPUT Dokument ). IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE. CASE RETURN-VALUE: WHEN 'ERROR-PARAMETER' THEN DO: RUN FEHLER ( INPUT 1036 ). RETURN NO-APPLY. END. WHEN 'ERROR-LOESCHEN' THEN DO: RUN FEHLER ( INPUT 1037 ). RETURN NO-APPLY. END. WHEN 'ERROR-VORLAGE' THEN DO: RUN FEHLER ( INPUT 1038 ). RETURN NO-APPLY. END. OTHERWISE DO: MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. END CASE. LEAVE. END. Dokument = RETURN-VALUE. DO WHILE TRUE: RUN CREATEDATEI ( INPUT Daten ). IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE. CASE RETURN-VALUE: WHEN 'ERROR-PARAMETER' THEN DO: RUN FEHLER ( INPUT 1036 ). RETURN NO-APPLY. END. WHEN 'ERROR-LOESCHEN' THEN DO: RUN FEHLER ( INPUT 1037 ). RETURN NO-APPLY. END. WHEN 'ERROR-VORLAGE' THEN DO: RUN FEHLER ( INPUT 1038 ). RETURN NO-APPLY. END. OTHERWISE DO: MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. END CASE. LEAVE. END. Daten = RETURN-VALUE. OUTPUT TO VALUE(Daten). FIND Steuer NO-LOCK USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-ERROR. PUT CONTROL '£' CHR(10) '£' CHR(10) '£' CHR(10) '£' CHR(10) '£Artnr£Bezeichnung£Jahr£ST£Inhalt£KGeb' '£Bestand£Bestellt£Mindest£Mindest£Maximal£Maximal£*' '££Verbrauch££Lager£Rück-£Bestel-' CHR(10). PUT CONTROL '£Inhalt££'. IF R_Spalte = 1 THEN PUT CONTROL 'Alk%'. ELSE PUT CONTROL 'Kat'. PUT CONTROL '££in cl££££VGeb£GGeb£VGeb£GGeb£*' '£KGeb£VGeb£GGeb£Ort£stände£lung' CHR(10) '£' CHR(10). FOR EACH TArtLief USE-INDEX ArtLief-k2 NO-LOCK, FIRST BArtst USE-INDEX Artst-k1 WHERE BArtst.Firma = TArtLief.Firma AND BArtst.Artnr = TArtLief.Artnr AND BArtst.Inhalt = TArtLief.Inhalt AND BArtst.Jahr = TArtLief.Jahr AND BArtst.Ausverk <> 2 AND BArtst.Ausverk < 9 NO-LOCK BREAK BY TArtLief.Knr BY TArtLief.LagOrt BY BArtst.Wg_Grp BY BArtst.Prod_Grp BY BArtst.Art_Grp BY BArtst.Suchbe BY BArtst.Artnr BY BArtst.Inhalt BY BArtst.Jahr : IF FIRST-OF ( TArtLief.Knr ) THEN DO: FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = TArtLief.Knr NO-LOCK NO-ERROR. PUT CONTROL STRING(Adresse.Knr,'999999 ') Adresse.Anzeig_Br CHR(10) '£' CHR(10). IF Erfassen THEN RUN BESTELLKOPF. IF RETURN-VALUE = 'ERROR' THEN DO: MESSAGE 'Abbruch wegen Nummernverteilung ! ' VIEW-AS ALERT-BOX ERROR. LEAVE. END. END. DO WHILE TRUE: IF T_LagOrt THEN LEAVE. IF T_Warengrp THEN DO: IF FIRST-OF ( BArtst.Wg_Grp ) THEN DO: RUN FIND_WARENGRP ( INPUT BArtst.Wg_Grp, OUTPUT cString ). IF cString <> '?' AND cString <> '' THEN xWgr = ENTRY(2, cString, CHR(01)). ELSE xWgr = FILL('?', 10). PUT CONTROL xWgr CHR(10). END. END. IF T_Prodgrp THEN DO: IF FIRST-OF ( BArtst.Prod_Grp ) THEN DO: RUN FIND_PRODGRP ( INPUT BArtst.Wg_Grp , INPUT BArtst.Prod_Grp, OUTPUT cString ). IF cString <> '?' AND cString <> '' THEN xPgr = ENTRY(2, cString, CHR(01)). ELSE xPgr = FILL('?', 10). PUT CONTROL xPgr CHR(10). END. END. IF T_Artgrp THEN DO: IF FIRST-OF ( BArtst.Art_Grp ) THEN DO: RUN FIND_ARTIKGRP( INPUT BArtst.Wg_Grp , INPUT BArtst.Prod_Grp, INPUT BArtst.Art_Grp , OUTPUT cString ). IF cString <> '?' AND cString <> '' THEN xAgr = ENTRY(2, cString, CHR(01)). ELSE xAgr = FILL('?', 10). PUT CONTROL xAgr CHR(10). END. END. LEAVE. END. IF (TArtLief.Bestand + TArtLief.Bestellt) <= TArtLief.Mind_Bestand THEN Stern = '*'. ELSE Stern = ''. FIND Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = BArtst.Firma AND Artbez.Artnr = BArtst.Artnr AND Artbez.Inhalt = BArtst.Inhalt AND Artbez.Jahr = BArtst.Jahr AND Artbez.Sprcd = FwSprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE Artbez THEN DO: FIND FIRST Artbez OF BArtst NO-LOCK NO-ERROR. END. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = BArtst.Firma AND KGebinde.Geb_Cd = BArtst.KGeb_Cd NO-LOCK NO-ERROR. FIND VGebinde USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = BArtst.Firma AND VGebinde.Geb_Cd = BArtst.VGeb_Cd NO-LOCK NO-ERROR. FIND GGebinde USE-INDEX GGebinde-k1 WHERE GGebinde.Firma = BArtst.Firma AND GGebinde.Geb_Cd = BArtst.GGeb_Cd NO-LOCK NO-ERROR. IF T_Rechnen THEN DO: iVG = TArtLief.Verbrauch / VGebinde.Inhalt NO-ERROR. iGG = iVG / GGebinde.Inhalt. END. IF Steuer.St09 = 0 THEN DO: minVG = IF VGebinde.Inhalt > 0 THEN BArtst.Mind_Bestand / VGebinde.Inhalt ELSE 1. maxVG = IF VGebinde.Inhalt > 0 THEN BArtst.Soll_Best / VGebinde.Inhalt ELSE 1. END. ELSE DO: minVG = IF BArtst.Mind_Bestand > 0 THEN BArtst.Mind_Bestand ELSE 0. maxVG = IF BArtst.Soll_Best > 0 THEN BArtst.Soll_Best ELSE 0. END. minGG = IF GGebinde.Inhalt > 0 THEN minVG / GGebinde.Inhalt ELSE 0. maxGG = IF GGebinde.Inhalt > 0 THEN maxVG / VGebinde.Inhalt ELSE 0. IF R_Spalte = 1 THEN DO: IF BArtst.Alk_Gehalt <> 0 THEN Alk = STRING(BArtst.Alk_Gehalt,'z9.99%'). ELSE Alk = ''. END. ELSE DO: Alk = TRIM(SUBSTRING(BArtst.WHK_Code,01,02)). END. PUT CONTROL '£' STRING(BArtst.Artnr ,'999999 ') STRING(BArtst.Inhalt ,'9999') '£' ArtBez.Bez1 '£' STRING(BArtst.Jahr ,'zzzz') '£'. CASE BArtst.Ausverk: WHEN 0 THEN PUT CONTROL 'Vo£'. WHEN 1 THEN PUT CONTROL 'No£'. WHEN 8 THEN PUT CONTROL 'Be£'. OTHERWISE PUT CONTROL '?£'. END CASE. PUT CONTROL STRING(KGebinde.Inhalt ,'zzzz') '£' KGebinde.KBez '£' STRING(TArtLief.Bestand ,'->>>>>>>9') '£' STRING(TArtLief.Bestellt ,'->>>>>') '£' /* STRING(TArtLief.Mind_Bestand,'->>>>>>') '£' */ STRING(minVG ,'->>>>>>') '£' STRING(minGG ,'-zzz9.9') '£' STRING(maxVG ,'-zzzzzz') '£' STRING(maxGG ,'-zzz9.9') '£' Stern. IF T_Rechnen THEN DO: PUT CONTROL '£' TRIM(STRING(TArtLief.Verbrauch,'->>>>>>>>>')) '£'. IF VGebinde.Inhalt > 1 THEN PUT CONTROL TRIM(STRING(iVG,'->>>>>9.99')). PUT CONTROL '£'. IF GGebinde.Inhalt > 1 THEN PUT CONTROL TRIM(STRING(iGG,'->>>>>9.99')). END. ELSE DO: PUT CONTROL '£££'. END. PUT CONTROL '£' TArtLief.LagOrt '£' TRIM(STRING(tArtLief.Rueckstand,'->>>>>>9')) CHR(10). IF ArtBez.Bez2 <> '' OR Alk <> '' THEN DO: PUT CONTROL '££' ArtBez.Bez2 '£' Alk CHR(10). END. DO WHILE TRUE: IF T_LagOrt THEN LEAVE. IF (LAST-OF ( BArtst.Art_Grp ) AND T_Artgrp ) OR (LAST-OF ( BArtst.Prod_Grp ) AND T_Prodgrp ) OR (LAST-OF ( BArtst.Wg_Grp ) AND T_Warengrp) THEN PUT CONTROL '£' CHR(10). LEAVE. END. IF LAST-OF ( TArtLief.Knr ) THEN PUT CONTROL '£' CHR(10). IF NOT Erfassen THEN NEXT. RUN BESTELLZEILE. END. OUTPUT CLOSE. RUN OPENEXCEL ( INPUT excelAppl, INPUT Dokument, INPUT '', OUTPUT ok ). IF NOT ok THEN DO: RUN FEHLER ( INPUT 1040 ). RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + Daten. excelAppl:Application:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. SESSION:SET-WAIT-STATE(''). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gBestellvorschlag 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('getMutflagAlt':U) NO-ERROR. DO WHILE TRUE: IF NOT FMutFlag THEN LEAVE. MutProg = DYNAMIC-FUNCTION('GETMUTPROG':U). IF MutProg <> THIS-PROCEDURE:FILE-NAME THEN LEAVE. RETURN NO-APPLY. END. CASE piPageNum: END CASE. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN DO: /* RUN removeLink ( h_dyntoolbar , 'TableIO':U , h_v-auftr ). */ /* RUN removeLink ( h_dyntoolbar , '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 SELEKTION gBestellvorschlag PROCEDURE SELEKTION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Unter AS LOG NO-UNDO. DEF VAR Menge AS DEC NO-UNDO. DEF VAR Mind AS DEC NO-UNDO. DEF VAR iBewegung AS INT NO-UNDO. EMPTY TEMP-TABLE TArtLief. FIND Steuer NO-LOCK USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-ERROR. FOR EACH ArtLief USE-INDEX ArtLief-k2 WHERE ArtLief.Firma = Firma AND ArtLief.Knr >= VonKnr AND ArtLief.Knr <= BisKnr AND ArtLief.Artnr >= VonArtnr AND ArtLief.Artnr <= BisArtnr AND ((NOT fMehrere OR NOT T_Haupt ) OR (T_Haupt = TRUE AND ArtLief.Haupt = TRUE)) NO-LOCK, FIRST Artst USE-INDEX Artst-k1 WHERE Artst.Firma = ArtLief.Firma AND Artst.Artnr = ArtLief.Artnr AND Artst.Inhalt = ArtLief.Inhalt AND Artst.Jahr = ArtLief.Jahr AND Artst.Lager = TRUE AND ((Warengruppen = '') OR (Warengruppen <> '' AND LOOKUP(STRING(Artst.Wg_Grp,"999"), Warengruppen, ',') > 0)) AND ((Hersteller = '') OR (Hersteller <> '' AND LOOKUP(STRING(Artst.Herst,"999"), Hersteller , ',') > 0)) AND Artst.Aktiv = TRUE AND Artst.Ausverk < 9 NO-LOCK, FIRST ArtLager NO-LOCK USE-INDEX ArtLager-k1 WHERE ArtLager.Firma = ArtLief.Firma AND ArtLager.Artnr = ArtLief.Artnr AND ArtLager.Inhalt = ArtLief.Inhalt AND ArtLager.Jahr = ArtLief.Jahr AND ArtLager.Lager = iLager : Unter = FALSE. Mind = ArtLager.Mind_Bestand. IF Steuer.St09 = 1 THEN DO: FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = Firma AND VGebinde.Geb_Cd = Artst.VGeb_Cd NO-ERROR. IF VGebinde.Inhalt > 0 THEN Mind = Mind * VGebinde.Inhalt. END. IF (ArtLager.Bestand + ArtLager.Bestellt) <= Mind THEN Unter = TRUE. IF Unterschrittene AND NOT Unter THEN NEXT. CREATE TArtLief. BUFFER-COPY ArtLief TO TArtLief ASSIGN TArtLief.Mind_Bestand = Mind TArtLief.Bestand = ArtLager.Bestand TArtLief.Bestellt = ArtLager.Bestellt. FOR EACH Savze NO-LOCK USE-INDEX Savze-k2 WHERE Savze.Firma = Firma AND Savze.Artnr = ArtLief.Artnr AND Savze.Inhalt = ArtLief.Inhalt AND Savze.Jahr = ArtLief.Jahr AND Savze.MRuek > 0, FIRST Savko NO-LOCK WHERE Savko.Firma = Savze.Firma AND Savko.Aufnr = Savze.Aufnr AND Savko.Auf_Datum > VonDatum: ASSIGN tArtLief.Rueckstand = tArtLief.Rueckstand + Savze.MRuek. END. IF T_Lagort THEN TArtLief.LagOrt = DYNAMIC-FUNCTION('getLagerort':U, INPUT iLager , INPUT TArtLief.Artnr , INPUT TArtLief.Inhalt, INPUT TArtLief.Jahr ) NO-ERROR. IF NOT T_Rechnen THEN NEXT. ASSIGN Menge = 0 iBewegung = 0. FOR EACH Artbw USE-INDEX Artbw-k2 WHERE Artbw.Firma = ArtLief.Firma AND Artbw.Artnr = ArtLief.Artnr AND Artbw.Inhalt = ArtLief.Inhalt AND Artbw.Jahr = ArtLief.Jahr AND Artbw.Datum >= VonDatum AND Artbw.Datum <= BisDatum AND Artbw.Lager = iLager AND Artbw.Lag_Buch = TRUE AND Artbw.Tr_Art = 01 NO-LOCK: Menge = Menge + Artbw.Menge. iBewegung = iBewegung + 1. END. TArtLief.Verbrauch = Menge. IF Menge > 0 THEN NEXT. IF NOT T_Bewegung THEN NEXT. IF iBewegung > 0 THEN NEXT. DELETE TArtLief. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME