Ayuda de busqueda en Dynpro

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • poketina
    Senior Member
    • jul
    • 105

    #1

    Ayuda de busqueda en Dynpro

    Hola !!! tengo 2 campos en una dynpro, uno de ellos se puede modificar y en él se mete la sociedad, que se puede elegir a través de un matchcode. el en campo de al lado quiero que se visualice el nombre de la sociedad. He utilizado la función 'F4IF_INT_TABLE_VALUE_REQUEST' para obtener las posibles sociedades, pero no sé cómo hacer para que una vez elegido un valor, se rellene mi 2º campo con el nombre de la sociedad. No sé si me explico...
    Un saludo y gracias !!!
  • sap2006
    Senior Member
    • mar
    • 134

    #2
    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.

    Comentario

    • poketina
      Senior Member
      • jul
      • 105

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

      Comentario

      • sap2006
        Senior Member
        • mar
        • 134

        #4
        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.
        Editado por última vez por sap2006; 09/07/2007, 08:24:30.

        Comentario

        Trabajando...