¿Cómo poner el campo de un parameter no editable?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Bego86
    Junior Member
    • ene
    • 27

    #1

    ¿Cómo poner el campo de un parameter no editable?

    Me gustaría saber como poner un parameter en un report de forma no editable.
    Quiero poner el código de material y que en un parameter de debajo aparezca al pulsar el Intro la descripción de dicho material.
    Ese parameter debe ser <<no editable>>.

    ¿Cómo puedo asignarle a ese parameter dicha característica?

    ¿Cómo puedo hacer que valide el material y rellene la descripción antes de seguir con las validaciones del resto de parameters?

    Gracias de antemano por la ayuda.
  • jessicacordon
    Junior Member
    • jun
    • 5

    #2
    Hola, para hacer un parametro no editable debes hacer lo siguiente:

    Al lado del parametro al cual quieres cambiarle alguna propiedad agregarle:

    MODIF ID nombre

    Luego en el evento At selection-screen output hacer un loop a la tabla de la pantalla y cambiar la propiedad input de 1 a 0.

    Ejemplo:

    PARAMETERS: test1(10) TYPE c MODIF ID sc1,
    test2(10) TYPE c,
    test3(10) TYPE c MODIF ID sc1,
    test4(10) TYPE c.

    AT SELECTION-SCREEN OUTPUT.

    LOOP AT SCREEN.
    IF screen-group1 = 'SC1'.
    screen-input = '0'.
    MODIFY SCREEN.
    CONTINUE.
    ENDIF.
    ENDLOOP.

    En este caso como el parametro test1 y test2 tienen el mismo grupo 'SC1', los dos son no editables.

    Comentario

    • Bego86
      Junior Member
      • ene
      • 27

      #3
      Originalmente publicado por jessicacordon
      Hola, para hacer un parametro no editable debes hacer lo siguiente:

      Al lado del parametro al cual quieres cambiarle alguna propiedad agregarle:

      MODIF ID nombre

      Luego en el evento At selection-screen output hacer un loop a la tabla de la pantalla y cambiar la propiedad input de 1 a 0.

      Ejemplo:

      PARAMETERS: test1(10) TYPE c MODIF ID sc1,
      test2(10) TYPE c,
      test3(10) TYPE c MODIF ID sc1,
      test4(10) TYPE c.

      AT SELECTION-SCREEN OUTPUT.

      LOOP AT SCREEN.
      IF screen-group1 = 'SC1'.
      screen-input = '0'.
      MODIFY SCREEN.
      CONTINUE.
      ENDIF.
      ENDLOOP.

      En este caso como el parametro test1 y test2 tienen el mismo grupo 'SC1', los dos son no editables.

      El campo screen-group1 nos viene vacio y por lo tanto no entra en el if.
      ¿Sabes cuál puede ser el motivo?

      Gracias

      Comentario

      • Bego86
        Junior Member
        • ene
        • 27

        #4
        Originalmente publicado por Bego86
        El campo screen-group1 nos viene vacio y por lo tanto no entra en el if.
        ¿Sabes cuál puede ser el motivo?

        Gracias

        Solucionado, no se porque antes no se rellenaba el campo, pero por arte de magia ahora ha ido perfecto.


        Muchas Gracias por tu ayuda

        Comentario

        • hermes_2323
          Junior Member
          • oct
          • 2

          #5
          Screen con campo no editable

          SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
          PARAMETERS : p_soc TYPE anla-bukrs OBLIGATORY.
          SELECT-OPTIONS : s_clsact FOR anla-anlkl,
          s_act FOR anla-anln1.
          PARAMETERS : p_area TYPE anlb-afabe OBLIGATORY DEFAULT '01' MODIF ID gp1.
          SELECTION-SCREEN END OF BLOCK b1.



          AT SELECTION-SCREEN OUTPUT.
          LOOP AT SCREEN.
          IF screen-group1 = 'GP1'.
          screen-input = 0.
          ENDIF.
          MODIFY SCREEN.
          ENDLOOP.

          Comentario

          • Andres Menares Osses
            Junior Member
            • mar
            • 23

            #6
            Tambien puedes usar este codigo, llena el texto de maerial segun el numero de material ingresado...
            ojala te sirva....

            saludos

            ** RELLENA CAMPO TEXTO NO EDITABLE SEGUN CAMPO ANTERIOR EDITABLE
            TABLES: mara, makt.

            SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
            SELECT-OPTIONS : s_matnr FOR mara-matnr.
            PARAMETERS : p_maktx TYPE makt-maktx MODIF ID gr1.
            SELECTION-SCREEN END OF BLOCK b1.



            AT SELECTION-SCREEN OUTPUT.
            LOOP AT SCREEN.
            IF screen-group1 = 'GR1'.
            screen-input = 0.
            IF screen-name = 'P_MAKTX'.
            IF s_matnr IS NOT INITIAL.
            SELECT SINGLE maktx INTO p_maktx
            FROM makt
            WHERE matnr IN s_matnr.
            IF sy-subrc NE 0.
            CLEAR p_maktx.
            ENDIF.
            ENDIF.
            ENDIF.
            ENDIF.
            MODIFY SCREEN.
            ENDLOOP.

            Comentario

            Trabajando...