¿como asociar el boton del Mach code en la entrada de un reporte con una tabla creada

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Henger Abreu
    Junior Member
    • jun
    • 28

    #1

    ¿como asociar el boton del Mach code en la entrada de un reporte con una tabla creada

    La entrada del programa es el nombre del empleado que esta guardado en el campo bseg-sgtxt. lo que quiero es crear una tabla que se vincule al mach code, ¿se podrá?.
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola .. entiendo que el nombre del empleado el cual se ingresa como parametro de entrada en el programa se guarda dentro del campo BSEG-SGTXT (Descripcion del detalle del documento contable), lo demas no entiendo sobre el matchcode, puedes explicart un poco mejor
    David Carballido Córdova

    Comentario

    • Henger Abreu
      Junior Member
      • jun
      • 28

      #3
      Originalmente publicado por DavidXD_XD
      Hola .. entiendo que el nombre del empleado el cual se ingresa como parametro de entrada en el programa se guarda dentro del campo BSEG-SGTXT (Descripcion del detalle del documento contable), lo demas no entiendo sobre el matchcode, puedes explicart un poco mejor

      Buenos días.

      Lo que quiero es que cuando le de al matchcode se despliege una lista con los nombres de los empleados y pueda seleccionar uno para que se coloque en el campo de entrada.
      Archivos Adjuntos

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        A ya veo ... ahi jalas todos los nombres de los empleados que colocaste en la BSEG, yo lo hice de esta forma:

        Código:
        [COLOR="Blue"]*&---------------------------------------------------------------------*
        *&      Module  VALUE_W_SAS  INPUT
        *&---------------------------------------------------------------------*
        *       Llamada de la función para desplegar ayuda (F4) dentro del
        *       campo w_sas y w_sas2
        *----------------------------------------------------------------------*[/COLOR]
        MODULE value_w_sas INPUT.
        
        [COLOR="blue"]* Lleno la tabla interna con los valores a mostrar en el match-code[/COLOR]
          SELECT * INTO CORRESPONDING FIELDS OF TABLE ti_sas
                              FROM dd07t WHERE domname = 'ZSASN'.
        
          CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
               EXPORTING
                    retfield        = 'INTERNAL'
                    dynpprog        = sy-repid
                    dynpnr          = sy-dynnr
                    dynprofield     = 'INTERNAL'
                    value_org       = 'S'
                    window_title    = text-t30
               TABLES
                    value_tab       = ti_sas
                    return_tab      = return_values
               EXCEPTIONS
                    parameter_error = 1
                    no_values_found = 2
                    OTHERS          = 3.
        
        ENDMODULE.                 " VALUE_W_SAS  INPUT
        Y para direccionar esa ayuda de busqueda al campo que quiero hice esto dentro de la logica de pantalla

        Código:
        PROCESS BEFORE OUTPUT.
          MODULE STATUS.
        
        PROCESS AFTER INPUT.
          MODULE COPY_OK_CODE.
          MODULE EXIT_COMMAND AT EXIT-COMMAND.
          CHAIN.
            FIELD: W_SAS, W_FCHINI, W_FCHFIN.
            MODULE VALIDA_SAS.
            MODULE VALIDA_FECHA.
            MODULE USER_COMMAND.
          ENDCHAIN.
        
        PROCESS ON VALUE-REQUEST.
          FIELD W_SAS MODULE VALUE_W_SAS.
        Pero esto es para dynpros, si en tu caso realizas el ejercicio con parametros de seleccion, seria bueno darle una ojeada a este ejemplo Demo de SAP

        demo_selection_screen_f4

        Espero te pueda servir =D
        David Carballido Córdova

        Comentario

        • Henger Abreu
          Junior Member
          • jun
          • 28

          #5
          Matchcode con tablas internas

          Buenos días.

          Encontre una rutina con tablas internas y la función 'F4IF_INT_TABLE_VALUE_REQUEST' para crear matchcode . Lo que hice fue crear dos tablas internas y mandarla a la función para que me aparezcan los datos en el matchcode.

          DATA: BEGIN OF IT_SGTXT OCCURS 0,
          NAME1 LIKE KNA1-NAME1,
          NAME2 LIKE KNA1-NAME2,
          END OF IT_SGTXT.
          DATA: BEGIN OF IT_MATCH OCCURS 0,
          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 KD_0 WITH FRAME TITLE TEXT-000.
          SELECT-OPTIONS: KD_SGTXT FOR BSEG-SGTXT NO-EXTENSION.
          PARAMETERS: KD_BUKRS TYPE BSEG-BUKRS.
          SELECTION-SCREEN END OF BLOCK KD_0.

          AT SELECTION-SCREEN ON VALUE-REQUEST FOR KD_SGTXT-LOW.

          SELECT NAME1 NAME2 FROM KNA1 INTO TABLE IT_SGTXT WHERE SORTL EQ 'EMPLEADO'.

          CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
          EXPORTING
          RETFIELD = 'NAME1'
          WINDOW_TITLE = 'EMPLEADO'
          VALUE_ORG = 'S'
          TABLES
          VALUE_TAB = IT_SGTXT
          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 KD_SGTXT-LOW.
          ENDIF.

          Comentario

          Trabajando...