[NEWSboard IBMi Forum]

Thema: Print im SDA

  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    1.975

    Angry Print im SDA

    Hallo Kollegen,
    Wer weiß eine Lösung für folgendes Problem:
    Wenn ich im DSPF die PRINT-Taste einschalte,
    bleiben alle geänderten BS-Inhalte erhalten, ich muß nur 1 mal Grundstellung drücken.
    Das ist OK
    Wenn ich bei Print eine Bezugszahl ansetze, um den Druck selbst zu übernehmen kommen geänderte Felder mit ihren alten Inhalten zurück. Nur wenn vor dem drücken der Print-taste Dat.Frei betätigt wird, bleibt der BS-Inhalt unverändert

    Vielen Dank für Jede Hilfe
    Robi

    PS.: Ich muß den Druck selber übernehmen, da ich vom Green-Screen beim Drucken von Window's keine Rahmen bekomme
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  2. #2
    Registriert seit
    Jul 2001
    Beiträge
    68

    Post

    ich habe einen kurztest durchgeführt
    Test-Datei
    PRINT(71 'Drucktaste')
    R T01 (Satz)
    OVERLAY
    PUTRETAIN
    letzter bs inhalt blieb bestehen.
    = zusätzlich schlüsselfeld auf record-ebene
    überlagerungs-schlüsselwörter overlay=j
    putretain=j

    ich arbeite sonst immer nur mit print auf
    datei-ebene ohne bezugszahlen

    hoffenlich hilf´s m.f.g. Alf


    [Dieser Beitrag wurde von LGALF am 09. Juli 2001 editiert.]

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    1.975

    Post

    Danke, das geht tatsächlich . Es ist bei uns nur so, das wir mit PUTOVR und OVRDTA arbeiten um das übertragungsvolumen gering zu halten (Bezugszahlengesteuert) PUTRETAIN und putovr vertragen sich aber nicht. Na mal sehn was ich über diese Schlüsselwörter rausbekomme, vieleicht schaffen wir sie ja ab nochmal Danke,
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    727

    Post

    Im Prinzip funktioniert PRINT(01) wie eine CAXX-Taste (Funktionsabruftaste), d.h. es werden nach dem Verlassen von EXFMT/READ keine Daten aus dem DSPF-Record an das Programm zurückgegeben, genauer READ wird einfach nicht ausgeführt.
    (Im Gegensatz zu einer CFXX-Taste)

    Wird PRINT ohne Bezugszahl benutzt, bekommst Du auch keine Steuerung an das Programm zurück, d.h. OS/400 verarbeitet PRINT selber.

    Problemlösung :

    Trennung von EXFMT in WRITE/READ.
    Rücksprung zwischen WRITE und READ nach Verarbeitung der PRINT(01)-Routine.
    Im Prinzip bedeutet dies, der Satz wird nicht erneut geschrieben und die alten Daten bleiben erhalten.
    Gleiche Vorgehensweise bei Programmierung einer eigenen Hilferoutine mit z.B. HELP(01).


    [Dieser Beitrag wurde von Sven Schneider am 09. Juli 2001 editiert.]

    [Dieser Beitrag wurde von Sven Schneider am 09. Juli 2001 editiert.]

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    1.975

    Post

    Hallo Sven
    Was du schreibst ist leider nicht die Lösung

    Wenn im DSPF nicht die Entertaste gedrückt wird kommen keine geänderten Daten aus dem DSPF.
    Das Programm, das den BS-Inhalt druckt, druckt zwar die Änderungen aber der erneute Write zeigt Sie nicht an.
    (es sei denn, ich berüchsichtige den Tipp von LGALF)
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  6. #6
    Registriert seit
    Jul 2001
    Beiträge
    68

    Post

    ohne putretain (mit putovr) habe ich z.b. im
    cl folgendes probiert:

    == ausgabe bildschirm
    sndrcvf (wie exfmt)
    ==
    wenn print-taste (bezugszahl) an - dann
    rcvf rcdfmt(T01) wait(*yes)
    (read)lesen bildschirm mit erzwungener aktion
    z.b. datenfreigabe


    [Dieser Beitrag wurde von LGALF am 10. Juli 2001 editiert.]

  7. #7
    Registriert seit
    Jun 2001
    Beiträge
    727

    Post

    Mißverständnis :

    An das Programm werden die Daten natürlich nicht übergeben. Daten werden lediglich bei Datenfreigabe und CFXX-Tasten übergeben. (Habe ich auch so geschrieben)

    Bei der erneuten Anzeige des Records bleiben aber so die eingegebenen Werte (vor dem Betätigen der PRINT-Taste) erhalten.

    Übrigens kein erneutes WRITE nach der Verarbeitung der PRINT-Routine, sondern nur READ !!!
    Ein erneutes WRITE auf das DSPF-Record würde die Felder aus dem Programmpuffer überschreiben.

    Also bei PRINT(01) im DSPF :

    WRITE RECORD1
    *IN01 DOUEQ*OFF
    READ RECORD1 99
    *IN01 IFEQ *ON
    EXSR PRINT
    ENDIF
    ENDDO

    Siehe vorhergehendes Posting von LGALF.
    Das CLP geht im Prinzip genauso vor.

    [Dieser Beitrag wurde von Sven Schneider am 10. Juli 2001 editiert.]

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    1.975

    Post

    Stimmt, hab mich vom Debugger irritieren lassen, der Feldwert kommt nicht zurück, aber wenn ich anschl. nur einen read mache stehen die geänderten Daten noch auf dem Schirm.
    Sorry + Danke
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

Similar Threads

  1. SDA & "OR"-Bezugszahlen
    By muadeep in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 24-08-09, 18:29
  2. A5 mit Host Print Transform auf HP
    By dirkus in forum NEWSboard Drucker
    Antworten: 4
    Letzter Beitrag: 26-10-06, 17:52
  3. Dos Print II
    By Joe in forum NEWSboard Drucker
    Antworten: 2
    Letzter Beitrag: 08-03-06, 16:26
  4. AS/400 print difference HPLJ5000-HPLJ4200
    By RLPforum in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 05-12-05, 10:55
  5. Hilfefunktion bei Menüs (mit SDA)
    By Trickydelphin in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 07-01-05, 14:47

Berechtigungen

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