&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gPreiseEpMarge &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gPreiseEpMarge /*------------------------------------------------------------------------ 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 Firma AS CHARACTER NO-UNDO. DEFINE VARIABLE Progname AS CHARACTER NO-UNDO. DEFINE VARIABLE ok AS LOG NO-UNDO. DEFINE VARIABLE AddText AS CHARACTER NO-UNDO. DEFINE VARIABLE VWGrp AS INTEGER NO-UNDO. DEFINE VARIABLE VDateiName AS CHARACTER NO-UNDO. DEFINE VARIABLE VxlsDatei AS CHARACTER NO-UNDO. DEFINE VARIABLE VcsvDatei AS CHARACTER NO-UNDO. DEFINE VARIABLE VWert AS CHARACTER NO-UNDO. DEFINE VARIABLE htExcel AS HANDLE NO-UNDO. DEFINE VARIABLE iArtnr AS INTEGER NO-UNDO. DEFINE VARIABLE iInhalt AS INTEGER NO-UNDO. DEFINE VARIABLE iJahr AS INTEGER NO-UNDO. DEFINE VARIABLE hFeld AS HANDLE NO-UNDO. DEFINE STREAM In_Stream. DEFINE VARIABLE excelAppl AS COMPONENT-HANDLE NO-UNDO. DEFINE TEMP-TABLE tPreisGrp NO-UNDO FIELD Preis_Grp AS INTEGER FIELD Brutto AS LOG FIELD WucdK AS INTEGER FIELD cMarge AS CHARACTER. DEFINE TEMP-TABLE tArtPreis LIKE ArtPreis. DEFINE BUFFER BArtPreis FOR ArtPreis. DEFINE TEMP-TABLE tExcel NO-UNDO FIELD A AS CHARACTER FIELD B AS CHARACTER FIELD C AS CHARACTER FIELD D AS CHARACTER FIELD E AS CHARACTER FIELD F AS CHARACTER FIELD G AS CHARACTER FIELD H AS CHARACTER FIELD I AS CHARACTER FIELD J AS CHARACTER FIELD K AS CHARACTER FIELD L AS CHARACTER FIELD M AS CHARACTER FIELD N AS CHARACTER FIELD O AS CHARACTER FIELD P AS CHARACTER FIELD Q AS CHARACTER FIELD R AS CHARACTER FIELD S AS CHARACTER FIELD T AS CHARACTER FIELD U AS CHARACTER FIELD V AS CHARACTER FIELD W AS CHARACTER FIELD X AS CHARACTER FIELD Y AS CHARACTER FIELD Z AS CHARACTER . /* _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 gPreiseEpMarge /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_Datum F_Dateiname Btn_Datei F_SpArtnr ~ F_SpInhalt F_SpJahr F_SpEp CB_Preisgrp_1 F_SpPrGrp_1 CB_Preisgrp_2 ~ F_SpPrGrp_2 CB_Preisgrp_3 F_SpPrGrp_3 CB_Preisgrp_4 F_SpPrGrp_4 ~ CB_Preisgrp_5 F_SpPrGrp_5 R_Runden Btn_OK Btn_Cancel RECT-5 &Scoped-Define DISPLAYED-OBJECTS F_Datum F_Dateiname F_SpArtnr F_SpInhalt ~ F_SpJahr F_SpEp CB_Preisgrp_1 F_SpPrGrp_1 CB_Preisgrp_2 F_SpPrGrp_2 ~ CB_Preisgrp_3 F_SpPrGrp_3 CB_Preisgrp_4 F_SpPrGrp_4 CB_Preisgrp_5 ~ F_SpPrGrp_5 R_Runden /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_Datum F_Dateiname F_SpArtnr F_SpInhalt F_SpJahr ~ F_SpEp F_SpPrGrp_1 F_SpPrGrp_2 F_SpPrGrp_3 F_SpPrGrp_4 F_SpPrGrp_5 R_Runden /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel AUTO-END-KEY LABEL "&Abbrechen" SIZE 15 BY 1 BGCOLOR 15 . DEFINE BUTTON Btn_Datei IMAGE-UP FILE "grafik/select.bmp":U IMAGE-DOWN FILE "grafik/select.bmp":U IMAGE-INSENSITIVE FILE "grafik/select.bmp":U LABEL "D" SIZE 6 BY 1. DEFINE BUTTON Btn_OK LABEL "&Starten" SIZE 15 BY 1 BGCOLOR 15 . DEFINE VARIABLE CB_Preisgrp_1 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 31.2 BY 1 NO-UNDO. DEFINE VARIABLE CB_Preisgrp_2 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 31.2 BY 1 NO-UNDO. DEFINE VARIABLE CB_Preisgrp_3 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 31.2 BY 1 NO-UNDO. DEFINE VARIABLE CB_Preisgrp_4 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 31.2 BY 1 NO-UNDO. DEFINE VARIABLE CB_Preisgrp_5 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 31.2 BY 1 NO-UNDO. DEFINE VARIABLE F_Dateiname AS CHARACTER FORMAT "X(256)":U LABEL "Dateiname" VIEW-AS FILL-IN NATIVE SIZE 58 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_Datum AS DATE FORMAT "99.99.9999":U LABEL "ab Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SpArtnr AS CHARACTER FORMAT "X(256)":U LABEL "Spalte Artikelnummer" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SpEp AS CHARACTER FORMAT "X(256)":U LABEL "Spalte EP" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SpInhalt AS CHARACTER FORMAT "X(256)":U LABEL "Spalte Inhalt" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SpJahr AS CHARACTER FORMAT "X(256)":U LABEL "Spalte Jahr" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SpPrGrp_1 AS CHARACTER FORMAT "X(256)":U LABEL "Spalte Marge" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SpPrGrp_2 AS CHARACTER FORMAT "X(256)":U LABEL "Spalte Marge" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SpPrGrp_3 AS CHARACTER FORMAT "X(256)":U LABEL "Spalte Marge" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SpPrGrp_4 AS CHARACTER FORMAT "X(256)":U LABEL "Spalte Marge" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_SpPrGrp_5 AS CHARACTER FORMAT "X(256)":U LABEL "Spalte Marge" VIEW-AS FILL-IN NATIVE SIZE 4 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE R_Runden AS INTEGER VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Keine Rundung", 1, "5er Rundung", 2, "10er Rundung", 3 SIZE 40 BY 2.52 NO-UNDO. DEFINE RECTANGLE RECT-5 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 86 BY 16.19. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gPreiseEpMarge F_Datum AT ROW 1.52 COL 20 COLON-ALIGNED F_Dateiname AT ROW 2.52 COL 20 COLON-ALIGNED WIDGET-ID 16 Btn_Datei AT ROW 2.52 COL 81 WIDGET-ID 18 F_SpArtnr AT ROW 4 COL 74 COLON-ALIGNED WIDGET-ID 20 F_SpInhalt AT ROW 5 COL 74 COLON-ALIGNED WIDGET-ID 22 F_SpJahr AT ROW 6 COL 74 COLON-ALIGNED WIDGET-ID 24 F_SpEp AT ROW 7 COL 74 COLON-ALIGNED WIDGET-ID 26 CB_Preisgrp_1 AT ROW 8.14 COL 19.8 COLON-ALIGNED WIDGET-ID 30 F_SpPrGrp_1 AT ROW 8 COL 74 COLON-ALIGNED WIDGET-ID 32 CB_Preisgrp_2 AT ROW 9.14 COL 19.8 COLON-ALIGNED WIDGET-ID 34 F_SpPrGrp_2 AT ROW 9 COL 74 COLON-ALIGNED WIDGET-ID 36 CB_Preisgrp_3 AT ROW 10.14 COL 19.8 COLON-ALIGNED WIDGET-ID 38 F_SpPrGrp_3 AT ROW 10 COL 74 COLON-ALIGNED WIDGET-ID 40 CB_Preisgrp_4 AT ROW 11.14 COL 19.8 COLON-ALIGNED WIDGET-ID 42 F_SpPrGrp_4 AT ROW 11 COL 74 COLON-ALIGNED WIDGET-ID 44 CB_Preisgrp_5 AT ROW 12.14 COL 19.8 COLON-ALIGNED WIDGET-ID 46 F_SpPrGrp_5 AT ROW 12 COL 74 COLON-ALIGNED WIDGET-ID 48 R_Runden AT ROW 14 COL 22 NO-LABELS WIDGET-ID 4 Btn_OK AT ROW 14.52 COL 69 Btn_Cancel AT ROW 15.52 COL 69 RECT-5 AT ROW 1.24 COL 2 SPACE(1.19) SKIP(0.23) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Marge Preisgruppe". /* *********************** 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 gPreiseEpMarge /* ************************* 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 gPreiseEpMarge FRAME-NAME Custom */ ASSIGN FRAME gPreiseEpMarge:SCROLLABLE = FALSE FRAME gPreiseEpMarge:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN F_Dateiname IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_Datum IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_SpArtnr IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_SpEp IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_SpInhalt IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_SpJahr IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_SpPrGrp_1 IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_SpPrGrp_2 IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_SpPrGrp_3 IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_SpPrGrp_4 IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR FILL-IN F_SpPrGrp_5 IN FRAME gPreiseEpMarge 6 */ /* SETTINGS FOR RADIO-SET R_Runden IN FRAME gPreiseEpMarge 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gPreiseEpMarge /* Query rebuild information for DIALOG-BOX gPreiseEpMarge _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gPreiseEpMarge */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gPreiseEpMarge &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreiseEpMarge gPreiseEpMarge ON END-ERROR OF FRAME gPreiseEpMarge /* Marge Preisgruppe */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreiseEpMarge gPreiseEpMarge ON GO OF FRAME gPreiseEpMarge /* Marge Preisgruppe */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gPreiseEpMarge gPreiseEpMarge ON WINDOW-CLOSE OF FRAME gPreiseEpMarge /* Marge Preisgruppe */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gPreiseEpMarge ON CHOOSE OF Btn_Cancel IN FRAME gPreiseEpMarge /* Abbrechen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Datei &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Datei gPreiseEpMarge ON CHOOSE OF Btn_Datei IN FRAME gPreiseEpMarge /* D */ DO: RUN DATEI_EINGABE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gPreiseEpMarge ON CHOOSE OF Btn_OK IN FRAME gPreiseEpMarge /* Starten */ DO: RUN NEURECHNEN. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gPreiseEpMarge /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. Progname = ENTRY(1, THIS-PROCEDURE:NAME, '.') NO-ERROR. SESSION:DATA-ENTRY-RETURN = TRUE. /* TRIGGERS ------------------------------------------------------ */ ON 'END-ERROR':U OF FRAME {&FRAME-NAME} ANYWHERE DO: RUN ENDE. 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 gPreiseEpMarge _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 CREATE_PreisGrp gPreiseEpMarge PROCEDURE CREATE_PreisGrp : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipPreis_Grp AS INTEGER NO-UNDO. DEFINE INPUT PARAMETER ipSpMarge AS CHARACTER NO-UNDO. DEFINE VARIABLE WucdK AS INTEGER NO-UNDO. DEFINE VARIABLE cDaten AS CHARACTER NO-UNDO. IF ipSpMarge = '' THEN RETURN. ipSpMarge = REPLACE(REPLACE(ipSpMarge, "'", ""), ',', ''). WucdK = 1. FOR EACH Debst USE-INDEX Debst-k1 WHERE Debst.Firma = Firma AND Debst.Preis_Grp = ipPreis_Grp NO-LOCK: WucdK = Debst.MWST. LEAVE. END. RUN FIND_PREISGRUPPE ( ipPreis_Grp, OUTPUT cDaten ). CREATE tPreisGrp. ASSIGN tPreisGrp.Preis_Grp = ipPreis_Grp tPreisGrp.Brutto = (IF INTEGER(ENTRY(3, cDaten, CHR(01))) = 0 THEN FALSE ELSE TRUE) tPreisGrp.WucdK = WucdK tPreisGrp.cMarge = ipSpMarge. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE DATEI_EINGABE gPreiseEpMarge PROCEDURE DATEI_EINGABE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE OKpressed AS LOG NO-UNDO. DEFINE VARIABLE VDateiname AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN F_Dateiname. VDateiName = F_Dateiname. SYSTEM-DIALOG GET-FILE VDateiName TITLE 'Oeffnen der Exceldatei' FILTERS 'Excel-Dateien (*.xls, *.xlsx)' '*.xls,*.xlsx', 'Alle Dateien (*.*) ' '*.*' MUST-EXIST USE-FILENAME UPDATE OKpressed. IF OKPressed = TRUE THEN F_Dateiname = VDateiName. DISPLAY F_Dateiname. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gPreiseEpMarge _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 gPreiseEpMarge. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gPreiseEpMarge PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE Wgr AS INTEGER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: RUN COMBO_PREISGRP (INPUT CB_PreisGrp_1:HANDLE) NO-ERROR. CB_PreisGrp_1:LIST-ITEM-PAIRS = 'Keine Preisgruppe;999999;' + CB_PreisGrp_1:LIST-ITEM-PAIRS. ASSIGN CB_PreisGrp_2:DELIMITER = ';' CB_PreisGrp_3:DELIMITER = ';' CB_PreisGrp_4:DELIMITER = ';' CB_PreisGrp_5:DELIMITER = ';' CB_PreisGrp_2:LIST-ITEM-PAIRS = CB_PreisGrp_1:LIST-ITEM-PAIRS CB_PreisGrp_3:LIST-ITEM-PAIRS = CB_PreisGrp_1:LIST-ITEM-PAIRS CB_PreisGrp_4:LIST-ITEM-PAIRS = CB_PreisGrp_1:LIST-ITEM-PAIRS CB_PreisGrp_5:LIST-ITEM-PAIRS = CB_PreisGrp_1:LIST-ITEM-PAIRS CB_PreisGrp_1:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_1:LIST-ITEM-PAIRS, ';') CB_PreisGrp_2:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_2:LIST-ITEM-PAIRS, ';') CB_PreisGrp_3:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_3:LIST-ITEM-PAIRS, ';') CB_PreisGrp_4:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_4:LIST-ITEM-PAIRS, ';') CB_PreisGrp_5:SCREEN-VALUE = ENTRY(2, CB_PreisGrp_5:LIST-ITEM-PAIRS, ';') NO-ERROR. . END. RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gPreiseEpMarge _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_Datum F_Dateiname F_SpArtnr F_SpInhalt F_SpJahr F_SpEp CB_Preisgrp_1 F_SpPrGrp_1 CB_Preisgrp_2 F_SpPrGrp_2 CB_Preisgrp_3 F_SpPrGrp_3 CB_Preisgrp_4 F_SpPrGrp_4 CB_Preisgrp_5 F_SpPrGrp_5 R_Runden WITH FRAME gPreiseEpMarge. ENABLE F_Datum F_Dateiname Btn_Datei F_SpArtnr F_SpInhalt F_SpJahr F_SpEp CB_Preisgrp_1 F_SpPrGrp_1 CB_Preisgrp_2 F_SpPrGrp_2 CB_Preisgrp_3 F_SpPrGrp_3 CB_Preisgrp_4 F_SpPrGrp_4 CB_Preisgrp_5 F_SpPrGrp_5 R_Runden Btn_OK Btn_Cancel RECT-5 WITH FRAME gPreiseEpMarge. VIEW FRAME gPreiseEpMarge. {&OPEN-BROWSERS-IN-QUERY-gPreiseEpMarge} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gPreiseEpMarge 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 SCHREIBENFWAUSWERTUNGEN ( Progname, FRAME {&FRAME-NAME}:HANDLE ). 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 EXCEL_TO_CSV gPreiseEpMarge PROCEDURE EXCEL_TO_CSV : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER ipDateiName AS CHARACTER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DO WHILE TRUE: CREATE "Excel.Application" excelAppl CONNECT NO-ERROR. IF VALID-HANDLE(excelAppl) THEN LEAVE. CREATE "Excel.Application" excelAppl NO-ERROR. LEAVE. END. IF NOT VALID-HANDLE(excelAppl) THEN RETURN. VxlsDatei = ipDateiName. ix = R-INDEX(VxlsDatei, '.'). IF ix = 0 THEN VcsvDatei = VxlsDatei + '.csv'. ELSE VcsvDatei = SUBSTRING(VxlsDatei,01,ix - 1) + '.csv'. IF SEARCH(VcsvDatei) <> ? THEN OS-DELETE VALUE(VcsvDatei). excelAppl:Visible = TRUE. excelAppl:Workbooks:Open(VxlsDatei, 0, TRUE , 4, "", "", TRUE , , ";", ,). excelAppl:ActiveWorkbook:SaveAs (VcsvDatei, 6, "", "", FALSE, FALSE, FALSE ). excelAppl:ActiveWorkbook:Close ( FALSE, VcsvDatei ). RELEASE OBJECT excelAppl. EMPTY TEMP-TABLE tExcel. INPUT STREAM In_Stream FROM VALUE(VcsvDatei) NO-ECHO NO-MAP NO-CONVERT. REPEAT TRANSACTION ON STOP UNDO, LEAVE: CREATE tExcel. IMPORT STREAM In_Stream DELIMITER ';' tExcel. END. INPUT STREAM In_Stream CLOSE. DO WITH FRAME {&FRAME-NAME}: htExcel = TEMP-TABLE tExcel:DEFAULT-BUFFER-HANDLE. hFeld = htExcel:BUFFER-FIELD(F_SpArtnr) NO-ERROR. IF ERROR-STATUS:ERROR OR NOT VALID-HANDLE ( hFeld ) THEN DO: MESSAGE 'Spalte für Artikelnummer ist ungültig' VIEW-AS ALERT-BOX. APPLY 'ENTRY' TO F_SpArtnr. RETURN NO-APPLY. END. FOR EACH tExcel: IF hFeld:BUFFER-VALUE = '' OR hFeld:BUFFER-VALUE = ? THEN DO: DELETE tExcel. NEXT. END. iArtnr = INTEGER(hFeld:BUFFER-VALUE(0)) NO-ERROR. IF ERROR-STATUS:ERROR OR iArtnr = 0 THEN DO: DELETE tExcel. NEXT. END. END. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject gPreiseEpMarge 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 initializeObject gPreiseEpMarge PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ RUN SUPER. RUN LESENFWAUSWERTUNGEN ( Progname, FRAME {&FRAME-NAME}:HANDLE ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEURECHNEN gPreiseEpMarge PROCEDURE NEURECHNEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE iPreisGrp AS INTEGER NO-UNDO. DEFINE VARIABLE dPreis AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE WucdK AS INTEGER NO-UNDO. DEFINE VARIABLE WucdA AS INTEGER NO-UNDO. DEFINE VARIABLE Ansatz AS DECIMAL NO-UNDO. DEFINE VARIABLE dMarge AS DECIMAL NO-UNDO. DEFINE VARIABLE Rundbetr AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE dListen_EP AS DECIMAL NO-UNDO DECIMALS 4. DEFINE VARIABLE cDBUser AS CHARACTER NO-UNDO. DEFINE VARIABLE ja AS LOG NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE cFeld AS CHARACTER NO-UNDO. DEFINE VARIABLE cErlaubt AS CHARACTER NO-UNDO INIT '0123456789.-'. DEFINE VARIABLE ii AS INTEGER NO-UNDO. EMPTY TEMP-TABLE tArtPreis. CREATE tArtPreis. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF F_Datum = ? THEN F_Datum = TODAY. IF F_Dateiname = '' THEN DO: RUN FEHLER ( 1020 ). APPLY 'ENTRY' TO F_Dateiname. RETURN NO-APPLY. END. IF F_SpArtnr = '' THEN DO: RUN FEHLER ( 1020 ). APPLY 'ENTRY' TO F_SpArtnr. RETURN NO-APPLY. END. IF F_SpEp = '' THEN DO: RUN FEHLER ( 1020 ). APPLY 'ENTRY' TO F_SpEp. RETURN NO-APPLY. END. EMPTY TEMP-TABLE tPreisGrp. IF INTEGER(CB_PreisGrp_1:SCREEN-VALUE) <> 999999 THEN DO: RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_1:SCREEN-VALUE), F_SpPrGrp_1 ). END. IF INTEGER(CB_PreisGrp_2:SCREEN-VALUE) <> 999999 THEN DO: RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_2:SCREEN-VALUE), F_SpPrGrp_2 ). END. IF INTEGER(CB_PreisGrp_3:SCREEN-VALUE) <> 999999 THEN DO: RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_3:SCREEN-VALUE), F_SpPrGrp_3 ). END. IF INTEGER(CB_PreisGrp_4:SCREEN-VALUE) <> 999999 THEN DO: RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_4:SCREEN-VALUE), F_SpPrGrp_4 ). END. IF INTEGER(CB_PreisGrp_5:SCREEN-VALUE) <> 999999 THEN DO: RUN CREATE_PreisGrp ( INTEGER(CB_PreisGrp_5:SCREEN-VALUE), F_SpPrGrp_5 ). END. DISPLAY {&List-6}. DISABLE Btn_OK Btn_Cancel. RUN EXCEL_TO_CSV ( F_Dateiname ). EMPTY TEMP-TABLE tArtPreis. cDBUser = DYNAMIC-FUNCTION('getDBUser':U) NO-ERROR. htExcel = TEMP-TABLE tExcel:DEFAULT-BUFFER-HANDLE. FOR EACH tExcel: ASSIGN iArtnr = 0 iInhalt = 0 iJahr = 0. hFeld = htExcel:BUFFER-FIELD(F_SpArtnr). iArtnr = INTEGER(hFeld:BUFFER-VALUE(0)). hFeld = htExcel:BUFFER-FIELD(F_SpInhalt) NO-ERROR. IF VALID-HANDLE(hFeld) THEN iInhalt = INTEGER(hFeld:BUFFER-VALUE(0)). hFeld = htExcel:BUFFER-FIELD(F_SpJahr) NO-ERROR. IF VALID-HANDLE(hFeld) THEN iJahr = INTEGER(hFeld:BUFFER-VALUE(0)). hFeld = htExcel:BUFFER-FIELD(F_SpEp). dListen_EP = DECIMAL(hFeld:BUFFER-VALUE(0)) NO-ERROR. IF ERROR-STATUS:ERROR OR dListen_EP = ? THEN DO: cFeld = hFeld:BUFFER-VALUE(0). cString = ''. DO ii = 1 TO LENGTH(cFeld). IF INDEX(cErlaubt, SUBSTRING(cFeld,ii,01)) = 0 THEN NEXT. cString = cString + substring(cFeld,ii,01). END. dListen_EP = DECIMAL(cString) NO-ERROR. END. FIND Artst WHERE Artst.Firma = Firma AND Artst.Artnr = iArtnr AND Artst.Inhalt = iInhalt AND Artst.Jahr = iJahr NO-ERROR. IF NOT AVAILABLE Artst THEN NEXT. Artst.Listen_EP = dListen_EP. WucdA = Artst.MWST. FOR EACH tPreisGrp: FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = tPreisGrp.WucdK AND Wust.CodeA = WucdA NO-LOCK NO-ERROR. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = Wust.WuCd AND MWSTAns.Datum <= F_Datum NO-LOCK NO-ERROR. IF AVAILABLE MWSTAns THEN Ansatz = MWSTAns.Ansatz. hFeld = htExcel:BUFFER-FIELD(tPreisGrp.cMarge) NO-ERROR. IF NOT VALID-HANDLE ( hFeld ) THEN NEXT. dMarge = DECIMAL(hFeld:BUFFER-VALUE(0)) NO-ERROR. IF ERROR-STATUS:ERROR OR dMarge = ? OR dmarge = 0 THEN NEXT. CREATE tArtPreis. ASSIGN tArtPreis.Firma = Firma tArtPreis.Artnr = iArtnr tArtPreis.Inhalt = iInhalt tArtPreis.Jahr = iJahr tArtPreis.Preis_Grp = tPreisGrp.Preis_Grp tArtPreis.Ab_Datum = F_Datum tArtPreis.VK_Netto = dListen_EP * 100 / (100 - dMarge) tArtPreis.Marge = dMarge tArtPreis.Aktion = FALSE tArtPreis.erstellt_am = TODAY tArtPreis.Aenderungs_Art = 9 tArtPreis.Aenderungs_Text = '' tArtPreis.Aenderungs_Wert = dMarge tArtPreis.Aenderungs_Rundung = R_Runden tArtPreis.Aenderungs_Sabe = cDBUser . IF tPreisGrp.Brutto THEN DO: tArtPreis.VK_Brutto = tArtPreis.VK_Netto * (100 + Ansatz) / 100. IF R_Runden > 1 THEN DO: RUN RUNDEN ( INPUT (R_Runden - 1), INPUT-OUTPUT tArtPreis.VK_Brutto ). END. tArtPreis.VK_Netto = tArtPreis.VK_Brutto * 100 / (100 + Ansatz). END. ELSE DO: IF R_Runden > 1 THEN DO: RUN RUNDEN ( INPUT (R_Runden - 1), INPUT-OUTPUT tArtPreis.VK_Netto ). END. tArtPreis.VK_Brutto = tArtPreis.VK_Netto * (100 + Ansatz) / 100. END. END. END. FOR EACH tArtPreis: FIND ArtPreis OF tArtPreis NO-ERROR. IF NOT AVAILABLE ArtPreis THEN CREATE ArtPreis. BUFFER-COPY tArtPreis TO ArtPreis. RELEASE ArtPreis. END. ENABLE Btn_OK Btn_Cancel. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME