&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME wUmsatz /* Temp-Table and Buffer definitions */ DEFINE TEMP-TABLE TUmsatz NO-UNDO LIKE HilfsTab. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS wUmsatz /*------------------------------------------------------------------------ File: Description: from cntnrwin.w - ADM SmartWindow Template Input Parameters: Output Parameters: History: New V9 Version - January 15, 1998 ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AB. */ /*----------------------------------------------------------------------*/ /* 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 Fenster AS HANDLE NO-UNDO. DEFINE VARIABLE hToolbar AS HANDLE NO-UNDO. DEFINE VARIABLE FMutFlag AS LOG NO-UNDO INIT FALSE. DEFINE VARIABLE VDiff AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE XMonate AS CHARACTER NO-UNDO INIT 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember,Kummulation'. { incl/tmpbrowser.i } /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK /* ******************** Preprocessor Definitions ******************** */ &Scoped-define PROCEDURE-TYPE SmartWindow &Scoped-define DB-AWARE no &Scoped-define ADM-CONTAINER WINDOW &Scoped-define ADM-SUPPORTED-LINKS Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source /* Name of designated FRAME-NAME and/or first browse and/or first query */ &Scoped-define FRAME-NAME fMain &Scoped-define BROWSE-NAME Br_TUmsatz /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES TUmsatz /* Definitions for BROWSE Br_TUmsatz */ &Scoped-define FIELDS-IN-QUERY-Br_TUmsatz TUmsatz.Sort_1 TUmsatz.Zeichen[1] ~ TUmsatz.Zeichen[2] TUmsatz.Wert_1 TUmsatz.Wert_2 TUmsatz.Wert[1] ~ TUmsatz.Wert[2] &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_TUmsatz &Scoped-define QUERY-STRING-Br_TUmsatz FOR EACH TUmsatz NO-LOCK INDEXED-REPOSITION &Scoped-define OPEN-QUERY-Br_TUmsatz OPEN QUERY Br_TUmsatz FOR EACH TUmsatz NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-Br_TUmsatz TUmsatz &Scoped-define FIRST-TABLE-IN-QUERY-Br_TUmsatz TUmsatz /* Definitions for FRAME fMain */ /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS F_VonDatum F_BisDatum Btn_Rechnen Br_TUmsatz ~ F_AnzArtums F_AnzAufze RECT-33 &Scoped-Define DISPLAYED-OBJECTS F_VonDatum F_BisDatum F_AnzArtums ~ F_AnzAufze /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_VonDatum F_BisDatum /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define the widget handle for the window */ DEFINE VARIABLE wUmsatz AS WIDGET-HANDLE NO-UNDO. /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Rechnen LABEL "Rechnen" SIZE 15 BY 1. DEFINE VARIABLE F_AnzArtums AS INTEGER FORMAT "z,zzz,zz9":U INITIAL 0 LABEL "Anzahl Umsatzzeilen" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_AnzAufze AS INTEGER FORMAT "z,zzz,zz9":U INITIAL 0 LABEL "Anzahl Auftragszeilen" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/02 LABEL "--" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U INITIAL 01/01/02 LABEL "von - bis Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-33 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 103 BY 14.29. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_TUmsatz FOR TUmsatz SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_TUmsatz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_TUmsatz wUmsatz _STRUCTURED QUERY Br_TUmsatz NO-LOCK DISPLAY TUmsatz.Sort_1 COLUMN-LABEL "Jahr" FORMAT "x(06)":U TUmsatz.Zeichen[1] COLUMN-LABEL "Warengruppe" FORMAT "x(26)":U TUmsatz.Zeichen[2] COLUMN-LABEL "Monat" FORMAT "x(12)":U TUmsatz.Wert_1 COLUMN-LABEL "Wert EP" FORMAT "zzz,zzz,zz9-":U TUmsatz.Wert_2 COLUMN-LABEL "Wert VP" FORMAT "zzz,zzz,zz9-":U TUmsatz.Wert[1] COLUMN-LABEL "DB Betrag" FORMAT "zzz,zzz,zz9-":U TUmsatz.Wert[2] COLUMN-LABEL "Marge %" FORMAT "zzz9.99-":U WIDTH 14 /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 100 BY 8.67 BGCOLOR 15 FIT-LAST-COLUMN. /* ************************ Frame Definitions *********************** */ DEFINE FRAME fMain F_VonDatum AT ROW 11 COL 28 COLON-ALIGNED F_BisDatum AT ROW 11 COL 49.2 COLON-ALIGNED Btn_Rechnen AT ROW 13.52 COL 73.4 Br_TUmsatz AT ROW 1.48 COL 3 F_AnzArtums AT ROW 12.52 COL 28 COLON-ALIGNED NO-TAB-STOP F_AnzAufze AT ROW 13.52 COL 28 COLON-ALIGNED NO-TAB-STOP RECT-33 AT ROW 1.24 COL 2 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY SIDE-LABELS NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 119 BY 16. /* *********************** Procedure Settings ************************ */ &ANALYZE-SUSPEND _PROCEDURE-SETTINGS /* Settings for THIS-PROCEDURE Type: SmartWindow Allow: Basic,Browse,DB-Fields,Query,Smart,Window Container Links: Data-Target,Data-Source,Page-Target,Update-Source,Update-Target,Filter-target,Filter-Source Design Page: 1 Other Settings: COMPILE Temp-Tables and Buffers: TABLE: TUmsatz T "?" NO-UNDO AnaDat HilfsTab END-TABLES. */ &ANALYZE-RESUME _END-PROCEDURE-SETTINGS /* ************************* Create Window ************************** */ &ANALYZE-SUSPEND _CREATE-WINDOW IF SESSION:DISPLAY-TYPE = "GUI":U THEN CREATE WINDOW wUmsatz ASSIGN HIDDEN = YES TITLE = "Umsatzstatistik" HEIGHT = 14.76 WIDTH = 105 MAX-HEIGHT = 48.76 MAX-WIDTH = 256 VIRTUAL-HEIGHT = 48.76 VIRTUAL-WIDTH = 256 RESIZE = NO SCROLL-BARS = NO STATUS-AREA = NO BGCOLOR = ? FGCOLOR = ? THREE-D = YES MESSAGE-AREA = NO SENSITIVE = YES. ELSE {&WINDOW-NAME} = CURRENT-WINDOW. /* END WINDOW DEFINITION */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB wUmsatz /* ************************* Included-Libraries *********************** */ {src/adm2/containr.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* *********** Runtime Attributes and AppBuilder Settings *********** */ &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES /* SETTINGS FOR WINDOW wUmsatz VISIBLE,,RUN-PERSISTENT */ /* SETTINGS FOR FRAME fMain FRAME-NAME Custom */ /* BROWSE-TAB Br_TUmsatz Btn_Rechnen fMain */ ASSIGN F_AnzArtums:READ-ONLY IN FRAME fMain = TRUE. ASSIGN F_AnzAufze:READ-ONLY IN FRAME fMain = TRUE. /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME fMain 6 */ /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME fMain 6 */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wUmsatz) THEN wUmsatz:HIDDEN = YES. /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_TUmsatz /* Query rebuild information for BROWSE Br_TUmsatz _TblList = "Temp-Tables.TUmsatz" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] > Temp-Tables.TUmsatz.Sort_1 "TUmsatz.Sort_1" "Jahr" "x(06)" "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[2] > Temp-Tables.TUmsatz.Zeichen[1] "TUmsatz.Zeichen[1]" "Warengruppe" "x(26)" "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[3] > Temp-Tables.TUmsatz.Zeichen[2] "TUmsatz.Zeichen[2]" "Monat" "x(12)" "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[4] > Temp-Tables.TUmsatz.Wert_1 "TUmsatz.Wert_1" "Wert EP" "zzz,zzz,zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[5] > Temp-Tables.TUmsatz.Wert_2 "TUmsatz.Wert_2" "Wert VP" "zzz,zzz,zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[6] > Temp-Tables.TUmsatz.Wert[1] "TUmsatz.Wert[1]" "DB Betrag" "zzz,zzz,zz9-" "decimal" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" "" "" "" "" 0 no 0 no no _FldNameList[7] > Temp-Tables.TUmsatz.Wert[2] "TUmsatz.Wert[2]" "Marge %" "zzz9.99-" "decimal" ? ? ? ? ? ? no ? no no "14" yes no no "U" "" "" "" "" "" "" 0 no 0 no no _Query is NOT OPENED */ /* BROWSE Br_TUmsatz */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME wUmsatz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wUmsatz wUmsatz ON END-ERROR OF wUmsatz /* Umsatzstatistik */ OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO: IF THIS-PROCEDURE:PERSISTENT THEN RETURN NO-APPLY. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL wUmsatz wUmsatz ON WINDOW-CLOSE OF wUmsatz /* Umsatzstatistik */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_TUmsatz &Scoped-define SELF-NAME Br_TUmsatz &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_TUmsatz wUmsatz ON ROW-DISPLAY OF Br_TUmsatz IN FRAME fMain DO: IF NOT AVAILABLE TUmsatz THEN RETURN. DO WITH FRAME {&FRAME-NAME}: IF INTEGER(TUmsatz.Sort_3) = 13 THEN DO: TUmsatz.Sort_1 :BGCOLOR IN BROWSE Br_TUmsatz = 14. TUmsatz.Zeichen[01]:BGCOLOR IN BROWSE Br_TUmsatz = 14. TUmsatz.Zeichen[02]:BGCOLOR IN BROWSE Br_TUmsatz = 14. TUmsatz.Wert_1 :BGCOLOR IN BROWSE Br_TUmsatz = 14. TUmsatz.Wert_2 :BGCOLOR IN BROWSE Br_TUmsatz = 14. TUmsatz.Wert [01]:BGCOLOR IN BROWSE Br_TUmsatz = 14. TUmsatz.Wert [02]:BGCOLOR IN BROWSE Br_TUmsatz = 14. END. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_TUmsatz wUmsatz ON START-SEARCH OF Br_TUmsatz IN FRAME fMain DO: { incl/brwstartsearch.i } END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Rechnen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Rechnen wUmsatz ON CHOOSE OF Btn_Rechnen IN FRAME fMain /* Rechnen */ DO: DO WITH FRAME {&FRAME-NAME}: Btn_Rechnen:SENSITIVE = FALSE. SESSION:SET-WAIT-STATE('GENERAL'). RUN RECHNEN. SESSION:SET-WAIT-STATE(''). Btn_Rechnen:SENSITIVE = TRUE. APPLY 'ENTRY' TO Br_TUmsatz. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK wUmsatz /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. SAktiv = DYNAMIC-FUNCTION('getSuperAktiv':U) NO-ERROR. IF SAktiv THEN DO: Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. END. SESSION:DATA-ENTRY-RETURN = TRUE. /* SUBSCRIBE TO 'TOOLBAR' ANYWHERE. */ /* TRIGGERS ------------------------------------------------------ */ ON 'ALT-CURSOR-RIGHT':U OF {&WINDOW-NAME} ANYWHERE DO: RUN NEXTPAGE. RETURN NO-APPLY. END. ON 'ALT-CURSOR-LEFT':U OF {&WINDOW-NAME} ANYWHERE DO: RUN PREVPAGE. RETURN NO-APPLY. END. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE DO: RUN ENTRY_CURSOR. RETURN NO-APPLY. END. ON 'END-ERROR':U OF {&WINDOW-NAME} ANYWHERE DO: FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U) NO-ERROR. IF FMutFlag = FALSE THEN DO: RUN ENDE. RETURN NO-APPLY. END. RUN TOOLBAR IN hToolbar ( INPUT 'CANCEL':U ). RETURN NO-APPLY. END. /* Include custom Main Block code for SmartWindows. */ PROCEDURE ShellExecuteA EXTERNAL "shell32.dll": DEFINE INPUT PARAMETER hwnd AS LONG. /* Handle to parent window */ DEFINE INPUT PARAMETER lpOperation AS CHARACTER. /* Operation to perform: open, print */ DEFINE INPUT PARAMETER lpFile AS CHARACTER. /* Document or executable name */ DEFINE INPUT PARAMETER lpParameters AS CHARACTER. /* Command line parameters to executable in lpFile */ DEFINE INPUT PARAMETER lpDirectory AS CHARACTER. /* Default directory */ DEFINE INPUT PARAMETER nShowCmd AS LONG. /* whether shown when opened: 0 hidden, 1 normal, minimized 2, maximized 3, 0 if lpFile is a document */ DEFINE RETURN PARAMETER hInstance AS LONG. /* Less than or equal to 32 */ END PROCEDURE. PROCEDURE EXPORT_EXCEL: RUN EXPORT_EXCEL_DATEI. END PROCEDURE. PROCEDURE SORTIERBAR: DEFINE INPUT PARAMETER ipSort AS HANDLE NO-UNDO. DEFINE INPUT PARAMETER ipMove AS HANDLE NO-UNDO. DEFINE VARIABLE hBrowser AS HANDLE NO-UNDO. ipMove:CHECKED = FALSE. ipSort:CHECKED = TRUE . hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:COLUMN-MOVABLE = FALSE. hBrowser:ALLOW-COLUMN-SEARCHING = TRUE. END PROCEDURE. PROCEDURE VERSCHIEBBAR: DEFINE INPUT PARAMETER ipMove AS HANDLE NO-UNDO. DEFINE INPUT PARAMETER ipSort AS HANDLE NO-UNDO. DEFINE VARIABLE hBrowser AS HANDLE NO-UNDO. ipSort:CHECKED = FALSE. ipMove:CHECKED = TRUE . hBrowser = {&BROWSE-NAME}:HANDLE IN FRAME {&FRAME-NAME}. hBrowser:ALLOW-COLUMN-SEARCHING = FALSE. hBrowser:COLUMN-MOVABLE = TRUE. END PROCEDURE. {src/adm2/windowmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects wUmsatz _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 changePage wUmsatz PROCEDURE changePage : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN SUPER. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN DO: /* RUN addLink ( hToolbar , 'TableIO':U , h_v-auftr ). RUN addLink ( hToolbar , 'Navigation':U , 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 wUmsatz _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. ------------------------------------------------------------------------------*/ /* Delete the WINDOW we created */ IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(wUmsatz) THEN DELETE WIDGET wUmsatz. IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject wUmsatz PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE wx AS INTEGER NO-UNDO. DEFINE VARIABLE wy AS INTEGER NO-UNDO. DEFINE VARIABLE xString AS CHARACTER NO-UNDO. GET-KEY-VALUE SECTION 'FensterPositionen' KEY 'UmsatzStatistik' VALUE xString. IF xString = ? THEN xString = '30;30'. IF xString = '' THEN xString = '30;30'. wx = INTEGER(ENTRY(1, xString, ';')). wy = INTEGER(ENTRY(2, xString, ';')). IF wx < 0 THEN wx = 1. IF wy < 0 THEN wy = 1. {&WINDOW-NAME}:X = wx. {&WINDOW-NAME}:Y = wy. RUN SUPER. /* hToolbar = h_dyntoolbar. */ IF SAktiv THEN RUN FENSTER_TITEL ( INPUT {&WINDOW-NAME}:HANDLE ) NO-ERROR. IF VALID-HANDLE(hToolbar) THEN DO: RUN SETPROGNAME IN hToolbar ( THIS-PROCEDURE ). RUN setButtons IN hToolbar ( INPUT 'Initial-TableIo':U ). END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI wUmsatz _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_VonDatum F_BisDatum F_AnzArtums F_AnzAufze WITH FRAME fMain IN WINDOW wUmsatz. ENABLE F_VonDatum F_BisDatum Btn_Rechnen Br_TUmsatz F_AnzArtums F_AnzAufze RECT-33 WITH FRAME fMain IN WINDOW wUmsatz. {&OPEN-BROWSERS-IN-QUERY-fMain} VIEW wUmsatz. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE wUmsatz PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE wx AS INTEGER NO-UNDO. DEFINE VARIABLE wy AS INTEGER NO-UNDO. DEFINE VARIABLE xString AS CHARACTER NO-UNDO. AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. IF AktSeite > 1 THEN DO: RUN selectPage ( INPUT 1 ). RETURN NO-APPLY. END. IF Saktiv THEN RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ). wx = {&WINDOW-NAME}:X NO-ERROR. wy = {&WINDOW-NAME}:Y NO-ERROR. xString = STRING(wx) + ';' + STRING(wy). PUT-KEY-VALUE SECTION 'FensterPositionen' KEY 'UmsatzStatistik' VALUE xString. APPLY "CLOSE":U TO THIS-PROCEDURE. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENTRY_CURSOR wUmsatz PROCEDURE ENTRY_CURSOR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). FMutFlag = DYNAMIC-FUNCTION('getMutflagAlt':U). APPLY 'ENTRY' TO F_VonDatum IN FRAME {&FRAME-NAME}. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE exitObject wUmsatz PROCEDURE exitObject : /*------------------------------------------------------------------------------ Purpose: Window-specific override of this procedure which destroys its contents and itself. Notes: ------------------------------------------------------------------------------*/ RUN ENDE. RETURN NO-APPLY. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE EXPORT_EXCEL_DATEI wUmsatz PROCEDURE EXPORT_EXCEL_DATEI : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE cName AS CHARACTER NO-UNDO. DEFINE VARIABLE cWhere AS CHARACTER NO-UNDO. DEFINE VARIABLE cLabel AS CHARACTER NO-UNDO. DEFINE VARIABLE cString AS CHARACTER NO-UNDO. DEFINE VARIABLE ij AS INTEGER NO-UNDO. DEFINE VARIABLE ik AS INTEGER NO-UNDO. DEFINE VARIABLE iRet AS INTEGER NO-UNDO. DEFINE VARIABLE cDelim AS CHARACTER NO-UNDO INIT '£'. DO WITH FRAME {&FRAME-NAME}: cName = SESSION:TEMP-DIR + ENTRY(1, THIS-PROCEDURE:FILE-NAME, '.') + '.csv'. OUTPUT TO VALUE(cName). SESSION:SET-WAIT-STATE('GENERAL'). cString = 'Jahr' + cDelim + 'Warengruppe' + cDelim + 'Monat' + cDelim + 'Wert EP' + cDelim + 'Wert VP' + cDelim + 'DB Betrag' + cDelim + 'Marge' . cString = REPLACE(cString, ';', ':'). cString = REPLACE(cString, cDelim, ';'). PUT CONTROL cString CHR(10). FOR EACH TUmsatz NO-LOCK: cString = TUmsatz.Sort_1 + cDelim + TUmsatz.Zeichen[01] + cDelim + TUmsatz.Zeichen[02] + cDelim + TRIM(STRING(TUmsatz.Wert_1 ,'->>>>>>>>9.99')) + cDelim + TRIM(STRING(TUmsatz.Wert_2 ,'->>>>>>>>9.99')) + cDelim + TRIM(STRING(TUmsatz.Wert[01],'->>>>>>>>9.99')) + cDelim + TRIM(STRING(TUmsatz.Wert[02],'->>>>>>>>9.99')). cString = REPLACE(cString, ';', ':'). cString = REPLACE(cString, cDelim, ';'). PUT CONTROL cString CHR(10). END. OUTPUT CLOSE. SESSION:SET-WAIT-STATE(''). END. RUN ShellExecuteA ( INPUT 0, INPUT 'open', INPUT 'Excel.exe', INPUT cName, INPUT '', INPUT 1, OUTPUT iRet ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject wUmsatz PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ { incl/brwinitialize.i } END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE wUmsatz 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 wUmsatz 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 RECHNEN wUmsatz PROCEDURE RECHNEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE VARIABLE VEp AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE VVp AS DECIMAL DECIMALS 4 NO-UNDO. DEFINE VARIABLE VAnsatz AS DECIMAL NO-UNDO. DEFINE VARIABLE KonDat AS DATE NO-UNDO. DEFINE VARIABLE BuDat AS DATE NO-UNDO. DEFINE VARIABLE SMM AS INTEGER NO-UNDO. DEFINE VARIABLE SJJ AS INTEGER NO-UNDO. DEFINE VARIABLE EMM AS INTEGER NO-UNDO. DEFINE VARIABLE EJJ AS INTEGER NO-UNDO. DEFINE VARIABLE VPer AS INTEGER NO-UNDO. DEFINE VARIABLE BPer AS INTEGER NO-UNDO. DEFINE VARIABLE ix AS INTEGER NO-UNDO. DEFINE VARIABLE i1 AS INTEGER NO-UNDO. DEFINE VARIABLE i2 AS INTEGER NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&list-6}. IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,YEAR(TODAY)). IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)). SMM = MONTH(F_VonDatum). SJJ = YEAR (F_VonDatum). EMM = MONTH(F_BisDatum). EJJ = YEAR (F_BisDatum). DO ix = 1 TO 31: IF MONTH(F_VonDatum - 1) = SMM THEN F_VonDatum = F_VonDatum - 1. IF MONTH(F_BisDatum + 1) = EMM THEN F_BisDatum = F_BisDatum + 1. END. DISPLAY F_VonDatum. DISPLAY F_BisDatum. FOR EACH TUmsatz: DELETE TUmsatz. END. F_AnzArtums = 0. FOR EACH ArtUms USE-INDEX ArtUms-k1 WHERE ArtUms.Firma = D1Firma AND ArtUms.Jahr >= SJJ AND ArtUms.Jahr <= EJJ NO-LOCK: F_AnzArtums = F_AnzArtums + 1. IF F_AnzArtums MOD 10 = 0 THEN DISPLAY F_AnzArtums. VPer = 01. BPer = 12. IF ArtUms.Jahr = SJJ THEN VPer = SMM. IF ArtUms.Jahr = EJJ THEN BPer = EMM. FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = ArtUms.Firma AND Artst.Artnr = ArtUms.Artnr AND Artst.Inhalt = ArtUms.Inhalt AND Artst.Jahr = ArtUms.Jahrg NO-LOCK NO-ERROR. IF NOT AVAILABLE Artst THEN NEXT. FIND FIRST TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999') AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp,'9999') NO-ERROR. IF NOT AVAILABLE TUmsatz THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = D1Firma AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR. DO ix = VPer TO 13: CREATE TUmsatz. ASSIGN TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999') TUmsatz.Sort_2 = STRING(Artst.Wg_Grp,'9999') TUmsatz.Sort_3 = STRING(ix ,'9999') TUmsatz.Zeichen[02] = ENTRY (ix, XMonate , ','). IF AVAILABLE WarenGrp THEN TUmsatz.Zeichen[01] = WarenGrp.Bez1. ELSE TUmsatz.Zeichen[01] = FILL('?', 10). END. END. FIND FIRST TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr,'9999') AND TUmsatz.Sort_2 = '1000' NO-ERROR. IF NOT AVAILABLE TUmsatz THEN DO: DO ix = VPer TO 13: CREATE TUmsatz. ASSIGN TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999') TUmsatz.Sort_2 = STRING(1000 ,'9999') TUmsatz.Sort_3 = STRING(ix ,'9999') TUmsatz.Zeichen[02] = ENTRY (ix, XMonate , ',') TUmsatz.Zeichen[01] = 'Gesamttotal'. END. END. DO ix = VPer TO BPer: FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999') AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp ,'9999') AND TUmsatz.Sort_3 = STRING(ix ,'9999'). TUmsatz.Wert_1 = TUmsatz.Wert_1 + ArtUms.Ep_Mon[ix]. TUmsatz.Wert_2 = TUmsatz.Wert_2 + ArtUms.Vp_Mon[ix]. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999') AND TUmsatz.Sort_2 = STRING(1000 ,'9999') AND TUmsatz.Sort_3 = STRING(ix ,'9999'). TUmsatz.Wert_1 = TUmsatz.Wert_1 + ArtUms.Ep_Mon[ix]. TUmsatz.Wert_2 = TUmsatz.Wert_2 + ArtUms.Vp_Mon[ix]. END. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999') AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp ,'9999') AND TUmsatz.Sort_3 = STRING(13 ,'9999'). TUmsatz.Wert_1 = TUmsatz.Wert_1 + ArtUms.Ep_Kum. TUmsatz.Wert_2 = TUmsatz.Wert_2 + ArtUms.Vp_Kum. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(ArtUms.Jahr ,'9999') AND TUmsatz.Sort_2 = STRING(1000 ,'9999') AND TUmsatz.Sort_3 = STRING(13 ,'9999'). TUmsatz.Wert_1 = TUmsatz.Wert_1 + ArtUms.Ep_Kum. TUmsatz.Wert_2 = TUmsatz.Wert_2 + ArtUms.Vp_Kum. END. DISPLAY F_AnzArtums. F_AnzAufze = 0. FOR EACH Aufko USE-INDEX Aufko-k1 WHERE Aufko.Firma = D1Firma AND Aufko.Verbucht = FALSE NO-LOCK. IF Aufko.Fak_Datum<> ? THEN DO: i1 = YEAR (Aufko.Fak_Datum). i2 = MONTH(Aufko.Fak_Datum). BuDat = Aufko.Fak_Datum. END. ELSE DO: i1 = YEAR (Aufko.Lief_Datum). i2 = MONTH(Aufko.Lief_Datum). BuDat = Aufko.Lief_Datum. END. IF BuDat < F_VonDatum THEN NEXT. IF BuDat > F_BisDatum THEN NEXT. KonDat = Aufko.Kond_Datum. IF KonDat = ? THEN KonDat = Aufko.Lief_Dat. FIND Wust USE-INDEX Wust-k1 WHERE Wust.CodeK = Aufko.MWST AND Wust.CodeA = 99 NO-LOCK NO-ERROR. FOR EACH Aufze USE-INDEX Aufze-k1 WHERE Aufze.Firma = D1Firma AND Aufze.Aufnr = Aufko.Aufnr AND Aufze.Artnr > 0 AND Aufze.Verbucht = FALSE NO-LOCK: F_AnzAufze = F_AnzAufze + 1. IF F_AnzAufze MOD 10 = 0 THEN DISPLAY F_AnzAufze. FIND Artst USE-INDEX Artst-k1 WHERE Artst.Firma = Aufze.Firma AND Artst.Artnr = Aufze.Artnr AND Artst.Inhalt = Aufze.Inhalt AND Artst.Jahr = Aufze.Jahr NO-LOCK NO-ERROR. IF NOT AVAILABLE Artst THEN NEXT. VEp = Aufze.Ep * Aufze.MGeli. VVp = Aufze.Net_Betr - Aufze.Auf_Rab - Aufze.Abh_Rab. FIND LAST MWSTAns USE-INDEX MWSTAns-k1 WHERE MWSTAns.MWST_Cd = Aufze.WuCd AND MWSTAns.Datum <= KonDat NO-LOCK NO-ERROR. VAnsatz = MWSTAns.Ansatz. IF Wust.Incl THEN VVp = VVp * 100 / (100 + VAnsatz). FIND FIRST TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999') AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp,'9999') NO-ERROR. IF NOT AVAILABLE TUmsatz THEN DO: FIND WarenGrp USE-INDEX WarenGrp-k1 WHERE WarenGrp.Firma = D1Firma AND WarenGrp.Wgr = Artst.Wg_Grp NO-LOCK NO-ERROR. DO ix = 1 TO 13: CREATE TUmsatz. ASSIGN TUmsatz.Sort_1 = STRING(i1 ,'9999') TUmsatz.Sort_2 = STRING(Artst.Wg_Grp,'9999') TUmsatz.Sort_3 = STRING(ix ,'9999') TUmsatz.Zeichen[02] = ENTRY (ix, XMonate , ','). IF AVAILABLE WarenGrp THEN TUmsatz.Zeichen[01] = WarenGrp.Bez1. ELSE TUmsatz.Zeichen[01] = FILL('?', 10). END. END. FIND FIRST TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999') AND TUmsatz.Sort_2 = STRING(1000,'9999') NO-ERROR. IF NOT AVAILABLE TUmsatz THEN DO: DO ix = 1 TO 13: CREATE TUmsatz. ASSIGN TUmsatz.Sort_1 = STRING(i1 ,'9999') TUmsatz.Sort_2 = STRING(1000,'9999') TUmsatz.Sort_3 = STRING(ix ,'9999') TUmsatz.Zeichen[02] = ENTRY (ix, XMonate , ',') TUmsatz.Zeichen[01] = 'Gesamttotal'. END. END. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999') AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp ,'9999') AND TUmsatz.Sort_3 = STRING(i2 ,'9999'). TUmsatz.Wert_1 = TUmsatz.Wert_1 + VEp. TUmsatz.Wert_2 = TUmsatz.Wert_2 + VVp. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999') AND TUmsatz.Sort_2 = STRING(1000 ,'9999') AND TUmsatz.Sort_3 = STRING(i2 ,'9999'). TUmsatz.Wert_1 = TUmsatz.Wert_1 + VEp. TUmsatz.Wert_2 = TUmsatz.Wert_2 + VVp. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999') AND TUmsatz.Sort_2 = STRING(Artst.Wg_Grp ,'9999') AND TUmsatz.Sort_3 = STRING(13 ,'9999'). TUmsatz.Wert_1 = TUmsatz.Wert_1 + VEp. TUmsatz.Wert_2 = TUmsatz.Wert_2 + VVp. FIND TUmsatz WHERE TUmsatz.Sort_1 = STRING(i1 ,'9999') AND TUmsatz.Sort_2 = STRING(1000 ,'9999') AND TUmsatz.Sort_3 = STRING(13 ,'9999'). TUmsatz.Wert_1 = TUmsatz.Wert_1 + VEp. TUmsatz.Wert_2 = TUmsatz.Wert_2 + VVp. END. END. DISPLAY F_AnzAufze. FOR EACH TUmsatz: IF TUmsatz.Wert_1 = 0 AND TUmsatz.Wert_2 = 0 THEN DO: DELETE TUmsatz. NEXT. END. TUmsatz.Wert[01] = TUmsatz.Wert_2 - TUmsatz.Wert_1. IF TUmsatz.Wert_1 > 0 THEN DO: TUmsatz.Wert[02] = (100 - (TUmsatz.Wert_1 * 100 / TUmsatz.Wert_2)). END. ELSE DO: TUmsatz.Wert[02] = (100 - (TUmsatz.Wert_1 * 100 / TUmsatz.Wert_2 * -1)). END. END. END. OPEN QUERY Br_TUmsatz FOR EACH TUmsatz NO-LOCK. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage wUmsatz 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 ( hToolbar , 'TableIO':U , h_v-auftr ). */ /* RUN removeLink ( hToolbar , '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 TOOLBAR wUmsatz PROCEDURE TOOLBAR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE INPUT PARAMETER pcAction AS CHARACTER NO-UNDO. IF VALID-HANDLE(hToolbar) THEN RUN TOOLBAR IN hToolbar ( INPUT pcAction ). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE viewObject wUmsatz PROCEDURE viewObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN SUPER. RUN ENTRY_CURSOR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME