MIDRANGE dot COM Mailing List Archive



Home » RPG400-L » August 2004

RE: Function key indicators



fixed

Yes, for each function key you want to use in your program, you need to code
the appropriate  CAxx or CFxx key in the DSPF DDS.
-Bob Cozzi


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Luis Martins
Sent: Thursday, August 05, 2004 11:03 AM
To: CN=RPG programming on the AS400/O=iSeries
Subject: RE: Function key indicators

Should i define CFxx keyword for function key in the display file ?

Thank You !

Luis Martins.



Please respond to RPG programming on the AS400 / iSeries
       <rpg400-l@xxxxxxxxxxxx>

Sent by:    rpg400-l-bounces@xxxxxxxxxxxx


To:    "'RPG programming on the AS400 / iSeries'" <rpg400-l@xxxxxxxxxxxx>
cc:
Subject:    RE: Function key indicators


If you have my book "The Modern RPG IV Language" it has the code there to
do
this.
Here's the summary (see below):
-Bob Cozzi

Specify an INFDS for the Display file, something like this:
 FMyDsp CF        Workstn    INFDS(WSDS)

Then in position 369 of the INFDS, code a field for the FKEY scan code (AID
BYTE) that is returned, something like this:

  D  WSDS      DS
  D   FKey                1A   Overlay(WSDS:369)

Then include the FKEYS /COPY member from my book or from the RPG xTools. It
contains all the named constants that equate to the scan code for the
functions keys. For example F3 = X'33', something like this:
  /INCLUDE   xTOOLS/qcpysrc,fkeys

Then down in the calcs, use a SELECT/WHEN case group or an IF statement to
check for the function key:

 C        Exfmt  MyFmt
 C        If       FKey =  F3
 C        eval     *INLR = *ON
 C        return
 C        ElseIf   FKey = F4
 C        callp    FindItem(ITMDESC)
 C        endif

If you don't have the xTools or my Book, (why am I helping you??? <vbg>)
here is the FKEYS /COPY that you'll need.

      /IF NOT DEFINED(RTK_FKEYS)
      /DEFINE RTK_FKEYS
      ** (c) Copyright 1989 - 2003 by Robert Cozzi, Jr.
      **********************************************************
      **      RPGLIB - The RPG xTools  www.rpgxtools.com      **
      **      -----------------------------------------       **
      **  Program  . . . . . . . FKEY_CONST                   **
      **  Description  . . . . . Function key named constants **
      **                                                      **
      **  Features . . . . . . . The Attention ID Byte        **
      **                         for each function key        **
      **                         is defined here.             **
      **                                                      **
      **********************************************************
.....D*ame+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++

++++Comments++++++++++++
     D F1              C                   CONST(X'31')
     D F2              C                   CONST(X'32')
     D F3              C                   CONST(X'33')
     D F4              C                   CONST(X'34')
     D F5              C                   CONST(X'35')
     D F6              C                   CONST(X'36')
     D F7              C                   CONST(X'37')
     D F8              C                   CONST(X'38')
     D F9              C                   CONST(X'39')
     D F10             C                   CONST(X'3A')
     D F11             C                   CONST(X'3B')
     D F12             C                   CONST(X'3C')
     D F13             C                   CONST(X'B1')
     D F14             C                   CONST(X'B2')
     D F15             C                   CONST(X'B3')
     D F16             C                   CONST(X'B4')
     D F17             C                   CONST(X'B5')
     D F18             C                   CONST(X'B6')
     D F19             C                   CONST(X'B7')
     D F20             C                   CONST(X'B8')
     D F21             C                   CONST(X'B9')
     D F22             C                   CONST(X'BA')
     D F23             C                   CONST(X'BB')
     D F24             C                   CONST(X'BC')
     D CLEAR           C                   CONST(X'BD')
     D ENTER           C                   CONST(X'F1')
     D HELP            C                   CONST(X'F3')
     D ROLLDN          C                   CONST(X'F4')
     D ROLLUP          C                   CONST(X'F5')
     D PRINT           C                   CONST(X'F6')
     D RCBKSP          C                   CONST(X'F8')
     D AUTENT          C                   CONST(X'3F')
      /ENDIF


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Luis Martins
Sent: Thursday, August 05, 2004 9:51 AM
To: CN=RPG programming on the AS400/O=iSeries
Subject: Re: Function key indicators

Hello there!

Can you give me an example of this Two things ?

Thank You !

Luis Martins




Please respond to RPG programming on the AS400 / iSeries
       <rpg400-l@xxxxxxxxxxxx>

Sent by:    rpg400-l-bounces@xxxxxxxxxxxx


To:    rpg400-l@xxxxxxxxxxxx
cc:
Subject:    Re: Function key indicators


Two things.

1) Instead of indicators, why not use the INFDS and the AID?

2) To use the DUP key I would have to DSs: one contain all the screen
fields, the other similar fields with obvious other names (on V5R1 you may
use key word QUALIFIED). Then first press, move from DS1 to DS2, second
press move from DS2 to DS1. Unless this is an old RPG III programme.

Regards,
Carel Teijgeler

*********** REPLY SEPARATOR  ***********

On 3-8-04 at 16:49 Tim Kredlo wrote:

>I am attempting to 'genericize' the routine I use to test for the 'dup'
key use.
>
>I would like it to be generic enough so that it would work without
modification when the length or layout of the input data changes.
>Most screens have I, O,and B data interspersed. (## represents the 'screen
number id')
>
>To do this I declare the input buffer (Input## -LikeRec(PgmScrn##:
*Input)). I cycle through the input data structure character by >character
substituting any found 'dup' characters with the corresponding character
from a 'saved' input buffer (PrvInput03  S   1 >Dim(%Len(Input##))), until
I get to the end (%Len(Input01)). For this to work I changed my typical
(all I ever use) 'exfmt' with a 'write >format' line, followed by a
'read-formatname-data structure' line. (I could not figure out how to
automatically fill the input buffer data >structure using 'exfmt')
>
>This works fine. However, changing from 'exfmt' to 'read-formatname-data
structure' stops the function key indicators (*InKA-*InKY) >from
automatically being set on when the corresponding function key is pressed.
>
>If I remove the data structure name from the 'read' line, hitting a
function key DOES set on the corresponding *InK? indicator >automatically,
just like when I used 'exfmt'. Why does the absence/presence of this data
structure name change this?
>
>Is there a way to set up the screen 'reads' so that functions keys
automatically set on the corresponding *InK? indicator (like 'exfmt' >does)
AND the input buffer data structure gets filled automatically like when the
'read-formatname-data structure' method is used?
>
>(Because of legacy issues I cannot (do not want to) use *In01-*In99 to
represent the function keys without a lot more code >modifications than I
care to do.) Or is there a different way of declaring the input buffer so
that all input
>fields are contiguous and its length can be determined?



--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.





Luis Martins
Finibanco, S.A.
Tel.: 21 0002331 - Fax: 21 3114509
http://www.finibanco.pt

__________________________________________________

Esta mensagem e quaisquer ficheiros anexos são confidenciais, destinando-se
ao uso exclusivo da pessoa e/ou entidade a que se dirigem. Caso não se lhe
destine, ou não seja responsável pelo seu encaminhamento ao destinatário,
informamos que a recebeu por engano. Qualquer utilização, distribuição,
reencaminhamento ou outra forma de revelação a terceiros, impressão ou
cópia são expressamente proibidos; sendo que agradecemos que destrua a
mensagem de imediato, informando o seu emissor ou o Finibanco do sucedido.
Não obstante o Finibanco utilizar software anti-vírus como precaução, não é
possível garantir que a presente mensagem e eventuais ficheiros anexos não
contêm vírus, pelo que não consideramos da responsabilidade desta
instituição eventuais consequências inerentes. Alerta-se, ainda, que as
mensagens transmitidas por este meio podem ser interceptadas, corrompidas,
perdidas, destruídas ou entregues com atraso ao destinatário.




--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.




--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.





Luis Martins
Finibanco, S.A.
Tel.: 21 0002331 - Fax: 21 3114509
http://www.finibanco.pt

__________________________________________________

Esta mensagem e quaisquer ficheiros anexos são confidenciais, destinando-se
ao uso exclusivo da pessoa e/ou entidade a que se dirigem. Caso não se lhe
destine, ou não seja responsável pelo seu encaminhamento ao destinatário,
informamos que a recebeu por engano. Qualquer utilização, distribuição,
reencaminhamento ou outra forma de revelação a terceiros, impressão ou
cópia são expressamente proibidos; sendo que agradecemos que destrua a
mensagem de imediato, informando o seu emissor ou o Finibanco do sucedido.
Não obstante o Finibanco utilizar software anti-vírus como precaução, não é
possível garantir que a presente mensagem e eventuais ficheiros anexos não
contêm vírus, pelo que não consideramos da responsabilidade desta
instituição eventuais consequências inerentes. Alerta-se, ainda, que as
mensagens transmitidas por este meio podem ser interceptadas, corrompidas,
perdidas, destruídas ou entregues com atraso ao destinatário.




--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.









Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot COM and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact