&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gPreislisteKunde &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gPreislisteKunde /*------------------------------------------------------------------------ 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 Pgr AS INT NO-UNDO. DEF VAR Firma AS CHAR INIT '1000' NO-UNDO. DEF VAR AdFirma AS CHAR INIT '1000' NO-UNDO. DEF VAR FwSprcd AS INT NO-UNDO. DEF VAR RetVal AS CHAR NO-UNDO. DEF VAR xPreisgrp AS CHAR NO-UNDO. DEF VAR ProgName AS CHAR NO-UNDO. DEF VAR Inkl AS LOG NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR cDateiName AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF BUFFER BArtst FOR Artst. DEF TEMP-TABLE TArtLief LIKE ArtLief. DEF TEMP-TABLE TArtikel FIELD Wg_Sort AS CHAR FIELD Wg_Grp AS INT FIELD Prod_Sort AS CHAR FIELD Prod_Grp AS INT FIELD Art_Sort AS CHAR FIELD Art_Grp AS INT FIELD Artik_Sort AS CHAR FIELD Artnr AS INT FIELD Inhalt AS INT FIELD Jahr AS INT FIELD KGeb_Cd AS CHAR FIELD VGeb_Cd AS CHAR FIELD Alk_Gehalt AS DEC FIELD Bez1 AS CHAR FIELD Bez2 AS CHAR FIELD Preis AS DEC DECIMALS 3 FIELD Netto AS LOG INIT FALSE FIELD Wgr_Text AS CHAR FIELD Pgr_Text AS CHAR FIELD Agr_Text AS CHAR FIELD KGeb_Inh AS INT FIELD VGeb_Inh AS INT FIELD KGeb_KBez AS CHAR FIELD VGeb_KBez AS CHAR FIELD Herk_Lkz AS CHAR 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. DEF TEMP-TABLE tAufze NO-UNDO LIKE Aufze FIELD Knr AS INT FIELD Datum AS DATE FIELD lAktion AS LOG INIT TRUE . DEF VAR htAufze AS HANDLE NO-UNDO. /* _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 gPreislisteKunde /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-37 F_Knr Hersteller Warengruppen ~ F_Adresse Herkunft Preisdatum VonArtnr BisArtnr VonInhalt BisInhalt VonJahr ~ BisJahr vonDatum bisDatum VonKnr BisKnr T_Lief T_Internet T_Zweite ~ R_Preisliste T_Bezogen R_Sort Btn_Excel &Scoped-Define DISPLAYED-OBJECTS F_Knr Hersteller Warengruppen F_Adresse ~ Herkunft Preisdatum VonArtnr BisArtnr VonInhalt BisInhalt VonJahr BisJahr ~ vonDatum bisDatum VonKnr BisKnr T_Lief T_Internet T_Zweite R_Preisliste ~ T_Bezogen R_Sort /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-5 Btn_Excel &Scoped-define List-6 F_Knr Hersteller Warengruppen F_Adresse Herkunft ~ Preisdatum VonArtnr BisArtnr VonInhalt BisInhalt VonJahr BisJahr vonDatum ~ bisDatum VonKnr BisKnr T_Lief T_Internet T_Zweite R_Preisliste T_Bezogen ~ 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 BisArtnr AS INTEGER FORMAT "999999":U INITIAL 999999 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE bisDatum AS DATE FORMAT "99.99.9999":U LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 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 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Adresse AS CHARACTER FORMAT "X(256)":U VIEW-AS FILL-IN NATIVE SIZE 48 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Knr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "Kunde" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 TOOLTIP "Kunde" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Herkunft AS CHARACTER FORMAT "X(256)":U LABEL "Herkunftsländer" VIEW-AS FILL-IN NATIVE SIZE 46 BY 1 TOOLTIP "F1, rechte Maustaste zur Auswahl" BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Hersteller AS CHARACTER FORMAT "X(256)":U LABEL "Hersteller" VIEW-AS FILL-IN NATIVE SIZE 46 BY 1 TOOLTIP "F1, rechte Maustaste zur Auswahl" 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 NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE vonDatum AS DATE FORMAT "99.99.9999":U LABEL "von - bis Datum (bezogen)" VIEW-AS FILL-IN NATIVE SIZE 16 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 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 TOOLTIP "F1, rechte Maustaste zur Auswahl" BGCOLOR 15 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 "sort Artikelbezeichnung", 0, "sort Artikelnummer", 1, "sort nach Herkunftsland", 2 SIZE 48 BY 2.48 NO-UNDO. DEFINE RECTANGLE RECT-37 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 90 BY 21.91. DEFINE VARIABLE T_Bezogen AS LOGICAL INITIAL NO LABEL "Nur bezogene Artikel" VIEW-AS TOGGLE-BOX SIZE 37 BY 1 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 YES LABEL "Lieferantenauswahl" VIEW-AS TOGGLE-BOX SIZE 27 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 gPreislisteKunde F_Knr AT ROW 1.81 COL 15 COLON-ALIGNED Hersteller AT ROW 3.52 COL 28 COLON-ALIGNED Warengruppen AT ROW 4.52 COL 28 COLON-ALIGNED F_Adresse AT ROW 1.81 COL 26 COLON-ALIGNED NO-LABEL NO-TAB-STOP Herkunft AT ROW 5.52 COL 28 COLON-ALIGNED WIDGET-ID 12 Preisdatum AT ROW 6.52 COL 28 COLON-ALIGNED VonArtnr AT ROW 7.52 COL 28 COLON-ALIGNED BisArtnr AT ROW 7.52 COL 46 COLON-ALIGNED VonInhalt AT ROW 8.52 COL 28 COLON-ALIGNED WIDGET-ID 14 BisInhalt AT ROW 8.52 COL 46 COLON-ALIGNED WIDGET-ID 16 VonJahr AT ROW 9.52 COL 28 COLON-ALIGNED WIDGET-ID 20 BisJahr AT ROW 9.52 COL 46 COLON-ALIGNED WIDGET-ID 18 vonDatum AT ROW 10.52 COL 28 COLON-ALIGNED WIDGET-ID 4 bisDatum AT ROW 10.52 COL 46 COLON-ALIGNED WIDGET-ID 6 VonKnr AT ROW 11.52 COL 28 COLON-ALIGNED BisKnr AT ROW 11.52 COL 46 COLON-ALIGNED T_Lief AT ROW 11.52 COL 63 T_Internet AT ROW 12.52 COL 30 WIDGET-ID 2 T_Zweite AT ROW 13.52 COL 30 R_Preisliste AT ROW 15 COL 30 NO-LABEL T_Bezogen AT ROW 18 COL 30 R_Sort AT ROW 19.52 COL 30 NO-LABEL WIDGET-ID 8 Btn_Excel AT ROW 4 COL 82.2 RECT-37 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 für einen Kunden". /* *********************** 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 gPreislisteKunde /* ************************* 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 gPreislisteKunde FRAME-NAME Custom */ ASSIGN FRAME gPreislisteKunde:SCROLLABLE = FALSE FRAME gPreislisteKunde:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN BisArtnr IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN bisDatum IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN BisInhalt IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN BisJahr IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN BisKnr IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gPreislisteKunde 5 */ /* SETTINGS FOR FILL-IN F_Adresse IN FRAME gPreislisteKunde 6 */ ASSIGN F_Adresse:READ-ONLY IN FRAME gPreislisteKunde = TRUE. /* SETTINGS FOR FILL-IN F_Knr IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN Herkunft IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN Hersteller IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN Preisdatum IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR RADIO-SET R_Preisliste IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR RADIO-SET R_Sort IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR TOGGLE-BOX T_Bezogen IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR TOGGLE-BOX T_Internet IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR TOGGLE-BOX T_Lief IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR TOGGLE-BOX T_Zweite IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN VonArtnr IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN vonDatum IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN VonInhalt IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN VonJahr IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN VonKnr IN FRAME gPreislisteKunde 6 */ /* SETTINGS FOR FILL-IN Warengruppen IN FRAME gPreislisteKunde 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gPreislisteKunde /* Query rebuild information for DIALOG-BOX gPreislisteKunde _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gPreislisteKunde */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gPreislisteKunde &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreislisteKunde gPreislisteKunde ON END-ERROR OF FRAME gPreislisteKunde /* Preisliste für einen Kunden */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreislisteKunde gPreislisteKunde ON GO OF FRAME gPreislisteKunde /* Preisliste für einen Kunden */ DO: RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreislisteKunde gPreislisteKunde ON WINDOW-CLOSE OF FRAME gPreislisteKunde /* Preisliste für einen Kunden */ 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 gPreislisteKunde ON CHOOSE OF Btn_Excel IN FRAME gPreislisteKunde /* Excel */ DO: DO WITH FRAME {&FRAME-NAME}: SESSION:SET-WAIT-STATE('GENERAL'). Btn_Excel:VISIBLE = FALSE. RUN REPORT. Btn_Excel:VISIBLE = TRUE. SESSION:SET-WAIT-STATE(''). RUN ENDE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Knr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr gPreislisteKunde ON ALT-F OF F_Knr IN FRAME gPreislisteKunde /* Kunde */ DO: DEF VAR iRecid AS RECID NO-UNDO. RUN 'g-suchen-adresse.w':U ( 'DEB', OUTPUT iRecid ). IF iRecid = ? OR iRecid = 0 THEN RETURN NO-APPLY. FIND Adresse NO-LOCK WHERE RECID(Adresse) = iRecid NO-ERROR. F_Knr = Adresse.Knr. F_Adresse = Adresse.Anzeig_br. DISPLAY {&list-6} WITH FRAME {&FRAME-NAME}. APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Knr gPreislisteKunde ON LEAVE OF F_Knr IN FRAME gPreislisteKunde /* Kunde */ DO: DEF VAR Knr AS INT NO-UNDO. IF KEYFUNCTION(LASTKEY) = 'END-ERROR' THEN RETURN. IF LAST-EVENT:FUNCTION = 'WINDOW-CLOSE' THEN RETURN. Knr = INTEGER(SELF:SCREEN-VALUE) NO-ERROR. IF Knr = 0 THEN DO: APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = Knr NO-LOCK NO-ERROR. IF NOT AVAILABLE Adresse THEN DO: F_Adresse:SCREEN-VALUE = ''. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. F_Adresse:SCREEN-VALUE = Adresse.Anzeig_Br. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Herkunft &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Herkunft gPreislisteKunde ON HELP OF Herkunft IN FRAME gPreislisteKunde /* Herkunftslä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 Herkunft gPreislisteKunde ON RIGHT-MOUSE-CLICK OF Herkunft IN FRAME gPreislisteKunde /* Herkunftslä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 Hersteller &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Hersteller gPreislisteKunde ON HELP OF Hersteller IN FRAME gPreislisteKunde /* 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 gPreislisteKunde ON RIGHT-MOUSE-CLICK OF Hersteller IN FRAME gPreislisteKunde /* 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_Preisliste &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL R_Preisliste gPreislisteKunde ON RETURN OF R_Preisliste IN FRAME gPreislisteKunde 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 gPreislisteKunde ON RETURN OF T_Lief IN FRAME gPreislisteKunde /* Lieferantenauswahl */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Lief gPreislisteKunde ON VALUE-CHANGED OF T_Lief IN FRAME gPreislisteKunde /* Lieferantenauswahl */ DO: DO WITH FRAME {&FRAME-NAME}: ASSIGN T_Lief. IF T_Lief THEN DO: VonKnr:READ-ONLY = FALSE. BisKnr:READ-ONLY = FALSE. END. ELSE DO: VonKnr:READ-ONLY = TRUE. BisKnr:READ-ONLY = TRUE. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Warengruppen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Warengruppen gPreislisteKunde ON HELP OF Warengruppen IN FRAME gPreislisteKunde /* 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 gPreislisteKunde ON RIGHT-MOUSE-CLICK OF Warengruppen IN FRAME gPreislisteKunde /* 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 gPreislisteKunde /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. ProgName = ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') 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 gPreislisteKunde _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 gPreislisteKunde 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 changePage gPreislisteKunde 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 gPreislisteKunde _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 gPreislisteKunde. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gPreislisteKunde 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. RUN LESENFWAUSWERTUNGEN ( INPUT ProgName, INPUT FRAME {&FRAME-NAME}:CURRENT-ITERATION ). 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 gPreislisteKunde _DEFAULT-ENABLE PROCEDURE enable_UI : /*------------------------------------------------------------------------------ Purpose: ENABLE the User Interface Parameters: Notes: Here we display/view/enable the widgets in the user-interface. In addition, OPEN all queries associated with each FRAME and BROWSE. These statements here are based on the "Other Settings" section of the widget Property Sheets. ------------------------------------------------------------------------------*/ DISPLAY F_Knr Hersteller Warengruppen F_Adresse Herkunft Preisdatum VonArtnr BisArtnr VonInhalt BisInhalt VonJahr BisJahr vonDatum bisDatum VonKnr BisKnr T_Lief T_Internet T_Zweite R_Preisliste T_Bezogen R_Sort WITH FRAME gPreislisteKunde. ENABLE RECT-37 F_Knr Hersteller Warengruppen F_Adresse Herkunft Preisdatum VonArtnr BisArtnr VonInhalt BisInhalt VonJahr BisJahr vonDatum bisDatum VonKnr BisKnr T_Lief T_Internet T_Zweite R_Preisliste T_Bezogen R_Sort Btn_Excel WITH FRAME gPreislisteKunde. VIEW FRAME gPreislisteKunde. {&OPEN-BROWSERS-IN-QUERY-gPreislisteKunde} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gPreislisteKunde 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 gPreislisteKunde 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 gPreislisteKunde 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 NEXTPAGE gPreislisteKunde 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 gPreislisteKunde 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 gPreislisteKunde 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 Netto AS LOG NO-UNDO. DEF VAR Alk AS CHAR NO-UNDO. DEF VAR Preis 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 ja 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. DEF VAR Zeile AS INT 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 VonJahr = 0 AND BisJahr = 0 THEN BisJahr = 9999 . IF VonKnr = 0 AND BisKnr = 0 THEN BisKnr = 999999 . IF BisArtnr < VonArtnr THEN BisArtnr = VonArtnr. IF BisInhalt < VonInhalt THEN BisInhalt = VonInhalt. IF BisJahr < VonJahr THEN BisJahr = VonJahr . IF BisKnr < VonKnr THEN BisKnr = VonKnr . IF PreisDatum = ? THEN Preisdatum = TODAY. IF T_Bezogen THEN DO: IF vonDatum = ? THEN vonDatum = 01/01/0001. IF bisDatum = ? THEN bisDatum = DATE(12,31,YEAR(TODAY)). IF bisDatum < vonDatum THEN vonDatum = bisDatum. END. RUN BEREINIGEN ( INPUT-OUTPUT Hersteller ). RUN BEREINIGEN ( INPUT-OUTPUT Warengruppen ). Herkunft = REPLACE(Herkunft, ' ', '' ). Herkunft = REPLACE(Herkunft, '.', ','). Herkunft = REPLACE(Herkunft, ';', ','). DISPLAY {&List-6}. END. RUN SCHREIBENFWAUSWERTUNGEN ( INPUT ProgName, INPUT FRAME {&FRAME-NAME}:CURRENT-ITERATION ). RUN SELEKTION. FIND FIRST tArtikel NO-LOCK NO-ERROR. IF NOT AVAILABLE tArtikel THEN RETURN. cVorlage = 'PreislisteKunde' + '.xls'. cDokument = 'PreislisteKunde' + '.xls'. cDaten = 'PreislisteKunde' + '.txt'. cDateiName = cDokument + CHR(01) + cVorlage. RUN CREATEDATEI ( INPUT cDateiName ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. cDokument = RETURN-VALUE. cDateiName = cDaten. RUN CREATEDATEI ( INPUT cDateiName ). IF RETURN-VALUE BEGINS 'ERROR' THEN RETURN NO-APPLY. cDaten = RETURN-VALUE. OUTPUT TO Value(cDaten). FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = F_Knr NO-LOCK NO-ERROR. DO ix = 1 TO 12: IF ix <> 11 THEN PUT CONTROL '££££' Adresse.Anschrift[ix] CHR(10). ELSE PUT CONTROL '£Kundennummer : ' STRING(Adresse.Knr,'999999') '£££' Adresse.Anschrift[ix] CHR(10). END. PUT CONTROL '£' 'Preise gültig am : ' STRING(Preisdatum,'99.99.9999') CHR(10). PUT CONTROL '£' CHR(10) '£Artnr£Bezeichnung£Jahr£Alk-%£Inhalt£Gebinde£Preis' CHR(10) '£' CHR(10). IF R_Sort <> 2 THEN DO: FOR EACH tArtikel USE-INDEX tArtikel-k2 WHERE tArtikel.Preis <> 0 NO-LOCK BREAK BY tArtikel.Wg_Sort BY tArtikel.Wgr_Text BY tArtikel.Prod_Sort BY tArtikel.Pgr_Text BY tArtikel.Art_Sort BY tArtikel.Agr_Text BY tArtikel.Artik_Sort BY tArtikel.KGeb_Inh : 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). PUT CONTROL '£' TRIM(STRING(tArtikel.Artnr,'zzzzzz')). IF tArtikel.Netto THEN PUT CONTROL '*'. PUT CONTROL '£' tArtikel.Bez1 '£'. IF tArtikel.Jahr > 10 THEN PUT CONTROL TRIM(STRING(tArtikel.Jahr,'zzzz')). PUT CONTROL '£'. IF tArtikel.Alk_Gehalt <> 0 THEN PUT CONTROL TRIM(STRING(tArtikel.Alk_Gehalt,'z9.99')). PUT CONTROL '£' tArtikel.KGeb_KBez. PUT CONTROL '£' tArtikel.VGeb_KBez. PUT CONTROL '£'. PUT CONTROL TRIM(STRING(tArtikel.Preis,'zzzz9.99')) CHR(10). IF T_Zweite THEN DO: IF tArtikel.Bez2 <> '' THEN PUT CONTROL '££' tArtikel.Bez2 CHR(10). 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. END. ELSE DO: FOR EACH tArtikel USE-INDEX tArtikel-k2 WHERE tArtikel.Preis <> 0 NO-LOCK BREAK BY tArtikel.Artik_Sort BY tArtikel.Wg_Sort BY tArtikel.Wgr_Text BY tArtikel.Prod_Sort BY tArtikel.Pgr_Text BY tArtikel.Art_Sort BY tArtikel.Agr_Text BY tArtikel.KGeb_Inh : IF FIRST-OF ( tArtikel.Artik_Sort) THEN PUT CONTROL tArtikel.Artik_Sort CHR(10). 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). PUT CONTROL '£' TRIM(STRING(tArtikel.Artnr,'zzzzzz')). IF tArtikel.Netto THEN PUT CONTROL '*'. PUT CONTROL '£' tArtikel.Bez1 '£'. IF tArtikel.Jahr > 10 THEN PUT CONTROL TRIM(STRING(tArtikel.Jahr,'zzzz')). PUT CONTROL '£'. IF tArtikel.Alk_Gehalt <> 0 THEN PUT CONTROL TRIM(STRING(tArtikel.Alk_Gehalt,'z9.99')). PUT CONTROL '£' tArtikel.KGeb_KBez. PUT CONTROL '£' tArtikel.VGeb_KBez. PUT CONTROL '£'. PUT CONTROL TRIM(STRING(tArtikel.Preis,'zzzz9.99')) CHR(10). IF T_Zweite THEN DO: IF tArtikel.Bez2 <> '' THEN PUT CONTROL '££' tArtikel.Bez2 CHR(10). END. IF LAST-OF ( tArtikel.Artik_Sort ) OR LAST-OF ( tArtikel.Agr_Text ) OR LAST-OF ( tArtikel.Pgr_Text ) OR LAST-OF ( tArtikel.Wgr_Text ) THEN PUT CONTROL '£' CHR(10). END. END. PUT CONTROL '£*£Nettoartikel (nicht rabattberechtigt)' CHR(10) '£' CHR(10) 'Preise verstehen sich '. IF Inkl THEN PUT CONTROL 'inklusive Mehrwertsteuer'. ELSE PUT CONTROL 'exklusive Mehrwertsteuer'. PUT CONTROL CHR(10). OUTPUT CLOSE. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: RUN FEHLER ( INPUT 1035 ). RETURN. END. RUN OPENEXCEL ( INPUT excelAppl, INPUT cDokument, INPUT '', OUTPUT ja ). IF NOT ja THEN DO: RUN FEHLER ( INPUT 1040 ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ). Zeile = 5. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. IF Steuer.Ort <> '' THEN DO: Zelle = 'B' + STRING(Zeile). excelAppl:Range(Zelle):SELECT. excelAppl:Selection:Value = Steuer.Ort. Zeile = Zeile - 1. END. IF Steuer.Strasse <> '' THEN DO: Zelle = 'B' + STRING(Zeile). excelAppl:Range(Zelle):SELECT. excelAppl:Selection:Value = Steuer.Strasse. Zeile = Zeile - 1. END. IF Steuer.Firma2 <> '' THEN DO: Zelle = 'B' + STRING(Zeile). excelAppl:Range(Zelle):SELECT. excelAppl:Selection:Value = Steuer.Firma2. Zeile = Zeile - 1. END. IF Steuer.Firma1 <> '' THEN DO: Zelle = 'B' + STRING(Zeile). excelAppl:Range(Zelle):SELECT. excelAppl:Selection:Value = Steuer.Firma1. Zeile = Zeile - 1. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gPreislisteKunde 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 gPreislisteKunde PROCEDURE SELEKTION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR Sprcd AS INT NO-UNDO. DEF VAR FwPreis_Grp AS INT NO-UNDO. DEF VAR NoPreis_Grp AS INT NO-UNDO. DEF VAR AbPreis_Grp AS INT NO-UNDO. DEF VAR Preis_Grp AS INT NO-UNDO. DEF VAR Zei_Rab_Art AS INT NO-UNDO. DEF VAR Zei_Rab_Wert AS DEC DECIMALS 3 NO-UNDO. DEF VAR Preis AS DEC DECIMALS 4 NO-UNDO. DEF VAR RabAr AS INT NO-UNDO. DEF VAR RabPr AS DEC DECIMALS 3 NO-UNDO. DEF VAR RabFr AS DEC DECIMALS 3 NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR FAbweich AS LOG NO-UNDO. DEF VAR FSpezPreis AS INT NO-UNDO. DEF VAR NettoRab AS INT NO-UNDO. DEF VAR cWgr AS CHAR NO-UNDO. DEF VAR cPgr AS CHAR NO-UNDO. DEF VAR cAgr AS CHAR NO-UNDO. DEF VAR cWgrSort AS CHAR NO-UNDO. DEF VAR cPgrSort AS CHAR NO-UNDO. DEF VAR cAgrSort AS CHAR NO-UNDO. DEF VAR fDruck AS LOG NO-UNDO. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR. FwPreis_Grp = DYNAMIC-FUNCTION('GETFWPREISGRP':U) NO-ERROR. NettoRab = DYNAMIC-FUNCTION('GETFWNETTORAB':U) NO-ERROR. 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 ((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 ((Herkunft = '') OR (Herkunft <> '' AND LOOKUP(Artst.Herk_Lkz, Herkunft, ',') > 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 NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = Firma AND Artst.Artnr >= VonArtnr AND Artst.Artnr <= BisArtnr AND ArtLief.Inhalt >= VonInhalt AND ArtLief.Inhalt <= BisInhalt AND ArtLief.Jahr >= VonJahr AND ArtLief.Jahr <= BisJahr 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 ((Herkunft = '') OR (Herkunft <> '' AND LOOKUP(Artst.Herk_Lkz, Herkunft, ',') > 0)) AND Artst.Aktiv = TRUE AND Artst.Ausverk < 9 : CREATE tArtikel. BUFFER-COPY Artst TO tArtikel. CASE R_Sort: WHEN 0 THEN tArtikel.Artik_Sort = Artst.Bez. WHEN 1 THEN tArtikel.Artik_Sort = STRING(Artst.Artnr ,'999999') + STRING(Artst.Inhalt,'9999') + STRING(Artst.Jahr ,'9999'). WHEN 2 THEN tArtikel.Artik_Sort = Artst.Herk_Lkz. END CASE. END. END. FIND Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Firma AND Debst.Knr = F_Knr NO-LOCK NO-ERROR. IF AVAILABLE Debst THEN DO: NoPreis_Grp = Debst.Preis_Grp. Zei_Rab_Art = Debst.Zei_Rab_Art. Zei_Rab_Wert = Debst.Zei_Rab_Wert. END. ELSE DO: NoPreis_Grp = FwPreis_Grp. Zei_Rab_Art = 0. Zei_Rab_Wert = 0. END. RUN FIND_PREISGRUPPE ( INPUT NoPreis_Grp, OUTPUT cString ). IF cString = '' THEN inkl = FALSE. ELSE DO: IF INTEGER(ENTRY(3, cString, CHR(01))) = 1 THEN inkl = TRUE. ELSE inkl = FALSE. 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. CASE R_Sort: WHEN 0 THEN tArtikel.Artik_Sort = Artst.Bez. WHEN 1 THEN tArtikel.Artik_Sort = STRING(Artst.Artnr ,'999999') + STRING(Artst.Inhalt,'9999') + STRING(Artst.Jahr ,'9999'). WHEN 2 THEN tArtikel.Artik_Sort = Artst.Herk_Lkz. END CASE. END. END. IF T_Bezogen THEN DO: FOR EACH tArtikel: FIND FIRST Artbw USE-INDEX Artbw-k7 WHERE Artbw.Firma = Firma AND Artbw.Artnr = tArtikel.Artnr AND Artbw.Inhalt = tArtikel.Inhalt AND Artbw.Jahr = tArtikel.Jahr AND Artbw.Tr_Art = 01 AND Artbw.Datum >= vonDatum AND Artbw.Datum <= bisDatum AND Artbw.Knr = F_Knr NO-LOCK NO-ERROR. IF AVAILABLE Artbw THEN NEXT. DELETE tArtikel. END. END. EMPTY TEMP-TABLE tAufze. CREATE tAufze. htAufze = TEMP-TABLE tAufze:DEFAULT-BUFFER-HANDLE. 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 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 AND Artbez.Sprcd = Sprcd NO-LOCK NO-ERROR. IF NOT AVAILABLE Artbez THEN DO: 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. END. 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.VGeb_Inh = 0 tArtikel.VGeb_KBez = tArtikel.VGeb_Cd. END. FIND FIRST tAufze. ASSIGN tAufze.Firma = Firma tAufze.Aufnr = -1 tAufze.Pos = 10 tAufze.Artnr = tArtikel.Artnr tAufze.Inhalt = tArtikel.Inhalt tAufze.Jahr = tArtikel.Jahr tAufze.Netto = tArtikel.Netto tAufze.Knr = F_Knr tAufze.KGeb_Be = 1 tAufze.KGeb_Me = 1 tAufze.MBest = 1.0 tAufze.MGeli = 1.0 . DYNAMIC-FUNCTION('fillAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. ASSIGN tAufze.GGeb_Be = 0.0 tAufze.VGeb_Be = 0.0 tAufze.KGeb_Be = 1.0 tAufze.GGeb_Me = 0.0 tAufze.VGeb_Me = 0.0 tAufze.KGeb_Me = 1.0 tAufze.MBest = 1.0 tAufze.MGeli = 1.0 tAufze.Knr = F_Knr tAufze.Datum = PreisDatum tAufze.lAktion = FALSE . DYNAMIC-FUNCTION('getPreisAufze':U, INPUT-OUTPUT htAufze ) NO-ERROR. tArtikel.Preis = tAufze.Net_Betr. 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: IF NUM-ENTRIES(cString, CHR(01)) < 5 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. END. IF FIRST-OF ( tArtikel.Prod_Grp) THEN DO: RUN FIND_PRODGRP ( INPUT tArtikel.Wg_Grp, INPUT tArtikel.Prod_Grp, OUTPUT cString ). IF cPgr = '?' THEN DO: cPgr = STRING(tArtikel.Prod_Grp,'999'). cPgrSort = cPgr. END. ELSE DO: IF NUM-ENTRIES(cString, CHR(01)) < 5 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. 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 cAgr ). IF cAgr = '?' THEN DO: cAgr = STRING(tArtikel.Art_Grp,'999'). cAgrSort = cAgr. END. ELSE DO: IF NUM-ENTRIES(cString, CHR(01)) < 5 THEN DO: cAgr = STRING(tArtikel.Art_Grp,'999'). cAgrSort = cAgr. END. ELSE DO: cAgrSort = ENTRY(5, cAgr, CHR(01)). fDruck = (IF ENTRY(6, cAgr, CHR(01)) BEGINS 'n' THEN FALSE ELSE TRUE). cAgr = (IF T_Internet THEN ENTRY(4, cAgr, CHR(01)) ELSE ENTRY(2, cAgr, CHR(01))). IF cAgr = '' THEN cAgr = ENTRY(2, cString, CHR(01)). IF cAgrSort = '' THEN cAgrSort = cAgr. IF NOT fDruck THEN cAgr = ''. END. 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 . IF R_Sort = 2 THEN DO: FIND FIRST Land NO-LOCK WHERE Land.Lkz = tArtikel.Herk_Lkz NO-ERROR. IF AVAILABLE Land THEN tArtikel.Artik_Sort = Land.Bez. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gPreislisteKunde PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER pcAction AS CHAR NO-UNDO. /* RUN TOOLBAR IN h_dyntoolbar ( INPUT pcAction ). */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME