Ver Mensaje Individual
  #2  
Viejo 11/03/10, 06:59:35
francesc francesc is offline
Member
 
Fecha de Ingreso: mar 2006
Localización: Barcelona
Mensajes: 58
Puedes utilizar el evento AT SELECTION-SCREEN ON VALUE-REQUEST FOR ....Ejemplo:* MatchcodeDATA: IT_VALUES LIKE SEAHLPRES OCCURS 0 WITH HEADER LINE, IT_FIELDS LIKE DFIES OCCURS 0 WITH HEADER LINE, IT_RETTAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.DATA: BEGIN OF IT_MATCHCODE OCCURS 0, PRODH LIKE T179-PRODH, VTEXT LIKE T179T-VTEXT, END OF IT_MATCHCODE..................*----------------------------------------------------------------------**---------- AT SELECTION SCREEN ON VALUE-REQUEST FOR ---------**----------------------------------------------------------------------*AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_PRDHA-LOW. PERFORM MATCHCODE_FAMILIA USING 'low'................*------------------------------------------------------------- Form matchcode_familia*---------------------------------------------------------------------** P_CAMPO Campo para el que se crea matchcode*----------------------------------------------------------------------*FORM MATCHCODE_FAMILIA USING VALUE(P_CAMPO). DATA LD_FIELD TYPE HELP_INFO-DYNPROFLD. CLEAR: IT_VALUES, IT_FIELDS, IT_RETTAB. REFRESH: IT_VALUES, IT_FIELDS, IT_RETTAB. IF P_CAMPO EQ 'low'. LD_FIELD = 'S_PRDHA-LOW'. ELSEIF P_CAMPO EQ 'high'. LD_FIELD = 'S_PRDHA-HIGH'. ENDIF.* Campos a mostrar IT_FIELDS-FIELDNAME = 'Familia'. IT_FIELDS-INTLEN = 4. IT_FIELDS-LENG = 4. IT_FIELDS-OUTPUTLEN = 4. IT_FIELDS-SCRTEXT_S = IT_FIELDS-FIELDNAME. APPEND IT_FIELDS. IT_FIELDS-TABNAME = 'T179T'. IT_FIELDS-FIELDNAME = 'VTEXT'. APPEND IT_FIELDS.* Buscar valores a mostrar SELECT T179~PRODH T179T~VTEXT INTO CORRESPONDING FIELDS OF TABLE IT_MATCHCODE FROM T179 INNER JOIN T179T ON T179T~PRODH = T179~PRODH WHERE T179~STUFE = 2 AND T179T~SPRAS = SY-LANGU. LOOP AT IT_MATCHCODE. IT_VALUES-STRING = IT_MATCHCODE-PRODH+2(4). APPEND IT_VALUES. IT_VALUES-STRING = IT_MATCHCODE-VTEXT. APPEND IT_VALUES. ENDLOOP. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'Familia' DYNPPROG = SY-REPID DYNPNR = SY-DYNNR DYNPROFIELD = LD_FIELD WINDOW_TITLE = TEXT-010 "Familia TABLES VALUE_TAB = IT_VALUES FIELD_TAB = IT_FIELDS RETURN_TAB = IT_RETTAB EXCEPTIONS PARAMETER_ERROR = 1 NO_VALUES_FOUND = 2 OTHERS = 3. IF SY-SUBRC 0. ENDIF. ENDFORM. Básicamente lo que hay que hacer es informar en la tabla interna IT_FIELDS los campos que mostrará el matchcode. En la tabla interna IT_MATCHCODE guardas los valores que quieres que te muestre el matchcode. Recorres esta tabla y guardas un registro por cada campo en la tabla interna IT_VALUES. La función ya se encarga de asociar cada valor de IT_VALUES a los campos informados en IT_FIELDS.Espero que te sirva.

Úlima edición por francesc fecha: 11/03/10 a las 07:06:57.
Responder Con Cita