|
#1
|
|||
|
|||
Ayuda de busqueda con filtro
Que tal amigos, tengo una ayuda de busqueda que hace referencia a una tabla Z. Pero tengo el siguiente problema:
Ejemplo: P_bukrs p_ceco La idea es que si yo selecciono la sociedad 1000, la siguiente ayuda me filtre por sociedad, es decir que si la sociedad 1000 tiene los centros de costos 1001 y 1002, solo muestre esos 2 y no todos los que contiene la tabla Z. He intentado poner el valor de propuesta para que la sociedad sea filtrada por el parametro P_bukrs, pero este me lo considera como una cadena y no como valor, por lo tanto no me hace el filtro. Alguien sabe como pasar el contenido de mi parametro P_BUKRS al valor de propuesta de mi ayuda de busqueda para p_ceco. Gracias por su ayuda.
__________________
I.S.C.T. Luis Armando Valdez Rodríguez
Consultor ABAP correo: cel: (045) 5537406023 "La vida premia la acción"
|
#2
|
|||
|
|||
Tengo estemismo problema. Alguien sabe como hacer esto???
|
#3
|
|||
|
|||
Cómo resolvieron el problema???
De qué forma resolvieron el problema???
__________________
Miguel A. Lazo El Salvador, C.A. |
#4
|
|||
|
|||
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. |
#5
|
|||
|
|||
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. |
#6
|
|||
|
|||
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 | |
|
|