quarta-feira, 2 de março de 2011

Design de Aplicações - Parte 6

Activar e desactivar edição de campo



Alguns campos devem ser encerrados ou abertos consoante as opções do utilizador. É preferível ocultar toda a subtela, se possível, senão pode-se colocar um módulo no PBO (primeiro módulo do PBO) para fazer esse tratamento. Por regra defino que todos os campos editáveis estão por defeito como abertos.
process before output.
  
module m_set_screen.
 
Diferentes condições podem gerar o encerramento do campo. No exemplo seguinte, os campos do topo são encerrados quando o objecto de execução está instanciado (ou seja a acção já está definida) e as transacções específicas de fabrico e desfabrico estão impedidas de alterar o tipo de acção.
module m_set_screen output.
  
if w_data-instance is bound.
    
loop at screen.
      
if screen-group1 'TOP'.
        
clear screen-input.
        
modify screen.
      
endif.
    
endloop.
  
endif.
* Bloqueia campos via transaction
  
if sy-tcode 'ZLOGMM_FAB'.
    
loop at screen.
      
if screen-name 'W_DATA-TOP-ACTION' 
         
or screen-name 'W_DATA-TOP-REFDOC'.
        
clear screen-input.
        
modify screen.
      
endif.
    
endloop.
  
elseif sy-tcode 'ZLOGMM_DESFAB'.
    
loop at screen.
      
if screen-name 'W_DATA-TOP-ACTION'.
        
clear screen-input.
        
modify screen.
      
endif.
    
endloop.
  
endif.
endmodule.                 " M_SET_SCREEN  OUTPUT

Sem comentários:

Enviar um comentário