|
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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é.. |
#3
|
|||
|
|||
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 | |
|
|