Pasar tablas de programa de control a smartforms

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • bisonye
    Senior Member
    • ago
    • 635

    #16
    Originalmente publicado por virus
    Cuando en el apartado INTERFASE FORMULARIO->IMPORT, pongo:
    it_tabla TYPE it_tipo, me pone "Tipo it_tipo no existe".
    Se debe declarar en algún sitio mas.
    Activa el formulario cuando definas el tipo antes de poner tu tabla en el import.

    Una vez activado crea tu tabla en el import del tipo que acabas de crearte.

    Saludos
    http://sapymas.blogspot.com/

    Comentario

    • virus
      Member
      • ago
      • 47

      #17
      Una vez activado el formulario después de declarar en DEFINICIONES GLOBALES -> TIPOS, la activación ha ido bien, por que genera el formulario, cuando en el apartado INTERFASE FORMULARIO->IMPORT, pongo:
      it_tabla TYPE it_tipo, ahora me pone: "it_tipo" is not a pre-defined or a type from a type group. Sabes si me falta algo mas

      Comentario

      • bisonye
        Senior Member
        • ago
        • 635

        #18
        Originalmente publicado por virus
        Una vez activado el formulario después de declarar en DEFINICIONES GLOBALES -> TIPOS, la activación ha ido bien, por que genera el formulario, cuando en el apartado INTERFASE FORMULARIO->IMPORT, pongo:
        it_tabla TYPE it_tipo, ahora me pone: "it_tipo" is not a pre-defined or a type from a type group. Sabes si me falta algo mas
        haces esto en tipos?
        types: BEGIN OF wa_tutabla,
        tu_campo1 type tipo,
        tu_campo2 type tipo,
        TYPES END OF wa_tutabla.

        TYPES: it_tutabla TYPE STANDARD TABLE OF wa_tutabla

        Y luego en el import declaras tu variable asi?

        tabla type it_tutabla

        No hay más. Esto funciona está comprobado. Si son temas de versiones o algún problema con el sistema no puedo ayudarte. Pero te puedo confirmar que funciona
        http://sapymas.blogspot.com/

        Comentario

        • tunante
          Member
          • sep
          • 82

          #19
          me pasa lo mismo que a virus, y hago esto.
          defino la tabla en tipos:
          types: BEGIN OF wa_cedidas_fin,
          bukrs LIKE t001-bukrs, "sociedad
          hbkid LIKE zfi_ar03_0001-hbkid, "bancos
          hktid LIKE zfi_ar03_0001-hktid, "id cuenta
          kunnr LIKE zfi_ar03_0001-kunnr, "deudor
          bldat_r LIKE zfi_ar03_0001-bldat_r, "Fecha de venta remesa
          wrbtr LIKE zfi_ar03_0001-wrbtr, "importe
          zdeleg LIKE zfi_ar03_0001-zdeleg, "delegación
          budat_r LIKE zfi_ar03_0001-budat_r, "Fecha contabilización
          importe_devuelto LIKE zfi_ar03_0007-wrbtr, "Importe devuelto
          importe_vivo LIKE zfi_ar03_0007-wrbtr, "Importe vivo
          TYPES END OF wa_cedidas_fin.

          TYPES: it_cedidas TYPE STANDARD TABLE OF wa_cedidas_fin.

          y luego en el import:
          CEDIDAS TYPE IT_CEDIDAS

          y me da este error:
          "IT_CEDIDAS" is not a pre-defined type or a type from a type group.

          Igual es como as dicho de problema de version o algo.
          gracias.

          Comentario

          • karve255
            Junior Member
            • jun
            • 3

            #20
            Gracias por tu ayuda

            Comentario

            • virus
              Member
              • ago
              • 47

              #21
              Declarar tabla en SMARTFORMS

              Puede ser que me falte algo? Sé que para ver las dynpros bien o se que el botón "layout", el administrador del sistema me tuvo que instalar algo, es posible que me tenga que instalar algo? alguien sabe que es lo que me debo instalar?

              Saludos al foro.

              Comentario

              • virus
                Member
                • ago
                • 47

                #22
                Pasar tablas

                He pensado en dividir el problema, como cojo 4 tablas del programa, poner en una dentro del SMARTFORMS.
                O sea tengo:
                - DEFINICIONES GLOBALES -> Tipos tengo algo así:
                "TYPES: BEGIN OF wa_tutabla,
                tu_campo1 type tipo,
                tu_campo2 type tipo,
                TYPES END OF wa_tutabla.
                TYPES: it_tutabla TYPE STANDARD TABLE OF wa_tutabla"

                - DEFINICIONES GLOBALES -> Datos Glob. tengo algo así:
                it_tabla typo it_tutabla.
                wa_tabla typo wa_tutabla.

                El lista de Campos On/OF, veo claramente que dentro de it_tabla tengo tu_campo1 , tu_campo2.

                Pero cuando voy a hacer Crear->Logica Proceso->Línea de Programa,para rellenar mi tabla interna o sea it_tabla.

                CLEAR: it_tabla, it_tabla[].
                LOOP AT WS_ENTRADA1.
                MOVE WS_ENTRADA1 TO it_tabla-tu_campo1.
                APPEND it_tabla.
                ENDLOOP.
                LOOP AT WS_ENTRADA2.
                MOVE WS_ENTRADA2 TO it_tabla-tu_campo2.
                APPEND it_tabla.
                ENDLOOP.


                Cuando verifico me sale un mensaje como este: "it_tabla" is a table without a header line and therefore has no component called "tu_campo1".

                Alguien me puede ayudar?

                Comentario

                • bisonye
                  Senior Member
                  • ago
                  • 635

                  #23
                  Bueno Virus cambiamos de tercio!!!

                  Ya veo que has podido crear tablas. Como bien dice el error no tienes línea de cabecera por lo que no puedes trabajar directamente con los campos de tu tabla. De todas formas WS_ENTRADA se supone que es una tabla interna por lo que no tiene sentido que hagas las asignaciones de una estructura a un campo. Utiliza una estructura para pasar los campos y luego la anexas a la tabla. De todas formas esto te dará problemas para poner los datos en la misma línea necesitarías un contador para averiguar la línea en la que tienes que introducir los datos....

                  Por ejemplo:

                  Data contador type i.
                  CLEAR: it_tabla, it_tabla[].
                  contador = 0.
                  LOOP AT WS_ENTRADA1.
                  contador = contador + 1.
                  wa_tabla-campo = WS_ENTRADA1-campo.
                  INSERT wa_tabla INTO it_tabla INDEX contador.
                  ENDLOOP.

                  En los otros sustituyes Insert por:
                  MODIFY TABLE it_tabla INDEX contador FROM wa_tabla.

                  Saludos
                  http://sapymas.blogspot.com/

                  Comentario

                  • virus
                    Member
                    • ago
                    • 47

                    #24
                    Cuando pongo MODIFY TABLE it_tabla INDEX contador FROM wa_tabla, la palabra INDEX sale en Rojo y me sale el mensaje: "INDEX CONTADOR" is not expected.

                    Comentario

                    • bisonye
                      Senior Member
                      • ago
                      • 635

                      #25
                      La sintaxis está bien.
                      ¿Has probado a hacer f1 en el mensaje de error o en el modify?
                      Así verás la sintaxis
                      http://sapymas.blogspot.com/

                      Comentario

                      • virus
                        Member
                        • ago
                        • 47

                        #26
                        Originalmente publicado por bisonye
                        La sintaxis está bien.
                        ¿Has probado a hacer f1 en el mensaje de error o en el modify?
                        Así verás la sintaxis
                        Al final lo he echo de otra forma
                        1º DESCRIBE TABLE WS_tabla_E01 LINES NLINE01. (así con las n tablas)
                        2º Miro cuala es la que tiene mayor número de líneas y la pongo en nlin.

                        DO NLIN TIMES.
                        CLEAR WA_ETI.
                        READ TABLE WS_tabla_E01 INDEX SY-INDEX INTO WA_tabla-campo_1.
                        READ TABLE WS_tabla_E02 INDEX SY-INDEX INTO WA_tabla-campo_2.
                        APPEND WA_tabla TO WS_tabla.
                        ENDDO.

                        Saludos y Gracias.

                        Comentario

                        • rfidalgo
                          Junior Member
                          • sep
                          • 4

                          #27
                          no hay manera...

                          Estoy empezando con esto de SAP y tengo una duda: en el programa tenemos una screen donde introducimos un ID, lo que intentamos hacer es pasar este ID al smartform para que, haciendo un select en este, obtengamos un listado con todos los datos correspondientes a dicho ID. ¿Es posible hacerlo, guardando este ID en una workarea y pasandole al smartform la workarea en lugar de tener que pasar una tabla interna? Si es posible, nos puedes decir como?



                          Si hay que hacerlo con tablas internas, nos podrias indicar que pasos tenemos que seguir?


                          agradeceriamos un manual o una guia de como pasar tablas internas de un programa a un smart




                          Muchas gracias,

                          Comentario

                          • jjcarlos
                            Junior Member
                            • sep
                            • 10

                            #28
                            Declaracion de estructura

                            No entiendo porque ponen a la hora de declarar la estructura propia

                            types: begin of wa_tabla,
                            campo1 type loquesea,
                            campo2 type loquesea2,
                            TYPES end of wa_tabla.

                            Asi como esta escrito no complila, da un error porque deberia ser asi simplemente

                            types: begin of wa_tabla,
                            campo1 type loquesea,
                            campo2 type loquesea2,
                            end of wa_tabla.

                            Ademas , e seguido al pie de la letra lo que dicen aqui para poder declarar una tabla en la interface pero no me es posible, no se si se debera a la version, porque yo trabajo con la 4.6C y ni siquiera tiene para hacer el download del formulario ni los estilos

                            Comentario

                            • kelaya
                              Junior Member
                              • ene
                              • 8

                              #29
                              como lo resolviste?

                              Originalmente publicado por virus
                              Una vez activado el formulario después de declarar en DEFINICIONES GLOBALES -> TIPOS, la activación ha ido bien, por que genera el formulario, cuando en el apartado INTERFASE FORMULARIO->IMPORT, pongo:
                              it_tabla TYPE it_tipo, ahora me pone: "it_tipo" is not a pre-defined or a type from a type group. Sabes si me falta algo mas

                              Hola virus, soy muy nueva en esto de sap y a mi me sucede lo mismo que a ti, he seguido los pasos de bisonye pero no puedo resolverlo, podrías indicarme como lo hiciste tú? Tengo la versión 4.6 de sap, no se si esto influye. Saludos! Gracias!

                              Comentario

                              Trabajando...