Вы находитесь на странице: 1из 23

LENGUAJE DE PROGRAMACION

ACTIVIDAD DE APRENDIZAJE FACTURACION 3 CAPAS

WWW.ROLANDOSTUDIOS.COM

Pgina 1

LENGUAJE DE PROGRAMACION
PROCEDIMIENTOS ALMACENADOS BASE DE DATOS, TABLAS Y REGISTROS EN SQL SERVER 2005 (BD_CAPAS_FACTURACION)
-- creando la base de datos create database faccapas go -- creando tablas create table clientes ( cod_cli nvarchar(5) not null, nom_cli nvarchar(20), dir_cli nvarchar(60) , tel_cli nvarchar(10) , otro_cli nvarchar(10) , fecha_ing smalldatetime ) go create table producto ( cod_prod nvarchar(5) not null, descrip nvarchar(30), precio float(8), precio_cos float(8), stock smallint, stock_min smallint, fecha_ing smalldatetime, fgEli bit not null, txtmtvEli nvarchar(20) ) go create table facturas ( num_fact nvarchar (6) not null, cod_emp nvarchar (5), cod_cli nvarchar (5), sub_total float (8),

WWW.ROLANDOSTUDIOS.COM

Pgina 2

LENGUAJE DE PROGRAMACION
igv float (8), total float (8), fecha smalldatetime, fgEli bit not null, txtmtvEli nvarchar(20), ) go create table detalle ( num_fact nvarchar (6), cod_prod nvarchar (5), precio float (8), precio_cos float (8), cant smallint ) go -- valores insert into clientes (cod_cli, nom_cli,dir_cli,tel_cli,fecha_ing) values ('C0001','Cesar Uribe Anaya','Av. Peru 1523','4562318','12/01/2009') insert into clientes (cod_cli, nom_cli,dir_cli,tel_cli,fecha_ing) values ('C0002','Luis Alberto','Av. Antunez de Mayolo 521','5632414','02/02/2009') insert into clientes (cod_cli, nom_cli,dir_cli,tel_cli,fecha_ing) values ('C0003','Flabio Roman','Jr. Cuzco 569','1546512','03/02/2009') insert into clientes (cod_cli, nom_cli,dir_cli,tel_cli,fecha_ing) values ('C0004','Renzo Silva','Av. Universitaria 6454','4563289','05/05/2009') insert into clientes (cod_cli, nom_cli,dir_cli,tel_cli,fecha_ing) values ('C0005','Jorge Mamani','Av. Carlos Izaguirre 351','4532894','12/06/2009') insert into clientes (cod_cli, nom_cli,dir_cli,tel_cli,fecha_ing) values ('C0006','Claudio Rocca','Av. Las casuarinas 125','5632481','10/02/2010')

WWW.ROLANDOSTUDIOS.COM

Pgina 3

LENGUAJE DE PROGRAMACION
insert into producto (cod_prod, descrip,precio,precio_cos,stock,stock_min,fecha_ing,FgEli) values ('P0001','Monitor LCD 20 Samsung',520,480,20,6,'12/02/2009','false') insert into producto (cod_prod, descrip,precio,precio_cos,stock,stock_min,fecha_ing,FgEli) values ('P0002','Mouse Netscroll Genius',15,5,50,12,'12/02/2009','false') insert into producto (cod_prod, descrip,precio,precio_cos,stock,stock_min,fecha_ing,FgEli) values ('P0003','Case Halion 550 watts',90,60,15,5,'12/02/2009','false') insert into producto (cod_prod, descrip,precio,precio_cos,stock,stock_min,fecha_ing,FgEli) values ('P0004','Proc C2D E7500 2.93',470,400,20,5,'12/02/2009','false') insert into producto (cod_prod, descrip,precio,precio_cos,stock,stock_min,fecha_ing,FgEli) values ('P0005','Memoria DDR 1333 1 GB',180,160,25,12,'12/02/2009','false')

WWW.ROLANDOSTUDIOS.COM

Pgina 4

LENGUAJE DE PROGRAMACION
PROCEDIMIENTOS ALMACENADOS PARA EL MANTENIMIENTO DE LA FACTURA (SP_CAPAS_FACTURACION)
Create Procedure Sp_BuscarCliente @cod_cli Char(5) As Select * From Clientes where cod_cli=@cod_cli GO Create Procedure Sp_BuscarProducto @cod_prod Char(5) As Select * From Producto where cod_prod=@cod_prod GO Create Procedure Sp_FiltradoCliente @cod_cli Char(5) As if Len(@cod_cli)=0 Select cod_cli as Codigo,nom_cli as Nombres From Clientes Else Begin Select cod_cli as Codigo,nom_cli as Nombres From Clientes Where nom_cli Like rtrim(@cod_cli)+'%' End GO Create Procedure Sp_FiltrarProducto @cod_prod Char(5) As if Len(@cod_prod)=0 Select cod_prod as Codigo,descrip as Descripcion From Producto Else Begin

WWW.ROLANDOSTUDIOS.COM

Pgina 5

LENGUAJE DE PROGRAMACION
Select cod_prod as Codigo,descrip as Descripcion From Producto Where descrip Like rtrim(@cod_prod)+'%' End GO Create Procedure Sp_ListFacturas As Select * From Facturas GO Create Procedure Sp_GrabarFactura @Num_Fact char(6), @Cod_cli char(5), @Sub_Total decimal(8,2), @Igv decimal(8,2), @total decimal(8,2), @fecha smalldatetime, @FgEli Bit As Insert Into Facturas (Num_fact,Cod_Cli,sub_total,Igv,total,fecha,FgEli) Values(@Num_fact,@Cod_Cli,@sub_total,@igv,@total,@fecha,@FgEli) GO Create Procedure Sp_GrabarDetalle @Num_fact char(6), @cod_prod char(5), @precio decimal(8,2), @precio_cos decimal(8,2), @cant int As Insert Into Detalle values(@Num_fact,@cod_prod,@precio,@precio_cos, @cant) GO Create Procedure Sp_LIstClientes As Select * From Clientes GO

WWW.ROLANDOSTUDIOS.COM

Pgina 6

LENGUAJE DE PROGRAMACION
Create Procedure Sp_FilterPedidos @cod_cli char(5) As Select num_fact From Facturas,Clientes where Facturas.cod_cli=Clientes.cod_cli And Clientes.cod_cli=@cod_cli go Create Procedure Sp_MostrarDetalle @num_fact char(6) As Select Descrip as Descripcion,Detalle.Precio,Detalle.Precio_cos as [Precio Costo],Cant as Cantidad, Total=Detalle.Precio * Cant From Detalle,Producto where Detalle.cod_prod=Producto.Cod_prod and num_fact=@num_fact GO

WWW.ROLANDOSTUDIOS.COM

Pgina 7

LENGUAJE DE PROGRAMACION
CREANDO LAS CAPAS EN VISUAL STUDIO 2005 Layerdata
Imports System.Data.SqlClient Imports System.Data Public Class gDatos 'Trabajaremos con Regiones para odernar nuestro cdigo. #Region "Conexion Base de Datos" Protected Cn As New SqlConnection("Server=Equipo01\SQLEXPRESS;Database=faccapas;Integrated Security=True;") #End Region #Region "Poner Parametros" Shared mColComandos As New System.Collections.Hashtable() Protected Function Comando(ByVal ProcedimientoAlmacenado As String) As System.Data.IDbCommand Dim mComando As System.Data.SqlClient.SqlCommand If mColComandos.Contains(ProcedimientoAlmacenado) Then mComando = CType(mColComandos.Item(ProcedimientoAlmacenado), _ System.Data.SqlClient.SqlCommand) Else Cn.Open() mComando = New System.Data.SqlClient.SqlCommand(ProcedimientoAlmacenado, Cn) Dim mContructor As New System.Data.SqlClient.SqlCommandBuilder() mComando.Connection = Cn mComando.CommandType = CommandType.StoredProcedure 'mContructor.DeriveParameters(mComando) SqlCommandBuilder.DeriveParameters(mComando) Cn.Close() mColComandos.Add(ProcedimientoAlmacenado, mComando) End If Return mComando

WWW.ROLANDOSTUDIOS.COM

Pgina 8

LENGUAJE DE PROGRAMACION
End Function Protected Sub CargarParametros(ByVal Comando As System.Data.IDbCommand, ByVal Args() As Object) Dim I As Integer With Comando For I = 0 To Args.GetUpperBound(0) Try CType(.Parameters(I + 1), System.Data.SqlClient.SqlParameter).Value = Args(I) Catch Qex As Exception Throw (Qex) End Try Next End With End Sub #End Region #Region "Devolver Parametros" Protected Function CrearDataAdapter(ByVal ProcedimientoAlmacenado As String, ByVal ParamArray Args() As Object) As System.Data.IDataAdapter Dim mCom As System.Data.SqlClient.SqlCommand = Comando(ProcedimientoAlmacenado) If Not Args Is Nothing Then CargarParametros(mCom, Args) End If Return New System.Data.SqlClient.SqlDataAdapter(mCom) End Function 'En este caso trabajaremos con funciones sobrecargadas con la finalidad de poder llamar a la misma function pero con diferentes parametros. Public Overloads Function TraerDataset(ByVal ProcedimientoAlmacenado As String) As System.Data.DataSet Dim mDataset As New System.Data.DataSet() CrearDataAdapter(ProcedimientoAlmacenado).Fill(mDataset) Return mDataset End Function 'Funcion Sobrecargada

WWW.ROLANDOSTUDIOS.COM

Pgina 9

LENGUAJE DE PROGRAMACION
Public Overloads Function TraerDataset(ByVal ProcedimientoAlmacenado As String, ByVal ParamArray Argumentos() As System.Object) As System.Data.DataSet Dim mDataset As New System.Data.DataSet() CrearDataAdapter(ProcedimientoAlmacenado, Argumentos).Fill(mDataset) Return mDataset End Function #End Region #Region "Acciones" Public Function Ejecutar(ByVal ProcedimientoAlmacenado As String, ByVal ParamArray Argumentos() As System.Object) As Integer Dim mCom As System.Data.SqlClient.SqlCommand = Comando(ProcedimientoAlmacenado) Dim Resp As Integer Cn.Open() mCom.Connection = Cn mCom.CommandType = CommandType.StoredProcedure CargarParametros(mCom, Argumentos) Resp = mCom.ExecuteNonQuery Cn.Close() Return Resp End Function #End Region End Class

WWW.ROLANDOSTUDIOS.COM

Pgina 10

LENGUAJE DE PROGRAMACION
LAYERBUSINESS
Imports LayerData Public Class clsProd Dim objdata As New gDatos Public Function ListarClientes(ByVal Procedure As String, ByVal ParamArray Argumentos() As System.Object) As DataSet ListarClientes = objdata.TraerDataset(Procedure, Argumentos) End Function Public Function ListarProductos(ByVal Procedure As String, ByVal ParamArray Argumentos() As System.Object) As DataSet ListarProductos = objdata.TraerDataset(Procedure, Argumentos) End Function Public Function ListarFacturas(ByVal Procedure As String, ByVal ParamArray Argumentos() As System.Object) As DataSet ListarFacturas = objdata.TraerDataset(Procedure, Argumentos) End Function Public Function AgregarFactura(ByVal Procedure As String, ByVal ParamArray Argumentos() As System.Object) As Integer AgregarFactura = objdata.Ejecutar(Procedure, Argumentos) End Function Public Function AgregarDetalle(ByVal Procedure As String, ByVal ParamArray Argumentos() As System.Object) As Integer AgregarDetalle = objdata.Ejecutar(Procedure, Argumentos) End Function Public Function MostraDetalle(ByVal Procedure As String, ByVal ParamArray Argumentos() As System.Object) As DataSet MostraDetalle = objdata.TraerDataset(Procedure, Argumentos)

WWW.ROLANDOSTUDIOS.COM

Pgina 11

LENGUAJE DE PROGRAMACION
End Function End Class

NOTA:

Seleccionar como proyecto inicial layerclient Y agregar referencias: Layerdata Layerbusiness

WWW.ROLANDOSTUDIOS.COM

Pgina 12

LENGUAJE DE PROGRAMACION
LAYERCLIENT
Imports Vb = Microsoft.VisualBasic Imports System.Data Imports System.Data.SqlClient

' Importamos las referencias System.Data

Public Class Form1 Inherits System.Windows.Forms.Form Dim Objfactura As New LayerBusiness.clsProd() ' Hacemos referencia al proyecto Business Dim Tbl As DataTable Dim TblDet As New DataTable("Detalle") ' Creamos una Tabla Dinamica Dim TblProd As DataTable Dim tblcliente As DataTable Dim XCodProd As String Dim XPrecio_Cos As Single Dim XCodCli As String Dim sqlcommand Dim Rw As DataRow Private oDataAdapter As SqlDataAdapter Private oDataAdapter1 As SqlDataAdapter Private odataset As DataSet Private oConexion As SqlConnection Private dv As New DataView Private dv1 As New DataView Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' este agregue oConexion = New SqlConnection() oConexion.ConnectionString = "Server=Equipo01\SQLEXPRESS;" & _ "Database=faccapas;Integrated Security=True;" '----------------------------------------------Label2.Text = DateTime.Now.ToShortDateString Me.Panelclientes.Visible = False Me.PanelProductos.Visible = False 'Creamos una tabla temporal, para mantener los datos de los productos seleccionados. Dim Ds As New DataSet()

WWW.ROLANDOSTUDIOS.COM

Pgina 13

LENGUAJE DE PROGRAMACION
TblDet = Ds.Tables.Add With TblDet.Columns .Add("Codigo", Type.GetType("System.String")) .Add("Producto", Type.GetType("System.String")) .Add("Precio", Type.GetType("System.Single")) .Add("Cantidad", Type.GetType("System.Int32")) .Add("Total", Type.GetType("System.Single")) End With 'Agregamos una Clave Principal a la Tabla Dinamica 'para que no se reptan los registros With Ds.Tables(0) .PrimaryKey = New DataColumn() {.Columns("Codigo")} End With DataGrid1.DataSource = TblDet FormatearGrid() ClearControl() Me.txtfactura.Enabled = False '-----------------------------------'llenar clientes oDataAdapter = New SqlDataAdapter() Dim oCmdConsulta As New SqlCommand("SELECT * FROM clientes", oConexion) oDataAdapter.SelectCommand = oCmdConsulta odataset = New DataSet() Me.llenarcliente() '---------------------------------------'llenar productos oDataAdapter1 = New SqlDataAdapter() Dim oCmdConsulta1 As New SqlCommand("SELECT * FROM producto", oConexion) oDataAdapter1.SelectCommand = oCmdConsulta1 odataset = New DataSet() Me.llenarproducto() '---------------------------------------Me.aparienciatexbox() End Sub Sub aparienciatexbox() Me.btnbuscliente.Enabled = False Me.Btnbusprod.Enabled = False

WWW.ROLANDOSTUDIOS.COM

Pgina 14

LENGUAJE DE PROGRAMACION
Me.btnadicionar.Enabled = False Me.btneliminar.Enabled = False Me.btncancelar.Enabled = False Me.btngrabar.Enabled = False Me.txtfactura.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txtcliente.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txtdireccion.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txttel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txtfechaingreso.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txtprod.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txtprecio.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txtcant.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txtsubtotal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txtigv.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txttotal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.txtcliente.Enabled = False Me.txtdireccion.Enabled = False Me.txttel.Enabled = False Me.txtfechaingreso.Enabled = False Me.txtprod.Enabled = False Me.txtprecio.Enabled = False Me.txtcant.Enabled = False Me.txtsubtotal.Enabled = False Me.txtigv.Enabled = False Me.txttotal.Enabled = False End Sub _______________________________________________ Sub ClearControl() Dim Obj As Object For Each Obj In Me.Controls If TypeOf Obj Is TextBox Then Obj.text = ""

WWW.ROLANDOSTUDIOS.COM

Pgina 15

LENGUAJE DE PROGRAMACION
If TypeOf Obj Is GroupBox Then Dim objtext As Object For Each objtext In Obj.controls If TypeOf objtext Is TextBox Then objtext.text = "" End If Next End If End If

Next End Sub

Sub FormatearGrid() 'doy formato al datagrid1 DataGrid1.Columns.Item(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight DataGrid1.Columns.Item(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight DataGrid1.Columns.Item(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight DataGrid1.Columns(0).Width = CInt(DataGrid1.Width DataGrid1.Columns(1).Width = CInt(DataGrid1.Width DataGrid1.Columns(2).Width = CInt(DataGrid1.Width DataGrid1.Columns(3).Width = CInt(DataGrid1.Width Me.DataGrid1.AllowUserToAddRows = False End Sub * * * * 0.1) 0.48) 0.1) 0.1)

Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNuevo.Click Me.BtnNuevo.Enabled = False Me.btnbuscliente.Enabled = True Me.txtcliente.Clear() Me.txttel.Clear() Me.txtdireccion.Clear() Me.txtfechaingreso.Clear() Dim TblFac As DataTable ClearControl() 'Limpiar los Controles TblFac = ObjFactura.ListarFacturas("Sp_ListFacturas").Tables(0) Me.txtfactura.Text = Vb.Right("00000" + Trim(Str(TblFac.Rows.Count + 1)), 6)

WWW.ROLANDOSTUDIOS.COM

Pgina 16

LENGUAJE DE PROGRAMACION
TblFac.Dispose() TblDet.Clear() 'Limpia la Tabla Detalle End Sub Private Sub btnbuscliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnbuscliente.Click Me.Panelclientes.Visible = True End Sub Private Sub Btnbusprod_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnbusprod.Click Me.PanelProductos.Visible = True End Sub Private Sub llenarcliente() odataset.Clear() oConexion.Open() oDataAdapter.Fill(odataset, "clientes") oConexion.Close() Me.DataGrid2.DataSource = odataset Me.DataGrid2.DataMember = "clientes" End Sub Private Sub llenarproducto() odataset.Clear() oConexion.Open() oDataAdapter1.Fill(odataset, "producto") oConexion.Close() Me.DataGrid3.DataSource = odataset Me.DataGrid3.DataMember = "producto" End Sub Private Sub txtprod1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtprod1.KeyPress 'If e.KeyChar = Convert.ToChar(Keys.Return) Then ' TblProd = ObjFactura.ListarProductos("Sp_FiltrarProducto", txtprod1.Text).Tables(0)

WWW.ROLANDOSTUDIOS.COM

Pgina 17

LENGUAJE DE PROGRAMACION
' DataGrid3.DataSource = TblProd ' e.Handled = True 'End If End Sub Private Sub txtcliente1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtcliente1.KeyPress ' If e.KeyChar = Convert.ToChar(Keys.Return) Then ' Tbl = Objfactura.ListarClientes("Sp_FiltradoCliente", txtcliente1.Text.Trim).Tables(0) ' DataGrid2.DataSource = Tbl ' ' e.Handled = True 'Elimina el Pitido del teclado ' End If End Sub Private Sub txtcliente1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcliente1.TextChanged Dim da As New SqlDataAdapter("SELECT * FROM clientes", oConexion) Dim ds1 As New DataSet da.Fill(ds1) dv.Table = ds1.Tables(0) DataGrid2.DataSource = dv dv.RowFilter = String.Format("nom_cli Like '%{0}%'", txtcliente1.Text) End Sub Private Sub DataGrid3_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid3.DoubleClick Me.PanelProductos.Visible = False Me.txtcant.Enabled = True Me.txtcant.Select() Dim TblP As DataTable XCodProd = DataGrid3.Item(0, DataGrid3.CurrentRow.Index).Value TblP = Objfactura.ListarProductos("Sp_BuscarProducto", XCodProd).Tables(0) XCodProd = TblP.Rows(0)(0) Me.txtprod.Text = TblP.Rows(0)(1) Me.txtprecio.Text = TblP.Rows(0)(2) XPrecio_Cos = TblP.Rows(0)(3) TblP.Dispose()

WWW.ROLANDOSTUDIOS.COM

Pgina 18

LENGUAJE DE PROGRAMACION
End Sub Private Sub DataGrid2_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGrid2.DoubleClick Me.Panelclientes.Visible = False Me.Btnbusprod.Enabled = True Dim TblC As DataTable Dim XCodcli As String = DataGrid2.Item(0, DataGrid2.CurrentRow.Index).Value TblC = Objfactura.ListarClientes("Sp_BuscarCliente", XCodcli).Tables(0) Me.txtcliente.Text = TblC.Rows(0)(1) Me.txttel.Text = TblC.Rows(0)(3) Me.txtdireccion.Text = TblC.Rows(0)(2) Me.txtfechaingreso.Text = TblC.Rows(0)(5) TblC.Dispose() End Sub Private Sub txtprod1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtprod1.TextChanged Dim da As New SqlDataAdapter("SELECT * FROM producto", oConexion) Dim ds2 As New DataSet da.Fill(ds2) dv1.Table = ds2.Tables(0) DataGrid3.DataSource = dv1 dv1.RowFilter = String.Format("descrip Like '%{0}%'", txtprod1.Text) End Sub Private Sub btnadicionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnadicionar.Click Rw = TblDet.NewRow() Rw(0) = XCodProd Rw(1) = Me.txtprod.Text Rw(2) = CDbl(Me.txtprecio.Text) Rw(3) = CInt(Me.txtcant.Text) Rw(4) = CDbl(Rw(2)) * CDbl(Rw(3)) 'Rw(4) = Format((CDbl(Rw(2)) * CDbl(Rw(3))), "###0.00") 'quiero en la celda con dos decimales Try TblDet.Rows.Add(Rw)

WWW.ROLANDOSTUDIOS.COM

Pgina 19

LENGUAJE DE PROGRAMACION
TblDet.AcceptChanges() Me.TotalValores() 'activo y desactivo 'Me.btnadicionar.Enabled = False Me.btneliminar.Enabled = True Me.btncancelar.Enabled = True ' limipio los datos del producto 'para ingresar otro Me.txtprod.Clear() Me.txtprecio.Clear() Me.txtcant.Clear() Me.txtcant.Enabled = False Me.Btnbusprod.Select() Catch Ex As Exception MsgBox(Ex.Message) 'Actualizar codigo MsgBox("Se Procedera a Actualizar el Producto" & Space(2) & Me.txtprod.Text) Rw = TblDet.Rows.Find(XCodProd) Rw.BeginEdit() Rw(3) = CInt(Me.txtcant.Text) Rw(4) = CDbl(Rw(2)) * CDbl(Rw(3)) Rw.EndEdit() TblDet.AcceptChanges() Me.TotalValores() End Try Me.btnadicionar.Enabled = False Me.btngrabar.Enabled = True End Sub Sub TotalValores() Dim Xtotal As Single Xtotal = IIf(TblDet.Compute("Sum(Total)", Nothing) Is DBNull.Value, 0, TblDet.Compute("Sum(Total)", Nothing)) Me.txtsubtotal.Text = Format(Xtotal, "###0.00")

WWW.ROLANDOSTUDIOS.COM

Pgina 20

LENGUAJE DE PROGRAMACION
Me.txtigv.Text = Format(Xtotal * 0.18, "###0.00") Me.txttotal.Text = Format(Xtotal - (Xtotal * 0.18), "##0.00") End Sub Private Sub btngrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btngrabar.Click Me.btngrabar.Enabled = False Me.btnadicionar.Enabled = False Me.btneliminar.Enabled = False Me.btncancelar.Enabled = False Me.BtnNuevo.Enabled = True ' Grabando la cabecera de la Facturacin Dim XG As Integer XG = Objfactura.AgregarFactura("Sp_GrabarFactura", _ Me.txtfactura.Text, Me.DataGrid2.SelectedCells(0).Value.ToString, CDbl(Me.txtsubtotal.Text), _ CDbl(Me.txtigv.Text), CDbl(Me.txttotal.Text), CDate(Label2.Text), 0) ' Me.txtfactura.Text, Xcodcli, CDbl(Me.txtsubtotal.Text), _ If XG = 1 Then MsgBox("Factura Registrada") End If 'Grabando Detalle de la Factura Dim XD As Integer Dim I As Integer For I = 0 To TblDet.Rows.Count - 1 XD = Objfactura.AgregarDetalle("Sp_GrabarDetalle", Me.txtfactura.Text, _ TblDet.Rows(I)(0), TblDet.Rows(I)(2), 0, TblDet.Rows(I)(3)) Next If XD = 1 Then MsgBox("Detalle Registrado de la Factura Nro" & Space(1) & Me.txtfactura.Text) End If End Sub Private Sub btneliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btneliminar.Click 'Se Procedera a la Busqueda del Producto para Eliminar

WWW.ROLANDOSTUDIOS.COM

Pgina 21

LENGUAJE DE PROGRAMACION
If MsgBox("Desea Eliminar el Producto" & Space(2) & Me.txtprod.Text, 4 + 32, "ELIMINANDO PRODUCTO DETALLE") = MsgBoxResult.Yes Then Rw = TblDet.Rows.Find(XCodProd) Rw.Delete() TblDet.AcceptChanges() Me.TotalValores() Else MsgBox("Descartando Eliminacion") 'Deselecciona la Fila seleccionada 'DataGrid1.UnSelect(DataGrid1.CurrentRowIndex) End If End Sub Private Sub btncancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncancelar.Click If MsgBox("Desea Cancelar los Productos Ingresados", 4 + 32, "Cancelando Productos") = MsgBoxResult.Yes Then TblDet.Clear() Me.TotalValores() Else MsgBox("Descartando Elimacion de Registros") End If End Sub Private Sub txtcliente_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtcliente.Click btnbuscliente.Select() End Sub Private Sub txtdireccion_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtdireccion.Click btnbuscliente.Select() End Sub Private Sub txtcant_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtcant.KeyPress If e.KeyChar = Convert.ToChar(Keys.Enter) Then Me.btnadicionar.Enabled = True Me.btnadicionar.Select()

WWW.ROLANDOSTUDIOS.COM

Pgina 22

LENGUAJE DE PROGRAMACION
End If End Sub Private Sub txtcant_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcant.TextChanged Me.btnadicionar.Enabled = True End Sub Private Sub btnsalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsalir.Click If MsgBox("Desea Salir de la Facturacion", 4 + 32, "FACTURACION") = MsgBoxResult.Yes Then Me.Dispose() End Else Exit Sub End If End Sub End Class

WWW.ROLANDOSTUDIOS.COM COMUNICA ACA LES DEJO EL APORTE, DE LA PROPUESTA DE FACTURACION DE ZONA PERU, HE CAMBIADO ALGUNAS LINEAS DE CODIGO PARA QUE SEA FUNCIONAL, ESPERO QUE AL DEJAR ESTE APORTE SEA MEJORADO Y PERFECCIONADO POR OTROS USUARIOS Y PUEDA CONTRIBUIR A COMPARTIR Y DIFUNDIR EL CONOCIMIENTO. CREDITOS PARA EL USER DE WFZONE:ZONAPERU(EXCELENTE EL APORTE +10 GRACIAS) AGRADECIMIENTOS A LA GENTE DEL FORO:GRACIAS A [Dark]Poetix ATENTAMENTE . WWW.ROLANDOSTUDIOS.COM

WWW.ROLANDOSTUDIOS.COM

Pgina 23

Вам также может понравиться