Public Class NProducto
    Inherits System.Windows.Forms.Form
    Private lvwColumnSorter As ListViewColumnSorter

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

        ' Crear una instancia de una ordenación de columna ListView y asignarla 
        ' al control ListView. 
        lvwColumnSorter = New ListViewColumnSorter
        Me.TablaImpuesto.ListViewItemSorter = lvwColumnSorter

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Public WithEvents BotonEliminar As System.Windows.Forms.Button
    Public WithEvents Imagen4 As System.Windows.Forms.PictureBox
    Public WithEvents Imagen3 As System.Windows.Forms.PictureBox
    Public WithEvents Imagen1 As System.Windows.Forms.PictureBox
    Public WithEvents Imagen2 As System.Windows.Forms.PictureBox
    Friend WithEvents EtiquetaProducto As System.Windows.Forms.Label
    Friend WithEvents CombinadaProducto As System.Windows.Forms.ComboBox
    Friend WithEvents EtiquetaUsuario As System.Windows.Forms.Label
    Friend WithEvents TextoUsuario As System.Windows.Forms.TextBox
    Friend WithEvents OrejaProducto As System.Windows.Forms.TabControl
    Friend WithEvents OrejaProductoDato As System.Windows.Forms.TabPage
    Friend WithEvents OrejaProductoImpuesto As System.Windows.Forms.TabPage
    Friend WithEvents DisenoValorImpuesto As System.Windows.Forms.GroupBox
    Friend WithEvents TextoValorTipo As System.Windows.Forms.TextBox
    Friend WithEvents TextoValor As System.Windows.Forms.TextBox
    Friend WithEvents EtiquetaValor As System.Windows.Forms.Label
    Friend WithEvents EtiquetaValorImpuesto As System.Windows.Forms.Label
    Friend WithEvents CombinadaImpuesto As System.Windows.Forms.ComboBox
    Friend WithEvents EtiquetaImpuesto As System.Windows.Forms.Label
    Friend WithEvents EtiquetaPtoPedido As System.Windows.Forms.Label
    Friend WithEvents TextoPtoPedido As System.Windows.Forms.TextBox
    Friend WithEvents CheckExistencia As System.Windows.Forms.CheckBox
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents TextoMedidaVenta As System.Windows.Forms.TextBox
    Friend WithEvents EtiquetaMedidaVenta As System.Windows.Forms.Label
    Friend WithEvents EtiquetaRubro As System.Windows.Forms.Label
    Friend WithEvents EtiquetaProveedor As System.Windows.Forms.Label
    Friend WithEvents CombinadaRubro As System.Windows.Forms.ComboBox
    Friend WithEvents CombinadaProveedor As System.Windows.Forms.ComboBox
    Friend WithEvents TextoBarras As System.Windows.Forms.TextBox
    Friend WithEvents EtiquetaBarras As System.Windows.Forms.Label
    Friend WithEvents TextoNombre As System.Windows.Forms.TextBox
    Friend WithEvents EtiquetaNombre As System.Windows.Forms.Label
    Friend WithEvents TextoCodigo As System.Windows.Forms.TextBox
    Friend WithEvents EtiquetaCodigo As System.Windows.Forms.Label
    Friend WithEvents EtiquetaObervacion As System.Windows.Forms.Label
    Friend WithEvents EtiquetaUsuarioImpuesto As System.Windows.Forms.Label
    Friend WithEvents TextoUsuarioImpuesto As System.Windows.Forms.TextBox
    Friend WithEvents EtiquetaDeposito As System.Windows.Forms.Label
    Friend WithEvents CombinadaDeposito As System.Windows.Forms.ComboBox
    Public WithEvents BotonModificar As System.Windows.Forms.Button
    Friend WithEvents TextoObservacion As System.Windows.Forms.TextBox
    Friend WithEvents TextoMedidaCompra As System.Windows.Forms.TextBox
    Public WithEvents BotonNuevo As System.Windows.Forms.Button
    Public WithEvents BotonCerrar As System.Windows.Forms.Button
    Friend WithEvents BotonProveedorRapido As System.Windows.Forms.Button
    Friend WithEvents BotonDepositoRapido As System.Windows.Forms.Button
    Friend WithEvents BotonRubroRapido As System.Windows.Forms.Button
    Friend WithEvents BotonImpuestoRapido As System.Windows.Forms.Button
    Friend WithEvents BotonEliminarImpuesto As System.Windows.Forms.Button
    Friend WithEvents TablaImpuesto As System.Windows.Forms.ListView
    Friend WithEvents BotonModificarImpuesto As System.Windows.Forms.Button
    Friend WithEvents BotonEnlazarImpuesto As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.BotonEliminar = New System.Windows.Forms.Button
        Me.BotonNuevo = New System.Windows.Forms.Button
        Me.BotonModificar = New System.Windows.Forms.Button
        Me.Imagen4 = New System.Windows.Forms.PictureBox
        Me.Imagen3 = New System.Windows.Forms.PictureBox
        Me.Imagen1 = New System.Windows.Forms.PictureBox
        Me.BotonCerrar = New System.Windows.Forms.Button
        Me.Imagen2 = New System.Windows.Forms.PictureBox
        Me.EtiquetaProducto = New System.Windows.Forms.Label
        Me.CombinadaProducto = New System.Windows.Forms.ComboBox
        Me.EtiquetaUsuario = New System.Windows.Forms.Label
        Me.TextoUsuario = New System.Windows.Forms.TextBox
        Me.OrejaProducto = New System.Windows.Forms.TabControl
        Me.OrejaProductoDato = New System.Windows.Forms.TabPage
        Me.BotonRubroRapido = New System.Windows.Forms.Button
        Me.BotonDepositoRapido = New System.Windows.Forms.Button
        Me.BotonProveedorRapido = New System.Windows.Forms.Button
        Me.EtiquetaDeposito = New System.Windows.Forms.Label
        Me.CombinadaDeposito = New System.Windows.Forms.ComboBox
        Me.EtiquetaPtoPedido = New System.Windows.Forms.Label
        Me.TextoPtoPedido = New System.Windows.Forms.TextBox
        Me.CheckExistencia = New System.Windows.Forms.CheckBox
        Me.TextoMedidaCompra = New System.Windows.Forms.TextBox
        Me.Label1 = New System.Windows.Forms.Label
        Me.TextoMedidaVenta = New System.Windows.Forms.TextBox
        Me.EtiquetaMedidaVenta = New System.Windows.Forms.Label
        Me.EtiquetaRubro = New System.Windows.Forms.Label
        Me.EtiquetaProveedor = New System.Windows.Forms.Label
        Me.CombinadaRubro = New System.Windows.Forms.ComboBox
        Me.CombinadaProveedor = New System.Windows.Forms.ComboBox
        Me.TextoBarras = New System.Windows.Forms.TextBox
        Me.EtiquetaBarras = New System.Windows.Forms.Label
        Me.TextoNombre = New System.Windows.Forms.TextBox
        Me.EtiquetaNombre = New System.Windows.Forms.Label
        Me.TextoCodigo = New System.Windows.Forms.TextBox
        Me.EtiquetaCodigo = New System.Windows.Forms.Label
        Me.OrejaProductoImpuesto = New System.Windows.Forms.TabPage
        Me.EtiquetaObervacion = New System.Windows.Forms.Label
        Me.TextoObservacion = New System.Windows.Forms.TextBox
        Me.DisenoValorImpuesto = New System.Windows.Forms.GroupBox
        Me.BotonModificarImpuesto = New System.Windows.Forms.Button
        Me.BotonEnlazarImpuesto = New System.Windows.Forms.Button
        Me.BotonEliminarImpuesto = New System.Windows.Forms.Button
        Me.BotonImpuestoRapido = New System.Windows.Forms.Button
        Me.EtiquetaUsuarioImpuesto = New System.Windows.Forms.Label
        Me.TextoUsuarioImpuesto = New System.Windows.Forms.TextBox
        Me.TextoValorTipo = New System.Windows.Forms.TextBox
        Me.TextoValor = New System.Windows.Forms.TextBox
        Me.EtiquetaValor = New System.Windows.Forms.Label
        Me.EtiquetaValorImpuesto = New System.Windows.Forms.Label
        Me.CombinadaImpuesto = New System.Windows.Forms.ComboBox
        Me.EtiquetaImpuesto = New System.Windows.Forms.Label
        Me.TablaImpuesto = New System.Windows.Forms.ListView
        Me.OrejaProducto.SuspendLayout()
        Me.OrejaProductoDato.SuspendLayout()
        Me.OrejaProductoImpuesto.SuspendLayout()
        Me.DisenoValorImpuesto.SuspendLayout()
        Me.SuspendLayout()
        '
        'BotonEliminar
        '
        Me.BotonEliminar.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.BotonEliminar.BackColor = System.Drawing.SystemColors.Control
        Me.BotonEliminar.Cursor = System.Windows.Forms.Cursors.Default
        Me.BotonEliminar.Enabled = False
        Me.BotonEliminar.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonEliminar.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.BotonEliminar.ForeColor = System.Drawing.SystemColors.ControlText
        Me.BotonEliminar.Location = New System.Drawing.Point(528, 256)
        Me.BotonEliminar.Name = "BotonEliminar"
        Me.BotonEliminar.RightToLeft = System.Windows.Forms.RightToLeft.No
        Me.BotonEliminar.Size = New System.Drawing.Size(104, 24)
        Me.BotonEliminar.TabIndex = 23
        Me.BotonEliminar.Text = "&Eliminar producto"
        '
        'BotonNuevo
        '
        Me.BotonNuevo.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.BotonNuevo.BackColor = System.Drawing.SystemColors.Control
        Me.BotonNuevo.Cursor = System.Windows.Forms.Cursors.Default
        Me.BotonNuevo.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonNuevo.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.BotonNuevo.ForeColor = System.Drawing.SystemColors.ControlText
        Me.BotonNuevo.Location = New System.Drawing.Point(528, 176)
        Me.BotonNuevo.Name = "BotonNuevo"
        Me.BotonNuevo.RightToLeft = System.Windows.Forms.RightToLeft.No
        Me.BotonNuevo.Size = New System.Drawing.Size(104, 24)
        Me.BotonNuevo.TabIndex = 22
        Me.BotonNuevo.Text = "&Nuevo producto"
        '
        'BotonModificar
        '
        Me.BotonModificar.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.BotonModificar.BackColor = System.Drawing.SystemColors.Control
        Me.BotonModificar.Cursor = System.Windows.Forms.Cursors.Default
        Me.BotonModificar.Enabled = False
        Me.BotonModificar.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonModificar.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.BotonModificar.ForeColor = System.Drawing.SystemColors.ControlText
        Me.BotonModificar.Location = New System.Drawing.Point(528, 56)
        Me.BotonModificar.Name = "BotonModificar"
        Me.BotonModificar.RightToLeft = System.Windows.Forms.RightToLeft.No
        Me.BotonModificar.Size = New System.Drawing.Size(104, 32)
        Me.BotonModificar.TabIndex = 21
        Me.BotonModificar.Text = "&Modificar producto"
        '
        'Imagen4
        '
        Me.Imagen4.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.Imagen4.Cursor = System.Windows.Forms.Cursors.Default
        Me.Imagen4.Location = New System.Drawing.Point(568, 216)
        Me.Imagen4.Name = "Imagen4"
        Me.Imagen4.Size = New System.Drawing.Size(32, 32)
        Me.Imagen4.TabIndex = 72
        Me.Imagen4.TabStop = False
        '
        'Imagen3
        '
        Me.Imagen3.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.Imagen3.Cursor = System.Windows.Forms.Cursors.Default
        Me.Imagen3.Location = New System.Drawing.Point(568, 136)
        Me.Imagen3.Name = "Imagen3"
        Me.Imagen3.Size = New System.Drawing.Size(32, 32)
        Me.Imagen3.TabIndex = 73
        Me.Imagen3.TabStop = False
        '
        'Imagen1
        '
        Me.Imagen1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.Imagen1.Cursor = System.Windows.Forms.Cursors.Default
        Me.Imagen1.Location = New System.Drawing.Point(568, 16)
        Me.Imagen1.Name = "Imagen1"
        Me.Imagen1.Size = New System.Drawing.Size(32, 32)
        Me.Imagen1.TabIndex = 74
        Me.Imagen1.TabStop = False
        '
        'BotonCerrar
        '
        Me.BotonCerrar.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.BotonCerrar.BackColor = System.Drawing.SystemColors.Control
        Me.BotonCerrar.Cursor = System.Windows.Forms.Cursors.Default
        Me.BotonCerrar.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.BotonCerrar.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonCerrar.Font = New System.Drawing.Font("Arial", 8.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.BotonCerrar.ForeColor = System.Drawing.SystemColors.ControlText
        Me.BotonCerrar.Location = New System.Drawing.Point(528, 344)
        Me.BotonCerrar.Name = "BotonCerrar"
        Me.BotonCerrar.RightToLeft = System.Windows.Forms.RightToLeft.No
        Me.BotonCerrar.Size = New System.Drawing.Size(104, 24)
        Me.BotonCerrar.TabIndex = 24
        Me.BotonCerrar.Text = "&Cerrar ventana"
        '
        'Imagen2
        '
        Me.Imagen2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.Imagen2.Cursor = System.Windows.Forms.Cursors.Default
        Me.Imagen2.Location = New System.Drawing.Point(568, 304)
        Me.Imagen2.Name = "Imagen2"
        Me.Imagen2.Size = New System.Drawing.Size(32, 32)
        Me.Imagen2.TabIndex = 68
        Me.Imagen2.TabStop = False
        '
        'EtiquetaProducto
        '
        Me.EtiquetaProducto.AutoSize = True
        Me.EtiquetaProducto.Location = New System.Drawing.Point(24, 8)
        Me.EtiquetaProducto.Name = "EtiquetaProducto"
        Me.EtiquetaProducto.Size = New System.Drawing.Size(128, 16)
        Me.EtiquetaProducto.TabIndex = 105
        Me.EtiquetaProducto.Text = "Selección de productos :"
        '
        'CombinadaProducto
        '
        Me.CombinadaProducto.Location = New System.Drawing.Point(192, 8)
        Me.CombinadaProducto.Name = "CombinadaProducto"
        Me.CombinadaProducto.Size = New System.Drawing.Size(320, 21)
        Me.CombinadaProducto.Sorted = True
        Me.CombinadaProducto.TabIndex = 0
        '
        'EtiquetaUsuario
        '
        Me.EtiquetaUsuario.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
        Me.EtiquetaUsuario.AutoSize = True
        Me.EtiquetaUsuario.Location = New System.Drawing.Point(24, 400)
        Me.EtiquetaUsuario.Name = "EtiquetaUsuario"
        Me.EtiquetaUsuario.Size = New System.Drawing.Size(128, 16)
        Me.EtiquetaUsuario.TabIndex = 122
        Me.EtiquetaUsuario.Text = "Ultimo usuario modificó :"
        '
        'TextoUsuario
        '
        Me.TextoUsuario.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
        Me.TextoUsuario.BackColor = System.Drawing.SystemColors.Control
        Me.TextoUsuario.Location = New System.Drawing.Point(192, 400)
        Me.TextoUsuario.Name = "TextoUsuario"
        Me.TextoUsuario.ReadOnly = True
        Me.TextoUsuario.Size = New System.Drawing.Size(296, 20)
        Me.TextoUsuario.TabIndex = 121
        Me.TextoUsuario.Text = ""
        '
        'OrejaProducto
        '
        Me.OrejaProducto.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
                    Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.OrejaProducto.Controls.Add(Me.OrejaProductoDato)
        Me.OrejaProducto.Controls.Add(Me.OrejaProductoImpuesto)
        Me.OrejaProducto.Location = New System.Drawing.Point(16, 48)
        Me.OrejaProducto.Name = "OrejaProducto"
        Me.OrejaProducto.SelectedIndex = 0
        Me.OrejaProducto.Size = New System.Drawing.Size(496, 344)
        Me.OrejaProducto.TabIndex = 13
        '
        'OrejaProductoDato
        '
        Me.OrejaProductoDato.Controls.Add(Me.BotonRubroRapido)
        Me.OrejaProductoDato.Controls.Add(Me.BotonDepositoRapido)
        Me.OrejaProductoDato.Controls.Add(Me.BotonProveedorRapido)
        Me.OrejaProductoDato.Controls.Add(Me.EtiquetaDeposito)
        Me.OrejaProductoDato.Controls.Add(Me.CombinadaDeposito)
        Me.OrejaProductoDato.Controls.Add(Me.EtiquetaPtoPedido)
        Me.OrejaProductoDato.Controls.Add(Me.TextoPtoPedido)
        Me.OrejaProductoDato.Controls.Add(Me.CheckExistencia)
        Me.OrejaProductoDato.Controls.Add(Me.TextoMedidaCompra)
        Me.OrejaProductoDato.Controls.Add(Me.Label1)
        Me.OrejaProductoDato.Controls.Add(Me.TextoMedidaVenta)
        Me.OrejaProductoDato.Controls.Add(Me.EtiquetaMedidaVenta)
        Me.OrejaProductoDato.Controls.Add(Me.EtiquetaRubro)
        Me.OrejaProductoDato.Controls.Add(Me.EtiquetaProveedor)
        Me.OrejaProductoDato.Controls.Add(Me.CombinadaRubro)
        Me.OrejaProductoDato.Controls.Add(Me.CombinadaProveedor)
        Me.OrejaProductoDato.Controls.Add(Me.TextoBarras)
        Me.OrejaProductoDato.Controls.Add(Me.EtiquetaBarras)
        Me.OrejaProductoDato.Controls.Add(Me.TextoNombre)
        Me.OrejaProductoDato.Controls.Add(Me.EtiquetaNombre)
        Me.OrejaProductoDato.Controls.Add(Me.TextoCodigo)
        Me.OrejaProductoDato.Controls.Add(Me.EtiquetaCodigo)
        Me.OrejaProductoDato.Location = New System.Drawing.Point(4, 22)
        Me.OrejaProductoDato.Name = "OrejaProductoDato"
        Me.OrejaProductoDato.Size = New System.Drawing.Size(488, 318)
        Me.OrejaProductoDato.TabIndex = 0
        Me.OrejaProductoDato.Text = "Datos del producto"
        '
        'BotonRubroRapido
        '
        Me.BotonRubroRapido.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonRubroRapido.Location = New System.Drawing.Point(176, 176)
        Me.BotonRubroRapido.Name = "BotonRubroRapido"
        Me.BotonRubroRapido.Size = New System.Drawing.Size(24, 24)
        Me.BotonRubroRapido.TabIndex = 8
        Me.BotonRubroRapido.Text = ">"
        '
        'BotonDepositoRapido
        '
        Me.BotonDepositoRapido.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonDepositoRapido.Location = New System.Drawing.Point(176, 144)
        Me.BotonDepositoRapido.Name = "BotonDepositoRapido"
        Me.BotonDepositoRapido.Size = New System.Drawing.Size(24, 24)
        Me.BotonDepositoRapido.TabIndex = 6
        Me.BotonDepositoRapido.Text = ">"
        '
        'BotonProveedorRapido
        '
        Me.BotonProveedorRapido.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonProveedorRapido.Location = New System.Drawing.Point(176, 112)
        Me.BotonProveedorRapido.Name = "BotonProveedorRapido"
        Me.BotonProveedorRapido.Size = New System.Drawing.Size(24, 24)
        Me.BotonProveedorRapido.TabIndex = 5
        Me.BotonProveedorRapido.Text = ">"
        '
        'EtiquetaDeposito
        '
        Me.EtiquetaDeposito.AutoSize = True
        Me.EtiquetaDeposito.Location = New System.Drawing.Point(16, 144)
        Me.EtiquetaDeposito.Name = "EtiquetaDeposito"
        Me.EtiquetaDeposito.Size = New System.Drawing.Size(85, 16)
        Me.EtiquetaDeposito.TabIndex = 143
        Me.EtiquetaDeposito.Text = "Depósito usual :"
        '
        'CombinadaDeposito
        '
        Me.CombinadaDeposito.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.CombinadaDeposito.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.CombinadaDeposito.Location = New System.Drawing.Point(208, 144)
        Me.CombinadaDeposito.Name = "CombinadaDeposito"
        Me.CombinadaDeposito.Size = New System.Drawing.Size(264, 21)
        Me.CombinadaDeposito.TabIndex = 7
        '
        'EtiquetaPtoPedido
        '
        Me.EtiquetaPtoPedido.AutoSize = True
        Me.EtiquetaPtoPedido.Location = New System.Drawing.Point(16, 272)
        Me.EtiquetaPtoPedido.Name = "EtiquetaPtoPedido"
        Me.EtiquetaPtoPedido.Size = New System.Drawing.Size(93, 16)
        Me.EtiquetaPtoPedido.TabIndex = 141
        Me.EtiquetaPtoPedido.Text = "Punto de pedido :"
        '
        'TextoPtoPedido
        '
        Me.TextoPtoPedido.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.TextoPtoPedido.Location = New System.Drawing.Point(176, 272)
        Me.TextoPtoPedido.MaxLength = 20
        Me.TextoPtoPedido.Name = "TextoPtoPedido"
        Me.TextoPtoPedido.Size = New System.Drawing.Size(160, 20)
        Me.TextoPtoPedido.TabIndex = 12
        Me.TextoPtoPedido.Text = ""
        '
        'CheckExistencia
        '
        Me.CheckExistencia.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.CheckExistencia.Checked = True
        Me.CheckExistencia.CheckState = System.Windows.Forms.CheckState.Checked
        Me.CheckExistencia.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.CheckExistencia.Location = New System.Drawing.Point(344, 48)
        Me.CheckExistencia.Name = "CheckExistencia"
        Me.CheckExistencia.Size = New System.Drawing.Size(128, 16)
        Me.CheckExistencia.TabIndex = 3
        Me.CheckExistencia.Text = "&Llevar existencia"
        '
        'TextoMedidaCompra
        '
        Me.TextoMedidaCompra.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.TextoMedidaCompra.Location = New System.Drawing.Point(176, 240)
        Me.TextoMedidaCompra.MaxLength = 20
        Me.TextoMedidaCompra.Name = "TextoMedidaCompra"
        Me.TextoMedidaCompra.Size = New System.Drawing.Size(160, 20)
        Me.TextoMedidaCompra.TabIndex = 11
        Me.TextoMedidaCompra.Text = ""
        '
        'Label1
        '
        Me.Label1.AutoSize = True
        Me.Label1.Location = New System.Drawing.Point(16, 240)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(127, 16)
        Me.Label1.TabIndex = 137
        Me.Label1.Text = "Unidad medida compra :"
        '
        'TextoMedidaVenta
        '
        Me.TextoMedidaVenta.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.TextoMedidaVenta.Location = New System.Drawing.Point(176, 208)
        Me.TextoMedidaVenta.MaxLength = 20
        Me.TextoMedidaVenta.Name = "TextoMedidaVenta"
        Me.TextoMedidaVenta.Size = New System.Drawing.Size(160, 20)
        Me.TextoMedidaVenta.TabIndex = 10
        Me.TextoMedidaVenta.Text = ""
        '
        'EtiquetaMedidaVenta
        '
        Me.EtiquetaMedidaVenta.AutoSize = True
        Me.EtiquetaMedidaVenta.Location = New System.Drawing.Point(16, 208)
        Me.EtiquetaMedidaVenta.Name = "EtiquetaMedidaVenta"
        Me.EtiquetaMedidaVenta.Size = New System.Drawing.Size(117, 16)
        Me.EtiquetaMedidaVenta.TabIndex = 135
        Me.EtiquetaMedidaVenta.Text = "Unidad medida venta :"
        '
        'EtiquetaRubro
        '
        Me.EtiquetaRubro.AutoSize = True
        Me.EtiquetaRubro.Location = New System.Drawing.Point(16, 176)
        Me.EtiquetaRubro.Name = "EtiquetaRubro"
        Me.EtiquetaRubro.Size = New System.Drawing.Size(104, 16)
        Me.EtiquetaRubro.TabIndex = 134
        Me.EtiquetaRubro.Text = "Rubro de producto :"
        '
        'EtiquetaProveedor
        '
        Me.EtiquetaProveedor.AutoSize = True
        Me.EtiquetaProveedor.Location = New System.Drawing.Point(16, 112)
        Me.EtiquetaProveedor.Name = "EtiquetaProveedor"
        Me.EtiquetaProveedor.Size = New System.Drawing.Size(155, 16)
        Me.EtiquetaProveedor.TabIndex = 133
        Me.EtiquetaProveedor.Text = "Proveedor usual o producido :"
        '
        'CombinadaRubro
        '
        Me.CombinadaRubro.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.CombinadaRubro.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.CombinadaRubro.Location = New System.Drawing.Point(208, 176)
        Me.CombinadaRubro.Name = "CombinadaRubro"
        Me.CombinadaRubro.Size = New System.Drawing.Size(264, 21)
        Me.CombinadaRubro.TabIndex = 9
        '
        'CombinadaProveedor
        '
        Me.CombinadaProveedor.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.CombinadaProveedor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.CombinadaProveedor.Location = New System.Drawing.Point(208, 112)
        Me.CombinadaProveedor.Name = "CombinadaProveedor"
        Me.CombinadaProveedor.Size = New System.Drawing.Size(264, 21)
        Me.CombinadaProveedor.TabIndex = 6
        '
        'TextoBarras
        '
        Me.TextoBarras.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.TextoBarras.Location = New System.Drawing.Point(176, 80)
        Me.TextoBarras.Name = "TextoBarras"
        Me.TextoBarras.Size = New System.Drawing.Size(160, 20)
        Me.TextoBarras.TabIndex = 4
        Me.TextoBarras.Text = ""
        '
        'EtiquetaBarras
        '
        Me.EtiquetaBarras.AutoSize = True
        Me.EtiquetaBarras.Location = New System.Drawing.Point(16, 80)
        Me.EtiquetaBarras.Name = "EtiquetaBarras"
        Me.EtiquetaBarras.Size = New System.Drawing.Size(97, 16)
        Me.EtiquetaBarras.TabIndex = 129
        Me.EtiquetaBarras.Text = "Código de barras :"
        '
        'TextoNombre
        '
        Me.TextoNombre.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.TextoNombre.Location = New System.Drawing.Point(176, 16)
        Me.TextoNombre.MaxLength = 50
        Me.TextoNombre.Name = "TextoNombre"
        Me.TextoNombre.Size = New System.Drawing.Size(296, 20)
        Me.TextoNombre.TabIndex = 1
        Me.TextoNombre.Text = ""
        '
        'EtiquetaNombre
        '
        Me.EtiquetaNombre.AutoSize = True
        Me.EtiquetaNombre.Location = New System.Drawing.Point(16, 16)
        Me.EtiquetaNombre.Name = "EtiquetaNombre"
        Me.EtiquetaNombre.Size = New System.Drawing.Size(69, 16)
        Me.EtiquetaNombre.TabIndex = 127
        Me.EtiquetaNombre.Text = "Nombre (R) :"
        '
        'TextoCodigo
        '
        Me.TextoCodigo.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.TextoCodigo.Location = New System.Drawing.Point(176, 48)
        Me.TextoCodigo.MaxLength = 20
        Me.TextoCodigo.Name = "TextoCodigo"
        Me.TextoCodigo.Size = New System.Drawing.Size(160, 20)
        Me.TextoCodigo.TabIndex = 2
        Me.TextoCodigo.Text = ""
        '
        'EtiquetaCodigo
        '
        Me.EtiquetaCodigo.AutoSize = True
        Me.EtiquetaCodigo.Location = New System.Drawing.Point(16, 48)
        Me.EtiquetaCodigo.Name = "EtiquetaCodigo"
        Me.EtiquetaCodigo.Size = New System.Drawing.Size(112, 16)
        Me.EtiquetaCodigo.TabIndex = 125
        Me.EtiquetaCodigo.Text = "Código del producto :"
        '
        'OrejaProductoImpuesto
        '
        Me.OrejaProductoImpuesto.Controls.Add(Me.EtiquetaObervacion)
        Me.OrejaProductoImpuesto.Controls.Add(Me.TextoObservacion)
        Me.OrejaProductoImpuesto.Controls.Add(Me.DisenoValorImpuesto)
        Me.OrejaProductoImpuesto.Location = New System.Drawing.Point(4, 22)
        Me.OrejaProductoImpuesto.Name = "OrejaProductoImpuesto"
        Me.OrejaProductoImpuesto.Size = New System.Drawing.Size(488, 318)
        Me.OrejaProductoImpuesto.TabIndex = 1
        Me.OrejaProductoImpuesto.Text = "Condición de impuestos"
        '
        'EtiquetaObervacion
        '
        Me.EtiquetaObervacion.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
        Me.EtiquetaObervacion.AutoSize = True
        Me.EtiquetaObervacion.Location = New System.Drawing.Point(24, 288)
        Me.EtiquetaObervacion.Name = "EtiquetaObervacion"
        Me.EtiquetaObervacion.Size = New System.Drawing.Size(120, 16)
        Me.EtiquetaObervacion.TabIndex = 105
        Me.EtiquetaObervacion.Text = "Observaciones grales :"
        '
        'TextoObservacion
        '
        Me.TextoObservacion.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
        Me.TextoObservacion.Location = New System.Drawing.Point(152, 288)
        Me.TextoObservacion.MaxLength = 150
        Me.TextoObservacion.Name = "TextoObservacion"
        Me.TextoObservacion.Size = New System.Drawing.Size(320, 20)
        Me.TextoObservacion.TabIndex = 20
        Me.TextoObservacion.Text = ""
        '
        'DisenoValorImpuesto
        '
        Me.DisenoValorImpuesto.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
                    Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.DisenoValorImpuesto.Controls.Add(Me.BotonModificarImpuesto)
        Me.DisenoValorImpuesto.Controls.Add(Me.BotonEnlazarImpuesto)
        Me.DisenoValorImpuesto.Controls.Add(Me.BotonEliminarImpuesto)
        Me.DisenoValorImpuesto.Controls.Add(Me.BotonImpuestoRapido)
        Me.DisenoValorImpuesto.Controls.Add(Me.EtiquetaUsuarioImpuesto)
        Me.DisenoValorImpuesto.Controls.Add(Me.TextoUsuarioImpuesto)
        Me.DisenoValorImpuesto.Controls.Add(Me.TextoValorTipo)
        Me.DisenoValorImpuesto.Controls.Add(Me.TextoValor)
        Me.DisenoValorImpuesto.Controls.Add(Me.EtiquetaValor)
        Me.DisenoValorImpuesto.Controls.Add(Me.EtiquetaValorImpuesto)
        Me.DisenoValorImpuesto.Controls.Add(Me.CombinadaImpuesto)
        Me.DisenoValorImpuesto.Controls.Add(Me.EtiquetaImpuesto)
        Me.DisenoValorImpuesto.Controls.Add(Me.TablaImpuesto)
        Me.DisenoValorImpuesto.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.DisenoValorImpuesto.Location = New System.Drawing.Point(16, 24)
        Me.DisenoValorImpuesto.Name = "DisenoValorImpuesto"
        Me.DisenoValorImpuesto.Size = New System.Drawing.Size(456, 248)
        Me.DisenoValorImpuesto.TabIndex = 104
        Me.DisenoValorImpuesto.TabStop = False
        Me.DisenoValorImpuesto.Text = "Configuración de valores predeterminados de impuestos"
        '
        'BotonModificarImpuesto
        '
        Me.BotonModificarImpuesto.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.BotonModificarImpuesto.Enabled = False
        Me.BotonModificarImpuesto.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonModificarImpuesto.Location = New System.Drawing.Point(352, 48)
        Me.BotonModificarImpuesto.Name = "BotonModificarImpuesto"
        Me.BotonModificarImpuesto.Size = New System.Drawing.Size(96, 24)
        Me.BotonModificarImpuesto.TabIndex = 127
        Me.BotonModificarImpuesto.Text = "&Modificar impuesto"
        '
        'BotonEnlazarImpuesto
        '
        Me.BotonEnlazarImpuesto.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.BotonEnlazarImpuesto.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonEnlazarImpuesto.Location = New System.Drawing.Point(352, 16)
        Me.BotonEnlazarImpuesto.Name = "BotonEnlazarImpuesto"
        Me.BotonEnlazarImpuesto.Size = New System.Drawing.Size(96, 24)
        Me.BotonEnlazarImpuesto.TabIndex = 17
        Me.BotonEnlazarImpuesto.Text = "&Enlazar impuesto"
        '
        'BotonEliminarImpuesto
        '
        Me.BotonEliminarImpuesto.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.BotonEliminarImpuesto.Enabled = False
        Me.BotonEliminarImpuesto.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonEliminarImpuesto.Location = New System.Drawing.Point(352, 80)
        Me.BotonEliminarImpuesto.Name = "BotonEliminarImpuesto"
        Me.BotonEliminarImpuesto.Size = New System.Drawing.Size(96, 24)
        Me.BotonEliminarImpuesto.TabIndex = 18
        Me.BotonEliminarImpuesto.Text = "&Eliminar impuesto"
        '
        'BotonImpuestoRapido
        '
        Me.BotonImpuestoRapido.FlatStyle = System.Windows.Forms.FlatStyle.System
        Me.BotonImpuestoRapido.Location = New System.Drawing.Point(120, 24)
        Me.BotonImpuestoRapido.Name = "BotonImpuestoRapido"
        Me.BotonImpuestoRapido.Size = New System.Drawing.Size(24, 24)
        Me.BotonImpuestoRapido.TabIndex = 14
        Me.BotonImpuestoRapido.Text = ">"
        '
        'EtiquetaUsuarioImpuesto
        '
        Me.EtiquetaUsuarioImpuesto.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
        Me.EtiquetaUsuarioImpuesto.AutoSize = True
        Me.EtiquetaUsuarioImpuesto.Location = New System.Drawing.Point(16, 216)
        Me.EtiquetaUsuarioImpuesto.Name = "EtiquetaUsuarioImpuesto"
        Me.EtiquetaUsuarioImpuesto.Size = New System.Drawing.Size(177, 16)
        Me.EtiquetaUsuarioImpuesto.TabIndex = 126
        Me.EtiquetaUsuarioImpuesto.Text = "Ultimo usuario modificó impuesto :"
        '
        'TextoUsuarioImpuesto
        '
        Me.TextoUsuarioImpuesto.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
        Me.TextoUsuarioImpuesto.BackColor = System.Drawing.SystemColors.Control
        Me.TextoUsuarioImpuesto.Location = New System.Drawing.Point(216, 216)
        Me.TextoUsuarioImpuesto.Name = "TextoUsuarioImpuesto"
        Me.TextoUsuarioImpuesto.Size = New System.Drawing.Size(232, 20)
        Me.TextoUsuarioImpuesto.TabIndex = 125
        Me.TextoUsuarioImpuesto.Text = ""
        '
        'TextoValorTipo
        '
        Me.TextoValorTipo.BackColor = System.Drawing.SystemColors.Control
        Me.TextoValorTipo.Location = New System.Drawing.Point(288, 56)
        Me.TextoValorTipo.Name = "TextoValorTipo"
        Me.TextoValorTipo.ReadOnly = True
        Me.TextoValorTipo.Size = New System.Drawing.Size(48, 20)
        Me.TextoValorTipo.TabIndex = 122
        Me.TextoValorTipo.Text = ""
        '
        'TextoValor
        '
        Me.TextoValor.Location = New System.Drawing.Point(120, 56)
        Me.TextoValor.Name = "TextoValor"
        Me.TextoValor.Size = New System.Drawing.Size(160, 20)
        Me.TextoValor.TabIndex = 16
        Me.TextoValor.Text = ""
        '
        'EtiquetaValor
        '
        Me.EtiquetaValor.AutoSize = True
        Me.EtiquetaValor.Location = New System.Drawing.Point(8, 56)
        Me.EtiquetaValor.Name = "EtiquetaValor"
        Me.EtiquetaValor.Size = New System.Drawing.Size(91, 16)
        Me.EtiquetaValor.TabIndex = 81
        Me.EtiquetaValor.Text = "Valor a registrar :"
        '
        'EtiquetaValorImpuesto
        '
        Me.EtiquetaValorImpuesto.AutoSize = True
        Me.EtiquetaValorImpuesto.Location = New System.Drawing.Point(8, 24)
        Me.EtiquetaValorImpuesto.Name = "EtiquetaValorImpuesto"
        Me.EtiquetaValorImpuesto.Size = New System.Drawing.Size(109, 16)
        Me.EtiquetaValorImpuesto.TabIndex = 70
        Me.EtiquetaValorImpuesto.Text = "Selección impuesto :"
        '
        'CombinadaImpuesto
        '
        Me.CombinadaImpuesto.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
        Me.CombinadaImpuesto.Location = New System.Drawing.Point(152, 24)
        Me.CombinadaImpuesto.Name = "CombinadaImpuesto"
        Me.CombinadaImpuesto.Size = New System.Drawing.Size(184, 21)
        Me.CombinadaImpuesto.TabIndex = 15
        '
        'EtiquetaImpuesto
        '
        Me.EtiquetaImpuesto.AutoSize = True
        Me.EtiquetaImpuesto.Location = New System.Drawing.Point(16, 96)
        Me.EtiquetaImpuesto.Name = "EtiquetaImpuesto"
        Me.EtiquetaImpuesto.Size = New System.Drawing.Size(176, 16)
        Me.EtiquetaImpuesto.TabIndex = 68
        Me.EtiquetaImpuesto.Text = "Impuestos enlazados al producto :"
        '
        'TablaImpuesto
        '
        Me.TablaImpuesto.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
                    Or System.Windows.Forms.AnchorStyles.Left) _
                    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
        Me.TablaImpuesto.Location = New System.Drawing.Point(8, 112)
        Me.TablaImpuesto.Name = "TablaImpuesto"
        Me.TablaImpuesto.Size = New System.Drawing.Size(440, 96)
        Me.TablaImpuesto.TabIndex = 19
        Me.TablaImpuesto.View = System.Windows.Forms.View.Details
        '
        'NProducto
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.CancelButton = Me.BotonCerrar
        Me.ClientSize = New System.Drawing.Size(648, 430)
        Me.Controls.Add(Me.OrejaProducto)
        Me.Controls.Add(Me.EtiquetaUsuario)
        Me.Controls.Add(Me.TextoUsuario)
        Me.Controls.Add(Me.EtiquetaProducto)
        Me.Controls.Add(Me.CombinadaProducto)
        Me.Controls.Add(Me.BotonEliminar)
        Me.Controls.Add(Me.BotonNuevo)
        Me.Controls.Add(Me.BotonModificar)
        Me.Controls.Add(Me.Imagen4)
        Me.Controls.Add(Me.Imagen3)
        Me.Controls.Add(Me.Imagen1)
        Me.Controls.Add(Me.BotonCerrar)
        Me.Controls.Add(Me.Imagen2)
        Me.MaximizeBox = False
        Me.Name = "NProducto"
        Me.Text = "Nuevo/Modificar/Eliminar Producto"
        Me.OrejaProducto.ResumeLayout(False)
        Me.OrejaProductoDato.ResumeLayout(False)
        Me.OrejaProductoImpuesto.ResumeLayout(False)
        Me.DisenoValorImpuesto.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End Region

    Dim SeleccionProducto As String
    Dim CambioInterno As Boolean
    Dim DatosNoGuardados As Boolean
    Dim DatosNoGuardadosImpuestos As Boolean

    Const Porcentaje As String = "%"
    Const Absoluto As String = "Abs"

    Private Sub NProducto_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Iconos
        SubIconVentana(Me, "PEN07")
        SubIconNuevoModificarEliminar(Imagen2, Imagen1, Imagen4, Imagen3)
        ' Manejo de datos combinada
        CambioInterno = False
        SeleccionProducto = ""
        ' Inicializar lista
        SubColumnasTablaImpuesto()
    End Sub

    Private Sub SubColumnasTablaImpuesto()
        ' Inicializar lista
        With TablaImpuesto
            .FullRowSelect = True
            With .Columns
                .Add("Nombre impuesto", 180, HorizontalAlignment.Left)
                .Add("Tipo valor", 100, HorizontalAlignment.Right)
                .Add("Valor", 100, HorizontalAlignment.Right)
            End With
        End With
    End Sub

    Private Sub NProducto_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated
        ' Declaración variables
        Dim Ciclo As Int32
        ' Abrir tabla
        On Error Resume Next
        SubAbrirTablaBD("SELECT * FROM VProducto")
        SubAbrirTablaBD2("SELECT * FROM VProveedor ORDER BY NombreProveedor")
        SubAbrirTablaBD3("SELECT * FROM VDeposito ORDER BY NombreDeposito")
        SubAbrirTablaBD4("SELECT * FROM VRubro ORDER BY NombreRubro")
        SubAbrirTablaBD5("SELECT * FROM VImpuesto ORDER BY NombreImpuesto")
        ' Saber si hubo error
        If Not FnErrorADONET(Me) Then
            ' Limpiar controles
            SubLimpiarTexto()
            ' Cargar combinada producto
            CombinadaProducto.Items.Clear()
            For Ciclo = 0 To TTabla.Rows.Count - 1
                Dim FTabla As DataRow = TTabla.Rows(Ciclo)
                CombinadaProducto.Items.Add(FTabla("NombreProducto").ToString)
            Next
            ' Cargar combinada proveedor
            CombinadaProveedor.Items.Clear()
            CombinadaProveedor.Items.Add("Producto usualmente producido")
            For Ciclo = 0 To TTabla2.Rows.Count - 1
                Dim FTabla2 As DataRow = TTabla2.Rows(Ciclo)
                CombinadaProveedor.Items.Add(FTabla2("NombreProveedor").ToString)
            Next
            ' Cargar combinada depósito
            CombinadaDeposito.Items.Clear()
            For Ciclo = 0 To TTabla3.Rows.Count - 1
                Dim FTabla3 As DataRow = TTabla3.Rows(Ciclo)
                CombinadaDeposito.Items.Add(FTabla3("NombreDeposito").ToString)
            Next
            ' Cargar combinada rubro
            CombinadaRubro.Items.Clear()
            For Ciclo = 0 To TTabla4.Rows.Count - 1
                Dim FTabla4 As DataRow = TTabla4.Rows(Ciclo)
                CombinadaRubro.Items.Add(FTabla4("NombreRubro").ToString)
            Next
            ' Cargar combinada impuesto
            CombinadaImpuesto.Items.Clear()
            For Ciclo = 0 To TTabla5.Rows.Count - 1
                Dim FTabla5 As DataRow = TTabla5.Rows(Ciclo)
                If CBool(FTabla5("EsPorcentualNoAbsoluto").ToString) Then CombinadaImpuesto.Items.Add(FTabla5("NombreImpuesto").ToString)
            Next
        End If
        On Error GoTo 0
        If SeleccionProducto <> "" Then
            CambioInterno = True
            On Error Resume Next
            CombinadaProducto.Text = SeleccionProducto
            On Error GoTo 0
            CambioInterno = False
        End If
        ' Inicialización
        DatosNoGuardados = False
        DatosNoGuardadosImpuestos = False
    End Sub

    Private Sub CombinadaProducto_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CombinadaProducto.SelectedIndexChanged
        Dim Ciclo As Int32
        Dim Fila As Int32
        Dim Continuar As Boolean
        ' En caso de no ser nulo, pasar valores a pantalla
        If CombinadaProducto.Text <> "" And Not CambioInterno Then
            ' Verifcar que no haya datos sin registrar
            If DatosNoGuardados Then
                If MessageBox.Show(LeyendaNoGuardado, LeyendaTituloMensaje, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Yes Then
                    Continuar = False
                Else
                    Continuar = True
                End If
            Else
                Continuar = True
            End If
            If Continuar Then
                ' Al no querer salvar los cambios, traemos la nueva informacion
                Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
                On Error Resume Next
                ' Abrir tabla
                SubAbrirTablaBD("SELECT * FROM VProducto WHERE NombreProducto = '" & CombinadaProducto.Text & "'")
                SubAbrirTablaBD2("SELECT * FROM VProductoImpuesto WHERE NombreProducto = '" & CombinadaProducto.Text & "'")
                ' Saber si hubo error
                If Not FnErrorADONET(Me) Then
                    ' Si no hubo error se sigue
                    Dim FTabla As DataRow = TTabla.Rows(0)
                    If CBool(Err.Number) Then
                        MessageBox.Show(LeyendaRegistroNoExiste & Err.Description, _
                                        LeyendaTituloMensaje, _
                                        MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Else
                        ' Pasar datos a pantalla
                        TextoNombre.Text = FTabla("NombreProducto").ToString
                        TextoCodigo.Text = FTabla("CodigoProducto").ToString
                        TextoBarras.Text = FTabla("CodigoBarras").ToString
                        CombinadaProveedor.Text = FTabla("ProveedorProducido").ToString
                        CombinadaDeposito.Text = FTabla("Deposito").ToString
                        CombinadaRubro.Text = FTabla("NombreRubro").ToString
                        TextoMedidaVenta.Text = FTabla("MedidaVenta").ToString
                        TextoMedidaCompra.Text = FTabla("MedidaCompra").ToString
                        TextoPtoPedido.Text = FTabla("PuntoPedido").ToString
                        If CBool(FTabla("LlevarExistencia").ToString) Then
                            CheckExistencia.CheckState = System.Windows.Forms.CheckState.Checked
                        Else
                            CheckExistencia.CheckState = System.Windows.Forms.CheckState.Unchecked
                        End If
                        TextoObservacion.Text = FTabla("Observacion").ToString
                        TextoUsuario.Text = FTabla("Usuario").ToString
                        ' Borrar tabla impuestos
                        TablaImpuesto.Clear()
                        ' Inicializar lista
                        SubColumnasTablaImpuesto()
                        ' Ingresar impuestos del producto
                        For Ciclo = 0 To TTabla.Rows.Count - 1
                            Dim FTabla2 As DataRow = TTabla2.Rows(Ciclo)
                            With TablaImpuesto
                                Fila = .Items.Count - 1
                                .Items.Add(FTabla2("NombreImpuesto").ToString, Fila)
                                If CBool(FTabla2("EsPorcentualNoAbsoluto").ToString) Then
                                    .Items(Fila + 1).SubItems.Add(Porcentaje)
                                Else
                                    .Items(Fila + 1).SubItems.Add(Absoluto)
                                End If
                                .Items(Fila + 1).SubItems.Add(FTabla2("Valor").ToString)
                            End With
                        Next
                        ' Inicializar controles
                        SubControlesImpuesto()
                        ' Deshabilitar la funcion no guardados
                        DatosNoGuardados = False
                        ' Deshabilitar la funcion no guardados en impuestos
                        DatosNoGuardadosImpuestos = False
                        ' Llevar foco a caja de texto
                        TextoNombre.Focus()
                    End If
                End If
                On Error GoTo 0
                Me.Cursor = System.Windows.Forms.Cursors.Default
            End If
        End If
        ' Activar botón modificar en caso de haber algo seleccionado
        If CombinadaProducto.Text = "" Then
            BotonModificar.Enabled = False
            BotonEliminar.Enabled = False
        Else
            BotonModificar.Enabled = True
            BotonEliminar.Enabled = True
        End If
        ' Indicar selección
        SeleccionProducto = CombinadaProducto.Text
    End Sub

    Private Sub SubControlesImpuesto()
        ' Inicializar controles
        BotonEnlazarImpuesto.Enabled = True
        BotonEnlazarImpuesto.Text = "&Enlazar impuesto"
        BotonModificarImpuesto.Enabled = False
        BotonEliminarImpuesto.Enabled = False
        CombinadaImpuesto.Enabled = True
        CombinadaImpuesto.SelectedIndex = -1
        TextoValor.Text = ""
        TextoValorTipo.Text = ""
        TextoUsuarioImpuesto.Text = ""
        DatosNoGuardadosImpuestos = False
    End Sub

    Private Sub SubLimpiarTexto()
        ' Limpiar los TextBox
        For Each c As Control In Me.OrejaProducto.TabPages(0).Controls
            ' Limpiar los textbox
            If TypeOf c Is TextBox Then c.Text = ""
        Next
        CombinadaProveedor.SelectedIndex = -1
        CombinadaDeposito.SelectedIndex = -1
        CombinadaRubro.SelectedIndex = -1
        TextoUsuario.Text = ""
    End Sub

    Private Sub NProducto_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        If DatosNoGuardados Then
            ' Hubo cambios y no se guardaron
            If MessageBox.Show(LeyendaNoGuardado, LeyendaTituloMensaje, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes Then
                ' Anular la salida
                e.Cancel = True
            End If
        End If
        ' Activamos menú en caso de salida
        If Not e.Cancel Then
            CType(Me.MdiParent, VentaTec).MenuPrincipal.MenuItems(4).MenuItems(6).MenuItems(1).Enabled = True
            CType(Me.MdiParent, VentaTec).BarraEstado.Panels(0).Text = ""
        End If
    End Sub

    Private Sub CombinadaProveedor_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CombinadaProveedor.SelectedIndexChanged
        DatosNoGuardados = True
    End Sub

    Private Sub TextoBarras_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextoBarras.TextChanged
        DatosNoGuardados = True
    End Sub

    Private Sub CombinadaDeposito_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CombinadaDeposito.SelectedIndexChanged
        DatosNoGuardados = True
    End Sub

    Private Sub TextoPtoPedido_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextoPtoPedido.TextChanged
        DatosNoGuardados = True
    End Sub

    Private Sub CheckExistencia_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckExistencia.CheckedChanged
        DatosNoGuardados = True
        If CheckExistencia.Checked Then
            TextoPtoPedido.ReadOnly = False
        Else
            TextoPtoPedido.ReadOnly = True
        End If
    End Sub

    Private Sub TextoCodigo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextoCodigo.TextChanged
        DatosNoGuardados = True
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextoMedidaCompra.TextChanged
        DatosNoGuardados = True
    End Sub

    Private Sub TextoNombre_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextoNombre.TextChanged
        DatosNoGuardados = True
    End Sub

    Private Sub TextoMedidaVenta_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextoMedidaVenta.TextChanged
        DatosNoGuardados = True
    End Sub

    Private Sub CombinadaRubro_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CombinadaRubro.SelectedIndexChanged
        DatosNoGuardados = True
    End Sub

    Private Sub TextoObervacion_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextoObservacion.TextChanged
        DatosNoGuardados = True
    End Sub

    Private Sub BotonEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonEliminar.Click
        ' Si la combinada de seleccion de banco está vacía, no es posible eliminar
        If CombinadaProducto.Text = "" Then
            ' La combinada está vacía, no es posible eliminar
            MessageBox.Show(LeyendaImposibleEliminar, _
                            LeyendaTituloMensaje, _
                            MessageBoxButtons.OK, MessageBoxIcon.Error)
        Else
            ' Preguntar para confirmar la eliminación
            If MessageBox.Show(LeyendaEliminar & "el producto " & StrConv(CombinadaProducto.Text, VbStrConv.UpperCase) & LeyendaPermanente, LeyendaTituloMensaje, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Yes Then
                'If MsgBox(LeyendaEliminar & "el hijo   " & StrConv(GrillaHijo.get_TextMatrix(GrillaHijo.RowSel, 1), VbStrConv.UpperCase) & "   del empleado   " & StrConv(SeleccionEmpleado, VbStrConv.UpperCase) & LeyendaPermanente, MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question + MsgBoxStyle.ApplicationModal) = MsgBoxResult.Yes Then
                On Error Resume Next
                SubAbrirTablaBD("SELECT * FROM VProducto WHERE NombreProducto = '" & CombinadaProducto.Text & "'")
                ' Saber si hubo error
                If Not FnErrorADONET(Me) Then
                    ' Saber existencia de registro
                    Dim FTabla As DataRow = TTabla.Rows(0)
                    If CBool(Err.Number) Then
                        MessageBox.Show(LeyendaRegistroNoExisteEliminar & Err.Description, _
                                        LeyendaTituloMensaje, _
                                        MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Else
                        ' Eliminar registro
                        FTabla.Delete()
                        BDTabla.Update(TTabla)
                        TTabla.AcceptChanges()
                        If CBool(Err.Number) Then
                            ' Hubo error
                            MessageBox.Show(LeyendaNoEliminado & Err.Description, _
                                            LeyendaTituloMensaje, _
                                            MessageBoxButtons.OK, MessageBoxIcon.Error)
                        Else
                            ' Borrar registro en pantalla
                            SubLimpiarTexto()
                            ' Borrar el banco en la combinada
                            CombinadaProducto.Items.Remove(CombinadaProducto.Text)
                            ' Borrar tabla impuestos
                            TablaImpuesto.Clear()
                            ' Inicializar lista
                            SubColumnasTablaImpuesto()
                            ' Inicializar controles
                            SubControlesImpuesto()
                            ' Indicar que fue con éxito
                            MessageBox.Show(LeyendaEliminado, _
                                            LeyendaTituloMensaje, _
                                            MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                            ' Deshabilitar la funcion no guardados
                            DatosNoGuardados = False
                            DatosNoGuardadosImpuestos = False
                        End If
                    End If
                End If
                On Error GoTo 0
            End If
        End If
    End Sub

    Private Sub BotonNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonNuevo.Click
        Dim Continuar As Boolean
        ' Si la combinada de seleccion de producto no está vacía, puede suceder que deba hacer modifcar en vez de nuevo
        ' Saber también si está configurado preguntar
        If CombinadaProducto.Text <> "" And PreguntarCrearModificar Then
            ' La combinada no está vacía y configurado para preguntar
            ' Preguntar por las dudas
            If MessageBox.Show(LeyendaPreguntaCrear, LeyendaTituloMensaje, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Yes Then
                Continuar = True
            Else
                Continuar = False
            End If
        Else
            Continuar = True
        End If
        ' Si el usuario decidió continuar, se sigue con el proceso
        If Continuar Then
            Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
            On Error Resume Next
            ' Abrir tabla
            SubAbrirTablaBD("SELECT * FROM VProducto")
            ' Saber si hubo error
            If Not FnErrorADONET(Me) Then
                ' Si no hubo error se sigue
                Dim FNTabla As DataRow = TTabla.NewRow()
                If CBool(Err.Number) Then
                    MessageBox.Show(LeyendaNoCrearRegistro & Err.Description, _
                                    LeyendaTituloMensaje, _
                                    MessageBoxButtons.OK, MessageBoxIcon.Error)
                Else
                    FNTabla("NombreProducto") = TextoNombre.Text
                    FNTabla("CodigoProducto") = TextoCodigo.Text
                    FNTabla("CodigoBarras") = TextoBarras.Text
                    FNTabla("ProveedorProducido") = CombinadaProveedor.Text
                    FNTabla("Deposito") = CombinadaDeposito.Text
                    FNTabla("NombreRubro") = CombinadaRubro.Text
                    FNTabla("MedidaVenta") = TextoMedidaVenta.Text
                    FNTabla("MedidaCompra") = TextoMedidaCompra.Text
                    FNTabla("PuntoPedido") = TextoPtoPedido.Text
                    If CheckExistencia.CheckState = CheckState.Checked Then
                        FNTabla("LlevarExistencia") = True

                    Else
                        FNTabla("LlevarExistencia") = False
                    End If
                    FNTabla("Observacion") = TextoObservacion.Text
                    FNTabla("Usuario") = UsuarioActual
                    If Not CBool(Err.Number) Then
                        ' Añadir la nueva fila a la tabla
                        TTabla.Rows.Add(FNTabla)
                        ' Guardar físicamente los datos en la base
                        BDTabla.Update(TTabla)
                        TTabla.AcceptChanges()
                        If CBool(Err.Number) Then
                            MessageBox.Show(LeyendaNoCreado & Err.Description, _
                                            LeyendaTituloMensaje, _
                                            MessageBoxButtons.OK, MessageBoxIcon.Error)
                        Else
                            MessageBox.Show(LeyendaCreado, _
                                            LeyendaTituloMensaje, _
                                            MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                            ' Ingresar valor a combinada
                            CombinadaProducto.Items.Add(TextoNombre.Text)
                            ' Cambiar el nombre
                            CambioInterno = True
                            CombinadaProducto.Text = TextoNombre.Text
                            CambioInterno = False
                            ' Inicializar controles
                            SubControlesImpuesto()
                            ' Borrar tabla impuestos
                            TablaImpuesto.Clear()
                            ' Inicializar lista
                            SubColumnasTablaImpuesto()
                            ' Deshabilitar la funcion no guardados
                            DatosNoGuardados = False
                            DatosNoGuardadosImpuestos = False
                        End If
                    Else
                        MessageBox.Show(LeyendaErrorDato & Err.Description, _
                                        LeyendaTituloMensaje, _
                                        MessageBoxButtons.OK, MessageBoxIcon.Error)
                    End If
                End If
            End If
            On Error GoTo 0
            Me.Cursor = System.Windows.Forms.Cursors.Default
        End If
    End Sub

    Private Sub BotonModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonModificar.Click
        Dim Continuar As Boolean
        ' Si la combinada de seleccion está vacía, no es posible grabar la modificación
        If CombinadaProducto.Text = "" Then
            ' La combinada está vacía, no es posible modificar
            MessageBox.Show(LeyendaImposibleModificar, _
                            LeyendaTituloMensaje, _
                            MessageBoxButtons.OK, MessageBoxIcon.Error)
        Else
            ' En caso de estar configurado, confirmar modificación
            If PreguntarCrearModificar Then
                ' Preguntar por las dudas
                If MessageBox.Show(LeyendaPreguntaModificar, LeyendaTituloMensaje, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Yes Then
                    Continuar = True
                Else
                    Continuar = False
                End If
            Else
                Continuar = True
            End If
            ' Si el usuario decidió continuar, se sigue con el proceso
            If Continuar Then
                Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
                On Error Resume Next
                ' Abrir tabla
                SubAbrirTablaBD("SELECT * FROM VProducto WHERE NombreProducto = '" & CombinadaProducto.Text & "'")
                ' Saber si hubo error
                If Not FnErrorADONET(Me) Then
                    ' Si no hubo error se sigue
                    Dim FTabla As DataRow = TTabla.Rows(0)
                    If CBool(Err.Number) Then
                        MessageBox.Show(LeyendaRegistroNoExisteModificar & Err.Description, _
                                        LeyendaTituloMensaje, _
                                        MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Else
                        ' Registrar las modificaciones
                        FTabla("NombreProducto") = TextoNombre.Text
                        FTabla("CodigoProducto") = TextoCodigo.Text
                        FTabla("CodigoBarras") = TextoBarras.Text
                        FTabla("ProveedorProducido") = CombinadaProveedor.Text
                        FTabla("Deposito") = CombinadaDeposito.Text
                        FTabla("NombreRubro") = CombinadaRubro.Text
                        FTabla("MedidaVenta") = TextoMedidaVenta.Text
                        FTabla("MedidaCompra") = TextoMedidaCompra.Text
                        FTabla("PuntoPedido") = TextoPtoPedido.Text
                        If CheckExistencia.CheckState = CheckState.Checked Then
                            FTabla("LlevarExistencia") = True

                        Else
                            FTabla("LlevarExistencia") = False
                        End If
                        FTabla("Observacion") = TextoObservacion.Text
                        FTabla("Usuario") = UsuarioActual
                        If CBool(Err.Number) Then
                            MessageBox.Show(LeyendaErrorDato & Err.Description, _
                                            LeyendaTituloMensaje, _
                                            MessageBoxButtons.OK, MessageBoxIcon.Error)
                        Else
                            ' Pasar datos a base
                            BDTabla.Update(TTabla)
                            TTabla.AcceptChanges()
                            If CBool(Err.Number) Then
                                ' Hubo error
                                MessageBox.Show(LeyendaNoModificado & Err.Description, _
                                                LeyendaTituloMensaje, _
                                                MessageBoxButtons.OK, MessageBoxIcon.Error)
                            Else
                                ' Indicar que fue con éxito
                                MessageBox.Show(LeyendaModificado, _
                                                LeyendaTituloMensaje, _
                                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                                ' Saber si se modificó la clave primaria
                                If TextoNombre.Text <> CombinadaProducto.Text Then
                                    ' Cambió el nombre
                                    ' Modificar la lista y seleccionar el nuevo
                                    CambioInterno = True
                                    CombinadaProducto.Items.Add(TextoNombre.Text)
                                    CombinadaProducto.Items.Remove(CombinadaProducto.Text)
                                    CombinadaProducto.Text = TextoNombre.Text
                                    CambioInterno = False
                                End If
                                ' Deshabilitar la funcion no guardados
                                DatosNoGuardados = False
                            End If
                        End If
                    End If
                End If
                On Error GoTo 0
                Me.Cursor = System.Windows.Forms.Cursors.Default
            End If
        End If
    End Sub

    Private Sub BotonCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonCerrar.Click
        Me.Close()
    End Sub

    Private Sub BotonCerrar_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles BotonCerrar.MouseMove
        ' Indicar en barra de estado lo que hace el botón
        CType(Me.MdiParent, VentaTec).BarraEstado.Panels(0).Text = LeyendaPresione & LeyendaCerrarVentana
    End Sub

    Private Sub BotonModificar_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles BotonModificar.MouseMove
        ' Indicar en barra de estado lo que hace el botón
        CType(Me.MdiParent, VentaTec).BarraEstado.Panels(0).Text = LeyendaPresione & LeyendaModificarRegistro
    End Sub

    Private Sub BotonNuevo_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles BotonNuevo.MouseMove
        ' Indicar en barra de estado lo que hace el botón
        CType(Me.MdiParent, VentaTec).BarraEstado.Panels(0).Text = LeyendaPresione & LeyendaNuevoRegistro
    End Sub

    Private Sub BotonEliminar_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles BotonEliminar.MouseMove
        ' Indicar en barra de estado lo que hace el botón
        CType(Me.MdiParent, VentaTec).BarraEstado.Panels(0).Text = LeyendaPresione & LeyendaEliminarRegistro
    End Sub

    Private Sub CombinadaProducto_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles CombinadaProducto.MouseMove
        ' Indicar en barra de estado lo que hace el botón
        CType(Me.MdiParent, VentaTec).BarraEstado.Panels(0).Text = LeyendaSeleccionRegistro
    End Sub

    Private Sub NProducto_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
        ' Borrar los posibles mensajes en barra de estado
        CType(Me.MdiParent, VentaTec).BarraEstado.Panels(0).Text = ""
    End Sub

    Private Sub BotonProveedorRapido_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonProveedorRapido.Click
        If FnConAutorizacionVentana("NProveedor") Then
            Dim FrmNProveedor As New NProveedor
            ' ATENCION: VERIFICAR QUE EL USUARIO TENGA PERMISO
            FrmNProveedor.MdiParent = CType(Me.MdiParent, VentaTec)
            FrmNProveedor.Visible = True
        Else
            MessageBox.Show(LeyendaNoIngresoVentana, _
                            LeyendaTituloMensaje, _
                            MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub

    Private Sub BotonDepositoRapido_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonDepositoRapido.Click
        If FnConAutorizacionVentana("NDeposito") Then
            Dim FrmNDeposito As New NDeposito
            ' ATENCION: VERIFICAR QUE EL USUARIO TENGA PERMISO
            FrmNDeposito.MdiParent = CType(Me.MdiParent, VentaTec)
            FrmNDeposito.Visible = True
        Else
            MessageBox.Show(LeyendaNoIngresoVentana, _
                            LeyendaTituloMensaje, _
                            MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub

    Private Sub BotonRubroRapido_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonRubroRapido.Click
        If FnConAutorizacionVentana("NRubroProducto") Then
            Dim FrmNRubroProducto As New NRubroProducto
            ' ATENCION: VERIFICAR QUE EL USUARIO TENGA PERMISO
            FrmNRubroProducto.MdiParent = CType(Me.MdiParent, VentaTec)
            FrmNRubroProducto.Visible = True
        Else
            MessageBox.Show(LeyendaNoIngresoVentana, _
                            LeyendaTituloMensaje, _
                            MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub

    Private Sub BotonImpuestoRapido_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonImpuestoRapido.Click
        If FnConAutorizacionVentana("NImpuesto") Then
            Dim FrmNImpuesto As New NImpuesto
            ' ATENCION: VERIFICAR QUE EL USUARIO TENGA PERMISO
            FrmNImpuesto.MdiParent = CType(Me.MdiParent, VentaTec)
            FrmNImpuesto.Visible = True
        Else
            MessageBox.Show(LeyendaNoIngresoVentana, _
                            LeyendaTituloMensaje, _
                            MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub

    Private Sub CombinadaImpuesto_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CombinadaImpuesto.SelectedIndexChanged
        Dim Continuar As Boolean
        If CombinadaImpuesto.Text <> "" Then
            ' Verifcar que no haya datos sin registrar
            If DatosNoGuardadosImpuestos Then
                If MessageBox.Show(LeyendaNoGuardado, LeyendaTituloMensaje, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Yes Then
                    Continuar = False
                Else
                    Continuar = True
                End If
            Else
                Continuar = True
            End If
            If Continuar Then
                ' Al no querer salvar los cambios, traemos la nueva informacion
                Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
                On Error Resume Next
                ' Abrir tabla
                SubAbrirTablaBD("SELECT * FROM VImpuesto WHERE NombreImpuesto = '" & CombinadaImpuesto.Text & "'")
                ' Saber si hubo error
                If Not FnErrorADONET(Me) Then
                    ' Si no hubo error se sigue
                    Dim FTabla As DataRow = TTabla.Rows(0)
                    If CBool(Err.Number) Then
                        MessageBox.Show(LeyendaRegistroNoExiste & Err.Description, _
                                        LeyendaTituloMensaje, _
                                        MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Else
                        ' Pasar datos a pantalla
                        If CBool(FTabla("EsPorcentualNoAbsoluto").ToString) Then
                            TextoValorTipo.Text = Porcentaje
                        Else
                            TextoValorTipo.Text = Absoluto
                        End If
                        TextoValor.Text = FTabla("Valor").ToString
                        ' Deshabilitar la funcion no guardados y manejar controles
                        DatosNoGuardadosImpuestos = False
                        BotonEnlazarImpuesto.Enabled = True
                        BotonEnlazarImpuesto.Text = "&Enlazar impuesto"
                    End If
                End If
                On Error GoTo 0
                Me.Cursor = System.Windows.Forms.Cursors.Default
            End If
        End If
    End Sub

    Private Sub TextoValor_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextoValor.TextChanged
        DatosNoGuardadosImpuestos = True
    End Sub

    Private Sub TablaImpuesto_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles TablaImpuesto.ColumnClick
        ' Determinar si la columna en la que se hizo clic ya es la que se está ordenando.
        If (e.Column = lvwColumnSorter.SortColumn) Then
            ' Revertir la dirección de ordenación actual de esta columna.
            If (lvwColumnSorter.Order = SortOrder.Ascending) Then
                lvwColumnSorter.Order = SortOrder.Descending
            Else
                lvwColumnSorter.Order = SortOrder.Ascending
            End If
        Else
            ' Establecer el número de columna que se va a ordenar; de forma predeterminada, en orden ascendente.
            lvwColumnSorter.SortColumn = e.Column
            lvwColumnSorter.Order = SortOrder.Ascending
        End If
        ' Realizar la ordenación con estas nuevas opciones de ordenación. Me.ListView1.Sort()
        TablaImpuesto.Sort()
    End Sub

    Private Sub TablaImpuesto_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TablaImpuesto.SelectedIndexChanged
        ' Traer el registro y habilitar controles
        If TablaImpuesto.SelectedItems.Count > 0 Then
            ' Hay selección
            ' Pasar datos seleccionados a las caja de texto
            Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
            On Error Resume Next
            ' Abrir base registro
            SubAbrirTablaBD("SELECT * FROM VProductoImpuesto WHERE NombreProducto = '" & TextoNombre.Text & "' AND NombreImpuesto = '" & TablaImpuesto.SelectedItems(0).Text & "'")
            Dim FTabla As DataRow = TTabla.Rows(0)
            ' Saber si hubo error
            If Not FnErrorADONET(Me) Then
                ' No hubo error, pasar datos a pantalla
                TextoValor.Text = FTabla("Valor").ToString
                If CBool(FTabla("EsPorcentualNoAbsoluto").ToString) Then
                    TextoValorTipo.Text = Porcentaje
                Else
                    TextoValorTipo.Text = Absoluto
                End If
                TextoUsuarioImpuesto.Text = FTabla("Usuario").ToString
                ' Activar y desactivar controles
                BotonEnlazarImpuesto.Enabled = True
                BotonEliminarImpuesto.Enabled = True
                BotonModificarImpuesto.Enabled = True
                CombinadaImpuesto.Enabled = False
                BotonEnlazarImpuesto.Text = "&Habilitar enlace"
            End If
            On Error GoTo 0
            Me.Cursor = System.Windows.Forms.Cursors.Default
            ' Deshabilitar la funcion no guardados
            DatosNoGuardadosImpuestos = False
        Else
            ' No hay selección
            SubControlesImpuesto()
        End If
    End Sub

    Private Sub BotonEnlazarImpuesto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonEnlazarImpuesto.Click
        Dim Fila As Int32
        ' Registrar en caso de haber seleccionado un registro
        If BotonEnlazarImpuesto.Text = "&Habilitar enlace" Then
            SubControlesImpuesto()
            CombinadaImpuesto.Focus()
        Else
            If CombinadaImpuesto.Text <> "" Then
                Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
                On Error Resume Next
                ' Abrir tabla
                SubAbrirTablaBD("SELECT * FROM VProductoImpuesto")
                ' Saber si hubo error
                If Not FnErrorADONET(Me) Then
                    ' Si no hubo error se sigue
                    Dim FNTabla As DataRow = TTabla.NewRow()
                    If CBool(Err.Number) Then
                        MessageBox.Show(LeyendaNoCrearRegistro & Err.Description, _
                                        LeyendaTituloMensaje, _
                                        MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Else
                        FNTabla("NombreProducto") = TextoNombre.Text
                        FNTabla("NombreImpuesto") = CombinadaImpuesto.Text
                        If TextoValorTipo.Text = Porcentaje Then
                            FNTabla("EsPorcentualNoAbsoluto") = True
                        Else
                            FNTabla("EsPorcentualNoAbsoluto") = False
                        End If
                        FNTabla("Valor") = TextoValor.Text
                        FNTabla("Usuario") = UsuarioActual
                        If Not CBool(Err.Number) Then
                            ' Añadir la nueva fila a la tabla
                            TTabla.Rows.Add(FNTabla)
                            ' Guardar físicamente los datos en la base
                            BDTabla.Update(TTabla)
                            TTabla.AcceptChanges()
                            If CBool(Err.Number) Then
                                MessageBox.Show(LeyendaNoCreado & Err.Description, _
                                                LeyendaTituloMensaje, _
                                                MessageBoxButtons.OK, MessageBoxIcon.Error)
                            Else
                                MessageBox.Show(LeyendaCreado, _
                                                LeyendaTituloMensaje, _
                                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                                ' Ingresar valor a tabla
                                With TablaImpuesto
                                    Fila = .Items.Count - 1
                                    .Items.Add(CombinadaImpuesto.Text, Fila)
                                    .Items(Fila + 1).SubItems.Add(TextoValorTipo.Text)
                                    .Items(Fila + 1).SubItems.Add(TextoValor.Text)
                                End With
                                ' Deshabilitar la funcion no guardados
                                DatosNoGuardadosImpuestos = False
                            End If
                        Else
                            MessageBox.Show(LeyendaErrorDato & Err.Description, _
                                            LeyendaTituloMensaje, _
                                            MessageBoxButtons.OK, MessageBoxIcon.Error)
                        End If
                    End If
                End If
                On Error GoTo 0
                Me.Cursor = System.Windows.Forms.Cursors.Default
            Else
                MessageBox.Show(LeyendaFaltaDatoRequerido, _
                    LeyendaTituloMensaje, _
                    MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub

    Private Sub BotonModificarImpuesto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonModificarImpuesto.Click
        If TablaImpuesto.SelectedItems.Count > 0 Then
            Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
            On Error Resume Next
            ' Abrir base registro
            SubAbrirTablaBD("SELECT * FROM VProductoImpuesto WHERE NombreProducto = '" & TextoNombre.Text & "' AND NombreImpuesto = '" & TablaImpuesto.SelectedItems(0).Text & "'")
            Dim FTabla As DataRow = TTabla.Rows(0)
            ' Saber si hubo error
            If Not FnErrorADONET(Me) Then
                ' Saber valor antiguo de importe
                FTabla("Valor") = TextoValor.Text
                If CBool(Err.Number) Then
                    MessageBox.Show(LeyendaErrorDato & Err.Description, _
                                    LeyendaTituloMensaje, _
                                    MessageBoxButtons.OK, MessageBoxIcon.Error)
                Else
                    ' Pasar datos a base
                    BDTabla.Update(TTabla)
                    TTabla.AcceptChanges()
                    If CBool(Err.Number) Then
                        ' Hubo error
                        MessageBox.Show(LeyendaNoModificado & Err.Description, _
                                        LeyendaTituloMensaje, _
                                        MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Else
                        ' ATENCION: CUANTO MENOS CLICK MEJOR, ASI QUE ANULAMOS EL MENSAJE Y SE NOTA EL CAMBIO POR EL CAMBIO EN CONTROL TABLA
                        '' Indicar que fue con éxito
                        'MessageBox.Show(LeyendaModificado, _
                        '                LeyendaTituloMensaje, _
                        '                MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                        ' Cambiar el valor en la lista
                        TablaImpuesto.Items(TablaImpuesto.FocusedItem.Index).SubItems(2).Text = TextoValor.Text
                        ' Deshabilitar la funcion no guardados
                        DatosNoGuardadosImpuestos = False
                    End If
                End If
            End If
            On Error GoTo 0
            Me.Cursor = System.Windows.Forms.Cursors.Default
        End If
    End Sub

    Private Sub BotonEliminarImpuesto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BotonEliminarImpuesto.Click
        ' Verificar que hay un valor seleccionado
        If TablaImpuesto.SelectedItems.Count > 0 Then
            ' Preguntar para confirmar la eliminación
            If MessageBox.Show(LeyendaEliminar & "en el producto " & StrConv(TextoNombre.Text, VbStrConv.UpperCase) & " el impuesto " & TablaImpuesto.SelectedItems(0).Text & LeyendaPermanente, LeyendaTituloMensaje, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Yes Then
                On Error Resume Next
                ' Abrir base registro
                SubAbrirTablaBD("SELECT * FROM VProductoImpuesto WHERE NombreProducto = '" & TextoNombre.Text & "' AND NombreImpuesto = '" & TablaImpuesto.SelectedItems(0).Text & "'")
                ' Saber si hubo error
                If Not FnErrorADONET(Me) Then
                    ' Saber existencia de registro
                    Dim FTabla As DataRow = TTabla.Rows(0)
                    If CBool(Err.Number) Then
                        MessageBox.Show(LeyendaRegistroNoExisteEliminar & Err.Description, _
                                        LeyendaTituloMensaje, _
                                        MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Else
                        ' Eliminar registro
                        FTabla.Delete()
                        BDTabla.Update(TTabla)
                        TTabla.AcceptChanges()
                        If CBool(Err.Number) Then
                            ' Hubo error
                            MessageBox.Show(LeyendaNoEliminado & Err.Description, _
                                            LeyendaTituloMensaje, _
                                            MessageBoxButtons.OK, MessageBoxIcon.Error)
                        Else
                            ' Borrar valor en la lista
                            Dim Item As System.Windows.Forms.ListViewItem
                            For Each Item In TablaImpuesto.SelectedItems
                                TablaImpuesto.Items.Remove(Item)
                            Next
                            ' Inicializar controles
                            SubControlesImpuesto()
                            ' Deshabilitar la funcion no guardados
                            DatosNoGuardadosImpuestos = False
                        End If
                    End If
                End If
                On Error GoTo 0
            End If
        End If
    End Sub

    Private Sub TextoPtoPedido_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextoPtoPedido.KeyPress
        Dim KeyAscii As Int32 = Asc(e.KeyChar)
        SubCondicionNumeroReal(TextoPtoPedido, KeyAscii)
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub TextoValor_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextoValor.KeyPress
        Dim KeyAscii As Int32 = Asc(e.KeyChar)
        SubCondicionNumeroReal(TextoValor, KeyAscii)
        If KeyAscii = 0 Then
            e.Handled = True
        End If
    End Sub

    Private Sub CombinadaProducto_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles CombinadaProducto.KeyUp
        ' En este sub se coloca la lista de productos que coinciden con las palabras ingresadas
        Dim Ciclo As Int32
        If CombinadaProducto.Text <> "" Then
            On Error Resume Next
            ' Abrir tabla
            SubAbrirTablaBD("SELECT * FROM VProducto WHERE NombreProducto LIKE '%" & CombinadaProducto.Text & "%'")
            ' Saber si hubo error
            If Not FnErrorADONET(Me) Then
                ' Cargar combinada producto
                CombinadaProducto.Items.Clear()
                For Ciclo = 0 To TTabla.Rows.Count - 1
                    Dim FTabla As DataRow = TTabla.Rows(Ciclo)
                    CombinadaProducto.Items.Add(FTabla("NombreProducto").ToString)
                Next
            End If
            On Error GoTo 0
        End If
    End Sub

    Private Sub TextoNombre_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextoNombre.KeyPress
        SubNombresEnMayuscula(e)
    End Sub
End Class
