[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2005
    Beiträge
    44

    COBOL mit Programm-System-Übergabefeld

    Hallo Specialists!

    Ich als COBOL-Newbie will wie in RPG ein DSPF mit Programm-System-Übergabefelder im DSPF arbeiten. Das DSPF ist soweit OK. Das Attribut zu setzen (Hidden und Protect) funktioniert auch. Nur beim Drücken der ENTER Taste verschiebt sich der Feldinhalt um 2 Byte - vermutlich ein Fehler im Bildschirmbuffer???

    Es gibt sicher Spezialisten die hierfür eine Idee haben!

    Codeausschnitte:
    PROCESS MAP DATETIME VARCHAR NOMONOPRC
    .
    .
    SELECT MSKERLEFM
    ASSIGN TO WORKSTATION-MSKERLEFM
    ORGANIZATION IS TRANSACTION
    ACCESS MODE IS SEQUENTIAL
    CONTROL-AREA IS MSKERLEFM-CONTROL.
    .
    .
    FD MSKERLEFM.
    01 MSKERLE1.
    COPY DDS-ALL-FORMATS OF MSKERLEFM.

    * Setzen DSPF Attribute
    MOVE ATRHIDDEN TO XERLPOST OF MSKERLE1-O.
    MOVE ATRPROTHIDD TO XERLPOS OF MSKERLE1-O.
    *
    PERFORM AUSWAHL.
    CLOSE MSKERLEFM.

    GOBACK.

    * MASKENSTEUERUNG UND GÜLTIGKEITSPRÜFUNG
    AUSWAHL SECTION.
    AUS-0.

    WRITE MSKERLE1 FORMAT "MSKERLE1"
    INDICATORS ARE SCREEN-INDICATORS.
    MOVE ZEROES TO SCREEN-INDICATORS
    READ MSKERLEFM FORMAT "MSKERLE1".

    .
    .
    .
    Ich kann Daten in die Maske eintragen. Doch beim Drücken der ENTER Taste werden die Feldinhalte immer um 2 Byte verschoben!.
    Was muss ich berücksichtigen, damit COBOL die Zeichen in der Maske richtig darstellt?

    Vielen Dank im Voraus

    Hermann

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    17.537
    Im Gegensatz zu RPG unterscheidet COBOL zwischen Input- und Output-Formaten.
    D.h., beim Read gibt es nur Input-Felder und ggf. INxx, beim Write nur Output-Felder, wobei ein Input- auch ein Output-Feld sein kann.
    Wenn du dir die Definition des DDS-ALL-Formats ansiehst, kannst du jede Menge Redefinitionen der unterschiedlichen Formate entdecken.
    Programm-Übergabefeld sind, wie der Name schon sagt, eben nur Ausgabefelder und fehlen daher bei der Eingabe.

    I.d.R. legt man sich daher in der WORKING-Storage Section je Input- und Output einzelne Satzstrukturen an, so dass man per READ ... INTO und WRITE .... FROM ganz genau unterscheiden kann.
    Da COBOL nun mal tippintensiv ist, erhöht sich da etwas der Aufwand:

    w-s section.
    01 Formate.
    copy dds-format-i of dspfile
    copy dds-format-o of dspfile

    read dspfile into format-i format is "FORMAT"
    move corr format-i to format-o
    write dsprecord from format-o format is "FORMAT"

    Die Namen "format" hängen dann halt von deinen tatsächlichen Formatnamen ab und der Zugriff erweitert sich leider mit

    feld of format-i
    feld of format-o
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

Ähnliche Themen

  1. Programm aus QRPLOBJ wird dem echten Programm vorgezogen
    Von dschroeder im Forum NEWSboard programmierung
    Antworten: 4
    Letzter Beitrag: 30-01-17, 13:36
  2. SQL & Cobol
    Von KingofKning im Forum NEWSboard programmierung
    Antworten: 5
    Letzter Beitrag: 26-01-17, 13:16
  3. COBOL
    Von Claudia Lange im Forum System i Hauptforum
    Antworten: 4
    Letzter Beitrag: 23-07-02, 11:32
  4. cobol programm auf as400 speichern
    Von activ im Forum System i Hauptforum
    Antworten: 1
    Letzter Beitrag: 24-05-02, 07:32
  5. Cobol Programm mit DUMP beenden
    Von Wirnitzer im Forum System i Hauptforum
    Antworten: 3
    Letzter Beitrag: 09-08-01, 10:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •