Autor Tema: Modificar Tabla Z con Tabla interna con cabecera?  (Leído 19101 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado damlaplata

  • Usuario Jr
  • **
  • Mensajes: 25
    • Ver Perfil
Modificar Tabla Z con Tabla interna con cabecera?
« en: 09 de Febrero de 2012, 03:30:43 pm »
Es posible modificar una tabla Z, con una tabla interna con cabecera?....aca les dejo el codigo de ejemplo:

REPORT  ZPTICABECERA.

TABLES: ztfacturas.

DATA: BEGIN OF st_facturas OCCURS 0,
      idfactura     TYPE ztfacturas-idfactura,
      idcliente     TYPE ztfacturas-idcliente,
      fechafact     TYPE ztfacturas-fechafact,
      importe       TYPE ztfacturas-importe,
      moneda        TYPE ztfacturas-moneda,
      fechapago     TYPE ztfacturas-fechapago,
      END OF st_facturas.

SELECT SINGLE *
  FROM ztfacturas
  WHERE idfactura = 5 AND idcliente = 3.

SELECT *
  FROM ztfacturas
  into TABLE st_facturas.

WRITE:/ ztfacturas-idfactura,
        ztfacturas-idcliente,
        ztfacturas-fechafact,
        ztfacturas-importe,
        ztfacturas-moneda,
        ztfacturas-fechapago.

SKIP 3.

SORT st_facturas BY idfactura idcliente.

  READ TABLE st_facturas WITH KEY idfactura = 5 idcliente = 3 BINARY SEARCH.

  IF sy-subrc EQ 0.

    st_facturas-fechafact = '20120208'.
    st_facturas-importe   = '200,00'.
    st_facturas-moneda    = 'EUR'.
    st_facturas-fechapago = '20120208'.

    MOVE st_facturas TO ztfacturas.
    UPDATE ZTFACTURAS.

    ó
   
    modify ztfacturas  from st_facturas

   "igual ninguno de estos dos funca", alguna idea?, Se puede?porque me parece que solo con working-area nomas?

  ENDIF.

WRITE:/ st_facturas-idfactura,
        st_facturas-idcliente,
        st_facturas-fechafact,
        st_facturas-importe,
        st_facturas-moneda,
        st_facturas-fechapago.

SKIP 3.

FORMAT COLOR 4.
WRITE 'AHORA CON LOS CAMBIOS'.
SKIP 2.

WRITE:/ ztfacturas-idfactura,
        ztfacturas-idcliente,
        ztfacturas-fechafact,
        ztfacturas-importe,
        ztfacturas-moneda,
        ztfacturas-fechapago.

Desconectado Carlos

  • Usuario Sr.
  • ****
  • Mensajes: 177
    • Ver Perfil
Re:Modificar Tabla Z con Tabla interna con cabecera?
« Respuesta #1 en: 10 de Febrero de 2012, 12:32:45 pm »
Hola, que tal estas?

Veo cosas raras en el código... pero según intuyo lo que quieres hacer aquí te dejo el codigo.

Observa los cambios y nos cuentas que tal.


TABLES: ztfacturas.

DATA: BEGIN OF st_facturas OCCURS 0,
      idfactura     TYPE ztfacturas-idfactura,
      idcliente     TYPE ztfacturas-idcliente,
      fechafact     TYPE ztfacturas-fechafact,
      importe       TYPE ztfacturas-importe,
      moneda        TYPE ztfacturas-moneda,
      fechapago     TYPE ztfacturas-fechapago,
      END OF st_facturas.




*Leemos la tabla de la BBDD...
SELECT SINGLE * FROM ztfacturas
               WHERE idfactura = 5
                 AND idcliente = 3.
IF sy-subrc = 0.
*...y la pintamos.
  WRITE:/ ztfacturas-idfactura,
          ztfacturas-idcliente,
          ztfacturas-fechafact,
          ztfacturas-importe,
          ztfacturas-moneda,
          ztfacturas-fechapago.

  SKIP 3.


  SELECT * FROM ztfacturas INTO TABLE st_facturas.
  SORT st_facturas BY idfactura idcliente.

  READ TABLE st_facturas WITH KEY idfactura = 5
                                  idcliente = 3
                           BINARY SEARCH.

  IF sy-subrc EQ 0.
    st_facturas-fechafact = '20120208'.
    st_facturas-importe   = '200,00'.
    st_facturas-moneda    = 'EUR'.
    st_facturas-fechapago = '20120208'.

    WRITE:/ st_facturas-idfactura,
            st_facturas-idcliente,
            st_facturas-fechafact,
            st_facturas-importe,
            st_facturas-moneda,
            st_facturas-fechapago.

    MOVE-CORRESPONDING st_facturas TO ztfacturas.
    MODIFY ztfacturas.
  ENDIF.

  SKIP 3.

  FORMAT COLOR 4.
  WRITE 'AHORA CON LOS CAMBIOS'.
  SKIP 2.

* Tienes que volver a leer la tabla de la BBDD.
  SELECT SINGLE * FROM ztfacturas
                 WHERE idfactura = 5
                   AND idcliente = 3.

* ...y pintarla
  WRITE:/ ztfacturas-idfactura,
          ztfacturas-idcliente,
          ztfacturas-fechafact,
          ztfacturas-importe,
          ztfacturas-moneda,
          ztfacturas-fechapago.



Un saludo.



Desconectado damlaplata

  • Usuario Jr
  • **
  • Mensajes: 25
    • Ver Perfil
Re:Modificar Tabla Z con Tabla interna con cabecera?
« Respuesta #2 en: 28 de Febrero de 2012, 04:45:05 pm »
Ya esta resuelto. Gracias de todos modos!! 8)
La cosa era un error en las declaraciones: declararla como data y type una tabla standart con cabecera ejejejj....

Saludos.