Ver Mensaje Individual
  #6  
Viejo 16/06/21, 15:40:33
jfmagi jfmagi is offline
Junior Member
 
Fecha de Ingreso: abr 2006
Mensajes: 5
Re: Ayuda de busqueda con filtro

Aquí se muestra como aplicar la solución en la que se filtra un parámetro con otros parámetros. Y como se recupera el valor del parámetro con la función 'C14Z_DYNP_READ_FIELD'

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_HKTID-LOW.
PERFORM F_AYUDA_IDCUENTA.

Luego....

FORM f_ayuda_idcuenta .
TYPES: BEGIN OF ty_t012k,
hktid TYPE t012k-hktid,
bankn TYPE t012k-bankn,
END OF ty_t012k.

DATA: lt_t012k TYPE TABLE OF ty_t012k,
lw_t012k TYPE ty_t012k,
lv_hktid TYPE t012k-hktid,
i_return LIKE ddshretval OCCURS 0 WITH HEADER LINE.
DATA: ls_hktid LIKE LINE OF p_hktid.
DATA: w_eval LIKE dynpread-fieldvalue.

* Recupero el valor de pantalla de P_BUKRS1 que no lo trae por defecto
CALL FUNCTION 'C14Z_DYNP_READ_FIELD'
EXPORTING
i_program = sy-cprog
i_dynpro = sy-dynnr
i_fieldname = 'P_BUKRS1'
i_flg_steploop = 'X'
CHANGING
e_value = w_eval.
* Cambiamos el valor recuperado a mayusculas.
TRANSLATE w_eval TO UPPER CASE.
p_bukrs1 = w_eval.

CLEAR w_eval.
* Recupero el valor de pantalla de P_HBKID-LOW que no lo trae por defecto
CALL FUNCTION 'C14Z_DYNP_READ_FIELD'
EXPORTING
i_program = sy-cprog
i_dynpro = sy-dynnr
i_fieldname = 'P_HBKID-LOW'
i_flg_steploop = 'X'
CHANGING
e_value = w_eval.
* Cambiamos el valor recuperado a mayusculas.
TRANSLATE w_eval TO UPPER CASE.

* Obtengo el registro filtrado en este caso de la tabla T012K
SELECT hktid bankn
INTO TABLE lt_t012k
FROM t012k
WHERE bukrs EQ p_bukrs1
AND hbkid EQ w_eval.
* Mostramos el popup mach code
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'HKTID'
window_title = 'Clave breve para un banco/cuenta'
value_org = 'S'
TABLES
value_tab = lt_t012k
return_tab = i_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
* Luego de elegiro..
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
* Mapeamos el valor seleccionado
READ TABLE i_return INDEX 1.
MOVE i_return-fieldval TO p_hktid-low.
ENDIF.
ENDFORM. " F_AYUDA_IDCUENTA
Responder Con Cita