Laboratorio 5 - Vb 2005

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Laboratorio 5 - Vb 2005 as PDF for free.

More details

  • Words: 2,831
  • Pages: 11
UNJBG ITEL CARRERA Técnico Analista Programador de Sistemas

¡¡LÍDER EN CAPACITACIÓN INFORMÁTICA!! Garantía del proceso Enseñanza-Aprendizaje con las últimas tecnologías, con computadoras de última generación, impresoras, escáner, multimedia, redes, Internet, material didáctico paso a paso, biblioteca y aula virtual con docentes del mas alto nivel.

CURSO Programación Visual .NET II

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 • •

2.

Proceda a ingresar Visual Studio .NET y realice lo siguiente: Deberá Abrir la solución realizada en la práctica anterior (SisVentas)

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 Ciclo

: 2009: V

(1 de 11)

Docente Fecha

: :

José Luis Ponce Segura. Tacna, Mayo del 2009

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 Cel. : 952636911

Prac05 (2 de 11)

e-mail: [email protected] www.redtacna.net

Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. @totfac @codcli @codemp @estado

Curso: Programación Visual .Net II

float, varchar(5), varchar(5), 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 Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim

daFactura As SqlDataAdapter dadetalle As SqlDataAdapter daEmpleado As SqlDataAdapter daCliente As SqlDataAdapter daArticulo As SqlDataAdapter objDataSet As New DataSet flag As Integer resultado As Integer strNroFac As String fil As Integer objDataRow As DataRow

Docente: José Luis Ponce Segura Cel. : 952636911

Prac05 (3 de 11)

e-mail: [email protected] www.redtacna.net

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 Cel. : 952636911

Prac05 (4 de 11)

e-mail: [email protected] www.redtacna.net

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 ActivarControl(ByVal est As Boolean) Private Sub LimpiarControles() Dim ctrl As Control Dim ctrl As Control For Each ctrl In Me.Controls For Each ctrl In Me.Controls If TypeOf ctrl Is GroupBox Then ctrl.Enabled = est If TypeOf ctrl Is TextBox Then ctrl.Text = If TypeOf ctrl Is DateTimePicker Then ctrl.Enabled "" = est Next If TypeOf ctrl Is Button Then ctrl.Enabled = est cboEmpleado.Text = "" Next cboCliente.Text = "" End Sub End Sub Private Sub Actualizar() objDataSet.Clear() daFactura.Fill(objDataSet, "factura") dadetalle.Fill(objDataSet, "detalle") daEmpleado.Fill(objDataSet, "empleado") daCliente.Fill(objDataSet, "cliente") daArticulo.Fill(objDataSet, "articulo") End Sub

Private Sub GeneraCodigo() Dim cmd As New SqlCommand("select max(nrofac) from factura",Conexion) Conexion.Open() strNroFac = cmd.ExecuteScalar Conexion.Close() lblNroFactura.Text = Format(Val(strNroFac) + 1, "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 Cel. : 952636911

Prac05 (5 de 11)

e-mail: [email protected] www.redtacna.net

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 Cel. : 952636911

Prac05 (6 de 11)

e-mail: [email protected] www.redtacna.net

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 Cel. : 952636911

Prac05 (7 de 11)

e-mail: [email protected] www.redtacna.net

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 Cel. : 952636911

Prac05 (8 de 11)

e-mail: [email protected] www.redtacna.net

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

Form1 Label1, label2 ... TextBox1 GroupBox

Propiedad

Valor Asignado

Name BackgroundImage Startposition Agregar las etiquetas que sean necesarias en Text Name Text

Docente: José Luis Ponce Segura Cel. : 952636911

frmBuscarArticulo Haga clic en … y Seleccione la imagen CenterScreen Cambiar el texto que observa en la practica. TxtBusqueda Buscar por :

Prac05 (9 de 11)

e-mail: [email protected] www.redtacna.net

Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas.

RadioButton1 RadioButton2 DataGrid1 Label1 Label2 Label3 NumericUpDown Textbox2 Button1 Button2

Name Name Name Name Name Name Name Name Name Text Name Text

Curso: Programación Visual .Net II

RbtCodigo RbtNombre DataGridView1 LblTitulo Lblencontrados LblSeleccion NumericUpDown1 txtImporte Button1 BtnCancelar Button2 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 Cel. : 952636911

Prac05 (10 de 11)

e-mail: [email protected] www.redtacna.net

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 Cel. : 952636911

Prac05 (11 de 11)

e-mail: [email protected] www.redtacna.net

Related Documents