#1
|
|||
|
|||
Ayuda de busqueda en Dynpro
Hola !!! tengo 2 campos en una dynpro, uno de ellos se puede modificar y en él se mete la sociedad, que se puede elegir a través de un matchcode. el en campo de al lado quiero que se visualice el nombre de la sociedad. He utilizado la función 'F4IF_INT_TABLE_VALUE_REQUEST' para obtener las posibles sociedades, pero no sé cómo hacer para que una vez elegido un valor, se rellene mi 2º campo con el nombre de la sociedad. No sé si me explico...
Un saludo y gracias !!! |
#2
|
|||
|
|||
Te posteo un ejemplo de codigo que utilicé....lo unico que tienes que hacer es hacer un select a partir del campo que has recogiro en el machcode....
DATA: i_z9codid TYPE TABLE OF z9codidt. DATA: i_return LIKE ddshretval OCCURS 0 WITH HEADER LINE. DATA: dynprofield TYPE help_info-dynprofld. DATA: dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE. REFRESH: i_z9codid. CLEAR: i_z9codid. SELECT * FROM z9codidt INTO TABLE i_z9codid ORDER BY codid. dynprofield = 'Z9CODID-CODID'. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'CODID' dynpprog = sy-cprog dynpnr = sy-dynnr dynprofield = dynprofield value_org = 'S' TABLES value_tab = i_z9codid return_tab = i_return. . IF i_return-fieldval <> space. z9codid-codid = i_return-fieldval. SELECT SINGLE zversion FROM z9codid INTO z9codid-zversion WHERE codid = i_return-fieldval. LEAVE TO SCREEN 102. ENDIF. |
#3
|
|||
|
|||
Pues no sé, no me lo hace..
yo he hecho esto: En la lógica de proceso de la dynpro he puesto lo sigueinte: PROCESS ON VALUE-REQUEST. FIELD gv_centro MODULE matchcode_centro. --------------------------- MODULE matchcode_centro INPUT. PERFORM recuperar_stepl. PERFORM funcion_llama_matchcode TABLES it_centro USING gc_werks gc_p_werks text-004 gv_stepl. IF it_returntab-fieldval IS NOT INITIAL. READ TABLE it_centro WITH KEY werks = it_returntab-fieldval. IF sy-subrc = 0. gv_name1 = it_centro-name1. ENDIF. ENDIF. ENDMODULE. " matchcode_centro INPUT ------------ FORM funcion_llama_matchcode TABLES p_i_valtab "tabla que servira como match-code USING p_c_retfield "campo de la tabla que se recoge p_c_dynprofield "nombre del campo de pantalla p_v_titumatch "titulo del match-code p_stepl. CLEAR: gv_retfield, gv_dynprofield. gv_retfield = p_c_retfield. gv_dynprofield = p_c_dynprofield. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = gv_retfield dynpprog = sy-cprog dynpnr = sy-dynnr dynprofield = gv_dynprofield stepl = p_stepl window_title = p_v_titumatch value_org = 'S' multiple_choice = ' ' TABLES value_tab = p_i_valtab return_tab = it_returntab. ENDFORM. " funcion_llama_matchcode ---------------------- Pero nada, quizas tengo q usar una función para coger el valor que he elegido del matchcode y luego poder cambiar la descripcion de la sociedad.. no sé.. |
#4
|
|||
|
|||
Puede que tengas que asignar p_i_valtab-fieldval a tu campo en la dynpro, prueba a refrescar la pantalla, puede que tengas que hacer un leave to screen XXXX a la misma pantalla donde estes...yo en mi codigo tuve que hacerlo porque no me cogia el valor...o utilizar la funcion DYNP_VALUES_READ
IF i_return-fieldval <> space. z9codid-codid = i_return-fieldval. SELECT SINGLE zversion FROM z9codid INTO z9codid-zversion WHERE codid = i_return-fieldval. LEAVE TO SCREEN 102. ENDIF. Saludos Ruben. Úlima edición por sap2006 fecha: 09/07/07 a las 08:24:30. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|