Te hablo de memoria, porque ahora estoy en casa y no tengo acceso al
iSeries para confirmártelo. El problema es el mismo que se produce
cuando dejas que sea el propio sistema el que gestione la carga del
subarchivo. Una vez que pulsas la tecla de doblar, sólo se mantiene en
los registros ya cargados. Una vez que carga nuevos registros, el
registro vuelve a estar truncado. En las DDS (o en el SDA) indicas si el
registro, inicialmente, está doblado o truncado. Si condicionas el
SFLMODE por el mismo indicador que activas al pulsar la tecla que lo
dobla o lo trunca, creo que funciona. No obstante, mañana lo compruebo
(lo tengo implementado en alguna pantalla, sin refresco automático, pero
con gestión de la carga por parte del sistema) y te lo confirmo. 

Un
saludo. 

Juan Carlos 

El 17/12/2014 19:40, Javier Mora escribió: 

>
Hola a tod@s: 
> 
> Tengo una pantalla con un subfichero que se refresca
automáticamente sin tocar ninguna tecla. Los registros del subfichero
son de dos líneas e inicialmente aparecen truncadas (DROP). Durante la
visualización puedo pulsar una tecla para ver el registro completo
(FOLD). Sin embargo, cuando refresco el subfichero no permanece en el
modo (truncado/ampliado) en el que se encontraba antes del refresco. 
>

> El diseño de pantalla se asemeja a esto: 
> 
> A R P_SFLMDT 
> 
> A
OVERLAY 
> 
> A 11 2'F1=Ampliar' 
> 
> A DSPATR(HI) 
> 
> A 11
14'F3=Salir' 
> 
> A DSPATR(HI) 
> 
> … 
> 
> A R P_SFLCTL SFLCTL(P_SFL)

> 
> A SFLSIZ(0050) 
> 
> A SFLPAG(0003) 
> 
> A CA03 
> 
> A CA07 
>

> A 01 INVITE 
> 
> A OVERLAY 
> 
> A SFLCSRRRN(&SFLCSRRRN) 
> 
>     
A                                      SFLMODE(&SFLMODE) 
> 
> A N02
ERASE(P_SFL) 
> 
> A 02 SFLDSP 
> 
> A 01 SFLDSPCTL 
> 
> A N01 SFLCLR

> 
> A 03 SFLEND 
> 
> A 05 SFLDROP(CA01) 
> 
>      A           
SFLMODE        1A  H 
> 
> A SFLRCD 4S 0H SFLRCDNBR(*TOP) 
> 
> A
SFLCSRRRN 5S 0H 
> 
> A 1 2DATE 
> 
> A EDTWRD(' - - ') 
> 
> A
COLOR(BLU) 
> 
> A 1 11TIME 
> 
> A COLOR(BLU) 
> 
> … 
> 
> La
visualización y espera del registro de control se hace como sigue: 
> 
>
Write P_SFLMDT; 
> 
> Write P_SFLCTL; 
> 
> Read(e) RAD061W; 
> 
>
//EXFMT P_SFLCTL; 
> 
> // Con EXFMT si obtengo un SLFMODE con el valor
correcto 
> 
> ‚ // Se excedió el tiempo de espera 
> 
> If %Status() =
1331; 
> 
> infDsp.key = F10; 
> 
> Endif; 
> 
> Si desactivo el
"autorefresco" de pantalla sustituyendo la pareja WRITE P_SFLCTL/READ(E)
RAD061W por un EXFMT P_SFLCTL el comportamiento es el esperado, pero
pierdo el "autorefresco". 
> 
> Creo que el problema está en el "READ
RAD061W", pero es necesario para el refresco. El caso es que no
encuentro una solución para tener ambas cosas. ¿Alguna sugerencia? 
> 
>
Un saludo a todos, 
> 
> JAVIER MORA 
> 
>
____________________________________________________
> Únete a Recursos
AS400, nuestra Comunidad ( http://bit.ly/db68dd [1] )
> Forum.Help400
(c) Publicaciones Help400, S.L.

-- 
url: http://www.paredes.info
mail:
[email protected]
 

Links:
------
[1] http://bit.ly/db68dd
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a