PDA

View Full Version : Bildschirmanzeige als Text speichern



Seiten : [1] 2

petzi-mg
30-10-14, 13:17
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?

Fuerchau
30-10-14, 13:49
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.

petzi-mg
30-10-14, 15:56
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?

Fuerchau
30-10-14, 16:09
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.

petzi-mg
30-10-14, 17:03
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.

Pikachu
31-10-14, 08:01
Es gibt bei den Makros auch die Funktion "Bearbeiten - Kopieren, Anhängen". Vielleicht hilft das weiter.


Erst über "Bearbeiten->Kopieren" wird die Zwischenablage gefüllt.
Allerdings ersetzt jedes Kopieren den Text.

AG1965_2
31-10-14, 15:40
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 (file://\\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. :-)

Fuerchau
31-10-14, 17:50
Aber nur, wenn die Anzeige ein Spool ist und keine Subfile-Anzeige, Stichwort "Weitere.../Ende".

AG1965_2
03-11-14, 09:38
... As oben genanntem Grund kopiere ich einen meist mehrseitigen Druckauftrag ...
Das klingt für mich schon verdammt nach Spool-Datei.

Fuerchau
03-11-14, 11:39
Stimmt, das ist hart.
Mit Kommandozeile würde ich tatsächliche einen CPYSPLF machen und mir die Daten dann per ODBC mit SQL holen.