Ciao
Non conosco personalmente OpenCobol ma ho lavorato per parecchi anni col linguaggio Cobol.
Ho dato un'occhiata alla documentazione OpenCobol e secondo me dovrebbe funzionare in questo modo:
- Fai la ACCEPT di un campo e metti la clausola ON EXCEPTION che sta ad indicare dove salvare il valore del tasto funzione premuto
- Dopo la ACCEPT verifichi il valore del tasto funzione paragonandolo a quello del tasto funzione premuto
Ora il problema è capire qual è il valore del tasto funzione premuto.
Nella documentazione OpenCobol mi pare di capire che questi valori siano riportati in qualche modo nel file screenio.cpy (così è scritto nel manuale ufficale, pagina 26 nella sezione 6.3.13)
Pertanto, all'interno di quel file, dovresti trovare delle variabili di livello 78 in cui viene dato un nome a tali valori (però non ti so dire quali nomi, bisogna guardare quel file).
Detto questo (che è forse quello che ti serve), ti giro un esempio di codice che dovrebbe fare una accept e visualizzare il valore associato al tasto funzione premuto.
(occhio che l'ho scritto al volo, potrebbe mancare qualcosa, al limite lo sistemi)
identification division.
program-id. test-fkey.
environment division.
data division.
working-storage section.
77 fkey pic 9(04).
77 w-char pic x(01).
procedure division.
perform until 1 = 2
initialize fkey w-char
accept w-char at 0101 update prompt tab echo
on exception
fkey continue
end-accept
*---- se fkey ha un valore, allora hai premuto un tasto funzione
if fkey > zero
display fkey at 0201
else
display " " at 0201
end-if
*---- se si digita "f", allora usciamo dal ciclo
if w-char = "f"
exit perform
end-if
end-perform
.
stop run.