[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2016
    Beiträge
    3

    Question AS400 Wert auslesen und in txt/ xls schreiben

    Guten Morgen,

    ich nutze iSeries Access für Windows - Version 5.9
    und arbeite im Green Screen Modus.


    Ich möchte verschiedene Kostenstellen automatisch aufrufen und den Wert zwischen 05/038 und 05/057 auslesen und entweder in eine Text- oder Exceldatei schreiben.

    Ein Beispiel:

    Click image for larger version. 

Name:	Screenshot AS400.jpg 
Views:	143 
Size:	104,6 KB 
ID:	362
    (orange: Werte eingeben// rot: auszulesender Wert)


    bei Cursorposition: 04/019
    soll EM eingetragen werden

    bei Cursorposition: 05/019
    soll 80 eingetragen werden

    bei Cursorposition: 05/022
    soll ENAL eingetragen werden

    --> aktualisieren
    zwischen 05/038 und 05/057 steht der Wert 1997,75 diesen möchte ich jetzt auslesen und in Excel schreiben. Danach soll die nächste Kostenstelle ausgelesen werden.

    Mit der Makroaufzeichnungsfunktion komme ich nicht weiter.
    Habe auch im Internet gesucht und da ich lediglich ein wenig VBA beherrsche, komme ich nicht weiter...

    Kann mir hiermit bitte jemand weiterhelfen?

    Vielen Dank.

    Schöne Grüße
    Alex

  2. #2
    Registriert seit
    Sep 2005
    Beiträge
    393
    Ich vermute du kannst das Pgm nicht ändern und suchst nach einer Möglichkeit, das 'von Außen' zu machen?

    Bei welchem Auslöser?
    Taste drücken? oder 'voll automatisch'

    Für "Taste drücken" gäbe es eine Lösung über die TN5250J Emulationserweiterung vom Meinikat
    (The-Tool-Company.de)
    Die haben da was um den BS aus zu lesen und eine Aktion zu machen.
    Ob das mit iSeries Access für Windows - Version 5.9 geht weis ich nicht

    Vollautomatisch sehe ich keine Möglichkeit, ggf. kann Meinikat aber da was programmieren, die sind m.E. ganz gut!

    Der ILEMax

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn du weißt, in welcher Datei diese Informationen liegen ist das doch viel einfacher, im Excel per "Externe Daten->MS Query" die Datei auszulesen.
    Dieser Heckmeck mit 5250 ist da doch viel zu aufwendig.

    Ansonsten gab es hier im Forum schon mal einen Betrag per VBA und Session-API's auf die Daten zuzugreifen. Empfehlenswert ist das nicht da zu fehleranfällig.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Jan 2016
    Beiträge
    3
    Hallo,

    danke für eure Antworten.
    Da ich keine Admin-Rechte besitze, fällt die TN5250 flach.

    Leider weiß ich nicht in welcher Datei diese Informationen liegen.

    Mit einem iSeries Makro ist das nicht möglich?
    Das ich mit Sendkeys das gewünschte Fenster aufrufe und dann den benötigten Bereich kopiere und in eine Textdatei schreibe?


    vg
    Alex

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Für solche Aktionen setzt man sich mit der hauseigenen IT auseinander.
    Die sollte in der Lage sein, dir die Daten irgendwie zur Verfügung zu stellen oder den Standort für ein MS-Query benennen können.

    Was du alternativ machen kannst (das 5250-Makro ist ja VB-Script), vom aktuellen Screen die Funktion Screenshot aufzurufen (kann man per Makroaufzeichnung mal ausführen).
    Der Screenshot wird in 2 Formaten in die Zwischenablage gelegt, 1x Bitmap, 1x Nur Text.
    Per VBS kann man auf das Clipboard zugreifen und sich dann den Text aus der entsprechenden Zeile per "mid"-Funktion rausholen.

    Wie gesagt: schön ist das nicht.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Jan 2016
    Beiträge
    3
    Habe ich probiert. Dort will keiner weiterhelfen...

    Hab jetzt mit deiner vorgeschlagenen Alternative weitergemacht. Klappt leider nicht so.
    Sobald ich die Screenshots gespeichert hätte wärs kein Problem den Rest mit VBA zu machen.
    Am Ende der aufgenommene Code. Wie schätzt du die Lage ein?

    Bevor "em80enal" gesendet wird, müsste das Makro an die Kursorpositione 04,019 wechseln.

    dazu bin ich auf das gestoßen, funktioniert leider nicht...
    Private Declare Sub SetCursorPos Lib "User32" (ByVal X As Long, ByVal Y As Long)
    SetCursorPos 4, 19


    Die iSeries Funktion Screenshot finde ich nicht. Habe im Menü jede Möglichkeit durchsucht.
    Du meinst ja nicht den Print-Key oder?


    [PCOMM SCRIPT HEADER]
    LANGUAGE=VBSCRIPT
    DESCRIPTION=
    [PCOMM SCRIPT SOURCE]
    OPTION EXPLICIT
    autECLSession.SetConnectionByName(ThisSessionName)
    REM This line calls the macro subroutine
    subSub1_
    sub subSub1_()
    autECLSession.autECLOIA.WaitForAppAvailable
    autECLSession.autECLOIA.WaitForInputReady
    autECLSession.autECLPS.SendKeys "em80enal"
    autECLSession.autECLOIA.WaitForInputReady
    autECLSession.autECLPS.SendKeys "[enter]"
    end Sub


    vg
    Alex

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da du ja mit den API's schon umgehst, musst du die Doku dazu mal beschaffen.
    Dort findest du entsprechende Methoden für die Sitzungssteuerung.

    SetCursorPos() ist eine Windows-Funktion und setzt den Mauszeiger auf die Pixel-Koordinaten.

    Entschuldige bitte:
    Bist du ein Azubi der hier Beschäftigungstherapie betreibt?
    Die IT-Abteilung sollte gewisse Wünsche der Fachabteilungen respektieren.
    In den meisten Betrieben gibt's da bestimmt entsprechende Formulare und Wege.
    Datenbankabfragen, also Queries, sollten für die IT kein Problem darstellen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Dec 2014
    Beiträge
    310
    Zitat Zitat von AlexK* Beitrag anzeigen
    ...
    Leider weiß ich nicht in welcher Datei diese Informationen liegen.
    ...

    Hallo Alex,

    evtl. könntest Du mal Folgendes probieren:
    Den besagten Bildschirm aufrufen, dann "Shift + Escape"-Taste gleichzeitig drücken, nun sollte unten eine (blaue) Eingabezeile erscheinen.
    In diese eine "3" eingeben und Enter.
    Im nun angezeigten Menü den Punkt "14 - Offene Dateien anzeigen" auswählen.

    Wenn hier nicht allzuviele offene Dateien vorhanden sind, solltest Du damit die betreffende Datei herausfinden können (Dateiname + Bibliothek).
    Einfach mal ausprobieren.

Similar Threads

  1. Antworten: 15
    Letzter Beitrag: 05-01-16, 15:42
  2. AS400 Schriftfarbe per Excel Makro auslesen
    By petzi-mg in forum NEWSboard Windows
    Antworten: 3
    Letzter Beitrag: 22-05-15, 07:10
  3. Antworten: 3
    Letzter Beitrag: 27-01-15, 13:18
  4. CPW-Wert Prozessor Feature
    By Frank Hildebrandt in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 01-04-03, 11:43
  5. Von AS/400 direkt in MS-SQL-Server schreiben
    By Michael@Paff.de in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 28-04-02, 08:42

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •