&ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gexcelartbe &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gexcelartbe /*------------------------------------------------------------------------ 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 --- */ DEF INPUT PARAMETER ipDaten AS CHAR NO-UNDO. /* 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 Firma AS CHAR NO-UNDO. DEF VAR AdFirma AS CHAR NO-UNDO. DEF VAR Artnr AS INT NO-UNDO. DEF VAR Inhalt AS INT NO-UNDO. DEF VAR Jahr AS INT NO-UNDO. DEF VAR Knr AS INT NO-UNDO. DEF VAR Tr_Art AS INT NO-UNDO. DEF VAR Datum AS DATE NO-UNDO. DEF VAR Aufnr AS INT NO-UNDO. DEF VAR cVorlage AS CHAR NO-UNDO. DEF VAR cDokument AS CHAR NO-UNDO. DEF VAR cDaten AS CHAR NO-UNDO. DEF VAR cDateiName AS CHAR NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DEF TEMP-TABLE TIndex FIELD Index-Name AS CHAR FIELD Feld-Name AS CHAR FIELD Feldnr AS INT INDEX TIndex-k1 AS PRIMARY Feld-Name FeldNr. DEF TEMP-TABLE tArtbw LIKE Artbw. /* _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 gexcelartbe /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS RECT-4 F_VonArtnr F_BisArtnr T_Artnr ~ F_VonInhalt F_BisInhalt F_VonJahr F_BisJahr F_VonKnr F_BisKnr T_Knr ~ F_VonTrArt F_BisTrArt T_TrArt F_VonDatum F_BisDatum T_Datum F_VonAUfnr ~ F_BisAUfnr T_Aufnr Btn_OK Btn_Cancel &Scoped-Define DISPLAYED-OBJECTS F_VonArtnr F_BisArtnr T_Artnr F_VonInhalt ~ F_BisInhalt F_VonJahr F_BisJahr F_VonKnr F_BisKnr T_Knr F_VonTrArt ~ F_BisTrArt T_TrArt F_VonDatum F_BisDatum T_Datum F_VonAUfnr F_BisAUfnr ~ T_Aufnr /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 F_VonArtnr F_BisArtnr T_Artnr F_VonInhalt F_BisInhalt ~ F_VonJahr F_BisJahr F_VonKnr F_BisKnr T_Knr F_VonTrArt F_BisTrArt T_TrArt ~ F_VonDatum F_BisDatum T_Datum F_VonAUfnr F_BisAUfnr T_Aufnr /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Cancel LABEL "abbrechen" SIZE 15 BY 1. DEFINE BUTTON Btn_OK IMAGE-UP FILE "grafik/results%.ico":U LABEL "Starten" SIZE 8.4 BY 2. DEFINE VARIABLE F_BisArtnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisAUfnr AS INTEGER FORMAT "9999999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisDatum AS DATE FORMAT "99.99.9999":U LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisInhalt AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisJahr AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_BisTrArt AS INTEGER FORMAT "99":U INITIAL 0 LABEL "-" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "Artikelnummer" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonAUfnr AS INTEGER FORMAT "9999999":U INITIAL 0 LABEL "Auftragsnummer" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonDatum AS DATE FORMAT "99.99.9999":U LABEL "Datum" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonInhalt AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "Inhalt" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonJahr AS INTEGER FORMAT "9999":U INITIAL 0 LABEL "Jahr" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonKnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "Kundennummer" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE F_VonTrArt AS INTEGER FORMAT "99":U INITIAL 0 LABEL "Transaktionsart" VIEW-AS FILL-IN NATIVE SIZE 16 BY 1 BGCOLOR 15 NO-UNDO. DEFINE RECTANGLE RECT-4 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 84 BY 11.91. DEFINE VARIABLE T_Artnr AS LOGICAL INITIAL YES LABEL "Aktiv" VIEW-AS TOGGLE-BOX SIZE 16 BY 1 NO-UNDO. DEFINE VARIABLE T_Aufnr AS LOGICAL INITIAL NO LABEL "Aktiv" VIEW-AS TOGGLE-BOX SIZE 16 BY 1 NO-UNDO. DEFINE VARIABLE T_Datum AS LOGICAL INITIAL NO LABEL "Aktiv" VIEW-AS TOGGLE-BOX SIZE 16 BY 1 NO-UNDO. DEFINE VARIABLE T_Knr AS LOGICAL INITIAL NO LABEL "Aktiv" VIEW-AS TOGGLE-BOX SIZE 16 BY 1 NO-UNDO. DEFINE VARIABLE T_TrArt AS LOGICAL INITIAL NO LABEL "Aktiv" VIEW-AS TOGGLE-BOX SIZE 16 BY 1 NO-UNDO. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gexcelartbe F_VonArtnr AT ROW 2 COL 27 COLON-ALIGNED F_BisArtnr AT ROW 2 COL 46 COLON-ALIGNED T_Artnr AT ROW 2 COL 65 F_VonInhalt AT ROW 3 COL 27 COLON-ALIGNED F_BisInhalt AT ROW 3 COL 46 COLON-ALIGNED F_VonJahr AT ROW 4 COL 27 COLON-ALIGNED F_BisJahr AT ROW 4 COL 46 COLON-ALIGNED F_VonKnr AT ROW 5 COL 27 COLON-ALIGNED F_BisKnr AT ROW 5 COL 46 COLON-ALIGNED T_Knr AT ROW 5 COL 65 F_VonTrArt AT ROW 6 COL 27 COLON-ALIGNED F_BisTrArt AT ROW 6 COL 46 COLON-ALIGNED T_TrArt AT ROW 6 COL 65 F_VonDatum AT ROW 7 COL 27 COLON-ALIGNED F_BisDatum AT ROW 7 COL 46 COLON-ALIGNED T_Datum AT ROW 7 COL 65 F_VonAUfnr AT ROW 8 COL 27 COLON-ALIGNED F_BisAUfnr AT ROW 8 COL 46 COLON-ALIGNED T_Aufnr AT ROW 8 COL 65 Btn_OK AT ROW 10 COL 23.4 Btn_Cancel AT ROW 10.52 COL 49 RECT-4 AT ROW 1.48 COL 3 SPACE(1.99) SKIP(0.46) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Bewegungen in Excl" CANCEL-BUTTON Btn_Cancel. /* *********************** 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 gexcelartbe /* ************************* 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 gexcelartbe FRAME-NAME */ ASSIGN FRAME gexcelartbe:SCROLLABLE = FALSE FRAME gexcelartbe:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN F_BisArtnr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_BisAUfnr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_BisDatum IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_BisInhalt IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_BisJahr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_BisKnr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_BisTrArt IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_VonArtnr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_VonAUfnr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_VonDatum IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_VonInhalt IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_VonJahr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_VonKnr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR FILL-IN F_VonTrArt IN FRAME gexcelartbe 6 */ /* SETTINGS FOR TOGGLE-BOX T_Artnr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR TOGGLE-BOX T_Aufnr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR TOGGLE-BOX T_Datum IN FRAME gexcelartbe 6 */ /* SETTINGS FOR TOGGLE-BOX T_Knr IN FRAME gexcelartbe 6 */ /* SETTINGS FOR TOGGLE-BOX T_TrArt IN FRAME gexcelartbe 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gexcelartbe /* Query rebuild information for DIALOG-BOX gexcelartbe _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gexcelartbe */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gexcelartbe &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gexcelartbe gexcelartbe ON END-ERROR OF FRAME gexcelartbe /* Bewegungen in Excl */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gexcelartbe gexcelartbe ON GO OF FRAME gexcelartbe /* Bewegungen in Excl */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gexcelartbe gexcelartbe ON WINDOW-CLOSE OF FRAME gexcelartbe /* Bewegungen in Excl */ 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 gexcelartbe ON CHOOSE OF Btn_Cancel IN FRAME gexcelartbe /* abbrechen */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_OK &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK gexcelartbe ON CHOOSE OF Btn_OK IN FRAME gexcelartbe /* Starten */ DO: DO WITH FRAME {&FRAME-NAME}: Btn_OK :SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. RUN REPORT. Btn_OK :SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. IF RETURN-VALUE = '' THEN RUN ENDE. RETURN NO-APPLY. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Artnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Artnr gexcelartbe ON RETURN OF T_Artnr IN FRAME gexcelartbe /* Aktiv */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Aufnr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Aufnr gexcelartbe ON RETURN OF T_Aufnr IN FRAME gexcelartbe /* Aktiv */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Datum &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Datum gexcelartbe ON RETURN OF T_Datum IN FRAME gexcelartbe /* Aktiv */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_Knr &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_Knr gexcelartbe ON RETURN OF T_Knr IN FRAME gexcelartbe /* Aktiv */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME T_TrArt &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL T_TrArt gexcelartbe ON RETURN OF T_TrArt IN FRAME gexcelartbe /* Aktiv */ DO: APPLY 'TAB' TO SELF. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gexcelartbe /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) 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 gexcelartbe _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 gexcelartbe 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 gexcelartbe _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 gexcelartbe. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gexcelartbe PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ /* Code placed here will execute PRIOR to standard behavior. */ 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 gexcelartbe _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_VonArtnr F_BisArtnr T_Artnr F_VonInhalt F_BisInhalt F_VonJahr F_BisJahr F_VonKnr F_BisKnr T_Knr F_VonTrArt F_BisTrArt T_TrArt F_VonDatum F_BisDatum T_Datum F_VonAUfnr F_BisAUfnr T_Aufnr WITH FRAME gexcelartbe. ENABLE RECT-4 F_VonArtnr F_BisArtnr T_Artnr F_VonInhalt F_BisInhalt F_VonJahr F_BisJahr F_VonKnr F_BisKnr T_Knr F_VonTrArt F_BisTrArt T_TrArt F_VonDatum F_BisDatum T_Datum F_VonAUfnr F_BisAUfnr T_Aufnr Btn_OK Btn_Cancel WITH FRAME gexcelartbe. VIEW FRAME gexcelartbe. {&OPEN-BROWSERS-IN-QUERY-gexcelartbe} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gexcelartbe PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U) NO-ERROR. 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 gexcelartbe 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 gexcelartbe 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 EXPORT_DATEN gexcelartbe PROCEDURE EXPORT_DATEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND FIRST tArtbw. FIND Adresse USE-INDEX Adresse-k1 WHERE Adresse.Firma = AdFirma AND Adresse.Knr = tArtbw.Knr NO-LOCK NO-ERROR. PUT CONTROL '£' STRING(tArtbw.Artnr ,'999999') '£' STRING(tArtbw.Inhalt,'9999') '£' STRING(tArtbw.Jahr ,'9999') '£' tArtbw.Bez1 '£' STRING(tArtbw.Knr) '£'. IF AVAILABLE Adresse THEN PUT CONTROL Adresse.Anzeig_br. PUT CONTROL '£' STRING(tArtbw.Datum,'99.99.9999') '£' STRING(tArtbw.Aufnr,'>>>>>>>>') '£' STRING(tArtbw.Tr_Art,'99') '£' TRIM(STRING(tArtbw.Faknr,'>>>>>>>>')) '£'. IF tArtbw.Fak_Dat <> ? THEN PUT CONTROL STRING(tArtbw.Fak_Dat,'99.99.9999'). PUT CONTROL '£' TRIM(STRING(tArtbw.Menge ,'->>>>>>>>9')) '£' TRIM(STRING(tArtbw.Preis ,'->>>>>>>>9.999')) '£' TRIM(STRING(tArtbw.Bru_Betr,'->>>>>>>>9.999')) '£' TRIM(STRING(tArtbw.Net_Betr,'->>>>>>>>9.999')) CHR(10). IF tArtbw.Bez2 <> '' THEN PUT CONTROL '££££' tArtbw.Bez2 CHR(10). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE initializeObject gexcelartbe PROCEDURE initializeObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ F_VonArtnr = INTEGER(ENTRY(1, ipDaten, ';')). F_BisArtnr = INTEGER(ENTRY(1, ipDaten, ';')). F_VonInhalt = INTEGER(ENTRY(2, ipDaten, ';')). F_BisInhalt = INTEGER(ENTRY(2, ipDaten, ';')). F_VonJahr = INTEGER(ENTRY(3, ipDaten, ';')). F_BisJahr = INTEGER(ENTRY(3, ipDaten, ';')). F_VonKnr = INTEGER(ENTRY(4, ipDaten, ';')). F_BisKnr = INTEGER(ENTRY(4, ipDaten, ';')). F_VonTrArt = INTEGER(ENTRY(5, ipDaten, ';')). F_BisTrArt = INTEGER(ENTRY(5, ipDaten, ';')). F_VonDatum = DATE (ENTRY(6, ipDaten, ';')). F_BisDatum = DATE (ENTRY(6, ipDaten, ';')). F_VonAufnr = INTEGER(ENTRY(7, ipDaten, ';')). F_BisAufnr = INTEGER(ENTRY(7, ipDaten, ';')). RUN SUPER. /* Code placed here will execute AFTER standard behavior. */ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE KOPF gexcelartbe PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. Zelle = 'A1'. excelAppl:Range(Zelle):Select. excelAppl:Selection:VALUE = Steuer.Firma1. Zelle = 'G1'. excelAppl:Range(Zelle):Select. excelAppl:Selection:VALUE = 'Artikelbewegungen'. Zelle = 'P1'. excelAppl:Range(Zelle):Select. excelAppl:Selection:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'A2'. excelAppl:Range(Zelle):Select. excelAppl:Selection:VALUE = Steuer.Ort. IF T_Datum THEN DO: Zelle = 'G2'. excelAppl:Range(Zelle):Select. excelAppl:Selection:VALUE = STRING(F_VonDatum,'99.99.9999') + ' - ' + STRING(F_BisDatum,'99.99.9999'). END. Zelle = 'P2'. excelAppl:Range(Zelle):Select. excelAppl:Selection:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE NEXTPAGE gexcelartbe 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 gexcelartbe 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 gexcelartbe PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR qHandle AS WIDGET-HANDLE NO-UNDO. DEF VAR bHandle AS WIDGET-HANDLE NO-UNDO. DEF VAR dHandle AS WIDGET-HANDLE NO-UNDO. DEF VAR sSelektion AS CHAR NO-UNDO. DEF VAR fErst AS LOG NO-UNDO. DEF VAR Diff AS INT NO-UNDO EXTENT 10. DEF VAR iSort AS INT NO-UNDO EXTENT 10. DEF VAR iMax AS INT NO-UNDO. DEF VAR Feld AS INT NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR FeldName AS CHAR NO-UNDO. DEF VAR PrimName AS CHAR NO-UNDO. DEF VAR IndexName AS CHAR NO-UNDO. DEF VAR ja AS LOG NO-UNDO INIT FALSE. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF T_Artnr THEN DO: IF F_VonArtnr = 0 AND F_BisArtnr = 0 THEN F_BisArtnr = 999999. IF F_BisArtnr < F_VonArtnr THEN F_BisArtnr = F_VonArtnr . IF F_VonInhalt = 0 AND F_BisInhalt = 0 THEN F_BisInhalt = 9999. IF F_BisInhalt < F_VonInhalt THEN F_BisInhalt = F_VonInhalt. IF F_VonJahr = 0 AND F_BisJahr = 0 THEN F_BisJahr = 9999. IF F_BisJahr < F_VonJahr THEN F_BisJahr = F_VonJahr . END. IF T_Knr THEN DO: IF F_VonKnr = 0 AND F_BisKnr = 0 THEN F_BisKnr = 999999. IF F_BisKnr < F_VonKnr THEN F_BisKnr = F_VonKnr . END. IF T_TrArt THEN DO: IF F_VonTrArt = 0 AND F_BisTrArt = 0 THEN F_BisTrArt = 99. IF F_BisTrArt < F_VonTrArt THEN F_BisTrArt = F_VonTrArt . END. IF T_Datum THEN DO: IF F_VonDatum = ? THEN F_VonDatum = DATE(01,01,YEAR(TODAY)). IF F_BisDatum = ? THEN F_BisDatum = DATE(12,31,YEAR(TODAY)). IF F_BisDatum < F_VonDatum THEN F_BisDatum = F_VonDatum . END. IF T_Aufnr THEN DO: IF F_VonAufnr = 0 AND F_BisAufnr = 0 THEN F_BisAufnr = 999999. IF F_BisAufnr < F_VonAufnr THEN F_BisAufnr = F_VonAufnr . END. DISPLAY {&List-6}. END. SESSION:SET-WAIT-STATE('GENERAL'). Diff = 0. iSort = 0. Diff[01] = F_BisArtnr - F_VonArtnr . Diff[02] = F_BisKnr - F_VonKnr . Diff[03] = F_BisTrArt - F_VonTrArt . Diff[04] = F_BisDatum - F_VonDatum . Diff[05] = F_BisAufnr - F_VonAufnr . ii = 0. DO WHILE TRUE: iMax = 99999999. Feld = 0. IF T_Artnr THEN DO: IF Diff[01] < iMax THEN DO: iMax = Diff[01]. Feld = 1. END. END. IF T_Knr THEN DO: IF Diff[02] < iMax THEN DO: iMax = Diff[02]. Feld = 2. END. END. IF T_TrArt THEN DO: IF Diff[03] < iMax THEN DO: iMax = Diff[03]. Feld = 3. END. END. IF T_Datum THEN DO: IF Diff[04] < iMax THEN DO: iMax = Diff[04]. Feld = 4. END. END. IF T_Aufnr THEN DO: IF Diff[05] < iMax THEN DO: iMax = Diff[05]. Feld = 5. END. END. IF Feld = 0 THEN LEAVE. ii = ii + 1. iSort[ii] = Feld. CASE Feld: WHEN 1 THEN T_Artnr = FALSE. WHEN 2 THEN T_Knr = FALSE. WHEN 3 THEN T_TrArt = FALSE. WHEN 4 THEN T_Datum = FALSE. WHEN 5 THEN T_Aufnr = FALSE. END CASE. END. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. END. EMPTY TEMP-TABLE TIndex. EMPTY TEMP-TABLE tArtbw. FIND _File WHERE _File._File-name = 'Artbw'. FOR EACH _Index OF _File , EACH _Index-Field OF _Index , FIRST _Field OF _Index-Field: CREATE TIndex. ASSIGN TIndex.Index-Name = _Index._Index-Name TIndex.Feld-Name = _Field._Field-Name TIndex.Feldnr = _Index-Field._Index-seq. END. DO WHILE TRUE: IF iSort[01] = 0 THEN DO: EMPTY TEMP-TABLE TIndex. LEAVE. END. CASE iSort[01]: WHEN 1 THEN FeldName = 'Artnr'. WHEN 2 THEN FeldName = 'Knr'. WHEN 3 THEN FeldName = 'Tr_Art'. WHEN 4 THEN FeldName = 'Datum'. WHEN 5 THEN FeldName = 'Aufnr'. END CASE. FOR EACH TIndex USE-INDEX TIndex-k1 WHERE TIndex.Feld-Name = FeldName AND TIndex.FeldNr <> 2: DELETE TIndex. END. PrimName = FeldName. IF iSort[02] = 0 THEN LEAVE. CASE iSort[02]: WHEN 1 THEN FeldName = 'Artnr'. WHEN 2 THEN FeldName = 'Knr'. WHEN 3 THEN FeldName = 'Tr_Art'. WHEN 4 THEN FeldName = 'Datum'. WHEN 5 THEN FeldName = 'Aufnr'. END CASE. FOR EACH TIndex WHERE TIndex.Feld-Name = FeldName BREAK BY TIndex.Feld-Name BY TIndex.FeldNr: IF NOT FIRST-OF ( TIndex.Feld-Name ) THEN DELETE TIndex. END. LEAVE. END. FIND FIRST TIndex USE-INDEX TIndex-k1 WHERE TIndex.Feld-Name = PrimName NO-ERROR. IF AVAILABLE TIndex THEN IndexName = TIndex.Index-Name. ELSE IndexName = 'Artbw-k1'. CREATE QUERY qHandle. CREATE BUFFER bHandle FOR TABLE 'Artbw'. qHandle:SET-BUFFERS(bHandle). sSelektion = 'FOR EACH Artbw USE-INDEX ' + IndexName + ' ' + 'WHERE Artbw.Firma = "' + Firma + '" '. IF T_Artnr THEN DO: sSelektion = sSelektion + 'AND Artbw.Artnr >= ' + STRING(F_VonArtnr) + ' ' + 'AND Artbw.Artnr <= ' + STRING(F_BisArtnr) + ' ' + 'AND Artbw.Inhalt >= ' + STRING(F_VonInhalt) + ' ' + 'AND Artbw.Inhalt <= ' + STRING(F_BisInhalt) + ' ' + 'AND Artbw.Jahr >= ' + STRING(F_VonJahr ) + ' ' + 'AND Artbw.Jahr <= ' + STRING(F_BisJahr ) + ' '. END. IF T_Knr THEN DO: sSelektion = sSelektion + 'AND Artbw.Knr >= ' + STRING(F_VonKnr ) + ' ' + 'AND Artbw.Knr <= ' + STRING(F_BisKnr ) + ' '. END. IF T_TrArt THEN DO: sSelektion = sSelektion + 'AND Artbw.Tr_Art>= ' + STRING(F_VonTrArt) + ' ' + 'AND Artbw.Tr_Art<= ' + STRING(F_BisTrArt) + ' '. END. IF T_Datum THEN DO: sSelektion = sSelektion + 'AND Artbw.Datum >= ' + STRING(F_VonDatum) + ' ' + 'AND Artbw.Datum <= ' + STRING(F_BisDatum) + ' '. END. IF T_Aufnr THEN DO: sSelektion = sSelektion + 'AND Artbw.Aufnr >= ' + STRING(F_VonAufnr) + ' ' + 'AND Artbw.Aufnr <= ' + STRING(F_BisAufnr) + ' '. END. sSelektion = sSelektion + 'NO-LOCK INDEXED-REPOSITION '. qHandle:QUERY-PREPARE(sSelektion). qHandle:QUERY-OPEN(). cVorlage = 'Artikelbewegungen.xls'. cDokument = 'Artikelbewegungen.xls'. cDaten = 'Artikelbewegungen.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). fErst = TRUE. ii = 0. CREATE tArtbw. REPEAT TRANSACTION: IF fErst THEN qHandle:GET-FIRST(NO-LOCK). ELSE qHandle:GET-NEXT (NO-LOCK). fErst = FALSE. IF qHandle:QUERY-OFF-END THEN LEAVE. dHandle = qHandle:GET-BUFFER-HANDLE(). FIND FIRST tArtbw. BUFFER tArtbw:BUFFER-COPY( dHandle ). RUN EXPORT_DATEN. ii = ii + 1. END. OUTPUT CLOSE. qHandle:QUERY-CLOSE(). DELETE OBJECT bHandle. DELETE OBJECT qHandle. SESSION:SET-WAIT-STATE(''). IF ii = 0 THEN DO: MESSAGE 'Keine Daten selektiert ' VIEW-AS ALERT-BOX. RETURN 'Keine Daten'. END. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: RUN FEHLER ( INPUT 1035 ). RETURN 'ERROR'. 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 'ERROR'. END. Zelle = 'A5'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:APPLICATION:RUN ( 'DateiEinfügen' ). RUN KOPF. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN ''. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE selectPage gexcelartbe 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 TOOLBAR gexcelartbe 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