Det grunnleggende i Cobol omdefinerte

Det grunnleggende i Cobol omdefinerte

I denne artikkelen vil vi prøve å forstå COBOL -omdefinen. Dette brukes til å forklare den samme feltlagringen på mange måter.

Det betyr at definisjonen og omdefinering av feltet begge refererer til de samme lagringsbyttene. COBOL -omdefiner kan ikke ha en verdiklausul, og den kan ikke brukes på nivå 1 i filen eller rapportseksjonen.

Det grunnleggende av omdefinerklausulen

Du skriver et program for å generere en rapport, og du vet at rapporten har tre forskjellige seksjoner. Den første delen er overskriften, den andre delen er detaljoppføringen, og den tredje delen er traileren. Det er to måter du kan definere strukturen i programmet ditt. Den første er å definere hver enkelt seksjon i filen Division eller kan være i din arbeidslagringsdel. Et annet alternativ er at du kan definere 132 byte for overskriften. Tilsvarende kan du omdefinere detaljoppføringen og trailerplaten igjen.

Kort sagt, du kan bruke omdefinerklausulen for å referere til samme minneplassering. Hvis du vil skrive i overskriften, flytter du postene til de aktuelle overskriftsfilene, og du kan skrive den rapporten. Du refererer til det samme minneplassen til de samme lagringsbyttene som er 132 byte.

Syntaksdetaljer:

  • Omdefinerklausulen må følge umiddelbart etter data-navn-2.
  • Data-navn-1 kan ikke ha verdiklausulen.
  • Nivånummeret til data-navn-1 = datanavn -2 må ikke være 66 eller 88.
  • Data-navn-1-størrelsen skal ikke overstige datanavn-2-størrelse. Imidlertid kan det være mindre enn data-navn-2.
  • Data-NAME-2-elementet kan ikke inneholde en OCCUS-klausul.
  • 01-49 datanavn-1.
  • Omdefinerer data-navn-2.

Noen eksempler på Cobol omdefinerer

Eksempel 1:

Identifikasjonsavdeling.
Program-ID. omdefinere.
Dataavdeling.
Fildelen.
Arbeidshageseksjon.
01 WS-REDEFINES-EX.
05 WS-Todays-Date Pic 9 (08) Verdi "2020717".
05 WS-CURR-DTE omdefinerer WS-Todays-Date.
10 cc bilde 9 (02).
10 å oy bilde 9 (02).
10 mm bilde 9 (02).
10 DD Pic 9 (02).
Prosedyreavdeling.
A000-main-seksjon.
Vis "WS-Todays-Date:" WS-Todays-Date.
Vis "ws-curr-dte:" ws-curr-dte.
Stopp løp.

Produksjon:

Papan@Papan -VirtualBox: ~/Desktop/PP/Ny $ COBC -XJF One.Cbl
en.CBL: 11: Advarsel: Numerisk verdi forventes
WS-Todays-Date: 2020717
WS-Curr-DTE: 2020717
Papan@Papan-VirtualBox: ~/Desktop/PP/Ny $

Forklaring:

I dette eksemplet omdefinerer vi dagens dato inn i den nåværende datoen som faktisk er en gruppevariabel fra århundre, år, måned og dag. Egentlig delte vi dagens dato i fire forskjellige felt. Så den første linjen er å definere nivånummeret 05 som er en variabel kalt dagens dato og størrelsen på variabelen er 9 av 8. Nå er den nåværende datoen den nye variabelen som faktisk er omdefinering av dagens dato og gruppe på fire felt. Den samlede størrelsen på alle felt er 8 byte.

Eksempel 2:

Identifikasjonsavdeling.
Program-ID. ANSATT.
Dataavdeling.
Fildelen.
Arbeidshageseksjon.
01 EMP-REC.
05 EMP-REC-LY PIC X (30) Verdi "David Martinez Gomes".
05 emp-name-dtl omdefinerer emp-rec-ly.
10 EMP-FNAME PIC X (15).
10 EMP-LNAME PIC X (15).
05 EMP-DPT-NAME REVINGER EMP-REC-LY.
10 EMP-DPT PIC X (10).
10 EMP-ADD PIC X (15).
Prosedyreavdeling.
A000-main-seksjon.
Vis "emp-rec-ly:" emp-rec-ly.
Vis "EMP-NAME-DTL:" EMP-NAME-DTL.
Vis "emp-fname:" emp-fname.
Vis "emp-lname:" emp-lname.
Vis "EMP-DPT-NAME:" EMP-DPT-NAME.
Vis "emp-add:" emp-add.
Stopp løp.

Produksjon:

Papan@Papan -VirtualBox: ~/Desktop/PP/Ny $ COBC -XJF to.Cbl
Emp-Rec-ly: David Martinez Gomes
EMP-NAME-DTL: David Martinez Gomes
EMP-FNAME: David Martinez
EMP-LNAME: GOMES
EMP-DPT-NAME: David Martinez Gomes
Emp-Add: Inez Gomes

Forklaring:

I dette eksemplet omdefinerte vi den samme variabelen flere ganger. Det finnes to felt: EMP-REC-LY, som er EMP-detaljoppføringen og EMP-DPT-NME, som er EMP-avdelingsnavnet. Dette er to variabler som faktisk omdefinerte EMP-REC-LY som er X (30). Hvis du ser den første som er EMP-Name-DTL, er det igjen en gruppevariabel av de første og etternavnene med størrelsen 15 og 10, henholdsvis. Tilsvarende ser vi bare på den andre omdefinisjonen som er EMP-DPT-NME, som igjen er en omdefinering av EMP-REC-LY. Det er en gruppe variabel x (10) og x (15).

Eksempel 3:

Identifikasjonsavdeling.
Program-ID. Måneders_table.
Dataavdeling.
Fildelen.
Arbeidshageseksjon.
01 måned-tbl.
05 Mnth-nme.
10 Filler Pic X (03) Verdi 'Jan'.
10 Filler Pic X (03) Verdi 'Feb'.
10 Filler Pic X (03) Verdi 'Mar'.
05 Filler omdefinerer mnth-nme.
10 måned-nme forekommer 3 ganger.
15 mnth bilde x (03).
Prosedyreavdeling.
Vis "Month-TBL:" Month-TBL.
Vis "Month-nme:" Mnth-nme.
Stopp løp.

Produksjon:

Papan@Papan -VirtualBox: ~/Desktop/PP/Ny $ COBC -XJF Tre.Cbl
Month-TBL: Janfebmar
Mnth-nme: Janfebmar
Papan@Papan-VirtualBox: ~/Desktop/PP/Ny $

Forklaring:

La oss gå videre til dette eksemplet der vi brukte omdefinerklausulen for å initialisere månedens navn. Hvis du skriver ut verdien av månedens navn, tabell eller matrise, vil du oppdage at den første forekomsten kommer til å ha “Jan”, den andre forekomsten har “Feb”, og den tredje forekomsten har “Mar”. Med denne teknikken kan du faktisk tilordne innledende verdier til matrisen eller tabellen.

Konklusjon

I denne artikkelen lærte vi om den generelle syntaksen i "omdefiner" -uttalelsen i COBOL og det grunnleggende konseptet for denne uttalelsen der vi faktisk kan bruke denne uttalelsen er forklart. Vi håper at du forstår anvendelsen av denne uttalelsen.