none
llenar crytal con detalles de factura. RRS feed

  • Pregunta

  • Recien estoy utilizando crystal es por ello los inconvenientes.

    Estoy agregando un SP para Crytal con el cual creo mi factura.

    create proc filtrar_venta
    @IdVenta int
    as
    select Venta.IdVenta,cliente.Nombres,Cliente.Apellidos,Cliente.Ruc,cliente.Direccion,Producto.IdArticulo,Producto.Descripcion,Venta.Cantidad_Vendida,Venta.Precio,Venta.SubTotal,Venta.IGV,Venta.Total
    from Venta inner join Cliente on Venta.IdCliente=Cliente.IdCliente inner join Producto on Venta.IdArticulo = Producto.IdArticulo
    where IdVenta=@IdVenta

    Con ello filtro y muestro segun el codigo de venta.

    Al mostrar en el crystal solo me muestra 1 detalle de articulo, cuando deberian ser más.
    El codigo IdVenta, es tipo int pero no primary key, ya que utilizo una función para aumentar el codigo revisando el ultimo registrado + 1. Esto me permite tener el IdVenta varias veces repetido.
    Ejemplo:

    ------ID VENTA --------|--ID ARTICULO----|-----DESCRIPCIÓN-----|

    --------1001-----------|----------1-----------|--------Laptop----------|

    ---------1001----------|--------10-------------|--------Lavadora--------|

    ---------1001----------|--------26-------------|---------TV-------|

    Teniendo el idventa repetido puedo sacar los productos que le pertenecen.
    Bueno según creo, Ya que al ejecutar
    Execute Filtrar_Venta 1001, muestra lo correcto.

    Deseo saber si la forma es correcta para lograr obtener el detalle de varios articulos para dicho IdVenta.
    Cabe mencionar que si cambio IdVenta a Primary Key con Identity, pues el codigo para cada venta es diferente.
    Lo cual no veo como mostrar relación entre la venta y los articulos que en ese momento se agregan.


    Disculpen el poco conocimiento, Gracias.

    miércoles, 12 de febrero de 2014 5:22

Respuestas

  • Hola:
    Para tu caso seria algo como esto.

    VENTA
     ===========
     ID_VENTA             pk
     CLIENTE               fK
     FECHA
     TOTAL
     
    DETALLE_VENTA
     ===============
     VENTA                 pk , fk
     NUMERO              pk
     ARTICULO            fk
     CANTIDAD
     PRECIO
     SUBTOTAL

    El campo Igv  no se lo que significa asi que no se en que tabla ubicarla

    Un saludo desde Bilbo
    Carlos

    • Marcado como respuesta T2014 viernes, 14 de febrero de 2014 7:57
    jueves, 13 de febrero de 2014 9:30

Todas las respuestas

  • Hola:
    ¿Porque no haces 2 tablas una llamada VENTA y otra DETALLE_VENTA?
    Tendrian unas estructuras parecidas a estas

    VENTA
    ===========
    ID_VENTA              pk
    FECHA
    CLIENTE
    IMP_BRUTO
    IMP_NETO
    demas campos

    DETALLE_VENTA
    ===============
    VENTA                 pk , fk
    NUMERO              pk
    DESCRIPCION
    CANTIDAD
    PRECIO
    IVA
    demas campos

    La mecanica es:
    1.- Añades 1 registro a la tabla VENTA.
    2.- Añades tantos registros a la tabla DETALLE_VENTA como corresponda.
    3.- Al (añadir, modificar, eliminar) el registro a la tabla DETALLE_VENTA, tienes que modificar los campos IMP_BRUTO y IMP_NETO.

    Espero que se entienda
    Un saludo desde Bilbo
    Carlos

    miércoles, 12 de febrero de 2014 8:41
  • buenas tardes T2014

    mira yo tenco un alicacion que genera un reporte en cristal de factura lo que de dicej. carlo es lo mas recomentable despues hace dos consultas y llenas un dataset btipiado y con dos databla una con la descripcionde cliente y otro para el detalle despues cuando lo llevas al cristal haces una agrupacion por id Factura 

    si de puedo ayuda mas buscame como wilsonpopenoy skype

    miércoles, 12 de febrero de 2014 20:39
  • Esta es mi tabla como deberia quedar? Para Venta y Detalle_Venta

    create table Venta (
    IdVenta int primary key not null,
    IdCliente int not null,
    Fecha_Venta Date,
    IdArticulo int not null,
    Cantidad_Vendida int not null,
    Precio smallmoney not null,
    SubTotal smallmoney not null,
    Igv smallmoney not null,
    Total smallmoney not null
    )

    Gracias.

    jueves, 13 de febrero de 2014 1:46
  • Hola:
    Para tu caso seria algo como esto.

    VENTA
     ===========
     ID_VENTA             pk
     CLIENTE               fK
     FECHA
     TOTAL
     
    DETALLE_VENTA
     ===============
     VENTA                 pk , fk
     NUMERO              pk
     ARTICULO            fk
     CANTIDAD
     PRECIO
     SUBTOTAL

    El campo Igv  no se lo que significa asi que no se en que tabla ubicarla

    Un saludo desde Bilbo
    Carlos

    • Marcado como respuesta T2014 viernes, 14 de febrero de 2014 7:57
    jueves, 13 de febrero de 2014 9:30