&ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2 &ANALYZE-RESUME /* Connected Databases anadat PROGRESS */ &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gArtikelkarte &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gArtikelkarte /*------------------------------------------------------------------------ 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 Firma AS CHAR NO-UNDO. DEF VAR Sprcd AS INT NO-UNDO. DEF VAR xRecid AS RECID NO-UNDO. DEF STREAM Inp_Stream. DEF STREAM Out_Stream. DEF TEMP-TABLE TArtst FIELD Artnr AS INT FIELD Inhalt AS INT FIELD Jahr AS INT FIELD Alkohol AS DEC FIELD Gebinde AS CHAR FIELD Bez1 AS CHAR FIELD Bez2 AS CHAR FIELD Zustext AS CHAR INDEX TArtst-k1 IS PRIMARY Artnr Inhalt Jahr. DEF TEMP-TABLE TExcel FIELD Zeile AS INT FIELD KeyWort AS CHAR FIELD Felder AS CHAR EXTENT 10. /* _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 first Frame and/or Browse and/or first Query */ &Scoped-define FRAME-NAME gArtikelkarte &Scoped-define BROWSE-NAME Br_Artikel /* Internal Tables (found by Frame, Query & Browse Queries) */ &Scoped-define INTERNAL-TABLES Artst Artbez /* Definitions for BROWSE Br_Artikel */ &Scoped-define FIELDS-IN-QUERY-Br_Artikel Artst.Artnr Artst.Inhalt ~ Artst.Jahr Artst.Bez &Scoped-define ENABLED-FIELDS-IN-QUERY-Br_Artikel &Scoped-define OPEN-QUERY-Br_Artikel OPEN QUERY Br_Artikel FOR EACH Artst NO-LOCK, ~ EACH Artbez OF Artst NO-LOCK INDEXED-REPOSITION. &Scoped-define TABLES-IN-QUERY-Br_Artikel Artst Artbez &Scoped-define FIRST-TABLE-IN-QUERY-Br_Artikel Artst &Scoped-define SECOND-TABLE-IN-QUERY-Br_Artikel Artbez /* Definitions for DIALOG-BOX gArtikelkarte */ &Scoped-define SELF-NAME gArtikelkarte &Scoped-define OPEN-QUERY-gArtikelkarte /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ SESSION:SET-WAIT-STATE('GENERAL'). OPEN QUERY {&BROWSE-NAME} FOR EACH Artst USE-INDEX Artst-k3 WHERE Artst.Firma = Firma AND Artst.Aktiv = TRUE NO-LOCK, ~ 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 AND Artbez.Sprcd = Sprcd AND Artbez.Zustext[01] <> '' NO-LOCK . SESSION:SET-WAIT-STATE(''). BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). RUN ANZEIGE. END PROCEDURE. &Scoped-define TABLES-IN-QUERY-gArtikelkarte Artst Artbez &Scoped-define FIRST-TABLE-IN-QUERY-gArtikelkarte Artst &Scoped-define SECOND-TABLE-IN-QUERY-gArtikelkarte Artbez /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Br_Artikel E_Artikel F_Suchbe S_Artikel ~ T_NeueSeite Btn_OK Btn_Cancel RECT-24 &Scoped-Define DISPLAYED-OBJECTS E_Artikel F_Suchbe S_Artikel T_NeueSeite /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-6 E_Artikel T_NeueSeite /* _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 14 BY 1. DEFINE BUTTON Btn_OK IMAGE-UP FILE "grafik/results%.ico":U IMAGE-INSENSITIVE FILE "grafik/results%.ico":U LABEL "Excel" SIZE 7 BY 1.71. DEFINE VARIABLE E_Artikel AS CHARACTER VIEW-AS EDITOR SCROLLBAR-VERTICAL LARGE SIZE 56 BY 7.62 BGCOLOR 15 FONT 6 NO-UNDO. DEFINE VARIABLE F_Suchbe AS CHARACTER FORMAT "X(256)":U LABEL "Bezeichnung" VIEW-AS FILL-IN SIZE 30 BY 1 NO-UNDO. DEFINE RECTANGLE RECT-24 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 119 BY 16.91. DEFINE VARIABLE S_Artikel AS CHARACTER VIEW-AS SELECTION-LIST SINGLE SORT SCROLLBAR-VERTICAL SIZE 56 BY 7.62 BGCOLOR 15 FONT 6 NO-UNDO. DEFINE VARIABLE T_NeueSeite AS LOGICAL INITIAL no LABEL "neue Seite nach jedem Artikel" VIEW-AS TOGGLE-BOX SIZE 54 BY 1 NO-UNDO. /* Query definitions */ &ANALYZE-SUSPEND DEFINE QUERY Br_Artikel FOR Artst, Artbez SCROLLING. DEFINE QUERY gArtikelkarte FOR Artst, Artbez SCROLLING. &ANALYZE-RESUME /* Browse definitions */ DEFINE BROWSE Br_Artikel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _DISPLAY-FIELDS Br_Artikel gArtikelkarte _STRUCTURED QUERY Br_Artikel NO-LOCK DISPLAY Artst.Artnr FORMAT "999999":U WIDTH 8 Artst.Inhalt FORMAT "9999":U WIDTH 6 Artst.Jahr FORMAT "9999":U WIDTH 5 Artst.Bez COLUMN-LABEL "Bezeichnung" FORMAT "x(30)":U /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME WITH NO-ROW-MARKERS SEPARATORS SIZE 56 BY 6.71 BGCOLOR 15 . /* ************************ Frame Definitions *********************** */ DEFINE FRAME gArtikelkarte Br_Artikel AT ROW 1.48 COL 3 E_Artikel AT ROW 1.48 COL 63 NO-LABEL NO-TAB-STOP F_Suchbe AT ROW 8.52 COL 23 COLON-ALIGNED S_Artikel AT ROW 10 COL 3 NO-LABEL T_NeueSeite AT ROW 10 COL 63 Btn_OK AT ROW 16.05 COL 86.2 Btn_Cancel AT ROW 16.24 COL 101 RECT-24 AT ROW 1.24 COL 2 "Keine Selektion = Alle Artikel" VIEW-AS TEXT SIZE 55.2 BY 1 AT ROW 11.67 COL 63 FONT 6 SPACE(3.79) SKIP(5.70) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Artikelkarte". /* *********************** 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 gArtikelkarte /* ************************* 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 gArtikelkarte */ /* BROWSE-TAB Br_Artikel 1 gArtikelkarte */ ASSIGN FRAME gArtikelkarte:SCROLLABLE = FALSE FRAME gArtikelkarte:HIDDEN = TRUE. /* SETTINGS FOR EDITOR E_Artikel IN FRAME gArtikelkarte 6 */ ASSIGN E_Artikel:READ-ONLY IN FRAME gArtikelkarte = TRUE. /* SETTINGS FOR TOGGLE-BOX T_NeueSeite IN FRAME gArtikelkarte 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK BROWSE Br_Artikel /* Query rebuild information for BROWSE Br_Artikel _TblList = "AnaDat.Artst,AnaDat.Artbez OF AnaDat.Artst" _Options = "NO-LOCK INDEXED-REPOSITION" _FldNameList[1] > AnaDat.Artst.Artnr "Artst.Artnr" ? ? "integer" ? ? ? ? ? ? no ? no no "8" yes no no "U" "" "" _FldNameList[2] > AnaDat.Artst.Inhalt "Artst.Inhalt" ? ? "integer" ? ? ? ? ? ? no ? no no "6" yes no no "U" "" "" _FldNameList[3] > AnaDat.Artst.Jahr "Artst.Jahr" ? ? "integer" ? ? ? ? ? ? no ? no no "5" yes no no "U" "" "" _FldNameList[4] > AnaDat.Artst.Bez "Artst.Bez" "Bezeichnung" ? "character" ? ? ? ? ? ? no ? no no ? yes no no "U" "" "" _Query is NOT OPENED */ /* BROWSE Br_Artikel */ &ANALYZE-RESUME &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gArtikelkarte /* Query rebuild information for DIALOG-BOX gArtikelkarte _START_FREEFORM /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ SESSION:SET-WAIT-STATE('GENERAL'). OPEN QUERY {&BROWSE-NAME} FOR EACH Artst USE-INDEX Artst-k3 WHERE Artst.Firma = Firma AND Artst.Aktiv = TRUE NO-LOCK, 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 AND Artbez.Sprcd = Sprcd AND Artbez.Zustext[01] <> '' NO-LOCK . SESSION:SET-WAIT-STATE(''). BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). RUN ANZEIGE. END PROCEDURE. _END_FREEFORM _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gArtikelkarte */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gArtikelkarte &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelkarte gArtikelkarte ON GO OF FRAME gArtikelkarte /* Artikelkarte */ DO: /* RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. */ END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelkarte gArtikelkarte ON WINDOW-CLOSE OF FRAME gArtikelkarte /* Artikelkarte */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define BROWSE-NAME Br_Artikel &Scoped-define SELF-NAME Br_Artikel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Artikel gArtikelkarte ON LEFT-MOUSE-DBLCLICK OF Br_Artikel IN FRAME gArtikelkarte DO: RUN SELEKTARTIKEL. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Artikel gArtikelkarte ON RETURN OF Br_Artikel IN FRAME gArtikelkarte DO: RUN SELEKTARTIKEL. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Br_Artikel gArtikelkarte ON VALUE-CHANGED OF Br_Artikel IN FRAME gArtikelkarte DO: RUN ANZEIGE. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Cancel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel gArtikelkarte ON CHOOSE OF Btn_Cancel IN FRAME gArtikelkarte /* 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 gArtikelkarte ON CHOOSE OF Btn_OK IN FRAME gArtikelkarte /* Excel */ DO: DO WITH FRAME {&FRAME-NAME}: Btn_OK:SENSITIVE = FALSE. Btn_Cancel:SENSITIVE = FALSE. SESSION:SET-WAIT-STATE ('GENERAL'). END. RUN REPORT. DO WITH FRAME {&FRAME-NAME}: Btn_OK:SENSITIVE = TRUE. Btn_Cancel:SENSITIVE = TRUE. SESSION:SET-WAIT-STATE(''). END. RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME F_Suchbe &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F_Suchbe gArtikelkarte ON VALUE-CHANGED OF F_Suchbe IN FRAME gArtikelkarte /* Bezeichnung */ DO: F_Suchbe = SELF:SCREEN-VALUE. RUN OPEN_QUERY_ART. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME S_Artikel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL S_Artikel gArtikelkarte ON DELETE-CHARACTER OF S_Artikel IN FRAME gArtikelkarte DO: SELF:DELETE(SELF:SCREEN-VALUE). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL S_Artikel gArtikelkarte ON LEFT-MOUSE-DBLCLICK OF S_Artikel IN FRAME gArtikelkarte DO: SELF:DELETE(SELF:SCREEN-VALUE). END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gArtikelkarte /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Sprcd = DYNAMIC-FUNCTION('GETFWSPRCD':U) NO-ERROR. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. F_Suchbe = ''. SESSION:DATA-ENTRY-RETURN = TRUE. SUBSCRIBE TO 'TOOLBAR' ANYWHERE. /* TRIGGERS ------------------------------------------------------ */ ON 'END-ERROR':U OF F_Suchbe IN FRAME {&FRAME-NAME} DO: IF SELF:SCREEN-VALUE <> '' THEN DO: SELF:SCREEN-VALUE = ''. F_Suchbe = ''. RUN OPEN_QUERY_ART. APPLY 'ENTRY' TO SELF. RETURN NO-APPLY. END. ELSE DO: APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. END. ON 'RETURN':U, 'TAB':U OF F_Suchbe IN FRAME {&FRAME-NAME} DO: APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. ON 'ALT-F':U OF FRAME {&FRAME-NAME} ANYWHERE DO: F_Suchbe = ''. RUN 'g-such-artikkarte.w':U ( OUTPUT F_Suchbe ). IF F_Suchbe = '' THEN RETURN NO-APPLY. xRecid = INTEGER(ENTRY(1, F_Suchbe, CHR(01))). FIND Artst WHERE RECID(Artst) = xRecid NO-LOCK NO-ERROR. F_Suchbe = Artst.Bez. RUN OPEN_QUERY_ART. APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. RETURN NO-APPLY. END. ON 'U1':U OF {&WINDOW-NAME} ANYWHERE DO: RUN ENTRY_CURSOR. END. /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gArtikelkarte _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 ANZEIGE gArtikelkarte PROCEDURE ANZEIGE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR i1 AS INT NO-UNDO. DEF VAR i2 AS INT NO-UNDO. DO WITH FRAME {&FRAME-NAME}: E_Artikel = ''. DISPLAY E_Artikel. IF NOT AVAILABLE Artst THEN RETURN. E_Artikel = Artbez.Bez1 + CHR(10). IF Artbez.Bez2 <> '' THEN E_Artikel = E_Artikel + Artbez.Bez2 + CHR(10). DO i2 = 10 TO 1 BY -1: IF Artbez.Zustext[i2] = '' THEN NEXT. LEAVE. END. DO i1 = 1 TO i2: E_Artikel = E_Artikel + CHR(10) + Artbez.Zustext[i1]. END. DISPLAY E_Artikel. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE changePage gArtikelkarte PROCEDURE changePage : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ RUN SUPER. RUN ENTRY_CURSOR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gArtikelkarte _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 gArtikelkarte. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gArtikelkarte PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ S_Artikel:DELIMITER IN FRAME {&FRAME-NAME} = CHR(01). RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. RUN OPEN_QUERY_ART. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gArtikelkarte _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 E_Artikel F_Suchbe S_Artikel T_NeueSeite WITH FRAME gArtikelkarte. ENABLE Br_Artikel E_Artikel F_Suchbe S_Artikel T_NeueSeite Btn_OK Btn_Cancel RECT-24 WITH FRAME gArtikelkarte. VIEW FRAME gArtikelkarte. {&OPEN-BROWSERS-IN-QUERY-gArtikelkarte} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gArtikelkarte 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 gArtikelkarte PROCEDURE ENTRY_CURSOR : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ AktSeite = DYNAMIC-FUNCTION('getCurrentPage':U). CASE AktSeite: WHEN 1 THEN APPLY 'ENTRY' TO BROWSE {&BROWSE-NAME}. /* 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 gArtikelkarte 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 OPEN_QUERY_ART gArtikelkarte PROCEDURE OPEN_QUERY_ART : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ SESSION:SET-WAIT-STATE('GENERAL'). OPEN QUERY {&BROWSE-NAME} FOR EACH Artst USE-INDEX Artst-k3 WHERE Artst.Firma = Firma AND Artst.Bez BEGINS F_Suchbe AND Artst.Aktiv = TRUE NO-LOCK, 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 AND (Artbez.Zustext[01] <> '' OR Artbez.Zustext[02] <> '') NO-LOCK . SESSION:SET-WAIT-STATE(''). IF NUM-RESULTS('{&BROWSE-NAME}') <> ? AND NUM-RESULTS('{&BROWSE-NAME}') > 0 THEN DO: BROWSE {&BROWSE-NAME}:FETCH-SELECTED-ROW(1). RUN ANZEIGE. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gArtikelkarte PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ 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 VAR io AS LOG NO-UNDO. DEF VAR Anzahl AS INT NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR i1 AS INT NO-UNDO. DEF VAR i2 AS INT NO-UNDO. DEF VAR i3 AS INT NO-UNDO. DEF VAR i4 AS INT NO-UNDO. DEF VAR aRecid AS RECID NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. EMPTY TEMP-TABLE TArtst. cString = S_Artikel:LIST-ITEM-PAIRS. IF cString = ? THEN cString = ''. IF cString = '' THEN DO: FOR EACH Artst USE-INDEX Artst-k3 WHERE Artst.Firma = Firma AND Artst.Aktiv = TRUE NO-LOCK, 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 AND Artbez.Zustext[01] <> '' NO-LOCK, FIRST KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Artst.Firma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK: CREATE TArtst. ASSIGN TArtst.Artnr = Artst.Artnr TArtst.Inhalt = Artst.Inhalt TArtst.Jahr = Artst.Jahr TArtst.Alkohol = Artst.Alk_Gehalt TArtst.Gebinde = KGebinde.KBez TArtst.Bez1 = Artbez.Bez1 TArtst.Bez2 = Artbez.Bez2. DO i4 = 10 TO 1 BY -1: IF Artbez.Zustext[i4] = '' THEN NEXT. LEAVE. END. DO i3 = 1 TO i4: TArtst.Zustext = TArtst.Zustext + CHR(10) + Artbez.Zustext[i3]. END. TArtst.Zustext = SUBSTRING(TArtst.Zustext,02). END. END. ELSE DO: i2 = NUM-ENTRIES(cString, CHR(01)). DO i1 = 2 TO i2 BY 2: aRecid = INTEGER(ENTRY(i1, cString, CHR(01))). FIND Artst WHERE RECID(Artst) = aRecid 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 NEXT. FIND KGebinde USE-INDEX KGebinde-k1 WHERE KGebinde.Firma = Artst.Firma AND KGebinde.Geb_Cd = Artst.KGeb_Cd NO-LOCK NO-ERROR. IF NOT AVAILABLE KGebinde THEN NEXT. CREATE TArtst. ASSIGN TArtst.Artnr = Artst.Artnr TArtst.Inhalt = Artst.Inhalt TArtst.Jahr = Artst.Jahr TArtst.Alkohol = Artst.Alk_Gehalt TArtst.Gebinde = KGebinde.KBez TArtst.Bez1 = Artbez.Bez1 TArtst.Bez2 = Artbez.Bez2. DO i4 = 10 TO 1 BY -1: IF Artbez.Zustext[i4] = '' THEN NEXT. LEAVE. END. DO i3 = 1 TO i4: TArtst.Zustext = TArtst.Zustext + CHR(10) + Artbez.Zustext[i3]. END. TArtst.Zustext = SUBSTRING(TArtst.Zustext,02). END. END. END. cVorlage = 'ArtikelKarte.xls'. cDokument = 'ArtikelKarte.xls'. cDaten = 'ArtikelKarte.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). Anzahl = 0. FOR EACH TArtst: PUT CONTROL 'FETT£' TArtst.Bez1 '£'. IF TArtst.Jahr > 9 THEN PUT CONTROL STRING(TArtst.Jahr,'9999'). PUT CONTROL '£' TArtst.Gebinde '£'. IF TArtst.Alkohol <> 0 THEN PUT CONTROL TRIM(STRING(TArtst.Alkohol,'z9.9%')). PUT CONTROL CHR(10). IF TArtst.Bez2 <> '' THEN DO: PUT CONTROL 'FETT£' TArtst.Bez2 CHR(10). END. PUT CONTROL '£' CHR(10). cString = TArtst.Zustext. i2 = NUM-ENTRIES(cString, CHR(10)). DO i1 = 1 TO i2: PUT CONTROL '£' ENTRY(i1, cString, CHR(10)) CHR(10). END. PUT CONTROL '£' CHR(10) '£' CHR(10). IF T_NeueSeite THEN PUT CONTROL 'NeueSeite£' CHR(10). ELSE PUT CONTROL '£' CHR(10). Anzahl = Anzahl + 1. END. 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 io ). IF NOT io THEN DO: RUN FEHLER ( INPUT 1040 ). DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. RETURN NO-APPLY. END. Zelle = 'A6'. excelAppl:Range(Zelle):Select. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + cDaten. excelAppl:Application:RUN ( 'DateiEinfügen' ). excelAppl:Range(Zelle):Select. excelAppl:Selection:ColumnWidth = 0.3. EMPTY TEMP-TABLE TExcel. i1 = 5. INPUT STREAM Inp_Stream FROM Value(cDaten) NO-ECHO NO-MAP. REPEAT TRANSACTION ON STOP UNDO, LEAVE WITH FRAME f_Print: i1 = i1 + 1. CREATE TExcel. IMPORT STREAM Inp_Stream DELIMITER '£' TExcel.KeyWort TExcel.Felder . TExcel.Zeile = i1. END. INPUT STREAM Inp_Stream CLOSE. FOR EACH TExcel WHERE TExcel.KeyWort <> '' BY TExcel.Zeile: CASE TExcel.KeyWort: WHEN 'FETT' THEN DO: Zelle = 'A' + STRING(TExcel.Zeile). excelAppl:Range(Zelle):Select. excelAppl:Selection:Value = ''. Zelle = STRING(TExcel.Zeile) + ':' + STRING(TExcel.Zeile). excelAppl:Range(Zelle):Select. excelAppl:Selection:Font:Bold = TRUE. END. WHEN 'NeueSeite' THEN DO: Zelle = 'A' + STRING(TExcel.Zeile). excelAppl:Range(Zelle):Select. excelAppl:Selection:Value = ''. Zelle = 'A' + STRING(TExcel.Zeile). excelAppl:Range(Zelle):Select. excelAppl:ActiveWindow:SelectedSheets:HPageBreaks:Add(excelAppl:Selection). END. END CASE. END. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. Zelle = 'B1'. excelAppl:Range(Zelle):Select. excelAppl:Selection:Value = Steuer.Firma1. Zelle = 'B2'. excelAppl:Range(Zelle):Select. excelAppl:Selection:Value = Steuer.Ort. Zelle = 'A1'. excelAppl:Range(Zelle):Select. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SELEKTARTIKEL gArtikelkarte PROCEDURE SELEKTARTIKEL : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR cRecid AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: IF NOT AVAILABLE Artst THEN RETURN NO-APPLY. cString = S_Artikel:LIST-ITEM-PAIRS. IF cString = ? THEN cString = ''. cRecid = STRING(RECID(Artst),'99999999'). IF LOOKUP(cRecid, cString, CHR(01)) > 0 THEN RETURN NO-APPLY. IF cString <> '' THEN cString = cString + CHR(01). cString = cString + Artst.Bez + CHR(01) + cRecid. S_Artikel:LIST-ITEM-PAIRS = cString. S_Artikel:SCREEN-VALUE = cRecid. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE TOOLBAR gArtikelkarte 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