MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   MATCHCODE para características de material (foro/showthread.php?t=35569)

rturienzo 10/03/10 15:37:00

MATCHCODE para características de material
 
Hola, estoy intentando crear un matchcode en una select-option. El problema es que quiero mostrar, la clasificación de valores de la característica (cawn-atwrt) junto con su descripción (cawnt-atwtb)
¿Qué posibilidades se os ocurren?


Saludos.

francesc 11/03/10 06:59:35

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.


Husos Horarios son GMT. La hora en este momento es 10:49:07.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web