&ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2 &ANALYZE-RESUME &Scoped-define WINDOW-NAME CURRENT-WINDOW &Scoped-define FRAME-NAME gArtikelLagerort &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS gArtikelLagerort /*------------------------------------------------------------------------ File: Description: from cntnrdlg.w - ADM2 SmartDialog Template Input Parameters: Output Parameters: Author: Created: ------------------------------------------------------------------------*/ /* This .W file was created with the Progress AppBuilder. */ /*----------------------------------------------------------------------*/ /* Create an unnamed pool to store all the widgets created by this procedure. This is a good default which assures that this procedure's triggers and internal procedures will execute in this procedure's storage, and that proper cleanup will occur on deletion of the procedure. */ CREATE WIDGET-POOL. /* *************************** Definitions ************************** */ /* Parameters Definitions --- */ /* Local Variable Definitions --- */ DEF VAR MaxPage AS INT NO-UNDO. DEF VAR AktSeite AS INT NO-UNDO. DEF VAR FMutFlag AS LOG NO-UNDO. DEF VAR Fenster AS HANDLE NO-UNDO. DEF VAR Firma AS CHAR INIT '1000' NO-UNDO. DEF VAR AdFirma AS CHAR INIT '1000' NO-UNDO. DEF VAR Besnr AS INT NO-UNDO. DEF VAR FwFRW AS CHAR NO-UNDO. DEF VAR FwSprcd AS INT NO-UNDO. DEF VAR RetVal AS CHAR NO-UNDO. DEF BUFFER BArtst FOR Artst. DEF TEMP-TABLE TArtst FIELD Artnr AS INT FIELD Inhalt AS INT FIELD Jahr AS INT FIELD Herst AS INT FIELD Wgr AS INT FIELD LagOrt AS CHAR FIELD Bez AS CHAR FIELD cHerst AS CHAR FIELD cWgr AS CHAR FIELD Schluessel AS CHAR. /* _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 gArtikelLagerort /* Standard List Definitions */ &Scoped-Define ENABLED-OBJECTS Hersteller Warengruppen VonArtnr BisArtnr ~ R_Sort Btn_Excel RECT-37 &Scoped-Define DISPLAYED-OBJECTS Hersteller Warengruppen VonArtnr BisArtnr ~ R_Sort /* Custom List Definitions */ /* List-1,List-2,List-3,List-4,List-5,List-6 */ &Scoped-define List-5 Btn_Excel &Scoped-define List-6 Hersteller Warengruppen VonArtnr BisArtnr R_Sort /* _UIB-PREPROCESSOR-BLOCK-END */ &ANALYZE-RESUME /* *********************** Control Definitions ********************** */ /* Define a dialog box */ /* Definitions of the field level widgets */ DEFINE BUTTON Btn_Excel IMAGE-UP FILE "grafik/results%.ico":U LABEL "Excel" SIZE 7 BY 2. DEFINE VARIABLE BisArtnr AS INTEGER FORMAT "999999":U INITIAL 999999 VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Hersteller AS CHARACTER FORMAT "X(256)":U LABEL "Hersteller" VIEW-AS FILL-IN NATIVE SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE VonArtnr AS INTEGER FORMAT "999999":U INITIAL 0 LABEL "von - bis Artikelnummer" VIEW-AS FILL-IN NATIVE SIZE 11 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE Warengruppen AS CHARACTER FORMAT "X(256)":U LABEL "Warengruppen" VIEW-AS FILL-IN NATIVE SIZE 46 BY 1 BGCOLOR 15 NO-UNDO. DEFINE VARIABLE R_Sort AS INTEGER INITIAL 1 VIEW-AS RADIO-SET VERTICAL RADIO-BUTTONS "Artikelnummer", 1, "Suchbegriff", 2, "Lagerort", 3 SIZE 45 BY 1.91 NO-UNDO. DEFINE RECTANGLE RECT-37 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL SIZE 90 BY 6.19. /* ************************ Frame Definitions *********************** */ DEFINE FRAME gArtikelLagerort Hersteller AT ROW 1.52 COL 28 COLON-ALIGNED Warengruppen AT ROW 2.52 COL 28 COLON-ALIGNED VonArtnr AT ROW 3.52 COL 28 COLON-ALIGNED BisArtnr AT ROW 3.52 COL 45 COLON-ALIGNED NO-LABEL R_Sort AT ROW 5 COL 30 NO-LABEL Btn_Excel AT ROW 2 COL 82.2 RECT-37 AT ROW 1.24 COL 2 SPACE(0.99) SKIP(0.42) WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE TITLE "Artikel/Lagerorte". /* *********************** 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 gArtikelLagerort /* ************************* 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 gArtikelLagerort Custom */ ASSIGN FRAME gArtikelLagerort:SCROLLABLE = FALSE FRAME gArtikelLagerort:HIDDEN = TRUE. /* SETTINGS FOR FILL-IN BisArtnr IN FRAME gArtikelLagerort 6 */ /* SETTINGS FOR BUTTON Btn_Excel IN FRAME gArtikelLagerort 5 */ /* SETTINGS FOR FILL-IN Hersteller IN FRAME gArtikelLagerort 6 */ /* SETTINGS FOR RADIO-SET R_Sort IN FRAME gArtikelLagerort 6 */ /* SETTINGS FOR FILL-IN VonArtnr IN FRAME gArtikelLagerort 6 */ /* SETTINGS FOR FILL-IN Warengruppen IN FRAME gArtikelLagerort 6 */ /* _RUN-TIME-ATTRIBUTES-END */ &ANALYZE-RESUME /* Setting information for Queries and Browse Widgets fields */ &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX gArtikelLagerort /* Query rebuild information for DIALOG-BOX gArtikelLagerort _Options = "SHARE-LOCK" _Query is NOT OPENED */ /* DIALOG-BOX gArtikelLagerort */ &ANALYZE-RESUME /* ************************ Control Triggers ************************ */ &Scoped-define SELF-NAME gArtikelLagerort &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelLagerort gArtikelLagerort ON END-ERROR OF FRAME gArtikelLagerort /* Artikel/Lagerorte */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelLagerort gArtikelLagerort ON GO OF FRAME gArtikelLagerort /* Artikel/Lagerorte */ DO: RUN ENDE_PROGRAMM ( INPUT THIS-PROCEDURE:FILE-NAME ) NO-ERROR. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL gArtikelLagerort gArtikelLagerort ON WINDOW-CLOSE OF FRAME gArtikelLagerort /* Artikel/Lagerorte */ DO: RUN ENDE. RETURN NO-APPLY. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Btn_Excel &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Excel gArtikelLagerort ON CHOOSE OF Btn_Excel IN FRAME gArtikelLagerort /* Excel */ DO: DO WITH FRAME {&FRAME-NAME}: Btn_Excel:VISIBLE = FALSE. RUN REPORT. Btn_Excel:VISIBLE = TRUE. RUN ENDE. END. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Hersteller &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Hersteller gArtikelLagerort ON HELP OF Hersteller IN FRAME gArtikelLagerort /* Hersteller */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'HERST' ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Hersteller gArtikelLagerort ON LEFT-MOUSE-DBLCLICK OF Hersteller IN FRAME gArtikelLagerort /* Hersteller */ DO: RUN g-auswahl-tabelle.w ( INPUT SELF:HANDLE, INPUT 'HERST' ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &Scoped-define SELF-NAME Warengruppen &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Warengruppen gArtikelLagerort ON HELP OF Warengruppen IN FRAME gArtikelLagerort /* Warengruppen */ DO: RUN g-auswahl-wgr.w ( INPUT SELF:HANDLE ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Warengruppen gArtikelLagerort ON LEFT-MOUSE-DBLCLICK OF Warengruppen IN FRAME gArtikelLagerort /* Warengruppen */ DO: RUN g-auswahl-wgr.w ( INPUT SELF:HANDLE ). APPLY 'END' TO SELF. END. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &UNDEFINE SELF-NAME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK gArtikelLagerort /* *************************** Main Block *************************** */ MaxPage = 1. AktSeite = 1. Firma = DYNAMIC-FUNCTION('GETMANDANT':U) NO-ERROR. AdFirma = DYNAMIC-FUNCTION('GETADMANDANT':U) NO-ERROR. SESSION:DATA-ENTRY-RETURN = TRUE. /* ------------------------------------------------------------------ */ {src/adm2/dialogmn.i} /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME /* ********************** Internal Procedures *********************** */ &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects gArtikelLagerort _ADM-CREATE-OBJECTS PROCEDURE adm-create-objects : /*------------------------------------------------------------------------------ Purpose: Create handles for all SmartObjects used in this procedure. After SmartObjects are initialized, then SmartLinks are added. Parameters: ------------------------------------------------------------------------------*/ END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE BEREINIGEN gArtikelLagerort PROCEDURE BEREINIGEN : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT-OUTPUT PARAMETER ipString AS CHAR NO-UNDO. DEF VAR cString AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR ii AS INT NO-UNDO. cString = ''. DO ix = 1 TO NUM-ENTRIES(ipString, ','): IF CString <> '' THEN cString = cString + ','. cString = cString + STRING(INTEGER(ENTRY(ix, ipString)),'999'). END. ipString = cString. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI gArtikelLagerort _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 gArtikelLagerort. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enableObject gArtikelLagerort PROCEDURE enableObject : /*------------------------------------------------------------------------------ Purpose: Super Override Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. RUN SUPER. RUN FENSTER_TITEL ( INPUT FRAME {&FRAME-NAME}:HANDLE ) NO-ERROR. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. IF VALID-HANDLE(Fenster) THEN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE(Fenster). DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF Fenster:TYPE = 'EDITOR' THEN LEAVE. IF Fenster:TYPE = 'LITERAL' THEN LEAVE. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE. IF Fenster:TYPE = 'BUTTON' THEN LEAVE. GET-KEY-VALUE SECTION 'ArtikelLagerorte' KEY Fenster:NAME VALUE cString. IF cString = ? THEN LEAVE. Fenster:SCREEN-VALUE = cString. LEAVE. END. Fenster = Fenster:NEXT-SIBLING. END. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI gArtikelLagerort _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 Hersteller Warengruppen VonArtnr BisArtnr R_Sort WITH FRAME gArtikelLagerort. ENABLE Hersteller Warengruppen VonArtnr BisArtnr R_Sort Btn_Excel RECT-37 WITH FRAME gArtikelLagerort. VIEW FRAME gArtikelLagerort. {&OPEN-BROWSERS-IN-QUERY-gArtikelLagerort} END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE ENDE gArtikelLagerort PROCEDURE ENDE : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ 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 gArtikelLagerort 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 gArtikelLagerort 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 KOPF gArtikelLagerort PROCEDURE KOPF : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER eh AS COM-HANDLE NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. FIND Steuer USE-INDEX Steuer-k1 WHERE Steuer.Firma = Firma NO-LOCK NO-ERROR. Zelle = 'B1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Firma1. Zelle = 'D1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Artikel-Lagerorte'. Zelle = 'G1'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Datum : ' + STRING(TODAY,'99.99.9999'). Zelle = 'B2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = Steuer.Ort. Zelle = 'D2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = ''. Zelle = 'G2'. eh:Range(Zelle):SELECT. eh:SELECTION:VALUE = 'Zeit : ' + STRING(TIME,'HH:MM:SS'). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE REPORT gArtikelLagerort PROCEDURE REPORT : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cString AS CHAR NO-UNDO. DEF VAR ix AS INT NO-UNDO. DEF VAR ii AS INT NO-UNDO. DEF VAR Stern AS CHAR NO-UNDO. DEF VAR Alk AS CHAR NO-UNDO. DEF VAR xWgr AS CHAR NO-UNDO. DEF VAR xPgr AS CHAR NO-UNDO. DEF VAR xAgr AS CHAR NO-UNDO. DEF VAR iVG AS DEC NO-UNDO. DEF VAR iGG AS DEC NO-UNDO. DEF VAR OK AS LOG NO-UNDO. DEF VAR excelAppl AS COM-HANDLE NO-UNDO. DEF VAR Vorlage AS CHAR NO-UNDO. DEF VAR Dokument AS CHAR NO-UNDO. DEF VAR Daten AS CHAR NO-UNDO. DEF VAR Zelle AS CHAR NO-UNDO. DO WITH FRAME {&FRAME-NAME}: ASSIGN {&List-6}. IF VonArtnr = 0 AND BisArtnr = 0 THEN BisArtnr = 999999. RUN BEREINIGEN ( INPUT-OUTPUT Hersteller ). RUN BEREINIGEN ( INPUT-OUTPUT Warengruppen ). DISPLAY {&list-6}. END. IF NOT VALID-HANDLE(Fenster) THEN Fenster = FRAME {&FRAME-NAME}:CURRENT-ITERATION. IF VALID-HANDLE(Fenster) THEN Fenster = Fenster:FIRST-CHILD. DO WHILE VALID-HANDLE(Fenster). DO WHILE TRUE WITH FRAME {&FRAME-NAME}: IF Fenster:TYPE = 'EDITOR' THEN LEAVE. IF Fenster:TYPE = 'LITERAL' THEN LEAVE. IF Fenster:TYPE = 'RECTANGLE' THEN LEAVE. IF Fenster:TYPE = 'BUTTON' THEN LEAVE. cString = Fenster:SCREEN-VALUE. PUT-KEY-VALUE SECTION 'ArtikelLagerorte' KEY Fenster:NAME VALUE cString. LEAVE. END. Fenster = Fenster:NEXT-SIBLING. END. SESSION:SET-WAIT-STATE('GENERAL'). RUN SELEKTION. Vorlage = 'ArtikelLagerort.xls'. Dokument = Vorlage + CHR(01) + Vorlage. Daten = 'ArtikelLagerort.csv'. excelAppl = DYNAMIC-FUNCTION('CREATEEXCEL':U) NO-ERROR. IF NOT VALID-HANDLE(excelAppl) THEN DO: RUN FEHLER ( INPUT 1035 ). RETURN NO-APPLY. END. DO WHILE TRUE: RUN CREATEDATEI ( INPUT Dokument ). IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE. CASE RETURN-VALUE: WHEN 'ERROR-PARAMETER' THEN DO: RUN FEHLER ( INPUT 1036 ). RETURN NO-APPLY. END. WHEN 'ERROR-LOESCHEN' THEN DO: RUN FEHLER ( INPUT 1037 ). RETURN NO-APPLY. END. WHEN 'ERROR-VORLAGE' THEN DO: RUN FEHLER ( INPUT 1038 ). RETURN NO-APPLY. END. OTHERWISE DO: MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. END CASE. LEAVE. END. Dokument = RETURN-VALUE. DO WHILE TRUE: RUN CREATEDATEI ( INPUT Daten ). IF NOT RETURN-VALUE BEGINS 'ERROR-' THEN LEAVE. CASE RETURN-VALUE: WHEN 'ERROR-PARAMETER' THEN DO: RUN FEHLER ( INPUT 1036 ). RETURN NO-APPLY. END. WHEN 'ERROR-LOESCHEN' THEN DO: RUN FEHLER ( INPUT 1037 ). RETURN NO-APPLY. END. WHEN 'ERROR-VORLAGE' THEN DO: RUN FEHLER ( INPUT 1038 ). RETURN NO-APPLY. END. OTHERWISE DO: MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX ERROR. RETURN NO-APPLY. END. END CASE. LEAVE. END. Daten = RETURN-VALUE. OUTPUT TO VALUE(Daten). PUT CONTROL '£' CHR(10) '£' CHR(10) '£' CHR(10) '£' CHR(10) '£Artnr/Inha/Jahr£Bezeichnung££LagOrt£WarGrp£Hersteller' CHR(10). FOR EACH TArtst BY TArtst.Schluessel: PUT CONTROL '£' STRING(TArtst.Artnr ,'999999') '.' STRING(TArtst.Inhalt ,'9999') '.' STRING(TArtst.Jahr ,'9999') '£' TArtst.Bez '££' TArtst.Lagort '£' TArtst.cWgr '£' TArtst.cHerst CHR(10). END. OUTPUT CLOSE. RUN OPENEXCEL ( INPUT excelAppl, INPUT Dokument, INPUT '', OUTPUT ok ). IF NOT ok THEN DO: RUN FEHLER ( INPUT 1040 ). RETURN NO-APPLY. END. Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:FormulaR1C1 = 'TEXT;' + Daten. excelAppl:Application:RUN ( 'DateiEinfügen' ). RUN KOPF ( INPUT excelAppl ). Zelle = 'A1'. excelAppl:Range(Zelle):SELECT. excelAppl:Selection:ColumnWidth = 0.3. DYNAMIC-FUNCTION('RELEASEEXCEL':U, INPUT excelAppl ) NO-ERROR. SESSION:SET-WAIT-STATE(''). END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE SELEKTION gArtikelLagerort PROCEDURE SELEKTION : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF VAR cWgr AS CHAR NO-UNDO. DEF VAR cHerst AS CHAR NO-UNDO. EMPTY TEMP-TABLE TArtst. FOR EACH Artst NO-LOCK USE-INDEX Artst-k1 WHERE Artst.Firma = Firma AND Artst.Artnr >= VonArtnr AND Artst.Artnr <= BisArtnr AND Artst.Aktiv = TRUE AND Artst.Ausverk < 9 AND ((Warengruppen = '') OR (Warengruppen <> '' AND LOOKUP(STRING(Artst.Wg_Grp,"999"), Warengruppen, ',') > 0)) AND ((Hersteller = '') OR (Hersteller <> '' AND LOOKUP(STRING(Artst.Herst,"999"), Hersteller , ',') > 0)), FIRST ArtLager OF Artst NO-LOCK, FIRST Artbez OF Artst NO-LOCK: FIND FIRST HoReLager NO-LOCK USE-INDEX HoReLager-k3 WHERE HoReLager.Firma = Artst.Firma AND HoReLager.Art = 1 AND HoReLager.Lager = 0 AND HoReLager.Artnr = Artst.Artnr AND HoReLager.Inhalt = Artst.Inhalt NO-ERROR. CREATE TArtst. ASSIGN TArtst.Artnr = Artst.Artnr TArtst.Inhalt = Artst.Inhalt TArtst.Jahr = Artst.Jahr TArtst.Bez = TRIM(Artbez.Bez1 + ' ' + Artbez.Bez2) TArtst.Herst = Artst.Herst TArtst.Wgr = Artst.Wg_Grp TArtst.Lagort = (IF AVAILABLE HoReLager THEN HoReLager.cSort ELSE ArtLager.Ort). CASE R_Sort: WHEN 1 THEN TArtst.Schluessel = STRING(Artst.Artnr ,'999999') + STRING(Artst.Inhalt,'9999') + STRING(Artst.Jahr ,'9999'). WHEN 2 THEN TArtst.Schluessel = Artst.Suchbe. WHEN 3 THEN TArtst.Schluessel = Artlager.Ort. END CASE. END. FOR EACH TArtst BREAK BY TArtst.Wgr: IF FIRST-OF ( TArtst.Wgr ) THEN DO: FIND WarenGrp WHERE WarenGrp.Firma = Firma AND WarenGrp.Wgr = TArtst.Wgr NO-LOCK NO-ERROR. IF AVAILABLE WarenGrp THEN cWgr = WarenGrp.Bez1. ELSE cWgr = '??????????'. END. TArtst.cWgr = cWgr. END. FOR EACH TArtst BREAK BY TArtst.Herst: IF FIRST-OF ( TArtst.Herst ) THEN DO: RUN FIND_HERSTELLER ( INPUT TArtst.Herst, OUTPUT cHerst ). IF cHerst = '' THEN cHerst = '??????????'. ELSE cHerst = ENTRY(2, cHerst, CHR(01)). cHerst = TRIM(SUBSTRING(cHerst,01,20)). END. TArtst.cHerst = cHerst. END. END PROCEDURE. /* _UIB-CODE-BLOCK-END */ &ANALYZE-RESUME