Pues ah� va el fuente en un fichero TXT, s�lo tienes que subirlo al AS y
compilarlo.

Saludos.

Juan Carlos.

 <<rtvpos.txt>> 

> -----Mensaje original-----
> De:   Jaime Villa Torres [SMTP:[EMAIL PROTECTED]
> Enviado el:   lunes, 03 de enero de 2005 17:29
> Para: [email protected]
> Asunto:       Re: Cursor-NUEVAMENTE Juan Carlos Paredes
> <[EMAIL PROTECTED]>
> 
> Es correcto, y gracias, y si me ayudas con tu programa me ayudas un resto,
> para no estar dando vueltas con la api.
> 
> Jaime Villa T.
> ----- Mensaje original ----- 
> De: "Juan Carlos Paredes" <[EMAIL PROTECTED]>
> Para: <[email protected]>
> Enviado: Lunes, 03 de Enero de 2005 11:10 a.m.
> Asunto: RE: Cursor-NUEVAMENTE
> 
> 
> Yo tengo hecha una rutina a la que pas�ndole el fichero DSPF, el formato
> de
> registro y el nombre de campo te devuelve, a trav�s de la API QDFRTVFD, la
> l�nea y columna en la que est�n. No s� si es esto lo que est�s buscando.
> 
> Si es as� av�same y te lo puedo enviar.
> 
> Saludos.
> 
> Juan Carlos
> 
> > -----Mensaje original-----
> > De: Jaime Villa Torres [SMTP:[EMAIL PROTECTED]
> > Enviado el: lunes, 03 de enero de 2005 17:08
> > Para: [email protected]
> > Asunto: Re: Cursor-NUEVAMENTE
> >
> > Realmente agradezco todas las respuesta, pero estas van encaminadas a
> > determinar la posici�n del cursor en fila y columna, y el nombre del
> > registro y el campo con sus respectivas palabras en el registro de
> > pantalla,
> > todo esto lo tengo, el problema nuevamente lo digo.
> > tenemos un pantalla con 20 campos, les doy su valor a cada uno, el
> usuario
> > da intro, el programa entra a una subrutina de validaci�n, donde valida
> > los
> > 20 campos, hasta el campo 14 todos los valores son correctos, el 15 es
> > incorrecto, en esto momento no se ni como se llama el registro de la
> > pantalla( CSRRCD) ni tampoco el campo(CSRFLD) y mucho menos  ROW y COL,
> lo
> > interesante ser�a lograr saber en que COL esta el campo que ESTOY
> > VALIDANDO
> > EN EL PROGRAMA, en este momento lo �nico que se puede determinar es como
> > se
> > llama el campo que estoy validando, y eso es porque se cual estoy
> > validando,
> > pero el sistema realmente no lo sabe.
> >
> > Jaime Villa T.
> > ----- Mensaje original ----- 
> > De: "alex martinez" <[EMAIL PROTECTED]>
> > Para: <[email protected]>
> > Enviado: Lunes, 03 de Enero de 2005 10:42 a.m.
> > Asunto: Re: Cursor-NUEVAMENTE
> >
> >
> > Sino te he entendido mal,
> >
> > � lo que te falta por determinar es como se denomina el campo ?
> >
> > En este caso puedes utilizar RTNCSRLOC que tambien devuelve la
> > posici�n del campo.
> >
> > Mas info
> >
> http://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/rzakc/rza
> > kcmst145.htm
> >
> > Salu2
> >
> >
> > On Mon, 3 Jan 2005 09:27:18 -0500, Jaime Villa Torres
> > <[EMAIL PROTECTED]> wrote:
> > > La soluciones dadas son correctas, pero cuando activo el campo desde
> la
> > > pantalla, pero el problema esta que se tiene la pantalla, se llenaron
> > los
> > > datos y entre a validarlos, puedo estar validando el campo n  y este
> me
> > da
> > > error, debo determinar que columna tiene ese campo para colocar la
> > ventana.
> > >
> > > Jaime Villa T.
> > > ----- Mensaje original -----
> > > De: "alex martinez" <[EMAIL PROTECTED]>
> > > Para: <[email protected]>
> > > Enviado: Lunes, 03 de Enero de 2005 09:05 a.m.
> > > Asunto: Re: Cursor
> > >
> > > Hola:
> > >
> > > Una posible soluci�n es mostrar dicha lista utilizando un formato de
> > > pantalla con  WINDOW(*DFT ..... para que el sistema determine la linea
> > > y posici�n de la ventana o incluso utilizar WINDOW(&LINEA
> > > &POSICION...... si quieres controlar tu dicha posici�n.
> > >
> > > M�s info
> > >
> >
> http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/rzakc/rzakcmst196.h
> > tm
> > >
> > > Salu2
> > >
> > > On Mon, 3 Jan 2005 09:01:38 -0500, Jaime Villa Torres
> > > <[EMAIL PROTECTED]> wrote:
> > > > Primero, un feliz a�o para todos y gracias por todos los
> conocimientos
> > > > recibidos el a�o pasado, y esperando lo mismo para este a�o.
> > > >
> > > > Existen muchas soluciones para saber la posici�n del cursor en la
> > > pantalla.
> > > > Pero se requiere la siguiente soluci�n, dentro del programa estoy
> > > validando
> > > > un campo, este campo puede estar en la parte derecha o izquierda de
> la
> > > > pantalla, cuando la validaci�n me da error, llamo un programa que me
> > da
> > > una
> > > > lista de valores y deseo colocarla a la izquierda si el campo esta a
> > la
> > > > derecha y a la derecha si el campo esta a la izquierda de la
> pantalla,
> > > > requiero saber el n�mero de columna del campo que estoy validando,
> > alguna
> > > > sugerencia.
> > > >
> > > > Gracias de antemano.
> > > >
> > > > Jaime Villa T.
> > > >
> > > > _____________________________________________________
> > > > Forum.HELP400 es un servicio m�s de NEWS/400.
> > > > � Publicaciones Help400, S.L. - Todos los derechos reservados
> > > > http://www.help400.es
> > > > _____________________________________________________
> > > >
> > > > Para darte de baja, env�a el mensaje resultante de pulsar
> > > > mailto:[EMAIL PROTECTED]
> > > >
> > >
> > > _____________________________________________________
> > > Forum.HELP400 es un servicio m�s de NEWS/400.
> > > � Publicaciones Help400, S.L. - Todos los derechos reservados
> > > http://www.help400.es
> > > _____________________________________________________
> > >
> > > Para darte de baja, env�a el mensaje resultante de pulsar
> > > mailto:[EMAIL PROTECTED]
> > >
> > > _____________________________________________________
> > > Forum.HELP400 es un servicio m�s de NEWS/400.
> > > � Publicaciones Help400, S.L. - Todos los derechos reservados
> > > http://www.help400.es
> > > _____________________________________________________
> > >
> > > Para darte de baja, env�a el mensaje resultante de pulsar
> > > mailto:[EMAIL PROTECTED]
> > >
> >
> > _____________________________________________________
> > Forum.HELP400 es un servicio m�s de NEWS/400.
> > � Publicaciones Help400, S.L. - Todos los derechos reservados
> > http://www.help400.es
> > _____________________________________________________
> >
> > Para darte de baja, env�a el mensaje resultante de pulsar
> > mailto:[EMAIL PROTECTED]
> >
> >
> >
> > _____________________________________________________
> > Forum.HELP400 es un servicio m�s de NEWS/400.
> > � Publicaciones Help400, S.L. - Todos los derechos reservados
> > http://www.help400.es
> > _____________________________________________________
> >
> > Para darte de baja, env�a el mensaje resultante de pulsar
> > mailto:[EMAIL PROTECTED]
> >
> > -- 
> > No virus found in this incoming message.
> > Checked by AVG Anti-Virus.
> > Version: 7.0.296 / Virus Database: 265.6.7 - Release Date: 30/12/2004
> >
> >
> -- 
> No virus found in this outgoing message.
> Checked by AVG Anti-Virus.
> Version: 7.0.296 / Virus Database: 265.6.7 - Release Date: 30/12/2004
> 
> 
> _____________________________________________________
> Forum.HELP400 es un servicio m�s de NEWS/400.
> � Publicaciones Help400, S.L. - Todos los derechos reservados
> http://www.help400.es
> _____________________________________________________
> 
> Para darte de baja, env�a el mensaje resultante de pulsar
> mailto:[EMAIL PROTECTED]
> 
> 
> 
> _____________________________________________________
> Forum.HELP400 es un servicio m�s de NEWS/400.
> � Publicaciones Help400, S.L. - Todos los derechos reservados
> http://www.help400.es
> _____________________________________________________
> 
> Para darte de baja, env�a el mensaje resultante de pulsar
> mailto:[EMAIL PROTECTED]
> 
> -- 
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.296 / Virus Database: 265.6.7 - Release Date: 30/12/2004
>  
> 
-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.296 / Virus Database: 265.6.7 - Release Date: 30/12/2004
 
     h
      * +---------------------------------------------+
      * | Variables para Recuperar Posici�n del Campo |
      * +---------------------------------------------+
     D  FilNam         s                   Like( NamTyp  )
     D  RcdFmt         s                   Like( NamTyp  )
     D  FldNam         s                   Like( NamTyp  )
     D  QDspFil        s                   Like( QNamTyp )
     D  Row            s              3P 0
     D  Col            s              3P 0
     D  Format         s              8a
     D RcvVar          S                   Like( BufTyp    )
     D RcvVarLen       S                   Like( IntTyp    )
     D                                     Inz( %Size( RcvVar ) )
     D Idx             S                   Like( IntTyp    )
     D SDFFINFO        S                   Like( IntTyp    )
     D LDFARFTE        S                   Like( IntTyp    )
     D SDFARFTE        S                   Like( IntTyp    )
     D SDFFRDPD        S                   Like( IntTyp    )
     D SDFFRCTE        S                   Like( IntTyp    )
     D SDFFXRDP        S                   Like( IntTyp    )
     D SDFFRINF        S                   Like( IntTyp    )
     D SDFFNTB         S                   Like( IntTyp    )
     D True            C                   *On
     D False           C                   *Off
     D FMTAR           S             16    Dim( 999 )
     D FMTNM           S             10    Dim( 999 )
     D FLDNM           S             10    Dim( 999 )
     D FLDRC           S              2    Dim( 999 )
     D                 Ds
     D RC12                                Like( SmlIntTyp )
     D  RC1                                Like( ChrTyp    )
     D                                     Overlay( RC12:1 )
     D  RC2                                Like( ChrTyp    )
     D                                     Overlay( RC12:2 )
      *  Base file section ( QDFFBASE )
     DQDFFBASE         Ds
     D QDFFRETN                1      4B 0
     D QDFFSIZE                5      8B 0
     D QDFFINOF                9     10B 0
     D QDFFRCS                11     12B 0
     D  QDFBITS               13     13
     D QDFFFSCR               14     15B 0
     D QDFFSRSQ               16     17B 0
     D QDFCCSID               18     19B 0
     D QDFFSCRS               20     20
      *  File header section ( QDFFINFO )
     DQDFFINFO         Ds
     D QDFFDFLO                1      4B 0
     D QDFFWUOF                5      8B 0
     D QDFFFMWU                9     12B 0
     D QDFFSEQO               13     16B 0
     D QDFFFSFL               17     18B 0
     D QDFFFSCE               19     20B 0
     D  QDFBITS01             21     22
     D QDFRVED7               23     34
     D QDFFXDOF               35     36B 0
      *  Record format table ( QDFARFTE )
     DQDFARFTE         Ds
     D QDFARFNM                1     10
     D  QDFBITS08             11     12
     D QDFARFOF               13     16B 0
      *  Record header section ( QDFFRINF )
     DQDFFRINF         Ds
     D QDFFRDDO                1      4B 0
     D QDFFOFIT                5      8B 0
     D QDFFSTBO                9     12B 0
     D  QDFBITS09             13     16
     D QDFFFLD                17     18B 0
     D QDFVED21               19     22
     D QDFFINDO               23     24B 0
     D QDFVED22               25     28
     D QDFFRAOF               29     30B 0
      *  Display-Record-Level-Device-Dependent section ( QDFFRDPD )
     DQDFFRDPD         Ds
     D QDFFDRCO                1      4B 0
     D QDFFINCP                5      6B 0
     D QDFFFIBF                7      8B 0
     D QDFFFOIS                9     10B 0
     D QDFVED23               11     12
     D   QDFBITS11            14     14
     D   QDFBITS12            15     15
     D   QDFBITS13            16     16
     D  QDFBITS14             17     18
     D  QDFBITS15             19     20
     D QDFFERRM               21     22B 0
     D  QDFBITS16             23     23
     D  QDFBITS17             24     24
     D QDFFCGRI               25     26B 0
     D  QDFBITS18             27     28
     D QDFFXRDO               29     30B 0
     D QDFVED32               31     32
     D QDFFRDOC               33     34B 0
      *  Display-Record-Level-Device-Dependent section
      *  extension structure ( QDFFXRDP )
     DQDFFXRDP         Ds
     D QDFFFOTO                1      4B 0
     D QDFFNRCO                5      8B 0
     D QDFVED33                9     12
     D QDFFSEGS               13     14B 0
     D QDFVED34               15     16
     D QDFHCTLO               17     18B 0
     D QDFVED35               19     24
      *  Row-Column table entry ( QDFFRCTE )
     DQDFFRCTE         Ds
     D QDFFSROW                1      1
     D QDFFSCOL                2      2
     d ApiErrDs        Ds
     d   Apibytpv                    10i 0 inz(%size(ApiErrDs))
     d   ApiErrLen                   10i 0 inz(0)
     d   ApyMsgId                     7a
     d   ApyResVd                     1a
     d   ApyRplDta                   50a
      * +------------------------------+
      * | Definici�n Campos Auxiliares |
      * +------------------------------+
     d @IndErr         s               n
      * +-------------------------------------------------------+
      * | Descripciones para campo definidos como 'Like(xxxxx)' |
      * |     Like( QNamTyp   )  =    20 A                      |
      * |     Like( NamTyp    )  =    10 A                      |
      * |     Like( ChrTyp    )  =     1 A                      |
      * |     Like( LglTyp    )  =     1 A                      |
      * |     Like( BufTyp    )  = 32767 A                      |
      * |     Like( IntTyp    )  =    10 I 0                    |
      * |     Like( SmlIntTyp )  =     5 I 0                    |
      * +-------------------------------------------------------+
     d QNamTyp         s             20a
     d NamTyp          s             10a
     d ChrTyp          s              1a
     d LglTyp          s              1a
     d BufTyp          s          32767a
     d IntTyp          s             10i 0
     d SmlIntTyp       s              5i 0
      * ----------------------------------------------------------------- *
      * Proceso
      * ----------------------------------------------------------------- *
     c     *entry        plist
     c                   parm                    FilNam
     c                   parm                    RcdFmt
     c                   parm                    FldNam
     c                   parm                    Row
     c                   parm                    Col
      /free
          @IndErr=False;
          QDspFil=FilNam+'*LIBL     ';
          exsr calcula;
          *inlr=*on;
          return;
      /end-free
      * -----------------------------------------------------------------*
      * calcula - Calcular Posici�n del Campo                            *
      * ---------------------------------------------------------------- *
     c     calcula       begsr
     c                   eval      Row=0
     c                   eval      Col=0
      *  API para Recuperar Descripci�n del DSPF ( QDFRTVFD )
     c                   call      'QDFRTVFD'
     c                   parm                    RcvVar
     c                   parm                    RcvVarLen
     c                   parm      'DSPF0100'    Format
     c                   parm                    QDspFil
     c                   parm                    ApiErrDs
     c                   if        ApiErrLen>0
     c                   eval      @IndErr=True
     c                   endif
     c                   if        not @IndErr
     C                   Eval      QDFFBASE = %SUBST( RcvVar:1:20 )
     C                   Eval      SDFFINFO = QDFFINOF + 1
     C                   Eval      QDFFINFO = %SUBST( RcvVar:SDFFINFO:36 )
     C                   Eval      SDFARFTE = SDFFINFO + QDFFDFLO
     C                   Eval      LDFARFTE = QDFFRCS * 16
     C                   Eval      FMTAR    = *Blank
     C                   Eval      Idx = 1
     C                   DoW       Idx <= QDFFRCS
     C                   Eval      FMTAR( Idx ) = %SUBST(RcvVar:SDFARFTE:16)
     C                   Eval      FMTNM( Idx ) = %SUBST(RcvVar:SDFARFTE:10)
     C                   Eval      Idx          = Idx + 1
     C                   Eval      SDFARFTE     = SDFARFTE + 16
     C                   EndDo
     C                   Eval      Idx = 1
     C     RcdFmt        LookUp    FmtNm( Idx )                           10
     C                   If        *In10 = True
     C                   MoveA     FmtAr( Idx )  QDFARFTE
     C                   Eval      SDFFRINF = SDFFINFO + QDFARFOF
     C                   Eval      QDFFRINF = %SUBST( RcvVar:SDFFRINF:30 )
     C                   Eval      SDFFRDPD = SDFFRINF + QDFFRAOF
     C                   Eval      QDFFRDPD = %SUBST( RcvVar:SDFFRDPD:34 )
     C                   Eval      SDFFRCTE = SDFFRINF + QDFFDRCO + 6
     C                   Eval      SDFFXRDP = SDFFRINF + QDFFXRDO
     C                   Eval      QDFFXRDP = %SUBST( RcvVar:SDFFXRDP:24 )
     C                   Eval      SDFFNTB  = SDFFRINF + QDFFNRCO
     C                   Eval      FldNm    = *Blank
     C                   Eval      FldRC    = *Blank
     C                   Eval      Idx  = 1
     C                   DoW       Idx <= QDFFFLD
     C                   Eval      FLDNM( Idx ) = %SUBST( RcvVar:SDFFNTB:10)
     C                   Eval      FLDRC( Idx ) = %SUBST( RcvVar:SDFFRCTE:2)
     C                   Eval      Idx          = Idx      +  1
     C                   Eval      SDFFNTB      = SDFFNTB  + 10
     C                   Eval      SDFFRCTE     = SDFFRCTE +  2
     C                   EndDo
     C                   Eval      Idx = 1
     C     FldNam        LookUp    FldNm( Idx )                           11
     C                   If        *In11 = True
     C                   Eval      RC1   = X'00'
     C                   MoveA     FldRC( Idx )  QDFFRCTE
     C                   Move      QDFFSROW      RC2
     C                   Z-Add     RC12          Row
     C                   Move      QDFFSCOL      RC2
     C                   Z-Add     RC12          Col
     C                   Eval      Col = Col + 1
     C                   If        Col > 80
     C                   Eval      Col = Col - 80
     C                   Eval      Row = Row + 1
     C                   EndIf
     C                   EndIf
     C                   EndIf
     C                   EndIf
     C                   EndSr                                              

Responder a