Declarar Campo Dynpro

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • romario2
    Senior Member
    • abr
    • 233

    #1

    Declarar Campo Dynpro

    Tengo bastantes unos campos q se llaman igual en una misma dynpro de diferentes subscreens.
    Por ello he diseñado este formato para los campos (cada uno se tiene q llamar diferente):

    EST_TJ30T21-TXT30

    EST_TJ30T22-TXT30

    EST_TJ30T22-TXT30 etc…

    Ahora quiero que el campo recoja el formato del diccionario, activo el flag y me sale:


    La tabla EST_TJ30T21-TXT30 no existe de forma activa en diccionario.

    En programa definí:

    DATA: EST_TJ30T21 TYPE TJ30T pero nada, no se solucionó.



    Necesito hacerlo de esta manera, alguna idea?
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola, declaralo en el screen painter como TJ30T-TXT30 y veras que si lo jala del diccionario, luego cuando lo haga cambiale el nombre al que quieres: EST_TJ30T21-TXT30, espero te ayude
    David Carballido Córdova

    Comentario

    • romario2
      Senior Member
      • abr
      • 233

      #3
      Hola

      Hola David,

      he probado lo que dices. En el paso 1, es cierto se lo jala el diccionario.
      Luego cuando lo cambio, el flag del diccionario desaparece!
      Qué puedo hacer?

      Saludos

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        Bueno, ahi no puedes hacer nada, a menos que la variable que declaras en el programa sea llamada igual que en el diccionario, ahi no habra ningun problema y podras trabajar con la logica del diccionario

        DATA: TJ30T TYPE TJ30T.

        El problema sera cuando quieras declarar mas de una, para eso deberias crear una estructura en la SE11 haciendo referencia cada campo a la estructura TJ30T, espero te ayude
        David Carballido Córdova

        Comentario

        • romario2
          Senior Member
          • abr
          • 233

          #5
          merci

          Lástima que no haya más soluciones, el problema que tengo es que me interesa declarar cada campo como exclusivo, algunos campos se repiten.


          Por otro lado , tu que eres Moderador quizás sabrás esto:


          tengo un table control manual que ya llena datos, ahora tengo que hacer que seleccione un registro, y segun éste, lo envío a una dynpro o otra.

          dynpro 9000 : table control Click en registro1 o registro 2

          ***

          muestro datos de registro1 en dynpro 9001

          muestro datos de registro2 en dynpro9002



          Necesito controlar selección Tabla Control manual con flag X

          Sabrías la manera David?

          muy agradecido, te deseo una feliz navidad

          Comentario

          • DavidXD_XD
            Moderator
            • ago
            • 1255

            #6
            Bueno si se el procedimiento ... en si no es muy complicado, deberias llenar 2 tablas internas (para cada dynpro) o una tabla interna con un campo adicional de pantalla a la que pertenece, eso lo harias en el PAI de la primera pantalla donde marcas el flag

            Código:
            PAI.
            
            LOOP AT itab.
              MODULE marcar_lineas.
            ENDLOOP.
            MODULE llenar_tabla_reg.
            
            MODULE marcar_lineas.
              MODIFY itab INDEX tab_ctrl-current_line.
            ENDMODULE.
            
            MODULE llenar_tabla_reg.
              LOOP AT itab WHERE flag = 'X'.
                IF (condicion para primera pantalla).
                  ... lleno tabla interna con el campo en dynpro 9001
                ELSEIF (condicion para segunda pantalla)
                  ... lleno tabla interna con el campo en dynpro 9002
                ENDIF.
            * Llamando a primera pantalla de contener registros
              READ TABLE (tabla_interna_que_llene) TRANSPORTING NO FIELDS
                                                  WITH KEY dynpro = '9001'.
              IF sy-subrc = 0.
                CALL SCREEN 9001.
              ENDIF.
            * Llamando a segunda pantalla de contener registros
              READ TABLE (tabla_interna_que_llene) TRANSPORTING NO FIELDS
                                                  WITH KEY dynpro = '9002'.
              IF sy-subrc = 0.
                CALL SCREEN 9002.
              ENDIF.
            ENDMODULE.
            Seria algo mas o menos así, pero en problema con este tema es que no es una pregunta puntual, es por ello que toma tiempo responderla, espero te pueda ayudar
            David Carballido Córdova

            Comentario

            • romario2
              Senior Member
              • abr
              • 233

              #7
              muy agradecido

              Muchas gracias David,

              ha sido una de las mejores respuestas que he tenido en este foro. Una respuesta detallada y excelente que ya he aplicado.

              Ahora mismo estoy investigando como hacer un custom control, en el que puedes editar un campo de texto y que a la vez se guarde en una transacción, la cj20n.Has hecho algo parecido?


              saludos abaperos

              Comentario

              Trabajando...