Efectivamente, Javier, ya te dije que hablaba de memoria. Ahora que
estoy en la empresa lo he comprobado y no era exactamente así. Lo que yo
hago para esto es lo siguiente: 

1.- En el archivo de pantalla: 

A
SFLMODE(&MODE) 

A N11 SFLDROP(CF11) 

A 11 SFLFOLD(CF11) 

A MODE 1A H


Y en el programa RPG, inmediatamente antes de presentar el control del
subarchivo: 

if mode = '0'; 

 *in11 = *on; 

else; 

 *in11 = *off;


endif; 

Espero que esto ayude. 

Saludos. 

Juan Carlos. 

El
18/12/2014 09:47, Javier Mora escribió: 

> Es cierto que el problema me
surge cuando recargo el subfichero (su refresco). El tipo de subfichero
que estoy utilizando en este caso es completo (hay pocos registros que
visualizar). 
> 
> Te confirmo que SFLMODE no puede condicionarse con
indicadores. 
> 
> Con todas las pruebas que he hecho, llego a la
conclusión que con el READ(E) RAD061W (que es el nombre del fichero y no
el del registro) no se están leyendo los campos de E/S del registro de
control, pero no está actualizando los campos de salida (como son los
ocultos tipo H). 
> 
> El caso es, que si utilizo READ(E) P_SFLCTL ya no
me funciona el autorrefresco. 
> 
> Gracias por tu interés. 
> 
> Javier

> 
> DE: [email protected]
[mailto:[email protected]] EN NOMBRE DE Juan
Carlos Paredes Castañón
> ENVIADO EL: miércoles, 17 de diciembre de 2014
22:48
> PARA: forum.help400
> ASUNTO: Re: Subfichero que se autorefresca
y SFLMODE 
> 
> 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]
> 
>
____________________________________________________
> Ú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