|
#1
|
|||
|
|||
Utiliza el evento AT SELECTION-SCREEN ON VALUE REQUEST FOR p_ceco. Lo hice en 5 minutos al codigo... pero vas a tener una idea de como funciona. Lo ideal es hacer una tabla interna con los campos de la tabla CSKS que quieres mostrar. |
#2
|
|||
|
|||
Fijate de hacerlo como te comentan y debuguealo.
Si el parametro BUKRS no se te llena automaticamente para el matchcode, fijate si usas la funcion "C14Z_DYNP_READ_FIELD" para leer el contenido del parametro de la pantalla... Slds. |
#3
|
|||
|
|||
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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|