[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Thema: EXFMT

  1. #1
    Registriert seit
    Nov 2006
    Beiträge
    10

    EXFMT

    Hallo ich bin hier ganz neu! Unzwar ich hab ein funktionierendes RPG Programm mit dazugehöriger Printerfile geschrieben. Jetzt möcht ich ein Bildschirm (SDA) in mein RPG-Programm verknüpfen. Ich weiß das ich den Befehl "exfmt" benutzen muss aber hab noch nie damit gearbeitet!
    Wie muss ich den das machen bzw wie sieht der Befehl aus? Vielleicht irgendwo wo ich es nachlesen kann hilft mir auch weiter!

    Also wie schon gesagt ich --> newbie

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    62
    Hallo
    anbei ein kleines Programm:

    Ftestca cf e workstn
    C exfmt fmt001
    C eval *inlr = *on


    Displayfile:

    A DSPSIZ(24 80 *DS3)
    A R FMT001

    A CF04(04)
    A 5 4'vvvvvvvvvvvvvvv'
    A FELD1 10 B 5 23

  3. #3
    Registriert seit
    Nov 2006
    Beiträge
    10
    Danke für die Antwort, so wie ich das verstehe muss das ganze so ausschauen:

    C exfmt dlav016t
    C eval *inlr = *on

    C MOVE FELD1 P#FLD1

    Wird jetzt das FELD1 von der DSPF gelesen und in meinem RPG-Programm in das Feld "P#FLD1" umgeschrieben???

  4. #4
    Registriert seit
    Sep 2006
    Beiträge
    162
    Kommt darauf an:

    Soll das Feld für die BS Ausgabe vorbelegt werden muss der MOVE vor dem EXFMT kommen.
    Willst du lesen was eingegeben wurde .. nach dem EXFMT.

    Oder eben beides

    Gruß
    DVE

  5. #5
    Registriert seit
    Nov 2006
    Beiträge
    10
    Hmm, also das RPG-Programm ist ja so aufgebaut gewesen, das er beim aufrufen noch einen Parameter gebraucht hat also so:
    call 'Programm' 'Parameter(z.B Datum)'

    Die Eingabe in der DSPF bzw das FELD1 soll das Datum sein, was der Benutzer eingibt. Und des soll gelesen werden und im Im RPG-Prog weiterverarbeitet werden.

  6. #6
    Registriert seit
    Sep 2006
    Beiträge
    162
    Also zuerst das MOVE des Übergabparameter in das Feld für die Bildschirmausgabe und dann EXFMT und anschließend die weiterverarbeitung im RPG-Programm.

    das Feld in der DSPF kann dassselbe sein wie im RPG. Dann erspart man sich die Vorbelegegung und den MOVE für die Weiterverarbeitung.
    Allerdings würde ich persönlich die Feldnamen von einander trennen.


    Gruß
    DVE

  7. #7
    Registriert seit
    Nov 2006
    Beiträge
    10
    Also erstmal danke an alle jetzt hab ich des was ich vor hatte!

    Aber zur Verbesserung hab ich mir was gedacht! Dieses FELD1 was der Benutzer eingibt, da soll immer das heutige Datum stehen (aber es kann geändert werden)und es soll geprüft werden ob die Datum eingabe richtig ist, wie funktioniert das?

  8. #8
    Registriert seit
    Sep 2006
    Beiträge
    162
    Viele wege führen nach ROM.
    Die SQL-Fraktion wird dir ein SQL-Statement nennen.
    Dann könntest du ein CLP schreiben in dem du das Kommando CVTDAT verwendest und mit MONMSG abfängst. Geht der CVTDAT auf Fehler dann ist das Datum kein Datum.
    Es gibt darüber hinaus noch API's usw.

    Also such dir was aus.

    Gruß
    DVE

  9. #9
    Registriert seit
    Nov 2006
    Beiträge
    10
    soso hab das mit dem Datumtest gemacht aber wie mach ich das in der DSPF das in meinem Eingabefeld schon das heutige datum steht???

    Hab es mir so gedacht:

    c move *date feld1
    c exfmt DSPF...
    c move feld1 feld2

    also er soll das Datum in feld 1 schieben
    dann soll die DSPF gelesen werden.
    Aber leider steht das Datum nicht drin in der DSPF was muss ich den genau machen??

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Hallo,

    kleine Anmerkung zu *DATE

    *DATE und alle anderen Datums-Informationen mit * und U beziehen sich auf das Job-Datum und nicht das System-Datum.

    Der Unterschied ist, dass im Job-Datum das Datum steht, an dem der Job gestartet wurde. Also wenn in der Fertigung ein Bildschirm steht, an dem sich der erste Mitarbeiter am Montag-Morgen anmeldet und der letzte am Freitag Abend den Job beendet, bzw. den Bildschirm ausmacht, liefert *DATE am Freitag immer noch das Datum vom Montag.

    Um das System-Datum zu ermitteln muss entweder der OperationCode TIME oder die Built-In-Function %DATE() verwendet werden.

    Auch wenn ich SQL liebe, würde ich in diesem Fall das System-Datum nicht damit ermitteln. Dennoch gibt es in SQL die Spezial-Werte CURRENT_DATE, CURRENT_TIME und CURRENT_TIMESTAMP, über die das Sytem-Datum bzw. -Zeit ermittelt werden kann.

    Wie hast Du eigentlich Dein Eingabe-Feld definiert?
    Als Input-Feld (I) oder Ein-/Ausgabe-Feld (B)?
    Wenn das Feld als Input-Feld definiert ist, kannst Du es nicht vorbelegen.

    Birgitta

    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

  11. #11
    Registriert seit
    Nov 2006
    Beiträge
    10
    ok war bis jetzt nur als input feld definiert hab es geändert. Wie müssen den die sätze ausschauen?

    c move *date feld1
    c exfmt DSPF...
    c move feld1 feld2

    so funktioniert es noch nicht!

  12. #12
    Registriert seit
    Nov 2006
    Beiträge
    10
    ok war bis jetzt nur als input feld definiert hab es geändert. Wie müssen den die sätze ausschauen?

    c move *date feld1
    c exfmt DSPF...
    c move feld1 feld2

    so funktioniert es noch nicht!

Similar Threads

  1. SFLNXTCHG
    By Armin in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 16-10-06, 12:40
  2. Subfilepositionierung bei der Ausgabe des Steuersatz mit WRITE
    By timeless in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 24-05-06, 06:37
  3. Anzeigen eines Datenfeldes mittels API
    By Jörg Huber in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-01-06, 15:19
  4. Window(s) in RPGLE
    By peter.kinne in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 06-09-05, 10:29
  5. EXFMT ohne Datenfreigabe
    By Stefan12 in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 21-09-04, 09:35

Berechtigungen

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