&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 cVorlage AS CHARACTER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. DEFINE VARIABLE cDokument AS CHARACTER NO-UNDO. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO. DEFINE VARIABLE Zelle AS CHARACTER NO-UNDO. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO. DEFINE BUFFER BArtst FOR Artst. DEFINE TEMP-TABLE TArtLief LIKE ArtLief. DEFINE TEMP-TABLE tArtikel FIELD Wg_Sort AS CHARACTER FIELD Wg_Grp AS INTEGER FIELD Prod_Sort AS CHARACTER FIELD Prod_Grp AS INTEGER FIELD Art_Sort AS CHARACTER FIELD Art_Grp AS INTEGER FIELD cSort AS CHARACTER FIELD Artnr AS INTEGER FIELD Inhalt AS INTEGER FIELD Jahr AS INTEGER FIELD Suchbe AS CHARACTER FIELD KGeb_Cd AS CHARACTER FIELD VGeb_Cd AS CHARACTER FIELD Alk_Gehalt AS DECIMAL FIELD Bez1 AS CHARACTER FIELD Bez2 AS CHARACTER FIELD Netto AS LOG INIT FALSE FIELD Wgr_Text AS CHARACTER FIELD Pgr_Text AS CHARACTER FIELD Agr_Text AS CHARACTER FIELD KGeb_Inh AS INTEGER FIELD KGeb_KBez AS CHARACTER FIELD VGeb_Inh AS INTEGER FIELD VGeb_KBez AS CHARACTER FIELD cFarbe AS CHARACTER FIELD WHK_Code AS CHARACTER FIELD Listen_EP AS DECIMAL DECIMALS 4 FIELD DEP AS DECIMAL DECIMALS 4 FIELD LEP AS DECIMAL DECIMALS 4 INDEX tArtikel-k1 AS PRIMARY Wg_Grp Prod_Grp Art_Grp Bez1 Inhalt Jahr INDEX tArtikel-k2 Wgr_Text Pgr_Text Agr_Text Bez1 KGeb_Inh INDEX tArtikel-k3 Wg_Sort Wgr_Text Prod_Sort Pgr_Text Art_Sort Agr_Text cSort . 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 Hersteller Warengruppen CB_Preisgruppe ~ Preisdatum VonArtnr BisArtnr vonInhalt bisInhalt vonJahr bisJahr VonKnr ~ BisKnr T_Lief CB_Status T_Zweite T_ZusKol T_EWK T_eShop T_Farbe T_Internet ~ R_Preisliste R_EP R_Sort Btn_Excel RECT-1 &Scoped-Define DISPLAYED-OBJECTS Hersteller Warengruppen CB_Preisgruppe ~ Preisdatum VonArtnr BisArtnr vonInhalt bisInhalt vonJahr bisJahr VonKnr ~ BisKnr T_Lief CB_Status T_Zweite T_ZusKol T_EWK T_eShop T_Farbe T_Internet ~ R_Preisliste R_EP R_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 Hersteller Warengruppen CB_Preisgruppe Preisdatum ~ VonArtnr BisArtnr vonInhalt bisInhalt vonJahr bisJahr VonKnr BisKnr T_Lief ~ T_Zweite T_ZusKol T_EWK T_eShop T_Farbe T_Internet R_Preisliste R_EP R_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 LABEL "*" VIEW-AS FILL-IN SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE bisInhalt AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE bisJahr AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE 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 Hersteller AS CHARACTER FORMAT "X(256)":U LABEL "Hersteller" 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 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 NATIVE SIZE 8 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE vonJahr AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "von - bis Jahr" VIEW-AS FILL-IN NATIVE 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 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_EP AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "EP nicht ausgeben", 1, "Listen-EP", 2, "Durchschnittlicher EP", 3, "Letzter EP", 4 SIZE 41.2 BY 2.71 NO-UNDO. DEFINE VARIABLE R_Preisliste AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Preislistencode nicht berücksichtigen", 1, "nur Artikel mit Preislistencode = Ja", 2, "nur Artikel mit Preislistencode = Nein", 3 SIZE 45 BY 2.38 NO-UNDO. DEFINE VARIABLE R_Sort AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Artikelnummer", 1, "Bezeichnung", 2, "Suchbe", 3 SIZE 45 BY 2 TOOLTIP "Sortierung innerhalb der Artikelgruppe" NO-UNDO. DEFINE RECTANGLE RECT-1 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 90 BY 25.24. DEFINE VARIABLE T_eShop AS LOGICAL INITIAL NO LABEL "nur eShop-Artikel" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 TOOLTIP "sollen Artikelnummer, Inhalt, Jahrgang zusätzlich ausgegeben werden ?" NO-UNDO. DEFINE VARIABLE T_EWK AS LOGICAL INITIAL NO LABEL "Weinhaldeskommissionscode" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 TOOLTIP "sollen Artikelnummer, Inhalt, Jahrgang zusätzlich ausgegeben werden ?" NO-UNDO. DEFINE VARIABLE T_Farbe AS LOGICAL INITIAL NO LABEL "Farbe in Kolonne" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 TOOLTIP "sollen Artikelnummer, Inhalt, Jahrgang zusätzlich ausgegeben werden ?" NO-UNDO. DEFINE VARIABLE T_Internet AS LOGICAL INITIAL NO LABEL "Internetbezeichnung ?" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 NO-UNDO. DEFINE VARIABLE T_Lief AS LOGICAL INITIAL NO LABEL "Lieferant berücksichtigen" VIEW-AS TOGGLE-BOX SIZE 31.6 BY 1 NO-UNDO. DEFINE VARIABLE T_ZusKol AS LOGICAL INITIAL NO LABEL "Zusätzliche Kolonnen" VIEW-AS TOGGLE-BOX SIZE 45 BY 1 TOOLTIP "sollen Artikelnummer, Inhalt, Jahrgang zusätzlich ausgegeben werden ?" 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 Hersteller AT ROW 2 COL 28 COLON-ALIGNED Warengruppen AT ROW 3 COL 28 COLON-ALIGNED CB_Preisgruppe AT ROW 4 COL 28 COLON-ALIGNED Preisdatum AT ROW 5 COL 28 COLON-ALIGNED VonArtnr AT ROW 6 COL 28 COLON-ALIGNED BisArtnr AT ROW 6 COL 41 COLON-ALIGNED vonInhalt AT ROW 7 COL 28 COLON-ALIGNED WIDGET-ID 8 bisInhalt AT ROW 7 COL 41 COLON-ALIGNED WIDGET-ID 10 vonJahr AT ROW 8 COL 28 COLON-ALIGNED WIDGET-ID 12 bisJahr AT ROW 8 COL 41 COLON-ALIGNED WIDGET-ID 14 VonKnr AT ROW 9 COL 28 COLON-ALIGNED BisKnr AT ROW 9 COL 41 COLON-ALIGNED NO-LABEL T_Lief AT ROW 9 COL 55 CB_Status AT ROW 10 COL 28 COLON-ALIGNED T_Zweite AT ROW 11 COL 30 T_ZusKol AT ROW 12 COL 30 T_EWK AT ROW 13 COL 30 T_eShop AT ROW 14 COL 30 T_Farbe AT ROW 15 COL 30 T_Internet AT ROW 16 COL 30 WIDGET-ID 2 R_Preisliste AT ROW 17.52 COL 30 NO-LABEL R_EP AT ROW 20.57 COL 30 NO-LABEL R_Sort AT ROW 24 COL 30 NO-LABEL WIDGET-ID 4 Btn_Excel AT ROW 4.05 COL 81 RECT-1 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.22) 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 bisJahr 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 Hersteller IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN Preisdatum IN FRAME gPreisliste 6 */ /* SETTINGS FOR RADIO-SET R_EP IN FRAME gPreisliste 6 */ /* SETTINGS FOR RADIO-SET R_Preisliste IN FRAME gPreisliste 6 */ /* SETTINGS FOR RADIO-SET R_Sort IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_eShop IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_EWK IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_Farbe IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_Internet IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_Lief IN FRAME gPreisliste 6 */ /* SETTINGS FOR TOGGLE-BOX T_ZusKol 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 vonJahr IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN VonKnr IN FRAME gPreisliste 6 */ /* SETTINGS FOR FILL-IN Warengruppen 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 CB_Preisgruppe &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Preisgruppe gPreisliste ON RETURN OF CB_Preisgruppe IN FRAME gPreisliste /* Preisgruppe */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME CB_Status &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL CB_Status gPreisliste ON RETURN OF CB_Status IN FRAME gPreisliste /* Status */ 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 gPreisliste ON HELP OF Hersteller IN FRAME gPreisliste /* 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 gPreisliste ON LEFT-MOUSE-DBLCLICK OF Hersteller IN FRAME gPreisliste /* 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 R_EP &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL R_EP gPreisliste ON RETURN OF R_EP IN FRAME gPreisliste DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME R_Preisliste &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL R_Preisliste gPreisliste ON RETURN OF R_Preisliste IN FRAME gPreisliste DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME R_Sort &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL R_Sort gPreisliste ON RETURN OF R_Sort IN FRAME gPreisliste DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_eShop &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_eShop gPreisliste ON RETURN OF T_eShop IN FRAME gPreisliste /* nur eShop-Artikel */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_EWK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_EWK gPreisliste ON RETURN OF T_EWK IN FRAME gPreisliste /* Weinhaldeskommissionscode */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Farbe &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Farbe gPreisliste ON RETURN OF T_Farbe IN FRAME gPreisliste /* Farbe in Kolonne */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Internet &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Internet gPreisliste ON RETURN OF T_Internet IN FRAME gPreisliste /* Internetbezeichnung ? */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Lief &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Lief gPreisliste ON RETURN OF T_Lief IN FRAME gPreisliste /* Lieferant berücksichtigen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_ZusKol &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_ZusKol gPreisliste ON RETURN OF T_ZusKol IN FRAME gPreisliste /* Zusätzliche Kolonnen */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Zweite &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Zweite gPreisliste ON RETURN OF T_Zweite IN FRAME gPreisliste /* Zweite Artikelbezeichnung drucken ? */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Warengruppen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Warengruppen gPreisliste ON HELP OF Warengruppen 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 Warengruppen gPreisliste ON LEFT-MOUSE-DBLCLICK OF Warengruppen 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. 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 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 NO-ERROR. 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 Hersteller Warengruppen CB_Preisgruppe Preisdatum VonArtnr BisArtnr vonInhalt bisInhalt vonJahr bisJahr VonKnr BisKnr T_Lief CB_Status T_Zweite T_ZusKol T_EWK T_eShop T_Farbe T_Internet R_Preisliste R_EP R_Sort WITH FRAME gPreisliste. ENABLE Hersteller Warengruppen CB_Preisgruppe Preisdatum VonArtnr BisArtnr vonInhalt bisInhalt vonJahr bisJahr VonKnr BisKnr T_Lief CB_Status T_Zweite T_ZusKol T_EWK T_eShop T_Farbe T_Internet R_Preisliste R_EP R_Sort Btn_Excel RECT-1 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 = 'H1'. 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 = 'H2'. 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 Dokument AS CHARACTER NO-UNDO. DEFINE VARIABLE OK AS LOG NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF VonArtnr = 0 AND BisArtnr = 0 THEN BisArtnr = 999999. IF VonKnr = 0 AND BisKnr = 0 THEN BisKnr = 999999. IF VonInhalt = 0 AND BisInhalt = 0 THEN BisInhalt = 9999. IF VonJahr = 0 AND BisJahr = 0 THEN BisJahr = 9999. IF PreisDatum = ? THEN Preisdatum = TODAY. Pgr = INTEGER(CB_Preisgruppe:SCREEN-VALUE) NO-ERROR. iStatus = INTEGER(CB_Status:SCREEN-VALUE). RUN BEREINIGEN ( INPUT-OUTPUT Hersteller ). RUN BEREINIGEN ( INPUT-OUTPUT Warengruppen ). 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. FIND FIRST tArtikel NO-LOCK NO-ERROR. IF NOT AVAILABLE tArtikel THEN RETURN. cVorlage = 'Preisliste.xls'. Dokument = cVorlage + CHR(01) + cVorlage. 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. cDokument = RETURN-VALUE. Dokument = 'Preisliste.txt'. 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. cDaten = RETURN-VALUE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: RUN FEHLER ( INPUT 1035 ). RETURN NO-APPLY. END. 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(cDaten). PUT CONTROL '£' CHR(10) '£' CHR(10) '£' CHR(10) '£' CHR(10) '£Artnr£Bezeichnung£Kat£Jahr£Alk%£Gebinde£Preis' CHR(10) '£' CHR(10). FOR EACH tArtikel USE-INDEX tArtikel-k3 BREAK BY tArtikel.Wg_Sort BY tArtikel.Wgr_Text BY tArtikel.Prod_Sort BY tArtikel.Pgr_Text BY tArtikel.Art_Grp BY tArtikel.cFarbe BY tArtikel.Agr_Text BY tArtikel.cSort BY tArtikel.Bez1 BY tArtikel.KGeb_Inh BY tArtikel.Jahr : IF FIRST-OF ( tArtikel.Wgr_Text ) THEN IF tArtikel.Wgr_Text <> '' THEN PUT CONTROL tArtikel.Wgr_Text CHR(10). IF FIRST-OF ( tArtikel.Pgr_Text ) THEN IF tArtikel.Pgr_Text <> '' THEN PUT CONTROL tArtikel.Pgr_Text CHR(10). IF FIRST-OF ( tArtikel.Agr_Text ) THEN IF tArtikel.Agr_Text <> '' THEN PUT CONTROL tArtikel.Agr_Text CHR(10). FIND LAST ArtPreis USE-INDEX ArtPreis-k1 WHERE ArtPreis.Firma = Firma AND ArtPreis.Artnr = tArtikel.Artnr AND ArtPreis.Inhalt = tArtikel.Inhalt AND ArtPreis.Jahr = tArtikel.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 tArtikel.Alk_Gehalt <> 0 THEN Alk = STRING(tArtikel.Alk_Gehalt,'z9.99%'). ELSE Alk = ''. PUT CONTROL '£' STRING(tArtikel.Artnr ,'zzzzzz'). IF tArtikel.Netto THEN PUT CONTROL '*'. PUT CONTROL '£' tArtikel.Bez1 '£'. IF T_EWK THEN PUT CONTROL TRIM(SUBSTRING(tArtikel.WHK_Code,01,02)). ELSE PUT CONTROL tArtikel.cFarbe. PUT CONTROL '£' STRING(tArtikel.Jahr ,'zzzz') '£' Alk '£' tArtikel.KGeb_KBez '£' Preis. CASE R_EP: WHEN 2 THEN PUT CONTROL '£' TRIM(STRING(tArtikel.Listen_EP,'>>>>>9.999')). WHEN 3 THEN PUT CONTROL '£' TRIM(STRING(tArtikel.DEP ,'>>>>>9.999')). WHEN 4 THEN PUT CONTROL '£' TRIM(STRING(tArtikel.LEP ,'>>>>>9.999')). END. IF T_ZusKol THEN DO: PUT CONTROL '£' STRING(tArtikel.Artnr ,'999999') '£' STRING(tArtikel.Inhalt ,'9999') '£' STRING(tArtikel.Jahr ,'9999'). END. PUT CONTROL CHR(10). IF T_Zweite THEN DO: IF tArtikel.Bez2 <> '' THEN DO: PUT CONTROL '££' tArtikel.Bez2 CHR(10). END. END. IF LAST-OF ( tArtikel.Agr_Text ) OR LAST-OF ( tArtikel.Pgr_Text ) OR LAST-OF ( tArtikel.Wgr_Text ) THEN PUT CONTROL '£' CHR(10). END. PUT CONTROL '£*£Nettoartikel (nicht Rabattberechtigt)' CHR(10) '£' CHR(10) '£' CHR(10) 'Preise verstehen sich '. IF NOT Netto THEN PUT CONTROL 'inklusive Mehrwertsteuer'. ELSE PUT CONTROL 'exklusive Mehrwertsteuer'. PUT CONTROL CHR(10). OUTPUT CLOSE. INPUT FROM VALUE(cDaten) 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 cDokument, 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;' + cDaten. excelAppl:Application:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. IF T_Farbe THEN DO: FOR EACH TExcel BY TExcel.Zeile: IF TExcel.Zeile < 7 THEN NEXT. Zelle = 'D' + TRIM(STRING(TExcel.Zeile,'zzzzz9')). excelAppl:Range(Zelle):SELECT. excelAppl:Selection:Font:Name = "Wingdings". excelAppl:Selection:FormulaR1C1 = "n". CASE TExcel.Feld[04]: 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 cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cWgr AS CHARACTER NO-UNDO. DEFINE VARIABLE cPgr AS CHARACTER NO-UNDO. DEFINE VARIABLE cAgr AS CHARACTER NO-UNDO. DEFINE VARIABLE cWgrSort AS CHARACTER NO-UNDO. DEFINE VARIABLE cPgrSort AS CHARACTER NO-UNDO. DEFINE VARIABLE cAgrSort AS CHARACTER NO-UNDO. DEFINE VARIABLE fDruck AS LOG NO-UNDO. EMPTY TEMP-TABLE tArtLief. EMPTY TEMP-TABLE tArtikel. IF T_Lief 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 AND ArtLief.Jahr >= vonJahr AND ArtLief.Jahr <= bisJahr 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 ((NOT T_eShop) OR (Artst.eShop = TRUE)) AND ((R_Preisliste = 1) OR (R_Preisliste = 2 AND Artst.Preisliste = TRUE) OR (R_Preisliste = 3 AND Artst.Preisliste = FALSE)) 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 : 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 Artst.Jahr >= vonJahr AND Artst.Jahr <= bisJahr AND ((NOT T_eShop) OR (T_eShop AND Artst.eShop = TRUE)) AND ((R_Preisliste = 1) OR (R_Preisliste = 2 AND Artst.Preisliste = TRUE) OR (R_Preisliste = 3 AND Artst.Preisliste = FALSE)) 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 : CREATE tArtikel. BUFFER-COPY Artst TO tArtikel. END. END. IF T_Lief THEN DO: FOR EACH tArtLief NO-LOCK BREAK BY tArtLief.Artnr BY tArtLief.Inhalt BY tArtLief.Jahr : IF NOT FIRST-OF ( tArtLief.Jahr ) THEN NEXT. FIND Artst OF tArtLief NO-LOCK. CREATE tArtikel. BUFFER-COPY Artst TO tArtikel. END. END. FOR EACH tArtikel NO-LOCK BREAK BY tArtikel.Artnr BY tArtikel.Inhalt BY tArtikel.Jahr : IF NOT FIRST-OF ( tArtikel.Jahr ) THEN DO: DELETE tArtikel. NEXT. END. FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = Firma AND Artst.Artnr = tArtikel.Artnr AND Artst.Inhalt = tArtikel.Inhalt AND Artst.Jahr = tArtikel.Jahr NO-LOCK. FIND FIRST Artbez USE-INDEX Artbez-k1 WHERE Artbez.Firma = Artst.Firma AND Artbez.Artnr = Artst.Artnr AND Artbez.Inhalt = Artst.Inhalt AND Artbez.Jahr = Artst.Jahr NO-LOCK NO-ERROR. IF NOT AVAILABLE ArtBez THEN tArtikel.Bez1 = Artst.Bez. ELSE ASSIGN tArtikel.Bez1 = Artbez.Bez1 tArtikel.Bez2 = Artbez.Bez2. FIND KGebinde NO-LOCK USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Firma AND KGebinde.Geb_Cd = tArtikel.KGeb_Cd NO-ERROR. IF AVAILABLE KGebinde THEN DO: ASSIGN tArtikel.KGeb_Inh = KGebinde.Inhalt tArtikel.KGeb_KBez = KGebinde.KBez. END. ELSE DO: ASSIGN tArtikel.KGeb_Inh = 0 tArtikel.KGeb_KBez = tArtikel.KGeb_Cd. END. FIND VGebinde NO-LOCK USE-INDEX VGebinde-k1 WHERE VGebinde.Firma = Firma AND VGebinde.Geb_Cd = tArtikel.VGeb_Cd NO-ERROR. IF AVAILABLE VGebinde THEN DO: ASSIGN tArtikel.VGeb_Inh = VGebinde.Inhalt tArtikel.VGeb_KBez = VGebinde.KBez. END. ELSE DO: ASSIGN tArtikel.KGeb_Inh = 0 tArtikel.KGeb_KBez = tArtikel.KGeb_Cd. END. RUN FIND_FARBE ( INPUT tArtikel.cFarbe, OUTPUT cString ). IF cString = '?' OR cString = '' THEN cString = CHR(01). cString = ENTRY(2, cString, CHR(01)). CASE cString: WHEN 'rot' THEN tArtikel.cFarbe = 'O'. WHEN 'weiss' THEN tArtikel.cFarbe = 'W'. WHEN 'rose' THEN tArtikel.cFarbe = 'R'. OTHERWISE tArtikel.cFarbe = ''. END CASE. CASE R_Sort: WHEN 1 THEN tArtikel.cSort = STRING(tArtikel.Artnr ,'999999') + STRING(tArtikel.Inhalt,'9999') + STRING(tArtikel.Jahr ,'9999'). WHEN 2 THEN tArtikel.cSort = tArtikel.Bez1. WHEN 3 THEN tArtikel.cSort = tArtikel.Suchbe. END CASE. END. FOR EACH tArtikel NO-LOCK BREAK BY tArtikel.Wg_Grp BY tArtikel.Prod_Grp BY tArtikel.Art_Grp : IF FIRST-OF ( tArtikel.Wg_Grp) THEN DO: RUN FIND_WARENGRP ( INPUT tArtikel.Wg_Grp, OUTPUT cString ). IF cString = '?' THEN DO: cWgr = STRING(tArtikel.Wg_Grp,'999'). cWgrSort = cWgr. END. ELSE DO: cWgrSort = ENTRY(5, cString, CHR(01)). fDruck = (IF ENTRY(6, cString, CHR(01)) BEGINS 'n' THEN FALSE ELSE TRUE). cWgr = (IF T_Internet THEN ENTRY(4, cString, CHR(01)) ELSE ENTRY(2, cString, CHR(01))). IF cWgr = '' THEN cWgr = ENTRY(2, cString, CHR(01)). IF cWgrSort = '' THEN cWgrSort = cWgr. IF NOT fDruck THEN cWgr = ''. END. END. IF FIRST-OF ( tArtikel.Prod_Grp) THEN DO: RUN FIND_PRODGRP ( INPUT tArtikel.Wg_Grp, INPUT tArtikel.Prod_Grp, OUTPUT cString ). IF cString = '?' THEN DO: cPgr = STRING(tArtikel.Prod_Grp,'999'). cPgrSort = cPgr. END. ELSE DO: cPgrSort = ENTRY(5, cString, CHR(01)). fDruck = (IF ENTRY(6, cString, CHR(01)) BEGINS 'n' THEN FALSE ELSE TRUE). cPgr = (IF T_Internet THEN ENTRY(4, cString, CHR(01)) ELSE ENTRY(2, cString, CHR(01))). IF cPgr = '' THEN cPgr = ENTRY(2, cString, CHR(01)). IF cPgrSort = '' THEN cPgrSort = cPgr. IF NOT fDruck THEN cPgr = ''. END. END. IF FIRST-OF ( tArtikel.Art_Grp) THEN DO: RUN FIND_ARTIKGRP ( INPUT tArtikel.Wg_Grp, INPUT tArtikel.Prod_Grp, INPUT tArtikel.Art_Grp, OUTPUT cString ). IF cString = '?' THEN DO: cAgr = STRING(tArtikel.Art_Grp,'999'). cAgrSort = cAgr. END. ELSE DO: cAgrSort = ENTRY(5, cString, CHR(01)). fDruck = (IF ENTRY(6, cString, CHR(01)) BEGINS 'n' THEN FALSE ELSE TRUE). cAgr = (IF T_Internet THEN ENTRY(4, cString, CHR(01)) ELSE ENTRY(2, cString, CHR(01))). IF cAgr = '' THEN cAgr = ENTRY(2, cString, CHR(01)). IF cAgrSort = '' THEN cAgrSort = cAgr. IF NOT fDruck THEN cAgr = ''. END. END. ASSIGN tArtikel.Wgr_Text = cWgr tArtikel.Pgr_Text = cPgr tArtikel.Agr_Text = cAgr tArtikel.Wg_Sort = cWgrSort tArtikel.Prod_Sort = cPgrSort tArtikel.Art_Sort = cAgrSort . 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