-
Soweit ich weiß nicht. F3/F12-Unterscheidung gibt es nur bei CMD-Aufrufen mit Prompt.
RUNQRY selbst wird ja nicht gepromptet.
Nun hängt es aber doch von der Art des Queries ab.
Ich denke es wird eine Datei oder ein Spool erstellt (nur Satzanzeige sollte eigentlich egal sein).
Dann kannst du ja den Inhalt der Datei (RTVMBRD) oder die Existenz des Spools (CHGSPLFA) prüfen.
-
Datei
Es wird eine Datei erstellt.
Ob diese da ist weis ich schon.
Mein Problem ist aber das ich RUNQRY aus der Bildschirmmaske 1 mache und wenn der Benutzer F12 / F3 drückt soll dann diese Maske verlassen werden. Das Query aber ausgeführt wurde soll die Anzeige von Maske2 stattfinden in der die Ergebnisse der Abfrage angezeigt werden.
Ich glaube aber ich habe einen Ansatz um es herauszufinden. Wenn das Query nicht ausgeführt wurde ist die Datei nicht vorhanden und sollte es ausgeführt worden sein, auch wenn keine gültigen Daten selektiert wurden, existieren die Datei.
-
Ich gehe davon aus, du hast z.B. ein CL geschrieben und aus diesem wird ein RUNQRY gepromptet. Der Anwender drückt ENTER, das Query wird ausgeführt. Der Anwender drückt F3/F12 das CLP geht auf MSGW. Also einfach mit MONMSG das RUNQRY abfangen.
Wenn ich falsch liege, dann Entschuldigung für die falsche Antwort.
Gruß
DVE
-
Es ist kein CL sondern ein RPGLE aus dem ich den RUNQRY mache und das Programm läuft auch nicht auf Fehler wenn der Anwender F3/F12 drückt.
Ich habe das Problem aber jetzt so gelöst:
Die Datei die vom RUNQRY erstellt wird wird in die QTEMP gestellt(vorher wird ein möglich noch vorhandene Datei gekillt(mit Fehlerabfangen wenn nicht da)).
Ist diese nach den RUNQRY nicht vorhanden so heißt das für mich der Anwender hat F3 / F12 gedrückt.
-
Nur für mich zur Info. IM RPGLE rufst du das RUNQRY mit einem CALL "irgendwas" auf ? Wenn ja, hast du diesen CALL über Bezugszahlen abgefangen ? Wenn ja, gehen die Bezugszahl auf *ON wenn du F3/F12 drückst.
Gruß
DVE
-
Alls erstes habe ich mir eine allgemeine Prozedur geschaffen mit der ich alle CL-Aufrufe über QCMDEXC(....) aufrufen kann. Weiterhin habe ich eine Prozedur die mir in einer Befehlszeile Ersatzzeichen gegen was auch immer austauscht.
Die Prozedur zum Aufruf von CL-Befehlen wird z.B. so aufgerufen
docmd('DSPMSG');
Das ist der Befehl um DSPMSG auszuführen.
Oder besseres Beispiel
D cCmd1 C 'DLTF FILE({1}/{2})'
D vVals S like(typVals) DIM(%elem(typVals)) inz
D vCmd S 255A inz
// DLTF
clear vVals;
vVals(1) = cTempLib;
vVals(2) = cQryFile;
vCmd = sFillTextVar(cCmd1 :vVals);
docmd(vCmd :true);
Dabei ist cCmd1 die Konstante mit Befehl.
vVals ist die Struktur in der die zuersetzenden Teile sind.
cTempLib = QTEMP(als Konstante)
cQryFile = Ist das File
sFillTextVar = Prozedur in der die Ersatzzeichen({1} / {2}) gegen Werte ausgetauscht werden.
docmd = Prozedur in der ein CL-Befehl ausgeführt wird
Similar Threads
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 29-11-06, 18:07
-
By TARASIK in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 22-08-06, 09:52
-
By Azubiiiiii in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 03-08-06, 09:44
-
By Hubert Brethauer in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 05-05-06, 12:37
-
By antonkuh in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 24-04-06, 10:37
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