-
Bildschirmanzeige als Text speichern
Vorab: ich bin eigentlich reiner Anwender, kein AS400 Programmierer oder Admin, bin mit meinen Möglichkeiten also entsprechend eingeschränkt.
Problem - ich muss regemäßig große Datenmengen als Textdatei abspeichern. As oben genanntem Grund kopiere ich einen meist mehrseitigen Druckauftrag in's AS400-Eigene Notepad, indem ich die Bildschirmanzeige seitenweise kopiere und das ganze dan abspeichere. Dasa Script dazu sieht so aus:
[wait app]
[wait inp inh]
:Loop
[Edit Send to SP]
[roll up]
wait 20msec until "Weitere ..."
goto macroend on timeout
goto Loop
:macroend
[Edit Send to SP]
exit
Das klappt auch soweit ganz gut.
Trotzdem: gibt es alternativ die Möglichkeit, anstatt in's AS400-Notepad z.B. in die Windows Zwichenablage zu kopieren und von da aus direkt in eine Textdatei zu speichern (natürlich immer die selbe) oder den Inhalt des Notepads automatisch zu speichern und dieses dann ebenfalls automatisch zu schließen?
-
Ich weiß zwar nicht, was du als AS400-Notepad bezeichnest, aber das ist schon ein wenig "blöd".
Mach mal eine Makroaufzeichnung, die den Bereich markiert und kopiert.
Dies ist schon mal die Zwischenablage (Clipboard).
Dann konvertiere das Makro (falls es nicht schon ist) in ein VB-Schript.
Die CA-5250 unterstützt das schon.
Hier kannst du dann per Automatisierung (VB-Objekte) auf das Clipboard zugreifen, die Daten auslesen und in eine Textdatei schreiben.
Ob die ganze Aktion sinnvoll ist kann ich nicht beurteilen.
Mehr Sinn macht für mich, ggf. mit der IT-Abteilung, ein Excel-Import per externer Abfrage oder eine 5250-Datenübertragung zu definieren.
-
Ja, sinnvoll ist sicher anders, aber wenn ich das über die IT-Abteilung machen(n lasse), warte ich in 5 Jahren noch, darum muss ich auch diesen kuriosen Umweg machen.
Mein Fachgebiet ist leider nicht AS-400 Programmierung, sondern Datenauswertung. Makros in VB-Script kann ich allerdings. Makros kann ich auch direkt in VB-Script aufzeichnen.
Jetzt mal kurz für Dummies -> wenn ich den Bereich markiere, ist er damit schon in der Zwischenablage?
-
Erst über "Bearbeiten->Kopieren" wird die Zwischenablage gefüllt.
Allerdings ersetzt jedes Kopieren den Text.
Wenn du VB-Script kannst, kannst du auch auf das Clipboard-Object zugreifen und per FileSystem-Object eine Textdatei ausgeben.
-
Zitat von Fuerchau
Erst über "Bearbeiten->Kopieren" wird die Zwischenablage gefüllt.
Allerdings ersetzt jedes Kopieren den Text.
Wenn du VB-Script kannst, kannst du auch auf das Clipboard-Object zugreifen und per FileSystem-Object eine Textdatei ausgeben.
...das kopieren - im zweifelsfall einfach den ganzen Bildschirm (filtern kann ich dann immer noch) - geht ja auch per Script, mach ich ja bereits. Muss das nur noch in VB übersetzen. Dann ein Schleifchen und seitenweise in die Ausgabedatei schaufeln? Klingt nach einem Plan.
-
Es gibt bei den Makros auch die Funktion "Bearbeiten - Kopieren, Anhängen". Vielleicht hilft das weiter.
Zitat von Fuerchau
Erst über "Bearbeiten->Kopieren" wird die Zwischenablage gefüllt.
Allerdings ersetzt jedes Kopieren den Text.
-
Wenn Du Befehle eingeben darfst (z.B. WRKSPLF), dann geht auch ein CPYSPLF.
CPYSPLF FILE(Spooldatei)
TOFILE(*TOSTMF)
JOB(*)
SPLNBR(*LAST)
TOSTMF('/tmp/spool.txt')
Der Befehl kopiert die letzte Spoolausgabe meines Jobs ins sogenannte "IFS". Allerdings leider in EBCDIC, das kann man am PC nicht so leicht lesen.
CPY OBJ('/tmp/spool.txt')
TOOBJ('/tmp/spool2.txt')
TOCCSID(1252)
DTAFMT(*TEXT)
löst das Problem.
Und wenn man dann noch eine "Freigabe" definiert hat, z.B. "root", dann kann man im Windows Explorer mit \\deineMaschine\root\tmp\spool2.txt direkt darauf zugreifen.
Und wenn Deine EDVler das direkt hinter die Erstellung der Liste einbauen, hast Du in 5 Jahren überhaupt keine Arbeit mehr damit. :-)
-
Aber nur, wenn die Anzeige ein Spool ist und keine Subfile-Anzeige, Stichwort "Weitere.../Ende".
-
... As oben genanntem Grund kopiere ich einen meist mehrseitigen Druckauftrag ...
Das klingt für mich schon verdammt nach Spool-Datei.
-
Stimmt, das ist hart.
Mit Kommandozeile würde ich tatsächliche einen CPYSPLF machen und mir die Daten dann per ODBC mit SQL holen.
-
Mit dem OpsNav (oder wie er derzeit heißt) kommt man doch auch an die Spooldateien und kann sie einfach als Textdatei kopieren.
-
Je nach dem was ich machen will hilft mir ein
select substr(spoolfile, n, m) as f1, .... from spoolfile
where substr(spoolfile, n, m) "ist Datenzeile"
mehr, als den Spool erst in .TXT und anschließend mit VBA und Excel wieder auseinander nehmen.
Und für sowas gibt es dann Software wie z.B. Compleo (die kann natürlich auch mehr).
Similar Threads
-
By AK1 in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 07-04-14, 06:38
-
By TheDevil in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 18-12-13, 10:20
-
By activ in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 24-05-02, 07:32
-
By W.Steiner in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 12-10-01, 07:07
-
By erwin in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 13-02-01, 07:04
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks