&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gPreisliste &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gPreisliste /*------------------------------------------------------------------------ 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 --- */ DEFINE VARIABLE MaxPage AS INTEGER NO-UNDO. DEFINE VARIABLE AktSeite AS INTEGER NO-UNDO. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO. DEFINE VARIABLE Fenster AS HANDLE NO-UNDO. DEFINE VARIABLE Pgr AS INTEGER NO-UNDO. DEFINE VARIABLE Firma AS CHARACTER INIT '1000' NO-UNDO. DEFINE VARIABLE FwSprcd AS INTEGER NO-UNDO. DEFINE VARIABLE RetVal AS CHARACTER NO-UNDO. DEFINE VARIABLE xPreisgrp AS CHARACTER NO-UNDO. DEFINE VARIABLE iStatus AS INTEGER NO-UNDO. DEFINE VARIABLE cInstall AS CHARACTER NO-UNDO. DEFINE BUFFER BArtst FOR Artst. DEFINE TEMP-TABLE TArtLief LIKE ArtLief FIELD nBestand AS DECIMAL FIELD Dep AS DECIMAL FIELD cSort AS CHARACTER . DEFINE TEMP-TABLE TExcel FIELD Feld AS CHARACTER EXTENT 20 FIELD Zeile AS INTEGER. /* _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 gPreisliste /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Land Region Warengruppe CB_Preisgruppe ~ Preisdatum VonArtnr BisArtnr VonInhalt BisInhalt VonKnr BisKnr T_Lieferant ~ CB_Status T_Zweite Btn_Excel T_Zusatz T_Preisliste T_Bestand T_DEP T_Sort ~ RECT-37 &Scoped-Define DISPLAYED-OBJECTS Land Region Warengruppe CB_Preisgruppe ~ Preisdatum VonArtnr BisArtnr VonInhalt BisInhalt VonKnr BisKnr T_Lieferant ~ CB_Status T_Zweite T_Zusatz T_Preisliste T_Bestand T_DEP T_Sort /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-5 CB_Status Btn_Excel &Scoped-define List-6 Land Region Warengruppe CB_Preisgruppe Preisdatum ~ VonArtnr BisArtnr VonInhalt BisInhalt VonKnr BisKnr T_Lieferant T_Zweite ~ T_Zusatz T_Preisliste T_Bestand T_DEP T_Sort /* _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 IMAGE-INSENSITIVE FILE "grafik/results%.ico":U LABEL "Excel" SIZE 7 BY 1.81. DEFINE VARIABLE CB_Preisgruppe AS CHARACTER FORMAT "X(256)":U LABEL "Preisgruppe" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Item 1","Item 1" DROP-DOWN-LIST SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE CB_Status AS CHARACTER FORMAT "X(256)" LABEL "Status" VIEW-AS COMBO-BOX INNER-LINES 5 LIST-ITEM-PAIRS "Normaler Artikel (auf Vorrat)","000000", "Normaler Artikel","000001", "Restposten","000002", "Beschaffungsartikel","000008", "Ausverkauft","000009", "Status nicht berücksichtigen (alle)","999999" DROP-DOWN-LIST SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE BisArtnr AS INTEGER FORMAT "999999":U INITIAL 999999 VIEW-AS FILL-IN SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE BisInhalt AS INTEGER FORMAT "9999":U INITIAL 9999 VIEW-AS FILL-IN SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE BisKnr AS INTEGER FORMAT "999999":U INITIAL 999999 VIEW-AS FILL-IN SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Land AS CHARACTER FORMAT "X(256)":U LABEL "Land/Länder" VIEW-AS FILL-IN NATIVE SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Preisdatum AS DATE FORMAT "99.99.9999":U LABEL "Preisdatum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Region AS CHARACTER FORMAT "X(256)":U LABEL "Regionen" 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 SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE VonInhalt AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "von - bis Inhalt" VIEW-AS FILL-IN SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE VonKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "von - bis Lieferant" VIEW-AS FILL-IN SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Warengruppe AS CHARACTER FORMAT "X(256)":U LABEL "Warengruppen" VIEW-AS FILL-IN NATIVE SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-37 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 90 BY 16.19. DEFINE VARIABLE T_Bestand AS LOGICAL INITIAL NO LABEL "Nur Artikel mit Bestand?" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 TOOLTIP "Preislistencode berücksichtigen ?" NO-UNDO. DEFINE VARIABLE T_DEP AS LOGICAL INITIAL NO LABEL "durchschnittlicher EP?" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 TOOLTIP "Preislistencode berücksichtigen ?" NO-UNDO. DEFINE VARIABLE T_Lieferant AS LOGICAL INITIAL NO LABEL "Lieferant berücksichtigen ?" VIEW-AS TOGGLE-BOX SIZE 23.6 BY 1 NO-UNDO. DEFINE VARIABLE T_Preisliste AS LOGICAL INITIAL NO LABEL "Preislistencode ?" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 TOOLTIP "Preislistencode berücksichtigen ?" NO-UNDO. DEFINE VARIABLE T_Sort AS LOGICAL INITIAL NO LABEL "sortiert nach Land/Bezeichnung" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 TOOLTIP "Preislistencode berücksichtigen ?" NO-UNDO. DEFINE VARIABLE T_Zusatz AS LOGICAL INITIAL NO LABEL "Zusatzkollonnen ?" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 NO-UNDO. DEFINE VARIABLE T_Zweite AS LOGICAL INITIAL NO LABEL "Zweite Artikelbezeichnung drucken ?" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gPreisliste Land AT ROW 2 COL 28 COLON-ALIGNED Region AT ROW 3 COL 28 COLON-ALIGNED Warengruppe AT ROW 4 COL 28 COLON-ALIGNED CB_Preisgruppe AT ROW 5 COL 28 COLON-ALIGNED Preisdatum AT ROW 6 COL 28 COLON-ALIGNED VonArtnr AT ROW 7 COL 28 COLON-ALIGNED BisArtnr AT ROW 7 COL 41 COLON-ALIGNED NO-LABEL VonInhalt AT ROW 8 COL 28 COLON-ALIGNED BisInhalt AT ROW 8 COL 41 COLON-ALIGNED NO-LABEL VonKnr AT ROW 9 COL 28 COLON-ALIGNED BisKnr AT ROW 9 COL 41 COLON-ALIGNED NO-LABEL T_Lieferant AT ROW 9 COL 60 CB_Status AT ROW 10 COL 28 COLON-ALIGNED T_Zweite AT ROW 11 COL 30 Btn_Excel AT ROW 4 COL 82.2 T_Zusatz AT ROW 12 COL 30 T_Preisliste AT ROW 13 COL 30 T_Bestand AT ROW 14 COL 30 WIDGET-ID 2 T_DEP AT ROW 15 COL 30 WIDGET-ID 4 T_Sort AT ROW 16 COL 30 WIDGET-ID 8 RECT-37 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.75) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Preisliste". /* *********************** 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 gPreisliste /* ************************* 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 gPreisliste FRAME-NAME Custom */ ASSIGN FRAME gPreisliste:SCROLLABLE = FALSE FRAME gPreisliste:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN BisArtnr IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN BisInhalt IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN BisKnr IN FRAME gPreisliste 6 */ /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gPreisliste 5 */ /* SETTINGS FOR COMBO-BOX CB_Preisgruppe IN FRAME gPreisliste 6 */ /* SETTINGS FOR COMBO-BOX CB_Status IN FRAME gPreisliste 5 */ /* SETTINGS FOR FILL-IN Land IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN Preisdatum IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN Region IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_Bestand IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_DEP IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_Lieferant IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_Preisliste IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_Sort IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_Zusatz IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_Zweite IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN VonArtnr IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN VonInhalt IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN VonKnr IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN Warengruppe IN FRAME gPreisliste 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gPreisliste /* Query rebuild information for DIALOG-BOX gPreisliste _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gPreisliste */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gPreisliste &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreisliste gPreisliste ON END-ERROR OF FRAME gPreisliste /* Preisliste */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreisliste gPreisliste ON GO OF FRAME gPreisliste /* Preisliste */ DO: RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreisliste gPreisliste ON WINDOW-CLOSE OF FRAME gPreisliste /* Preisliste */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel gPreisliste ON CHOOSE OF Btn_Excel IN FRAME gPreisliste /* 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 Land &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Land gPreisliste ON HELP OF Land IN FRAME gPreisliste /* Land/Länder */ DO: RUN g-auswahl-land.w ( INPUT SELF:HANDLE ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Land gPreisliste ON LEFT-MOUSE-DBLCLICK OF Land IN FRAME gPreisliste /* Land/Länder */ DO: RUN g-auswahl-land.w ( INPUT SELF:HANDLE ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Region &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Region gPreisliste ON HELP OF Region IN FRAME gPreisliste /* Regionen */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'AREG' ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Region gPreisliste ON LEFT-MOUSE-DBLCLICK OF Region IN FRAME gPreisliste /* Regionen */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'AREG' ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Warengruppe &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Warengruppe gPreisliste ON HELP OF Warengruppe IN FRAME gPreisliste /* 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 Warengruppe gPreisliste ON LEFT-MOUSE-DBLCLICK OF Warengruppe IN FRAME gPreisliste /* 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 gPreisliste /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. cInstall = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR. GET-KEY-VALUE SECTION 'FwSteuer' KEY 'FwSprcd' VALUE RetVal. IF RetVal = ? THEN RetVal = '1'. FwSprcd = INTEGER(RetVal) NO-ERROR. SESSION:DATA-ENTRY-RETURN = TRUE. SUBSCRIBE TO 'TOOLBAR' ANYWHERE. /* TRIGGERS ------------------------------------------------------ */ ON 'ALT-CURSOR-RIGHT':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN NEXTPAGE. END. ON 'ALT-CURSOR-LEFT':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN PREVPAGE. END. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE DO: RUN ENTRY_CURSOR. END. /* ON 'PAGE-DOWN':U OF {&WINDOW-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Next':U ). END. ON 'PAGE-UP':U OF {&WINDOW-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'Prev':U ). END. ON 'ALT-RETURN':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'UPDATE':U ). END. ON 'ALT-INS':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'ADD':U ). END. ON 'ALT-DEL':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'DELETE':U ). END. ON 'ALT-R':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'RESET':U ). END. ON 'F9':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ). END. ON 'ALT-S':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'SAVE':U ). END. ON 'ALT-K':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN TOOLBAR IN h_dyntoolbar ( INPUT 'COPY':U ). END. ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE DO: FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR. IF FMutFlag = FALSE THEN DO: RUN ENDE. RETURN NO-APPLY. END. RUN TOOLBAR IN h_dyntoolbar ( INPUT 'CANCEL':U ). RETURN NO-APPLY. END. */ /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gPreisliste _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 AUSGABE_LISTE_1 gPreisliste PROCEDURE AUSGABE_LISTE_1 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE Netto AS LOG NO-UNDO. DEFINE VARIABLE Alk AS CHARACTER NO-UNDO. DEFINE VARIABLE Preis AS CHARACTER NO-UNDO. DEFINE VARIABLE xWgr AS CHARACTER NO-UNDO. DEFINE VARIABLE xPgr AS CHARACTER NO-UNDO. DEFINE VARIABLE xAgr AS CHARACTER NO-UNDO. DEFINE VARIABLE xFarbe AS CHARACTER NO-UNDO. DEFINE VARIABLE nDep AS DECIMAL NO-UNDO. RUN FIND_PREISGRUPPE ( INPUT Pgr, OUTPUT cString ). xPreisgrp = '??????????'. IF NUM-ENTRIES(cString, CHR(01)) < 2 THEN Netto = TRUE. ELSE DO: xPreisGrp = ENTRY(2, cString, CHR(01)). IF INTEGER(ENTRY(3, cString, CHR(01))) = 0 THEN Netto = TRUE. IF INTEGER(ENTRY(3, cString, CHR(01))) = 1 THEN Netto = FALSE. END. 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 ((iStatus = 999999) OR (bArtst.Ausverk = iStatus)) NO-LOCK BREAK BY bArtst.Wg_Grp BY bArtst.Prod_Grp BY bArtst.Art_Grp BY bArtst.Farbe BY bArtst.Inhalt BY bArtst.Suchbe BY bArtst.Jahr : 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. 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. 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 xPgr = ENTRY(2, cString, CHR(01)). ELSE xPgr = FILL('?', 10). PUT CONTROL xPgr CHR(10). END. IF FIRST-OF ( bArtst.Farbe ) THEN DO: RUN FIND_FARBE ( INPUT bArtst.Farbe, OUTPUT cString ). IF cString = '?' OR cString = '' THEN cString = CHR(01). cString = ENTRY(2, cString, CHR(01)). CASE cString: WHEN 'rot' THEN xFarbe = 'O'. WHEN 'weiss' THEN xFarbe = 'W'. WHEN 'rose' THEN xFarbe = 'R'. OTHERWISE xFarbe = ''. END CASE. END. 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 LAST ArtPreis USE-INDEX ArtPreis-k1 WHERE ArtPreis.Firma = bArtst.Firma AND ArtPreis.Artnr = bArtst.Artnr AND ArtPreis.Inhalt = bArtst.Inhalt AND ArtPreis.Jahr = bArtst.Jahr AND ArtPreis.Preis_Grp = Pgr AND ArtPreis.Ab_Datum <= Preisdatum AND ArtPreis.Aktion = FALSE NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtPreis THEN Preis = ''. ELSE DO: IF Netto THEN Preis = STRING(ArtPreis.VK_Netto ,'>>,>>9.999'). ELSE Preis = STRING(ArtPreis.VK_Brutto,'>>,>>9.99'). END. IF bArtst.Alk_Gehalt <> 0 THEN Alk = STRING(bArtst.Alk_Gehalt,'z9.99%'). ELSE Alk = ''. nDep = (IF bArtst.DEP <> 0.0 THEN bArtst.DEP ELSE bArtst.LEP). IF nDep = 0 THEN nDep = bArtst.Listen_EP. PUT CONTROL '£' STRING(bArtst.Artnr ,'999999'). IF bArtst.Netto THEN PUT CONTROL '*'. PUT CONTROL '£' ArtBez.Bez1 '£' STRING(bArtst.Jahr ,'zzzz') '£' xFarbe '£' KGebinde.KBez '£' Preis '£'. IF T_Zusatz THEN DO: PUT CONTROL '£' STRING(bArtst.Artnr ,'999999') '£' STRING(bArtst.Inhalt ,'9999') '£' STRING(bArtst.Jahr ,'9999'). END. ELSE PUT CONTROL '£££'. IF T_Bestand THEN PUT CONTROL '£' TRIM(STRING(tArtLief.nBestand,'->>>>>>>>>9')). ELSE PUT CONTROL '£'. IF T_DEP THEN PUT CONTROL '£' TRIM(STRING(nDep,'->>>>>>>>>9.99')). ELSE PUT CONTROL '£'. PUT CONTROL CHR(10). IF T_Zweite THEN DO: IF ArtBez.Bez2 <> '' THEN DO: PUT CONTROL '££' ArtBez.Bez2 CHR(10). END. END. IF LAST-OF ( bArtst.Wg_Grp ) OR LAST-OF ( bArtst.Prod_Grp ) OR LAST-OF ( bArtst.Art_Grp ) THEN PUT CONTROL '£' CHR(10). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE AUSGABE_LISTE_2 gPreisliste PROCEDURE AUSGABE_LISTE_2 : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE Netto AS LOG NO-UNDO. DEFINE VARIABLE Alk AS CHARACTER NO-UNDO. DEFINE VARIABLE Preis AS CHARACTER NO-UNDO. DEFINE VARIABLE xWgr AS CHARACTER NO-UNDO. DEFINE VARIABLE xPgr AS CHARACTER NO-UNDO. DEFINE VARIABLE xAgr AS CHARACTER NO-UNDO. DEFINE VARIABLE xFarbe AS CHARACTER NO-UNDO. DEFINE VARIABLE nDep AS DECIMAL NO-UNDO. RUN FIND_PREISGRUPPE ( INPUT Pgr, OUTPUT cString ). xPreisgrp = '??????????'. IF NUM-ENTRIES(cString, CHR(01)) < 2 THEN Netto = TRUE. ELSE DO: xPreisGrp = ENTRY(2, cString, CHR(01)). IF INTEGER(ENTRY(3, cString, CHR(01))) = 0 THEN Netto = TRUE. IF INTEGER(ENTRY(3, cString, CHR(01))) = 1 THEN Netto = FALSE. END. 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 ((iStatus = 999999) OR (bArtst.Ausverk = iStatus)) NO-LOCK BREAK BY bArtst.Herk_Lkz BY bArtst.Bez BY bArtst.Jahr : IF FIRST-OF ( BArtst.Herk_Lkz ) THEN DO: FIND Land NO-LOCK USE-INDEX Land-k2 WHERE Land.Lkz = BArtst.Herk_Lkz NO-ERROR. IF AVAILABLE Land THEN PUT CONTROL Land.Bez CHR(10). ELSE PUT CONTROL CHR(10). END. 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 LAST ArtPreis USE-INDEX ArtPreis-k1 WHERE ArtPreis.Firma = bArtst.Firma AND ArtPreis.Artnr = bArtst.Artnr AND ArtPreis.Inhalt = bArtst.Inhalt AND ArtPreis.Jahr = bArtst.Jahr AND ArtPreis.Preis_Grp = Pgr AND ArtPreis.Ab_Datum <= Preisdatum AND ArtPreis.Aktion = FALSE NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtPreis THEN Preis = ''. ELSE DO: IF Netto THEN Preis = STRING(ArtPreis.VK_Netto ,'>>,>>9.999'). ELSE Preis = STRING(ArtPreis.VK_Brutto,'>>,>>9.99'). END. IF bArtst.Alk_Gehalt <> 0 THEN Alk = STRING(bArtst.Alk_Gehalt,'z9.99%'). ELSE Alk = ''. nDep = (IF bArtst.DEP <> 0.0 THEN bArtst.DEP ELSE bArtst.LEP). IF nDep = 0 THEN nDep = bArtst.Listen_EP. PUT CONTROL '£' STRING(bArtst.Artnr ,'999999'). IF bArtst.Netto THEN PUT CONTROL '*'. PUT CONTROL '£' ArtBez.Bez1 '£' STRING(bArtst.Jahr ,'zzzz') '£' xFarbe '£' KGebinde.KBez '£' Preis '£'. IF T_Zusatz THEN DO: PUT CONTROL '£' STRING(bArtst.Artnr ,'999999') '£' STRING(bArtst.Inhalt ,'9999') '£' STRING(bArtst.Jahr ,'9999'). END. ELSE PUT CONTROL '£££'. IF T_Bestand THEN PUT CONTROL '£' TRIM(STRING(tArtLief.nBestand,'->>>>>>>>>9')). ELSE PUT CONTROL '£'. IF T_DEP THEN PUT CONTROL '£' TRIM(STRING(nDep,'->>>>>>>>>9.99')). ELSE PUT CONTROL '£'. PUT CONTROL CHR(10). IF T_Zweite THEN DO: IF ArtBez.Bez2 <> '' THEN DO: PUT CONTROL '££' ArtBez.Bez2 CHR(10). END. END. IF LAST-OF ( bArtst.Herk_Lkz ) THEN PUT CONTROL '£' CHR(10). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gPreisliste PROCEDURE BEREINIGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT-OUTPUT PARAMETER ipString AS CHARACTER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE ii AS INTEGER 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 changePage gPreisliste 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 gPreisliste _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 gPreisliste. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gPreisliste PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: RUN COMBO_PREISGRP ( INPUT CB_Preisgruppe:HANDLE ). END. RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. 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 'Preisliste' KEY Fenster:NAME VALUE cString. IF cString = ? THEN LEAVE. Fenster:SCREEN-VALUE = cString. LEAVE. END. Fenster = Fenster:NEXT-SIBLING. END. PreisDatum:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(TODAY). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gPreisliste _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 Land Region Warengruppe CB_Preisgruppe Preisdatum VonArtnr BisArtnr VonInhalt BisInhalt VonKnr BisKnr T_Lieferant CB_Status T_Zweite T_Zusatz T_Preisliste T_Bestand T_DEP T_Sort WITH FRAME gPreisliste. ENABLE Land Region Warengruppe CB_Preisgruppe Preisdatum VonArtnr BisArtnr VonInhalt BisInhalt VonKnr BisKnr T_Lieferant CB_Status T_Zweite Btn_Excel T_Zusatz T_Preisliste T_Bestand T_DEP T_Sort RECT-37 WITH FRAME gPreisliste. VIEW FRAME gPreisliste. {&OPEN-BROWSERS-IN-QUERY-gPreisliste} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gPreisliste 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 gPreisliste 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 gPreisliste 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 gPreisliste PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER eh AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE Zelle AS CHARACTER 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 = 'D1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Preisliste ' + xPreisgrp. Zelle = 'G1'. 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 = 'D2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = ''. Zelle = 'G2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gPreisliste PROCEDURE NEXTPAGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). IF AktSeite = MaxPage THEN AktSeite = 1. ELSE AktSeite = AktSeite + 1. RUN selectPage ( INPUT AktSeite ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PREVPAGE gPreisliste PROCEDURE PREVPAGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). IF AktSeite = 1 THEN AktSeite = MaxPage. ELSE AktSeite = AktSeite - 1. RUN selectPage ( INPUT AktSeite ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gPreisliste PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE ii AS INTEGER NO-UNDO. DEFINE VARIABLE Netto AS LOG NO-UNDO. DEFINE VARIABLE Alk AS CHARACTER NO-UNDO. DEFINE VARIABLE Preis AS CHARACTER NO-UNDO. DEFINE VARIABLE xWgr AS CHARACTER NO-UNDO. DEFINE VARIABLE xPgr AS CHARACTER NO-UNDO. DEFINE VARIABLE xAgr AS CHARACTER NO-UNDO. DEFINE VARIABLE xFarbe AS CHARACTER NO-UNDO. DEFINE VARIABLE OK AS LOG NO-UNDO. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO. DEFINE VARIABLE Vorlage AS CHARACTER NO-UNDO. DEFINE VARIABLE Dokument AS CHARACTER NO-UNDO. DEFINE VARIABLE Daten AS CHARACTER NO-UNDO. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF VonArtnr = 0 AND BisArtnr = 0 THEN BisArtnr = 999999. IF VonInhalt = 0 AND BisInhalt = 0 THEN BisInhalt = 9999. IF VonKnr = 0 AND BisKnr = 0 THEN BisKnr = 999999. IF VonArtnr > BisArtnr THEN BisArtnr = VonArtnr . IF VonInhalt > BisInhalt THEN BisInhalt = VonInhalt. IF VonKnr > BisKnr THEN BisKnr = VonKnr . IF PreisDatum = ? THEN Preisdatum = TODAY. Pgr = INTEGER(CB_Preisgruppe:SCREEN-VALUE) NO-ERROR. iStatus = INTEGER(CB_Status :SCREEN-VALUE) NO-ERROR. RUN BEREINIGEN ( INPUT-OUTPUT Region ). RUN BEREINIGEN ( INPUT-OUTPUT Warengruppe ). DISPLAY {&list-6}. 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 'Preisliste' KEY Fenster:NAME VALUE cString. LEAVE. END. Fenster = Fenster:NEXT-SIBLING. END. RUN SELEKTION. Vorlage = 'PreislisteWein.xls'. Dokument = Vorlage + CHR(01) + Vorlage. Daten = 'PreislisteWein.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. RUN FIND_PREISGRUPPE ( INPUT Pgr, OUTPUT cString ). xPreisgrp = '??????????'. IF NUM-ENTRIES(cString, CHR(01)) < 2 THEN Netto = TRUE. ELSE DO: xPreisGrp = ENTRY(2, cString, CHR(01)). IF INTEGER(ENTRY(3, cString, CHR(01))) = 0 THEN Netto = TRUE. IF INTEGER(ENTRY(3, cString, CHR(01))) = 1 THEN Netto = FALSE. END. OUTPUT TO VALUE(Daten). PUT CONTROL '£' CHR(10) '£' CHR(10) '£' CHR(10) '£' CHR(10) '£Artnr£Bezeichnung£Jahr£Farbe£Gebinde£Preis£' '£Artnr£Inhalt£Jahr'. IF T_Bestand THEN PUT CONTROL '£Bestand'. IF T_DEP THEN PUT CONTROL '£D-Ep'. PUT CONTROL CHR(10) '£' CHR(10). IF NOT T_Sort THEN RUN AUSGABE_LISTE_1. ELSE RUN AUSGABE_LISTE_2. PUT CONTROL '£' CHR(10) '£*£Nettoartikel (nicht Rabattberechtigt)' CHR(10). OUTPUT CLOSE. INPUT FROM VALUE(Daten) NO-ECHO. EMPTY TEMP-TABLE tExcel. ix = 0. REPEAT TRANSACTION ON STOP UNDO, LEAVE ON ERROR UNDO, NEXT: ix = ix + 1. CREATE tExcel. IMPORT DELIMITER "£" tExcel. ASSIGN tExcel.Zeile = ix. END. INPUT 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' ). IF NOT T_Zusatz THEN excelAppl:Application:RUN ( 'ZusatzZeilenWeg' ). excelAppl:VISIBLE = TRUE. RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. IF cInstall <> 'realwines' THEN DO: FOR EACH tExcel BY tExcel.Zeile: IF tExcel.Zeile < 7 THEN NEXT. Zelle = 'E' + TRIM(STRING(tExcel.Zeile,'zzzzz9')). excelAppl:Range(Zelle):SELECT. excelAppl:Selection:Font:Name = "Wingdings". excelAppl:Selection:FormulaR1C1 = "n". CASE tExcel.Feld[05]: WHEN 'O' THEN DO: excelAppl:Selection:Font:Colorindex = 3. END. WHEN 'W' THEN DO: excelAppl:Selection:Font:Colorindex = 6. END. WHEN 'R' THEN DO: excelAppl:Selection:Font:Colorindex = 7. END. OTHERWISE excelAppl:Selection:FormulaR1C1 = "". END CASE. END. END. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gPreisliste PROCEDURE selectPage : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ 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('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 gPreisliste PROCEDURE SELEKTION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE iAnz AS INTEGER NO-UNDO. EMPTY TEMP-TABLE tArtLief. IF T_Lieferant THEN DO: 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 ArtLief.Inhalt >= VonInhalt AND ArtLief.Inhalt <= BisInhalt 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 ((T_Preisliste = FALSE) OR (T_Preisliste = TRUE AND Artst.Preisliste = TRUE)) AND ((Land = '') OR (Land <> '' AND LOOKUP(Artst.Herk_Lkz, Land, ',') > 0)) AND ((Region = '') OR (Region <> '' AND LOOKUP(STRING(Artst.Reg_Grp,"999"), Region, ',') > 0)) AND ((Warengruppe = '') OR (Warengruppe <> '' AND LOOKUP(STRING(Artst.Wg_Grp ,"999"), Warengruppe, ',') > 0)) AND Artst.Aktiv = TRUE AND Artst.Ausverk < 9 NO-LOCK : FIND FIRST tArtLief USE-INDEX ArtLief-k1 WHERE tArtLief.Firma = ArtLief.Firma AND tArtLief.Artnr = ArtLief.Artnr AND tArtLief.Inhalt = ArtLief.Inhalt AND tArtLief.Jahr = ArtLief.Jahr NO-ERROR. IF AVAILABLE tArtLief THEN NEXT. CREATE tArtLief. BUFFER-COPY ArtLief TO tArtLief. END. END. ELSE DO: FOR EACH Artst USE-INDEX Artst-k1 WHERE Artst.Firma = Firma AND Artst.Artnr >= VonArtnr AND Artst.Artnr <= BisArtnr AND Artst.Inhalt >= VonInhalt AND Artst.Inhalt <= BisInhalt AND ((T_Preisliste = FALSE) OR (T_Preisliste = TRUE AND Artst.Preisliste = TRUE)) AND ((Land = '') OR (Land <> '' AND LOOKUP(Artst.Herk_Lkz, Land, ',') > 0)) AND ((Region = '') OR (Region <> '' AND LOOKUP(STRING(Artst.Reg_Grp,"999"), Region, ',') > 0)) AND ((Warengruppe = '') OR (Warengruppe <> '' AND LOOKUP(STRING(Artst.Wg_Grp ,"999"), Warengruppe, ',') > 0)) AND Artst.Aktiv = TRUE AND Artst.Ausverk < 9 NO-LOCK : FIND FIRST tArtLief USE-INDEX ArtLief-k1 WHERE tArtLief.Firma = Artst.Firma AND tArtLief.Artnr = Artst.Artnr AND tArtLief.Inhalt = Artst.Inhalt AND tArtLief.Jahr = Artst.Jahr NO-ERROR. IF AVAILABLE tArtLief THEN NEXT. CREATE tArtLief. BUFFER-COPY Artst TO tArtLief. END. END. IF T_Bestand THEN DO: FOR EACH tArtLief: FOR EACH ArtLager NO-LOCK WHERE ArtLager.Firma = tArtLief.Firma AND ArtLager.Artnr = tArtLief.Artnr AND ArtLager.Inhalt = tArtLief.Inhalt AND ArtLager.Jahr = tArtLief.Jahr: tArtLief.nBestand = tArtLief.nBestand + ArtLager.Bestand. END. IF tArtLief.nBestand <= 0 THEN DO: DELETE tArtLief. NEXT. END. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gPreisliste PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcAction AS CHARACTER NO-UNDO. /* RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME