matchcode a medida

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • budista1
    Senior Member
    • sep
    • 154

    #1

    matchcode a medida

    Hola,

    tengo este codigo de un matchcode, lo he implantado y al darle al f4 se ven los valores pero el select option no recoje el valor seleccionado.


    ******************
    *MATCHCODE
    *******DECLARACIÓN DE VARIABLES*********
    DATA: BEGIN OF t_values OCCURS 0,
    value(60) TYPE c.
    DATA: END OF t_values.

    DATA: BEGIN OF t_fields OCCURS 0.
    INCLUDE STRUCTURE help_value.
    DATA END OF t_fields.
    DATA: valor(20) TYPE C.
    DATA: BEGIN OF t_EBELN OCCURS 0,
    EBELN LIKE zorders-ebeln,
    END OF t_EBELN.

    DATA P_EBELN LIKE HELP_INFO-FIELDNAME.

    *DATA: BEGIN OF S_CG,
    *FICTR LIKE ZAC_CG_SEC-FICTR.
    *DATA: END OF S_CG.
    *DATA: IT_CG LIKE S_CG OCCURS 0 WITH HEADER LINE.

    *****EVENTO PARA QUE SE MUESTRE LA AYUDA *********
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_orco-LOW.

    REFRESH: t_values, t_fields.
    CLEAR : t_values, t_fields.

    t_fields-fieldname = 'EBELN'.
    t_fields-tabname = 'ZORDERS'.
    t_fields-selectflag = 'X'.
    APPEND t_fields. CLEAR t_fields.

    SELECT ebeln
    FROM zorders
    INTO CORRESPONDING FIELDS OF TABLE t_EBELN.

    SORT t_EBELN by ebeln.
    DELETE ADJACENT DUPLICATES FROM t_EBELN.

    LOOP AT t_EBELN.
    t_values-value = t_EBELN-ebeln.
    APPEND t_values.
    ENDLOOP.

    CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
    EXPORTING
    * cucol = 20
    * curow = 4
    tabname = 't_EBELN'
    fieldname = 'ebeln'
    IMPORTING
    select_value = P_EBELN
    TABLES
    fields = t_fields
    valuetab = t_values.
  • daniel1050
    Member
    • oct
    • 58

    #2
    Segui este ejemplo que funciona bien:

    *En este ejemplo creo un select-option para un material. Cuya ayuda será *el nº de material para VBELN = ’0000000001′ y POSNR = ’000010′.

    TABLES: VBAP,
    DDSHRETVAL.

    DATA: BEGIN OF IT_MATNR OCCURS 0,
    MATNR LIKE VBAP-MATNR,
    ARKTX LIKE VBAP-ARKTX,
    END OF IT_MATNR.

    DATA: BEGIN OF IT_MATCH OCCURS 0, “Esta tabla nos devuelve la ayuda
    SHLPNAME LIKE DDSHRETVAL-SHLPNAME,
    FIELDNAME LIKE DDSHRETVAL-FIELDNAME,
    RECORDPOS LIKE DDSHRETVAL-RECORDPOS,
    FIELDVAL LIKE DDSHRETVAL-FIELDVAL,
    RETFIELD LIKE DDSHRETVAL-RETFIELD,
    END OF IT_MATCH.

    SELECTION-SCREEN BEGIN OF BLOCK BLQ1 WITH FRAME TITLE TEXT-T01.
    SELECT-OPTIONS: S_MATNR FOR VBAP-MATNR NO-EXTENSION NO INTERVALS.
    SELECTION-SCREEN END OF BLOCK BLQ1.

    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_MATNR-LOW.
    SELECT MATNR
    ARKTX
    FROM VBAP
    INTO TABLE IT_MATNR
    WHERE VBELN EQ ’0000000001′ AND
    POSNR EQ ’000010′.

    CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
    EXPORTING
    RETFIELD = ‘MATNR’
    WINDOW_TITLE = ‘Material’
    VALUE_ORG = ‘S’
    TABLES
    VALUE_TAB = IT_MATNR
    RETURN_TAB = IT_MATCH
    EXCEPTIONS
    PARAMETER_ERROR = 1
    NO_VALUES_FOUND = 2
    OTHERS = 3.

    IF SY-SUBRC EQ 0.
    READ TABLE IT_MATCH INDEX 1.
    MOVE IT_MATCH-FIELDVAL TO S_MATNR-LOW.
    ENDIF

    Comentario

    • budista1
      Senior Member
      • sep
      • 154

      #3
      Merci

      Muchas gracias Daniel!!

      Voy a probar tu código

      Un saludo

      Comentario

      Trabajando...