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