[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2005
    Beiträge
    89

    Daten Freigabe Taste abfragen?

    Hallo Forum,

    gibt es in RPG/ILE (mittlerweile) eine Möglichkeit um nach einem EXFMT eines DSPF explizit abzufragen ob die Daten Freigabe Taste gedrückt wurde, ähnlich wie bei einer Befehlstaste? CAxx oder so?

    Lg,
    Michael

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Da gibt es wohl einen Hinweis in der INFDS.

    Allerdings weiß ich nicht, wofür das gut sein soll, da die Logik ja eigentlich folgende ist:

    Ist keine F-Taste gedrückt, bleibt dochnur die Enter-Taste.

    Gut, es gibt nur einen Grund, nämlich dann wenn ein Autoenter-Feld deklariert ist.
    Dann muss ich ggf. zwischen Autoenter und tatsächlichem Enter unterscheiden können, und dafür gibts die INFDS.
    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

  3. #3
    Registriert seit
    Feb 2008
    Beiträge
    104
    ja, das geht über die INFDS:

    DSPF:

    A DSPSIZ(24 80 *DS3)
    A PRINT
    A INDARA


    Programm:

    fvtc050d cf e WORKSTN infds(dspfds)
    f indds(bezugsz)



    d dspfds ds
    d Ftaste 369 369






    Werte für Ftaste:

    d F01 c const(X'31')
    d F02 c const(X'32')
    d Ende c const(X'33')
    d F04 c const(X'34')
    d F05 c const(X'35')
    d F06 c const(X'36')
    d F07 c const(X'37')
    d F08 c const(X'38')
    d F09 c const(X'39')
    d F10 c const(X'3A')
    d F11 c const(X'3B')
    d F12 c const(X'3C')
    d F13 c const(X'B1')
    d F14 c const(X'B2')
    d F15 c const(X'B3')
    d F16 c const(X'B4')
    d F17 c const(X'B5')

    d F18 c const(X'B6')
    d F19 c const(X'B7')
    d F20 c const(X'B8')
    d F21 c const(X'B9')
    d F22 c const(X'BA')
    d F23 c const(X'BB')
    d F24 c const(X'BC')
    d clear c const(X'BD')
    d Enter c const(X'F1')
    d help c const(X'F3')
    d pagedown c const(X'F4')
    d pageup c const(X'F5')
    d print c const(X'F6')


    Abfrage im Programm:

    select;
    when ftaste = Ende;
    vxst0 = 9;
    when ftaste = F12;
    vxst0 = 9;
    when ftaste = F13;
    exsr Hilfe;
    vxst0 = 1;
    when ftaste = pageup;
    exsr s02;
    other;

    endsl;


    Mit den entsprechenden Hex-Codes lassen sich auf diese Weise alle gedrückten Tasten abfragen.

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    ... das Ganze geht übrigens schon seit Einführung der AS/400 also seit 1988!

    Das Gefuddel mit *INKirgendwas, bei dem man ständig an den Fingern abzählen muss, ob *INKR F17 oder F18 ist und außerdem wissen muss, das *INKO fehlt, entfällt ebenso wie das Verschwenden von 24 Bezugszahlen für CA und CF.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    May 2007
    Beiträge
    295
    Ich habe mir einen Copysource erstellt den ich nach dem EXFMT des DSPF per /COPY reinkopiere. In diesem Copysource frage ich immer alle *INKx ab und befülle übersichtlichere Variablen ( F1-FENTER ).
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  6. #6
    Registriert seit
    Nov 2005
    Beiträge
    89
    vielen Dank für die zahlreichen infos!
    Ja, es geht dabei um ein auto-enter field in einem subfile, dafür ist es leider in einem bestimmten fall nötig die enter abzufragen.
    wieder was dazu gelernt

    mfg,
    michael gruber

  7. #7
    Registriert seit
    Nov 2005
    Beiträge
    89
    Zitat Zitat von B.Hauser Beitrag anzeigen
    ... das Ganze geht übrigens schon seit Einführung der AS/400 also seit 1988!

    Das Gefuddel mit *INKirgendwas, bei dem man ständig an den Fingern abzählen muss, ob *INKR F17 oder F18 ist und außerdem wissen muss, das *INKO fehlt, entfällt ebenso wie das Verschwenden von 24 Bezugszahlen für CA und CF.

    Birgitta
    danke, ich arbeite seit 1990 auf der AS400, aber keiner meiner Lehrmeister hat mir das je verraten!
    man lernt also niemals aus - perfekt.
    lg,
    michael gruber

  8. #8
    Registriert seit
    Jan 2007
    Beiträge
    122
    Zitat Zitat von B.Hauser Beitrag anzeigen
    ... das Ganze geht übrigens schon seit Einführung der AS/400 also seit 1988!

    Das Gefuddel mit *INKirgendwas, bei dem man ständig an den Fingern abzählen muss, ob *INKR F17 oder F18 ist und außerdem wissen muss, das *INKO fehlt, entfällt ebenso wie das Verschwenden von 24 Bezugszahlen für CA und CF.

    Birgitta
    wofür ist das eigentlich gut *inKirgendwas zu verwenden? Kann ich wenn ich *inKA verwende die *in01 nochmal extra verwenden damit ich mehr Bezugszahlen als 99 Stück zur Verfügung habe?

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Hallo,

    ich würde *IN01-*IN99 nur für die Subfile-Steuerung verwenden, das ist aber das einzige für die man *IN01-*IN99 benötigt und die kann man mittlerweile über INDDS in RPG umbennenen, so dass im Source Code sprechende Namen verwendet werden können. (Achja *INLR wird noch benötigt, aber ab V6R1 kann man auch darauf verzichten!)

    M.E. ist es einfacher zu lesen wenn im Source Code SFLNXTCHG = *ON steht, wie wenn *IN54 = *ON steht.

    Ansonsten sind die *IN01-*IN99 potentielle Fehlerquellen (Stichwort Doppelbelegung).

    Wenn Schalter benötigt werden, kann man diese über den Datentyp N definieren und dabei sprechende Namen verwenden.

    Damit erübrigt sich auch die Frage, ob man bei *INKIrgendwas weitere 24 Bezugszahlen zur Verfügung hat, weil man diese nicht mehr braucht. (Auch wenn man *INKA und *IN01 unabhängig voneinander verwenden kann!)

    *INKA bis *INKZ würde ich nie verwenden. Weil ich mir wirklich nicht merken kann was z.B. *INKR ist. Bei der Lösung von Khholm braucht man überhaupt keine *IN-Bezugszahlen, also weder *IN01-*IN99 noch *INKA - *INKZ.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  10. #10
    Registriert seit
    Sep 2005
    Beiträge
    79

    ENTER-Taste

    Hallo Leut,
    Beitrag war genau was ich suche.
    Unterscheidung Return vom Autoenterfeld oder echte Entertaste.
    Funktioniert aber bei mir nicht.
    Bekomme immer x'F1' zurück!?

    FFEDESDUD CFEWorkstnInfds(DSPDS)
    D DSPDS DS
    D FunktionTaste369 369A
    D Enter C Const(X'F1')
    If FunktionTaste = Enter ;
    Dsply'Enter' ;
    Endif ;

    Danke für eure Hilfe.

Similar Threads

  1. Kein Zugriff von Linux auf AS/400 Freigabe?
    By schatte in forum NEWSboard Linux
    Antworten: 12
    Letzter Beitrag: 29-01-08, 14:02
  2. Bibliotheksliste in RPG IV abfragen
    By timeless in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 11-01-07, 12:04
  3. Nachricht CPDB053 beim Zugriff auf Windows Freigabe
    By schatte in forum NEWSboard Windows
    Antworten: 7
    Letzter Beitrag: 21-11-06, 11:37
  4. IFS Datei Daten hinzufügen
    By sim in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 18-05-06, 08:00
  5. Daten Import Tool + Dublettensuche für i5 CRM
    By Heinz Molter in forum Archiv NEWSblibs
    Antworten: 0
    Letzter Beitrag: 31-08-04, 09:48

Berechtigungen

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