none
DataGridView RRS feed

  • Pregunta

  • Saludos!

    Estoy elaborando un sistema de facturacion para un taller mecanico en el cual tengo un DatagridView (llamado gridDatosFactura) en el cual ingreso el detalle de lo que se va a facturar, el ingreso de los datos lo hago de dos maneras,  tanto de base de datos(de la bd saco los Ids, nombre de repuestos, cantidad, exitencia y precio unitario) como manual (mano de obra ejem: Instalacion de amortiguadores delanteros, a estos tambien le agrego cantidad y precio unitario).

    Mi pregunra es como puedo guardar el detalle de la factura en la bd asociando cada detalle a un solo Id de factura para que cuando quiera consultar los regitros de facturas pueda ver todos y cada uno de los detalles buscado como es logico la factura por medio de su Id. Lo estoy elaborando en Visual Estudio 2013

    jueves, 30 de junio de 2016 22:42

Todas las respuestas

  • Danilo Mortez,

    ¿Tu contenedor de datos es un objeto DataGridView? ¿Qué tipo de aplicación desarrollas? ¿Web? Para el Framework ASP .Net no aplica el objeto DataGridView, no confundas eso.

    Tu pregunta es muy ambigua y quizá la respuesta muy trivial, imagino que ambas tablas ([Cabecera] y [Detalle]) están relacionadas por una columna en común que podría ser [idFactura], ¿verdad?. Si tienes la relación implementada entonces al momento de persistir un item de la factura (detalle) pasas como valor el id de la cabecera.

    ¿Sobre lo explicado tienes algún inconveniente? ¿Hay algo que no éste claro?

    jueves, 30 de junio de 2016 22:51
  • Gracias Wiliams Morales, No es una apliacion web, es una apliacion "cliente servidor (programa de aplicacion)" la que estoy desarollando

    Entiedo segun lo que me dices en cuanto a la relacion de las tablas es que se deben relacionarce por algun campo, el mas ideal seria el [Idfactura], para eso tendria que crear una columan mas en [tabla de talle] que contenga ese [IdFactura], o debe ser a base de programacion.

    Gracias por tu tiempo y conocimiento!!


    sábado, 2 de julio de 2016 16:08
  • Danilo Mortez,

    Por lo descrito debo entender que desarrollas una aplicación de tipo WinForm (de escritorio), fíjate que escribes tu requerimiento en la sección de ASP .Net, de ahí mi duda.

    Aún así, este caso no tiene que ver con alguna tecnología de desarrollo en particular, lo que noto es un problema conceptual respecto a modelamiento de base de datos. Un modelo (lógico) de base de datos consta de entidades, atributos de las entidades y relaciones entre entidades. En tu caso presentas dos entidades: CabeceraVenta y DetalleVenta, cada entidad tiene atributos propios como la fecha de venta, el cliente, el producto vendido, la cantidad, etc.; y las relaciones representan la dependencia que hay entre entidades donde es importante notar la cardinalidad existente: uno a uno, uno a muchos, muchos a muchos.

    Las relaciones representan la dependencia que existe entre dos entidades, y las relaciones se forman -generalmente- entre la clave primaria (PK) de la tabla referenciada y una columna que representa la relación (FK), en tal sentido, está claro que la tabla DetalleVenta debe tener una columna que represente la relación con la tabla CabeceraVenta, si no la tienes entonces agregarla es simple:

    ALTER TABLE dbo.DetalleVenta ADD idCabeceraVenta int NOT NULL;

    La columna está creada, falta proveer de una restricción que permita la integridad referencial:

    ALTER TABLE dbo.DetalleVenta ADD CONSTRAINT FK_DetalleVenta_idCabeceraVenta FOREIGN KEY (idCabeceraVenta) REFERENCES dbo.CabeceraVenta (idCabeceraVenta)

    Listo, ya tienes la columna que referencia a la cabecera y también la restricción que refuerza las reglas de integridad referencial, ahora cada fila de detalle de venta tiene relación con la cabecera de venta.

    Espero que ahora haya quedado claro, en caso tengas dudas puedes consultarlo.

    sábado, 2 de julio de 2016 16:46