Você está na página 1de 5

MATCH CODE A especificao pede para mostrar na tela de seleo o campo CDIGO e DESCRIO, para isto seguimos os passos

abaixo. 1- declare uma tabela interna com os campos que precisa


TYPES: BEGIN OF ty_qpct, code TYPE qpct-code, kurztext TYPE qpct-kurztext, END OF ty_qpct. DATA: ti_qpct TYPE STANDARD TABLE OF ty_qpct INITIAL SIZE 0.

2- crie os parmetros, no nosso exemplo vamos usar


PARAMETERS:

p_produ

TYPE

qpct-code

SELECTION-SCREEN BEGIN OF BLOCK frm1 WITH FRAME TITLE text-001. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK frm1. SELECTION-SCREEN BEGIN OF BLOCK frm2 WITH FRAME TITLE text-002. SELECT-OPTIONS: so_dtabt FOR sy-datum. PARAMETERS: p_produ TYPE qpct-code. " Cdigo do Produto p_agen TYPE t001w-werks MATCHCODE OBJECT SELECTION-SCREEN END OF BLOCK frm2.

3- em INITIALIZATION usamos um perform para preencher esta tabela


INITIALIZATION. PERFORM f_seleciono_parametros. *&--------------------------------------------------------------------* *& Form f_seleciono_parametros *&--------------------------------------------------------------------* *---------------------------------------------------------------------* * --> p1 text *---------------------------------------------------------------------* FORM f_seleciono_parametros .

Autor: Hlio Oliveira IBM 28/11/07

* Cdigo de Produto SELECT code kurztext INTO TABLE ti_qpct FROM qpct WHERE katalogart = 'B' AND codegruppe = 'DSC-PROD' AND sprache = 'PT' AND version = '000001'. IF sy-subrc NE 0. MESSAGE i000(zpm01) WITH text-001. "NO EXISTE DADOS PARA *PARAMETROS DE SELEO LEAVE PROGRAM. ENDIF.

4- em AT SELECTION SCREEN acione a clausula ON VALUE RESQUET FOR <nome do parmetro que vai receber o matchcode>
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_produ. PERFORM f_ajuda_pesquisa TABLES ti_qpct USING 'CODE' nome do campo de retorno CHANGING p_produ. parmetro usado

5- configure a funo.
*&--------------------------------------------------------------------* *& Form f_ajuda_pesquisa *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* * -->P_TI_QPCT text * -->P_0142 text * <--P_P_PRODU text *---------------------------------------------------------------------* FORM f_ajuda_pesquisa 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 * return_tab = ti_return_tab EXCEPTIONS parameter_error = 1 no_values_found = 2 "#EC *

Autor: Hlio Oliveira IBM 28/11/07

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. " f_ajuda_pesquisa

Resultado:

Autor: Hlio Oliveira IBM 28/11/07

Obs.: pode ser usado com ajuda de pesquisa tambm que j esteja criada.
se tiver um search help criado pode uar a clausula MATCHCODE OBJECT + <nome da
ajuda de pesquisa>. SELECT-OPTIONS: so_dtabt PARAMETERS: p_produ p_agen ZTESTE_AJUDA. FOR sy-datum. TYPE qpct-code. " Cdigo do Produto TYPE t001w-werks MATCHCODE OBJECT

O qual executado em forma dinmica.

Autor: Hlio Oliveira IBM 28/11/07

Autor: Hlio Oliveira IBM 28/11/07

Você também pode gostar