Match code de uma tabela interna em um 'module pools'(ONLINE)

quinta-feira, 28 de fevereiro de 2013 0 comentários

·         Na tela onde esta o campo que você deseja inserir o match code:

·   Após o evento output declare o evento 'process on value-request' e informe o campo que vai receber o match code em FIELD e crie um module para executar a logica.
PROCESS ON VALUE-REQUEST.

  
FIELD t_tabela-campo MODULE module_matchcode_9000.
·   No module que vc acabou de criar, chame o form f_matchcode_connid
FORM f_matchcode_connid.

  
TYPES:BEGIN OF ty_spfli,
   connid   
TYPE spfli-connid,
   distance 
TYPE spfli-distance,
  
END OF ty_spfli.

  
DATAt_spfli  TYPE TABLE OF ty_spfli.
  
DATAl_connid TYPE spfli-connid.

  
" Preencho a tabela T_SPFLI
  
SELECT connid
         distance
  
FROM spfli
  
INTO TABLE t_spfli
  
WHERE distance <> space.

  
IF sy-subrc IS INITIAL.

    
DELETE t_spfli WHERE connid(1) = '2'.

    
" Chama o perform F_MATCHCODE passando a tabela preenchida.
    
PERFORM f_matchcode TABLES t_spfli
                        
USING 'CONNID'
                        
CHANGING l_connid.
  
ENDIF.
ENDFORM.
 ·    Form: f_matchcode:
FORM f_matchcode TABLES   p_tabela
                 
USING    p_campo TYPE any
                 
CHANGING p_valor TYPE any.

  
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    
EXPORTING
      retfield        
p_campo
      dynpprog        
sy-repid
      dynpnr          
sy-dynnr
      dynprofield     
p_campo
      value_org       
'S'
    
TABLES
      value_tab       
p_tabela
    
EXCEPTIONS
      parameter_error 
1
      no_values_found 
2
      
OTHERS          3.

  
IF sy-subrc <> 0.
    
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  
ENDIF.
ENDFORM.
Obs: a tabela que passamos para a função 'F4IF_INT_TABLE_VALUE_REQUEST' deve ter sempre elemento de dados. ou seja se desejar criar campo como um char de 10, crie desta forma: (campo type char10) e não assim: (campo(10) type c).

0 comentários:

Postar um comentário