MainframeSupports
tip uge 30/2000:

Med indførelsen af internettet kom også udbredelsen af hypertext. Vi klikker på en understreget tekst og vupti, så er vi i et helt andet dokument. Konceptet er enkelt og genialt og vi har kunnet bruge det i ISPF editoren de sidste mange år. Og vi har sikkert benyttet det uden at tænke over, at det i princippet er det, vi har gjort.

På din installation benytter du sikkert en feature i ISPF editoren, hvor du skriver et eller andet kommandonavn i kommandolinien, stiller cursoren på et datasetnavn og trykker Enter. Vupti er du i Edit eller View på det pågældende dataset eller member. Det er jo faktisk indbegrebet af hypertext. Denne uges tip handler om, hvordan du laver din egen hypertext kommando.

Det vigtigste værktøj er selvfølgelig en Edit-macro. Edit-macro'er skrives nu om dage bedst i REXX:

/* REXX: HYPERTXT */
ADDRESS ISREDIT
"MACRO"
"(LRECL) = LRECL"
"(LINENO, POSNO) = CURSOR"
IF POSNO > 0 & POSNO <= LRECL
THEN DO
  "(MYLINE) = LINE "LINENO
  IF POS(SUBSTR(MYLINE, POSNO, 1), '0123456789') > 0
  THEN
    ADDRESS ISPEXEC "VIEW DATASET(MY.NUMBER.DATASET)"
  ELSE
    ADDRESS ISPEXEC "EDIT DATASET(MY.LETTER.DATASET)"
END
ELSE
  SAY 'CURSOR NOT IN DATA'
EXIT

Det vigtigste i denne REXX er det, der foregår i linie 4, 5 og 6. Disse linier afgør om cursoren overhovedet er placeret i datadelen af det, man er i Edit eller View på. Er man ikke i datadelen, så må man hellere fortælle omverdenen om cursorens vildfarelse. Er man i datadelen, så begynder det sjove. Først (i linie 8) henter vi indholdet af linien, cursoren står på, ind i en REXX-variabel (MYLINE), og derefter er det egentlig kun fantasien, der sætter grænserne. POSNO indeholder den aktuelle position af cursoren i linien. Bare for illustrationens skyld har jeg valgt at gå i View på dataset MY.NUMBER.DATASET, hvis cursoren står på et tal, eller i Edit på dataset MY.LETTER.DATASET, hvis cursoren står på alt andet.

Det kedelige ved ovenstående REXX er måden, den skal aktiveres på. Først (og det er vigtigt) skal man skrive HYPERTXT i kommandolinien og derefter, vel at mærke uden at trykke på Enter, skal man stille cursoren et eller andet sted i datadelen, og så skal man trykke Enter. Det kløjs man hurtigt i, men der findes heldigvis en genial løsning på dette problem. Gå ind i KEYS, tilegn en af PF-tasterne værdien HYPERTXT (eller hvad du nu kaldet din egen REXX til formålet) og gå ud igen. Nu kan du nøjes med at stille cursoren det ønskede sted i datadelen og trykke på den valgte PF-tast og så sker miraklet med det samme. Jeg benytter selv PF6 til min egen hypertext-REXX, da PF6 normalt benyttes til kommandoen RCHANGE, som jeg stort set aldrig nogensinde har brugt. Andre gode muligheder er PF4, som indeholder RETURN. Det er en kedelig kommando, som man helst vil undgå at benytte. God fornøjelse.

Sidste uges tip        Tip oversigten