[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Apr 2005
    Beiträge
    73

    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
    20.207
    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: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

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

Berechtigungen

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