Guia de Laboratorios 5 - VB.NET 2005

9,985 views

Published on

Laboratorios del curso de Visual Basic 2005

Published in: Education, Technology, Business
2 Comments
5 Likes
Statistics
Notes
  • no, seguramente debe ser el procedimiento almacenado que debe ser creado....
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • me sale error aqui en autogeneracion me dice que tiene que ver un escala osea un codigo ingresado de cliente
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
9,985
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
1,536
Comments
2
Likes
5
Embeds 0
No embeds

No notes for slide

Guia de Laboratorios 5 - VB.NET 2005

  1. 1. UNJBG ¡¡LÍDER EN CAPACITACIÓN INFORMÁTICA!! ITEL Garantía del proceso Enseñanza-Aprendizaje con las últimas CARRERA tecnologías, con computadoras de última generación, Técnico Analista CURSO impresoras, escáner, multimedia, redes, Internet, material Programador de Programación Visual .NET II didáctico paso a paso, biblioteca y aula virtual con docentes del Sistemas mas alto nivel. GUÍA DE LABORATORIO N° 05 OBJETIVOS: Uso de las Clases: DataTable, DataRow, DataColumn, Creación y uso de Objetos: Formularios de Mantenimiento Maestro-Detalle, Uso de Objetos temporales en el Servidor. Cursores de Servidor SQL y DataSet, Control de Excepciones en el Servidor y en el Cliente. 1. ENTORNO INTEGRADO DE DESARROLLO • Proceda a ingresar Visual Studio .NET y realice lo siguiente: • Deberá Abrir la solución realizada en la práctica anterior (SisVentas) 2. CREACION DE FORMULARIO DE FACTURACION (frmFactura.vb) Recuperar el Proyecto de Solución SISVENTAS y realizar lo siguiente: • Ir al menú Proyecto, luego seleccione agregar nuevo elemento • Luego nos visualizará una ventana [Agregar nuevo elemento], usted deberá seleccionar Windows Forms. A continuación proceda a ingresar el nombre para su formulario: frmFactura.vb • Por último haga clic en el botón Abrir, luego éste formulario se habrá agregado al Explorador de soluciones. Proceda a Diseñar el Siguiente Formulario FrmFactura: a) Deberá agregar los controles necesarios para el diseño del siguiente formulario y establezca las propiedades según se observa: Bimestre Acadêmico : 2009- Docente : José Luis Ponce Segura. Ciclo : V (1 de 11) Fecha : Tacna, Mayo del 2009
  2. 2. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II b) El ToolStrip, es decir la barra de Herramientas (nuevo, guardar, etc..) deberá agregar los objetos y establecer los nombres según se observa a continuación: c) Modificar el Código del Módulo MODCONEXION, en el deberán declarar lo siguiente: Public bus, compra As Boolean Public cart, nart As String, part, iart, cnart, sart As Double Public factura As frmfactura d) En el formulario principal agregar los enlaces para la barra de Menú. Escriba el siguiente código: Private Sub Mnufactura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuconFactura.Click factura = New frmFactura factura.MdiParent = Me factura.Show() End Sub e) En el botón de la barra de herramientas del formulario principal agregar el código: factura = New frmFactura factura.MdiParent = Me factura.Show() Creación de los procedimientos almacenados a) PROCEDIMIENTO PARA AGREGARFACTURA CREATE procedure agregarfactura ( @nrofac varchar(5), @fechfac datetime, @subtot float, @totigv float, Docente: José Luis Ponce Segura Prac05 (2 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  3. 3. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II @totfac float, @codcli varchar(5), @codemp varchar(5), @estado bit ) as begin transaction INSERT INTO Factura (nrofac,fechfac,subtot,totigv,totfac,codcli,codemp,estado) VALUES (@nrofac,@fechfac,@subtot,@totigv,@totfac,@codcli,@codemp,@estado) if @@error=0 Commit Transaction else Rollback Transaction b) CREACION DE LOS PROCEDIMIENTOS PARA ACTUALIZACION DE DETALLE Agregar Detalle CREATE procedure agregardetalle ( @nrofac varchar(5), @codart varchar(5), @candet int, @impdet numeric ) as Begin Transaction INSERT INTO detalle (nrofac,codart,candet,impdet) VALUES (@nrofac,@codart,@candet,@impdet) if @@error=0 Commit Transaction else Rollback Transaction c) CREAR EL PROCEDIMIENTO PARA ACTUALIZARSTOCK CREATE procedure actualizarStock ( @codart varchar(5), @stoart int ) as update articulo set codart=@codart, stoart=@stoart where codart=@codart AGREGAR EL CODIGO NECESARIO PARA EL FORMULARIO FRMFACTURA Biblioteca de Clase: Option Compare Text Imports System.Data Imports System.Data.SqlClient En la Sección de Declaraciones Generales escriba: Dim daFactura As SqlDataAdapter Dim dadetalle As SqlDataAdapter Dim daEmpleado As SqlDataAdapter Dim daCliente As SqlDataAdapter Dim daArticulo As SqlDataAdapter Dim objDataSet As New DataSet Dim flag As Integer Dim resultado As Integer Dim strNroFac As String Dim fil As Integer Dim objDataRow As DataRow Docente: José Luis Ponce Segura Prac05 (3 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  4. 4. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II Dim posicion As Integer Dim nart As Byte Código del Procedimiento Form_Load (Formulario) Private Sub frmfactura_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim stremp, strcli As String stremp = "SELECT nomemp,apeemp,codemp,diremp,sexemp,telemp,observacion,codcar,activo,nomemp + " & _ "' '" & " + apeemp AS nomape FROM Empleado" strcli = "SELECT codcli,nomcli,apecli,dircli,ruccli,nomcli + " & _ "' '" & " + apecli AS nombres FROM cliente" Conexion.Open() daFactura = New SqlDataAdapter("select * from factura",Conexion) dadetalle = New SqlDataAdapter("select * from detalle",Conexion) daEmpleado = New SqlDataAdapter(stremp,Conexion) daCliente = New SqlDataAdapter(strcli, ModConexion.Conexion) daArticulo = New SqlDataAdapter("select * from articulo",Conexion) ' objDataSet = New DataSet() daFactura.Fill(objDataSet, "factura") dadetalle.Fill(objDataSet, "detalle") daEmpleado.Fill(objDataSet, "empleado") daCliente.Fill(objDataSet, "cliente") daArticulo.Fill(objDataSet, "articulo") ' relacionar las dos tablas del dataset por campo común objDataSet.Relations.Add("Factura_detalle", _ objDataSet.Tables("Factura").Columns("nrofac"), _ objDataSet.Tables("detalle").Columns("nrofac")) ' Conexion.Close() llenarcombos() ' posicion = (objDataSet.Tables("factura").Rows.Count - 1) CargarDatos() ' ActivarControl(False) ActivarBoton(True) Me.dgvDetalleFactura.ReadOnly = True End Sub Private Sub CargarDatos() ' ya esta Try objDataRow = objDataSet.Tables("Factura").Rows(posicion) lblNroFactura.Text = objDataRow("nrofac") txtCodCli.Text = objDataRow("codcli") txtCodEmp.Text = objDataRow("codemp") dtpFechFac.Value = objDataRow("fechfac") txtSubTot.Text = objDataRow("subtot") txtTotIgv.Text = objDataRow("totigv") txtTotFac.Text = objDataRow("totfac") cboCliente.SelectedValue = objDataRow("codcli") cboEmpleado.SelectedValue = objDataRow("codemp") If objDataRow("estado") = True Then lblEstado.Text = Nothing : tsbEliminar.Enabled = True If objDataRow("estado") = False Then lblEstado.Text = "FACTURA ANULADA" : tsbEliminar.Enabled = False ' Mostrar Posición en el ToolStripLabel Me.tslRegistro.Text = "Registro: " & posicion + 1 & " de " & _ objDataSet.Tables("factura").Rows.Count EnlazaGrilla() Catch exc As Exception MessageBox.Show(exc.Message) End Try End Sub Private Sub EnlazaGrilla() ' Declarando variables a utilizar Dim miDr As SqlDataReader Dim strSQL As String = "Select * from detalle where nrofac='" & lblNroFactura.Text & "'" Dim miDt As New DataTable Dim Cm As SqlCommand ' Establecemos la conexión con la base de datos Docente: José Luis Ponce Segura Prac05 (4 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  5. 5. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II Cm = New SqlCommand(strSQL, Conexion) ' Conexion.Open() ' Ejecutamos la sentencia SQL miDr = Cm.ExecuteReader ' Borramos el contenido del DataTable miDt.Clear() ' Cargamos los resultados en el objeto DataTable miDt.Load(miDr, LoadOption.OverwriteChanges) dgvDetalleFactura.Columns.Clear() dgvDetalleFactura.DataSource = miDt Conexion.Close() End Sub Private Sub llenarcombos() ' Conexion.Open() Call desconectarcombos() ' Enlazando el combo de cliente cboCliente.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.objDataSet, "factura.codcli")) cboCliente.DataSource = Me.objDataSet.Tables("cliente") cboCliente.DisplayMember = "nombres" cboCliente.ValueMember = "codcli" cboCliente.DropDownStyle = ComboBoxStyle.DropDownList ' enlazando el combo de empleado cboEmpleado.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.objDataSet, "factura.codemp")) cboEmpleado.DataSource = Me.objDataSet.Tables("empleado") cboEmpleado.DisplayMember = "nomape" cboEmpleado.ValueMember = "codemp" cboEmpleado.DropDownStyle = ComboBoxStyle.DropDownList End Sub Private Sub desconectarcombos() Private Sub ActivarBoton(ByVal est As Boolean) cboCliente.DataBindings.Clear() Dim oitem As Windows.Forms.ToolStripItem cboEmpleado.DataBindings.Clear() For Each oitem In ToolStrip1.Items End Sub If TypeOf oitem Is ToolStripButton Then oitem.Enabled = est End If Next tsbGuardar.Enabled = Not est tsbCancelar.Enabled = Not est End Sub Private Sub LimpiarControles() Private Sub ActivarControl(ByVal est As Boolean) Dim ctrl As Control Dim ctrl As Control For Each ctrl In Me.Controls For Each ctrl In Me.Controls If TypeOf ctrl Is TextBox Then ctrl.Text = If TypeOf ctrl Is GroupBox Then ctrl.Enabled = est "" If TypeOf ctrl Is DateTimePicker Then ctrl.Enabled Next = est cboEmpleado.Text = "" If TypeOf ctrl Is Button Then ctrl.Enabled = est cboCliente.Text = "" Next End Sub End Sub Private Sub Actualizar() Private Sub GeneraCodigo() objDataSet.Clear() Dim cmd As New SqlCommand("select max(nrofac) daFactura.Fill(objDataSet, "factura") from factura",Conexion) dadetalle.Fill(objDataSet, "detalle") Conexion.Open() daEmpleado.Fill(objDataSet, "empleado") strNroFac = cmd.ExecuteScalar daCliente.Fill(objDataSet, "cliente") Conexion.Close() daArticulo.Fill(objDataSet, "articulo") lblNroFactura.Text = Format(Val(strNroFac) + 1, End Sub "00000") End Sub Public Sub totalizar() Dim i As Integer, st As Double For i = 0 To nart st = st + CDbl(Me.dgvDetalleFactura.Item(3, i).Value) Next Me.txtSubTot.Text = Format(st, "#######.00") Me.txtTotIgv.Text = Format(CDbl(Me.txtSubTot.Text) * 0.19, "#######.00") Me.txtTotFac.Text = Format(CDbl(Me.txtSubTot.Text) + CDbl(Me.txtTotIgv.Text), "#######.00") End Sub Docente: José Luis Ponce Segura Prac05 (5 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  6. 6. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II Private Sub Desplazar(ByVal op As Integer) Select Case op Case 1 posicion = 0 CargarDatos() Case 2 If posicion = 0 Then MessageBox.Show("Primer Registro", "", 0, MessageBoxIcon.Information) Else posicion -= 1 CargarDatos() End If Case 3 If posicion = (objDataSet.Tables("Factura").Rows.Count - 1) Then MessageBox.Show("Último Registro", "", 0, MessageBoxIcon.Information) Else posicion += 1 CargarDatos() End If Case 4 posicion = (objDataSet.Tables("Factura").Rows.Count - 1) CargarDatos() End Select End Sub Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked Select Case e.ClickedItem.Name ' Actualización Case "tsbnuevo" ' Botón Nuevo Nuevo() Case "tsbguardar" ' Botón Guardar Guardar() Case "tsbcancelar" ' Botón Cancelar cancelar() Case "tsbeliminar" ' Botón Eliminar Dim rpta As MsgBoxResult rpta = MsgBox("Esta seguro que desea Anular la Factura Nro.: " & _ lblNroFactura.Text, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación") If rpta = vbYes Then AnularFactura(lblNroFactura.Text, 0) Case "tsbbuscar" ' Botón Salir buscar() Case "tsbsalir" ' Botón Salir Me.Close() Case "tsbprimero" ' Ir a al Primero Desplazar(1) Case "tsbanterior" ' Ir al Anterior Desplazar(2) Case "tsbsiguiente" ' Ir al Siguiente Desplazar(3) Case "tsbultimo" ' Ir al Último Desplazar(4) End Select End Sub Private Sub Nuevo() flag = 1 ActivarControl(True) Desplazar(4) ActivarBoton(False) LimpiarControles() GeneraCodigo() ' llamar al proc. para generar Nro. Factura Me.dgvDetalleFactura.DataSource = Nothing End Sub Private Sub Guardar() Dim oper As String, estado As Boolean Dim cmF As New SqlCommand() Dim cmD As New SqlCommand() Dim cmA As New SqlCommand() 'conexion de comandos cmF.Connection = Conexion Docente: José Luis Ponce Segura Prac05 (6 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  7. 7. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II cmD.Connection = Conexion cmA.Connection = Conexion If flag = 1 Then ' Nuevo 'asignando procedimientos almacenados cmF.CommandType = CommandType.StoredProcedure cmF.CommandText = "AgregarFactura" cmD.CommandType = CommandType.StoredProcedure cmD.CommandText = "AgregarDetalle" cmA.CommandType = CommandType.StoredProcedure cmA.CommandText = "ActualizarStock" oper = " insertados: " Else ' Editar cmF.CommandType = CommandType.StoredProcedure cmF.CommandText = "ModificarFactura" cmD.CommandType = CommandType.StoredProcedure cmD.CommandText = "ModificarDetalle" oper = " modificados: " End If Try 'Para toda factura nueva el estado es activo estado = True cmF.Parameters.Add(New SqlParameter("@nrofac", SqlDbType.VarChar)) cmF.Parameters.Add(New SqlParameter("@fechfac", SqlDbType.DateTime)) cmF.Parameters.Add(New SqlParameter("@subtot", SqlDbType.Float)) cmF.Parameters.Add(New SqlParameter("@totigv", SqlDbType.Float)) cmF.Parameters.Add(New SqlParameter("@totfac", SqlDbType.Float)) cmF.Parameters.Add(New SqlParameter("@codcli", SqlDbType.VarChar)) cmF.Parameters.Add(New SqlParameter("@codemp", SqlDbType.VarChar)) cmF.Parameters.Add(New SqlParameter("@estado", SqlDbType.Bit)) cmF.Parameters("@fechfac").Value = Me.dtpFechFac.Value.ToShortTimeString cmF.Parameters("@nrofac").Value = Me.lblNroFactura.Text cmF.Parameters("@subtot").Value = Me.txtSubTot.Text cmF.Parameters("@totigv").Value = Me.txtTotIgv.Text cmF.Parameters("@totfac").Value = Me.txtTotFac.Text cmF.Parameters("@codcli").Value = Me.txtCodCli.Text cmF.Parameters("@codemp").Value = Me.txtCodEmp.Text cmF.Parameters("@estado").Value = estado Conexion.Open() resultado = cmF.ExecuteNonQuery 'Para detalle Dim i As Integer cmD.Parameters.Add(New SqlParameter("@nrofac", SqlDbType.VarChar)) cmD.Parameters.Add(New SqlParameter("@codart", SqlDbType.VarChar)) cmD.Parameters.Add(New SqlParameter("@candet", SqlDbType.Money)) cmD.Parameters.Add(New SqlParameter("@impdet", SqlDbType.Money)) For i = 0 To nart - 1 cmD.Parameters("@nrofac").Value = Me.dgvDetalleFactura.Item(0, i).Value cmD.Parameters("@codart").Value = Me.dgvDetalleFactura.Item(1, i).Value cmD.Parameters("@candet").Value = Me.dgvDetalleFactura.Item(2, i).Value cmD.Parameters("@impdet").Value = Me.dgvDetalleFactura.Item(3, i).Value resultado = cmD.ExecuteNonQuery Next 'actualiza el stock Dim strdato1 As String Dim fila1, x As Integer Dim dv1 As New DataView() Dim objDatarow As DataRow Dim stock, nuevostock As Double cmA.Parameters.Add(New SqlParameter("@codart", SqlDbType.VarChar)) cmA.Parameters.Add(New SqlParameter("@stoart", SqlDbType.VarChar)) For i = 0 To nart - 1 strdato1 = Me.dgvDetalleFactura.Item(1, i).Value dv1.Table = objDataSet.Tables("articulo") dv1.Sort = "codart" fila1 = dv1.Find(strdato1) If fila1 = -1 Then MsgBox("no existe") Else objDatarow = objDataSet.Tables("articulo").Rows(fila1) Docente: José Luis Ponce Segura Prac05 (7 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  8. 8. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II stock = objDatarow("stoart") nuevostock = stock - Val(Me.dgvDetalleFactura.Item(2, i).Value) cmA.Parameters("@codart").Value = Me.dgvDetalleFactura.Item(1, i).Value cmA.Parameters("@stoart").Value = nuevostock x = cmA.ExecuteNonQuery End If Next Catch exc As Exception MessageBox.Show(exc.Message) End Try Conexion.Close() Actualizar() ActivarControl(False) ActivarBoton(True) EnlazaGrilla() Desplazar(1) End Sub Public Sub cancelar() Conexion.Open() objDataSet.RejectChanges() Conexion.Close() Desplazar(2) ActivarControl(False) ActivarBoton(True) EnlazaGrilla() End Sub Private Sub AnularFactura(ByVal codi As String, ByVal estado As Boolean) Dim objComando As New SqlCommand objComando.Connection = Conexion objComando.CommandType = CommandType.Text objComando.CommandText = "UPDATE FACTURA SET nrofac=@nrofac,estado=@estado WHERE nrofac=@nrofac" Try 'Agregando Parametros objComando.Parameters.Add(New SqlParameter("@nrofac", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@estado", SqlDbType.Bit)) 'asignando valores a parametros objComando.Parameters("@nrofac").Value = codi objComando.Parameters("@estado").Value = estado Conexion.Open() resultado = objComando.ExecuteNonQuery Actualizar() Conexion.Close() MessageBox.Show(resultado & " Factura Anualda", "", 0, MessageBoxIcon.Information) Desplazar(1) Catch exc As Exception MessageBox.Show(exc.Message) End Try End Sub Private Sub buscar() Dim strDato As String Dim fila As Integer Dim dv As DataView strDato = InputBox("Ingrese numero de factura", "Buscar") strDato = Format(Val(strDato), "00000") dv = objDataSet.Tables("FACTURA").DefaultView dv.Sort = "nrofac" fila = dv.Find(strDato) If fila = -1 Then MessageBox.Show("Numero de factura no existe", "Cuidado") Exit Sub End If posicion = fila : CargarDatos() End Sub Private Sub cboCliente_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboCliente.SelectedIndexChanged If flag = 1 Then Me.txtCodCli.Text = Me.cboCliente.SelectedValue End If End Sub Docente: José Luis Ponce Segura Prac05 (8 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  9. 9. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II Private Sub cboEmpleado_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboEmpleado.SelectedIndexChanged If flag = 1 Then Me.txtCodEmp.Text = Me.cboEmpleado.SelectedValue End If End Sub Private Sub btnArticulos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnArticulos.Click Dim buscar As New FrmBuscarArticulo2005 If buscar.ShowDialog() = Windows.Forms.DialogResult.Cancel Then nart = ncompras totalizar() End If End Sub 3. AGREGAR EL FORMULARIO DE BUSQUEDA DE ARTICULOS : FRMBUSCARARTICULO • Ir al menú Proyecto, luego seleccione agregar nuevo elemento • Luego nos visualizará una ventana [Agregar nuevo elemento], usted deberá seleccionar Windows Forms. A continuación proceda a ingresar el nombre para su formulario: frmBuscarArticulo.vb • Por último haga clic en el botón Abrir, luego éste formulario se habrá agregado al Explorador de soluciones. Proceda a Diseñar el Siguiente Formulario FrmBuscarArticulo: a) Diseñar el formulario de acuerdo a la siguiente presentación : b) Agregar las propiedades del presente formulario de acuerdo a la tabla : Objeto Propiedad Valor Asignado Form1 Name frmBuscarArticulo BackgroundImage Haga clic en … y Seleccione la imagen Startposition CenterScreen Label1, label2 ... Agregar las etiquetas que Cambiar el texto que observa en la practica. sean necesarias en Text TextBox1 Name TxtBusqueda GroupBox Text Buscar por : Docente: José Luis Ponce Segura Prac05 (9 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  10. 10. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II RadioButton1 Name RbtCodigo RadioButton2 Name RbtNombre DataGrid1 Name DataGridView1 Label1 Name LblTitulo Label2 Name Lblencontrados Label3 Name LblSeleccion NumericUpDown Name NumericUpDown1 Textbox2 Name txtImporte Button1 Name Button1 Text BtnCancelar Button2 Name Button2 Text BtnAceptar Agregar el código necesario del presente formulario: Antes de cualquier codigo escriba la biblioteca de Clases : Imports System.Data Imports System.Data.SqlClient En Declaraciones Generales Escriba el Codigo : Dim strcampo As String Dim objDataAdapter As SqlDataAdapter Dim objDataSet As DataSet Dim sqlstr, oper As String Dim cod_art, des_art As String, pre_art, imp_art As Double Dim can_art, sto_art As Integer,f As Byte Private Sub FrmBuscarArticulo2005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load txtBusqueda.Clear() txtBusqueda.Enabled = False DataGridView1.ReadOnly = True NumericUpDown1.Minimum = 0 End Sub Private Sub rbtCodigo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbtCodigo.Click, rbtNombre.Click Select Case sender.name Case "rbtCodigo" strcampo = "codart" oper = " codigo " Case "rbtNombre" strcampo = "desart" oper = " nombre " End Select Me.lbltitulo.Text = "ingrese " & oper & " a buscar" Me.DataGridView1.DataSource = Nothing txtBusqueda.Enabled = True txtBusqueda.Clear() txtBusqueda.Focus() lblEncontrados.Text = "" End Sub Private Sub txtBusqueda_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBusqueda.TextChanged Dim strSQL As String Dim total As Integer strSQL = "SELECT * FROM articulo WHERE " & Trim(strcampo) & " LIKE '" & _ Trim(Me.txtBusqueda.Text) & "%'" If txtBusqueda.Text = "" Then txtBusqueda.Clear() : txtBusqueda.Focus() DataGridView1.DataSource = Nothing Exit Sub End If objDataAdapter = New SqlDataAdapter(strSQL, Conexion) Conexion.Open() objDataSet = New DataSet() objDataAdapter.Fill(objDataSet, "Articulo") Conexion.Close() Docente: José Luis Ponce Segura Prac05 (10 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  11. 11. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II total = Me.objDataSet.Tables("articulo").Rows.Count If total > 0 Then Me.DataGridView1.DataSource = objDataSet Me.DataGridView1.DataMember = "Articulo" lblEncontrados.Text = "Se encontraron " & Str(total) & " articulos" Else lblEncontrados.Text = "No se econtro el articulo...." End If End Sub Private Sub DataGridView1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.CurrentCellChanged NumericUpDown1.Value = 0 txtImporte.Clear() Dim fil As Integer fil = DataGridView1.CurrentRow.Index cod_art = Me.DataGridView1.Item(0, fil).Value des_art = Me.DataGridView1.Item(1, fil).Value pre_art = CDbl(Me.DataGridView1.Item(2, fil).Value) sto_art = CInt(Me.DataGridView1.Item(3, fil).Value) LblSeleccion.Text = "Artículo: " & des_art & ", Cantidad:" NumericUpDown1.Maximum = sto_art End Sub Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click If Me.txtImporte.Text.Length = 0 Or Val(Me.txtImporte.Text) < 1 Then MsgBox("no se ha calculado el importe a pagar..") Exit Sub End If Dim rpta As String rpta = MsgBox("Esta seguro que desea comprar", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirma Compra") If rpta = vbNo Then Exit Sub If f = 0 Then PreparaGrillaFactura() ncompras = f + 1 factura.dgvDetalleFactura.Item(0, f).Value = factura.lblNroFactura.Text factura.dgvDetalleFactura.Item(1, f).Value = cod_art factura.dgvDetalleFactura.Item(2, f).Value = can_art factura.dgvDetalleFactura.Item(3, f).Value = imp_art rpta = MsgBox("Desea comprar otro artículo", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Artículos") If rpta = vbYes Then f += 1 Else factura.totalizar() Me.Dispose() End If End Sub Private Sub PreparaGrillaFactura() factura.dgvDetalleFactura.Columns.Add("NroFac", "Nro. Factura") factura.dgvDetalleFactura.Columns.Add("CodArt", "Cod. Artículo") factura.dgvDetalleFactura.Columns.Add("CanDet", "Cantidad") factura.dgvDetalleFactura.Columns.Add("ImpDet", "Importe") factura.dgvDetalleFactura.Rows.Add(4) End Sub Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click factura.cancelar() Me.Dispose() End Sub Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged If NumericUpDown1.Value > sto_art Then MsgBox("La cantidad ingresada no debe ser mayor al stock del artículo") End If can_art = CInt(NumericUpDown1.Value) imp_art = CDbl(Format(pre_art * CDbl(NumericUpDown1.Value), "#######.00")) txtImporte.Text = imp_art End Sub Docente: José Luis Ponce Segura Prac05 (11 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net

×