Académique Documents
Professionnel Documents
Culture Documents
Introduccin
millones
cuenta
muchas
de
personas
adems
herramientas
con
que
SESIN I
Explorador de Servidores
CONTENIDO
Agregar Conexiones
Acceso:
Manual
Asistente
Forma Directa
LABORATORIO
EXPLORADOR DE SERVIDORES
Una de las herramientas importantes que posee Visual Studio 2005 es el Explorador de
Servidores, el cual va a permitir conectarse a distintos servidores que se tengan disponible,
para de esa manera acceder y manipular la informacin de las Bases de Datos y poderla
utilizar en el desarrollo de alguna aplicacin de Visual Studio.
Para poder Acceder a esta herramienta tenemos:
1. Clic en : VER Explorador de Servidores
2. CTRL + ALT + S
Esta ventana nos va a permitir configurar a que servidores vamos a conectarnos para un mejor
manejo y control de nuestra informacin.
CONEXIONES
Una vez que se tenga abierto el Servidor de Exploradores, debemos proceder de la siguiente
manera:
1. Clic derecho sobre Conexin de Base
de Datos.
2. Clic en Agregar Nueva Conexin.
seleccionada:
Algunas veces los controles que ah se muestran, muchas veces no se encuentran, para ello,
debemos agregar nuevos componentes, y debemos seguir
lo siguiente:
o
Debemos hacer clic en los controles de conexin que necesitamos, y luego clic en Aceptar,
agregndose los controles que necesitamos para manejar los controles.
Objeto encargado de la conexin a una Base de Datos SQL Server
versin 7.0 o superior.
Este
objeto
cumple
la
misma
funcin
que
el
objeto
Dentro de el vamos a ver, las conexiones que se han creado con el Explorador de
Servidores.
El cual nos guiara de manera similar que el Explorador de Servidores para conectarnos
Ahora para ver si nuestra conexin ah sido realizada correctamente debemos, agregar a
nuestro formulario un DataGridView.
En la parte superior derecha hay un icono de una punta de flecha a la cual le hacemos
clic.
10
Este nos llevara a otra ventana donde, podemos escoger la conexin ya establecida en el
Servidor o podemos seleccionar una nueva, llevndonos a las ventanas ya vistas anteriormente.
Algunas veces necesitamos visualizar la Conexin para ello hacemos clic en el signo (+) de
Cadena de Conexin.
Clic en siguiente, donde nos mostrara los objetos de la Base de Datos que vamos a utilizar,
mostrndonos la siguiente ventana:
11
el
grafico:
Quedando la ventana de la
siguiente forma.
12
13
Hacer clic en Generador de Consultas para abrir otra ventana que nos permitir escoger
las tablas a trabajar.
Podemos colocar
la Sentencia
14
15
El siguiente paso consiste en crear un Conjunto de Datos (DataSet) para ello debemos escoger
del men Datos la alternativa Generar Conjunto de Datos.
16
Clic en Aceptar.
Ahora para poder mostrar los campos de la tabla seleccionada debemos; agregar un
DataGridView.
17
18
19
LABORATORIO 01
1. Crear una Base de Datos en SQL, llamada CONTROL, la cual tendr dos Tablas (Clientes y
Distritos), Ud. determine los campos y los tipos, agregarle un grupo de registros, realizar la
conexin a dicha base se datos y mostrar los nombres de los distritos sin repetir en un
ComboBox.
2. Crear un documento en Excel llamado Alumnos, el cual tendr el Cdigo, Nombre, Edad y
FechaNacimiento, ingresarle un grupo de registros, realizar la conexin a dicho archivo y
mostrarlo en un DataGridView.
3. Crear un procedimiento almacenado con la Base de Datos Hospital, el cual nos deber mostrar
todos los cargos que desempean los empleados, luego conectarnos ha dicho procedimiento
almacenado y mostrarlo en un ListBox.
4. Mostrar en un DataGridView los siguientes campos de la Base de Datos NorthWind, Nmero de
Pedido, Fecha de Pedido, Nombre de Cliente, Nombre de Empleado, Total.
5. Realizar una conexin a una base de datos de ORACLE, crear Ud. la Base de Datos y las tablas.
6. Elaborar una conexin a MySQL, crear Ud. la Base de Datos y las tablas.
7. Cul es la combinacin de teclas que permiten mostrar el Explorador de Servidores?
...
8. Cual es la ventaja de usar un DataGridView?
....
9. Cual es la diferencia entre un DataView, DataGridView y un DataGrid?
....
20
SESIN II
GENERACION DE OBJETOS I
CONTENIDO
Objetos SQLConnection
Clase SQLException
Objeto OLEDBConnection
Objeto SQLCommand
Objeto OLEDBCommand
LABORATORIO
21
Se
mostrara
la
siguiente ventana, de la
cual
debemos
seleccionar
22
Espacios de Nombres
En las aplicaciones de Ado .Net donde se va a crear y utilizar los objetos de acceso a datos se
debe impotar el espacio de nombre llamado: System.Data.
El Espacio de nombre System.Data contiene todas las clases principales para acceder a una
base de datos desde una aplicacin.
Los Espacios de Nombres pueden ser:
System.Data.SQLClient
Contiene las clases para el proveedor de datos de SQL Server.
System.Data.OleDb
Contiene las clases del proveedor de datos OleDb y es usado cuando la base de datos es
Access o Excel.
System.Data.Odbc
Contiene las clases del proveedor de datos OleDb.
System.Data.OracleClient
Contiene las clases del proveedor de datos para la base de datos de Oracle.
Para poder usar un espacio de nombre a una aplicacin, se debe abrir la ventana de cdigo
del formulario.
23
Una vez que se ha importado el espacio de nombre dentro de la aplicacin, podemos ahora
utilizar los objetos del proveedor de datos, este es de acuerdo al nombre importado.
SQLConnection
SQLCommand
SQLDataReader
SQLDataAdapter
Objeto SQLConnection
SqlConnection es uno de los objetos mas importantes que tiene la tecnologa Ado .Net porque
gracias a este objeto nos podemos conectar a una Base de Datos SQL, para luego ser usada
en nuestra aplicacin.
Este objeto tiene una propiedad principal llamada ConnectionString en donde se escribe la
informacin necesaria para realizar la conexin a la Base de Datos, esta depende del tipo de
Base de Datos a la que deseamos conectar y utilizar en nuestra aplicacin.
La Cadena de conexiones la informacin que se asigna a la propiedad ConnectionString y se
forma bsicamente por los siguientes parmetros, que van separados por un punto y coma.
Provider
Usado para indicar el nombre del proveedor de datos. El proveedor es el programa desde
donde vas a obtener la informacin que vas a manejar en tu aplicacin y puede ser: SQL,
Access, Oracle o Misal.
Data Source
Usado para indicar el nombre del servidor donde se encontrara la Base de Datos a
conectar.
Indicial Catalog
Usado para indicar el nombre de la Base de Datos a la cual nos queremos conectar.
User ID
24
Usado para indicar el nombre del usuario que se conecta a la Base de Datos.
Pad
Usado para indicar la clave del usuario que esta conectndose a la Base de Datos.
Integrated Security
Indica si la conexin a la base de datos va a tener seguridad integrada, es decir si dentro de
la cadena se va a especificar el Id del usuario y su contrasea.
Si esta en False se debe especificar el Id y el Password y si es True es todo lo contrario. El
valor SSPI es el ms recomendado para este parmetro porque es similar al valor True.
Persist Security Info
Usado en la cadena de conexin para indicar si la informacin de seguridad, como la
contrasea del usuario, se devuelve como parte de la cadena de conexin. Se recomienda
si lo va a utilizar usar False o No para evitar el envi de la informacin de seguridad.
Connect Timeout
Usado para indicar la cantidad de segundos que debe durar el intento de conexin a la
Base de Datos. Si pasado el periodo establecido se producir un error. Por defecto la
cantidad en segundos es 15.
EJEMPLO PRACTICO
Conexin a una Base de Datos
Imports System
Imports System.Data.SqlClient
Public Class Form1
25
LABORATORIO 02
1. Realizar una conexin a una Base de Datos de Access, seleccionar Ud. la base de
datos a utilizar.
2. Realizar una conexin a una Base de Datos de Excel, crear un documento en Excel y
conectarte a el.
3. Crear una Conexin a la Base de Datos Hospital, creada en las clases anteriores.
26
SQLException
La case SQLException permite controlar los errores que pueden suceder, cuando se accede a
un servidor de base de datos SQL dentro de una aplicacin.
Normalmente se crea cuando intentamos acceder a un servidor que no exista o que no esta
activo y tambin cuando el nombre o contrasea del usuario son incorrectos.
Si aprendemos a controlar estas excepciones podemos enviar los respectivos mensajes a los
usuarios sin que nuestra aplicacin termine.
Propiedades de SQLException
Class
Errors
HelpLink
LineNumber -
Message
Number
Procedure
Server
Source
ERRORES MS COMUNES
Utilizando el valor de esta propiedad y una instruccin como Select Case, puede saber el tipo
de error producido y el enviarle al usuario el mensaje de error de la propiedad Message o un
mensaje si gusta de manera personalizada.
Entre los Errores mas comunes en el acceso a la informacin y servidores en SQL se tienen:
Numero
Nivel
Mensaje
27
17
4060
17142
18452
18456
16
11
16
14
14
Objeto OLEDBConnection
Es usado para conectarnos a orgenes de datos OLE DB como por ejemplo una base de datos
de Access.
Este objeto tiene la propiedad principal llamada ConnectionString, en donde se escribe la
informacin necesaria para realizar la conexin a la Base de Datos.
Cadena de Conexin
La estructura de la cadena de conexin de este objeto depende del origen de datos al que nos
queremos conectar, si queremos conectarnos a una base de datos de Access, la cadena se
formara bsicamente por los siguientes parmetros, los cuales van separados por un punto y
coma:
Provider
DataSource
EJEMPLO PRACTICO
Provider=Microsoft.Jet.OLEDB.4.0;Data
28
OBJETO SQLCOMMAND
Despus de habernos conectado se usa con un SQLConnection y permite enviar instrucciones
SQL al servidor en forma directa o mediante procedimientos almacenados.
29
Este objeto inicialmente requiere la instruccin SQL que se desea enviar y ejecutar en el
servidor y el objeto SQLConnection donde se ha configurado la conexin al servidor donde se
desea enviar y ejecutar la instruccin SQL.
Por lo tanto como es una instruccin SQL se debe importar los espacios de nombres:
System.Data y System.Data.SQLClient, en donde se va a utilizar.
Sintaxis
Dim Variable As New SqlCommand()
Propiedades
CommandText
Ejemplo
Dim Cn as New Connection
Dim Cmd As New SqlCommand(Select * From Empleados,cn)
Ahora usando el CommandText es el siguiente:
Dim Cn as New Connection
Dim Cmd As New SqlCommand()
Cmd.CommandText=Select * From Empleados
CommandTimeout
Encargada para indicar la cantidad de segundos que el objeto Command debe intentar en
ejecutar el comando enviado al servidor.
Si paso el tiempo establecido, no se ejecuta el comando se produce un error. Por defecto
es de 30 segundos.
Dim Cn as New Connection
30
CommandType
Usado para indicar la forma como se van a enviar las ordenes al servidor que puede ser
una el nombre de una tabla, una instruccin SQL directa o mediante un procedimiento
almacenado. Los valores que se pueden asignar en esta propiedad son:
o
Text
Connection
Ejemplo
Dim Cn as New Connection
Dim Cmd As New SqlCommand
Dim Cadena as String
Cadena="Data Source=Developers\SQLExpress;initial Catalog=Hospital;User id= sa: password="
Cn.ConnectionString=Cadena
Cmd.commandType=CommandType.StoredProcedure
Cmd.CommandText=Empleados_pa
Cmd.CommandTimeout=20
Cmd.Connection=Cn
o
Parameters
31
Direction
Usado para indicar si el parmetro es de entrada, salida, entrada y salida o es de vuelto por
ejemplo, desde el procedimiento.
IsNullable
Usado para indicar si el parmetro acepta los valores nulos.
ParameterName
Usado para indicar el nombre del parmetro. Este nombre debe empezar con una @.
Size
Usado para indicar el tamao del parmetro cuando este es de tipo cadena.
SQLDbType
Usado para indicar el tipo de dato en SQL.
Value
Usado para indicar el valor del parmetro.
Ejemplo Practico
Para poder hacer una demostracin, primero vamos a crear un procedimiento almacenado
llamado INICIALES_PA, el cual devuelve los nombres de los autores que tienen como iniciales
las enviadas como parmetro.
Create Procedure Iniciales_pa
@Iniciales Varchar(50)
AS
Select Emp_Nro, Apellido,Oficio From Empleados Where Apellido LIKE @Iniciales + %
Order By Apellido
Ahora vamos usar este procedimiento en una aplicacin en Visual Net, donde el nombre ser
colocado en una caja de texto:
32
33
ExecuteReader
Mtodo usado cuando el comando va a devolver una o una conjunto de filas y crea con ese
conjunto de filas un objeto SQLDataReader.
ExecuteXmlReader
Usado para devolver una fila o un conjunto de filas de un objeto XmlReader.
CreateParameter
Objeto para crear un objeto SQLParameter.
34
SESIN II
GENERACION DE OBJETOS II
CONTENIDO
Objeto SQLDataReader
Objeto DataSet
Objeto DataView
LABORATORIO
35
Mtodo READ
Para poder acceder a la informacin del SQLDATAREADER es necesario usar un READ.
Este mtodo permite moverse al siguiente registro de un SQLDataReader, en su mayora se
utiliza un bucle con While para poder pasar de un registro a otro.
Una forma de leer un campo es usando la posicin del campo.
Objeto SQLDataReade(Numero del Campo)
Ejemplo
Dim Cn as New Connection
Dim Cmd As New SqlCommand
Dim Cadena as String
Cadena="Data Source=Developers\SQLExpress;initial Catalog=Hospital;User id=sa:password="
Cn.ConnectionString=Cadena
Dim Dr As SqlDataReader
Dim CmdEmpleados as New SqlCommand(Select Apellido,Oficio,Direccion From Empleados
Order by Apellido,cn)
36
Cn.Open()
Cmd.Connection=Cn
Dr=CmdEmpleados.ExecuteReader
Dr.Read()
Dim Apellido as String
Apellido=Dr(0)
Messagebox.Show(El Apellido es: & Apellido, Prueba)
OBJETO OLEDBDATAREADER
Permite acceder a la informacin de una base de datos diferente a SQL Server. Para ello se
usa los espacios de nombre:
System.Data
System.Data.OleDB
Estos nombres de espacios nos van a permitir conectarnos a una Base de Datos Diferente a
SQL.
Asi como en los casos anteriores, primero se debe definir una variable de ese tipo:
Dim Variable As OLEDBDataReader
Ejemplo
Dim Dr As OLEDBDataReader
Una vez definida la variable, se debe crear el objeto SQLCommand y abrir la conexin, puede
llenar el objeto SQLDataReader de la siguiente manera:
Variable= Objeto SQLCommand.ExecuteReader
Ejemplo:
Dr=CmdEmpleados.ExecuteReader
37
OBJETO DATASET
Permite almacenar y manejar la informacin de una Base de Datos en forma Desconectada. Se
lee la informacin de una Base de Datos con un objeto DataAdapter y llena dicha informacin
en el objeto DataSet.
Para eso debemos almacenarla en un objeto DataSet para poder utilizar dentro de una
aplicacin, debemos seguir los siguientes pasos:
1. Connection:
Dim Cn as New SqlCommand
2. Asignar al objeto Connection la cadena de Conexin.
Cn.ConnectionString="Data Source=Developers\SQLExpress;initial
Catalog=Hospital;User id=sa:password="
3. Crear el objeto Command que almacenara las instrucciones SQL para leer la
informacin de la Base de Datos.
Dim Cmd as New SqlCommand()
4. Asignar al Objeto Command la instruccin SQL para leer la informacin de la Base de
Datos.
Cmd.CommandText=Select * From Empleados Order by Apellido
5. Indicar que la instruccin del objeto Command se ejecute en la Conexin.
Cmd.Connection=Cn
6. Ahora crear el objeto DataAdapter para llenar el objeto DataSet con la informacin que s
e lee de la Base de Datos.
Dim Da as New SqlDataAdapter()
7. Asignar el comando que contiene la instruccin.
Da.SelectCommand=Cmd
8. Crear el objeto DataSet que almacenara en memoria y en forma desconectada toda la
informacin
Dim Ds as New DataSet
9. Llenar usando el objeto DataAdapter, el objeto DataSet con la informacin leida de la
Base de Datos.
Da.Fill(Ds)
10. Terminado el llenado, se puede utilizar de cualquier manera en la aplicacin.
38
DataGrid1.DataSource=Ds
OBJETO DATATABLE
El objeto DataTable almacena en memoria la informacin que se lee del servidor de la misma
forma que se almacena en una tabla dentro de una Base de Datos.
El DataTable se organiza mediante filas y columnas. Cuando se llena un objeto DataSet se crea
en forma automtica un objeto DataTable. La siguiente instruccin, crea en forma explicita un
objeto DataTable llamado Dt:
Dim Dt as New DataTable()
Llenado el DataSet, se puede almacenar el resultado en un objeto DataTable y utilizar este
objeto en la aplicacin.
OBJETO DATAVIEW
Este objeto permite manejar dentro de una aplicacin la informacin que recibe del DatSet.
Esta informacin recibida se almacena en forma predeterminada en un objeto DataTable y la
podemos enviar al objeto DataView para manejarla y presentarla.
Para poderla crear debemos:
Dim Nombre As New DataView
Ejemplo:
Dim MiTabla as New DataView()
Tambin se puede ir definiendo y luego creando una instancia del objeto:
Dim MiTabla as DataView
MiTabla= New DataView
39
Una vez creado el DataView se utiliza la propiedad Table para enviar la informacin que tiene el
objeto DataSet mediante el objeto DataTable.
MiTabla.Table=Ds.Tables(Empleados)
40
SESIN III
LABORATORIOS RESUELTOS
CONTENIDO
Resumen de los temas tratados, laboratorios para reforzar lo aprendido
Laboratorio1
Laboratorio2
Laboratorio3
Laboratorio4
Laboratorio5
Laboratorio6
41
LABORATORIO 01
Elaborar una aplicacin que permita mostrar en un TreeView los Oficios de la Tabla
Empleados, y cuando hagamos clic en uno de esos Oficios deber mostrarnos los
Empleados que cumplan con dicho oficio. El diseo ser de la siguiente manera:
Imports System.Data
Imports System.Data.SqlClient
-----------------------------------------------------------------------------------------------------------------------------------------------
'Crea la conexin
Dim CN As New SqlConnection(StrCN)
'Crea un objeto SQLCommand con slo uno de cada grupo de
'nombres de las areas.
Dim CMD As New SqlCommand("Select Distinct Oficio From Empleados", CN)
Dim DR As SqlDataReader
Titulo()
'Llena el TreeView con los nombres de las areas encontradas.
TvOficio.Nodes.Clear()
Dim Padre As TreeNode
With CMD
.Connection.Open()
DR = .ExecuteReader
42
While DR.Read
Padre = New TreeNode(DR("Oficio"))
TvOficio.Nodes.Add(Padre)
End While
.Connection.Close()
End With
Private Sub TvEmpleado_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.
Forms.TreeViewEventArgs) Handles TvEmpleado.AfterSelect
43
LvEmpleado.Clear()
'Asigna el formato inicial al control ListView
LvEmpleado.View = View.Details
LvEmpleado.GridLines = True
LvEmpleado.FullRowSelect = True
LvEmpleado.Columns.Add("Id", 30, HorizontalAlignment.Center)
LvEmpleado.Columns.Add("Apellido", 130, HorizontalAlignment.Left)
LvEmpleado.Columns.Add("Oficio", 120, HorizontalAlignment.Center)
LvEmpleado.Columns.Add("Fecha_Alt", 70, HorizontalAlignment.Center)
LvEmpleado.Columns.Add("Salario", 70, HorizontalAlignment.Right)
End Sub
End Class
44
LABORATORIO 02
Haciendo unas modificaciones al ejercicio anterior ahora, vamos a poner en el TreeView el
Oficio y mostrar el nombre de los meses de Alta, para realizar una bsqueda. Tal como se
muestra de la siguiente manera:
Imports System.Data
Imports System.Data.SqlClient
----------------------------------------------------------------------------------------------------------------------------------------------
45
46
Dim DR As SqlDataReader
Dim Padre As TreeNode
'Asigna el formato al ListView
Titulo()
'Limpia el TreeView
TvOficio.Nodes.Clear()
'Agrega las Oficios segun el contenido de la tabla
With CMDOficios
.Connection.Open()
DR = .ExecuteReader
Padre = New TreeNode("Oficio")
TvOficio.Nodes.Add(Padre)
While DR.Read
Padre.Nodes.Add(DR("Oficio"))
End While
.Connection.Close()
End With
With CMDMeses
.Connection.Open()
DR = .ExecuteReader
Padre = New TreeNode("Mes")
TvOficio.Nodes.Add(Padre)
While DR.Read
'Muestra el nombre del mes
Padre.Nodes.Add(MonthName(DR("Mes")))
'Almacena el nmero del mes en la propiedad Tag
Padre.Nodes(Padre.Nodes.Count - 1).Tag = DR("Mes")
End While
End With
End Sub
Sub Titulo()
LvEmpleado.Clear()
'Asigna el formato inicial al control ListView
LvEmpleado.View = View.Details
LvEmpleado.GridLines = True
LvEmpleado.FullRowSelect = True
LvEmpleado.Columns.Add("Id", 25, HorizontalAlignment.Center)
47
48
LABORATORIO 03
Elaborar una aplicacin que permita mostrar los datos personalizados de un determinado
Empleado, la seleccin se har desde un TreeView, en donde se mostrara el Oficio y el Mes,
los cuales nos llevara a otras alternativas, al final nos mostrara el nombre (dato para la
seleccin).
Imports System.Data
Imports System.Data.SqlClient
-----------------------------------------------------------------------------------------------------------------------Public Class Form1
49
50
'Crea un objeto Command slo con el Id y Nombre de los registros del elemento seleccionado
Dim CMDEmpleados As New SqlCommand("Select Emp_Nro,Apellido From Empleados Where " &
Condicion & " Order By Apellido", CNEmpleados)
CMDEmpleados.Connection.Open()
DREmpleados = CMDEmpleados.ExecuteReader
While DREmpleados.Read
'Muestra en el TreeView el Nombre del Empleadosl
Hijo.Nodes.Add(DREmpleados("Apellido"))
'Almacena el Id del Empleadosl en la propiedad Tag
'para que la consulta sea mas rapida
Hijo.Nodes(Hijo.Nodes.Count - 1).Tag = DREmpleados("Emp_Nro")
End While
CMDEmpleados.Connection.Close()
End Sub
Private Sub TvEmpleado_AfterSelect(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.TreeViewEventArgs) Handles TvEmpleado.AfterSelect
51
LABORATORIO 04
Elaborar una aplicacin que me permita visualizar en un combo los meses del ao y en un
NumericUpDown se mostrara el ao y al presionar el botn Mostrar se visualizara la
informacin en un DataGrid.
La aplicacin trabajara con un procedimiento almacenado, este ser:
Create Procedure Datos_Pa
@Mes as SmallInt,
@Ao as SmallInt
As
Select Emp_Nro,Apellido,Oficio,Direccion, Fecha_Alt,Salario,Comision From Empleados
Where Month(Fecha_Alt)=@Mes And Year(Fecha_Alt)=@Ao
UpAo
BtnMostrar
Imports System.Data
Imports System.Data.SqlClient
---------------------------------------------------------------------------------------------------------------------------------------------Public Class Form1
52
53
LABORATORIO 05
Elaborar una aplicacin que nos permita seleccionar en un ComboBox los oficios de la tabla
Empleadosm y que al seleccionar uno de ellos se muestre en un ListView.
Para poder desarrollar la aplicacin debemos crear los siguientes procedimientos:
Imports System.Data
Imports System.Data.SqlClient
---------------------------------------------------------------------------------------------------------------------------------------------Public Class Form1
54
LvPersonal.Clear()
'Asigna el formato inicial al control ListView
LvPersonal.View = View.Details
LvPersonal.GridLines = True
LvPersonal.FullRowSelect = True
LvPersonal.Columns.Add("Nro", 25, HorizontalAlignment.Center)
LvPersonal.Columns.Add("Apellido", 170, HorizontalAlignment.Left)
LvPersonal.Columns.Add("Oficio", 120, HorizontalAlignment.Left)
LvPersonal.Columns.Add("Direccion", 190, HorizontalAlignment.Left)
LvPersonal.Columns.Add("F. Alta", 90, HorizontalAlignment.Center)
LvPersonal.Columns.Add("Salario", 70, HorizontalAlignment.Right)
LvPersonal.Columns.Add("Comision", 70, HorizontalAlignment.Right)
End Sub
Private Sub BtnMostrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
BtnMostrar.Click
55
56
LABORATORIO 06
Elaborar una aplicacin que me permita mostrar algunos datos de la tabla Empleados, esta bsqueda se
podra realizar cuando se ingresa el codigo o cuando se ingresa el nombre.
Tendra el siguiente aspecto:
57
Imports System.Data
Imports System.Data.SqlClient
----------------------------------------------------------------------------------------------------------------------------------------------Public Class Form1
58
LblFAlta.Text = DT.Rows(0).Item("Fecha_Alt").ToString
LblSalario.Text = DT.Rows(0).Item("Salario").ToString()
End If
End With
End If
End Sub
Private Sub TxtApellidos_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TxtApellidos.KeyPress
If Asc(e.KeyChar) = 13 Then
Dim CN As New SqlConnection(StrCN)
'Crea un comando con el procedimiento almacenado
Dim CMD As New SqlCommand("BuscarNombre_Pa", CN)
TxtNro.Text = ""
With CMD
.CommandType = CommandType.StoredProcedure
'Pasa los parametros al procedimiento
.Parameters.Add(New SqlParameter("@Nombre", TxtApellidos.Text))
Dim DA As New SqlDataAdapter(CMD)
Dim DT As New DataTable
'Llena el DataTable
DA.Fill(DT)
'Pregunta si el registro ha sido encontrado
If DT.Rows.Count() = 0 Then
MessageBox.Show("El Nombre: " & TxtApellidos.Text & " No existe", "Verifique",
MessageBoxButtons.OK, MessageBoxIcon.Error)
TxtApellidos.Text = ""
Limpiar()
TxtApellidos.Focus()
Else
'Muestra los datos del personal encontrado
LblNro.Text = DT.Rows(0).Item("Emp_Nro").ToString()
LblApellidos.Text = DT.Rows(0).Item("Apellido")
LblOfic.Text = DT.Rows(0).Item("Oficio")
LblDireccion.Text = DT.Rows(0).Item("Dir")
'Muestra la fecha sin la hora
LblIngreso.Text = Convert.ToDateTime DT.Rows(0). Item("Fecha_Alt")). ToString("d")
59
LblNro.Text = ""
LblApellidos.Text = ""
LblOfic.Text = ""
LblDireccion.Text = ""
LblFAlta.Text = ""
LblSalario.Text = ""
End Sub
End Class
60
SESIN IV
TRABAJO CON CRYSTAL REPORT
CONTENIDO
61
a.
Name :
Frmreportes01
b.
Text
Reportes de Datos
62
7. Se visualiza la siguiente
pantalla:
a.
b.
c.
Usar Asistente de
Informes
Estandar
Aceptar
63
a.
9. Se visualiza lo siguiente:
i. Aperturo OLE DB
ADO
64
Clic en la opcin:
Microsoft Oledb Provider for SQL
Server
Siguiente
En el servidor, digitar:
(local)
sa
Seleccionar el botn:
Siguiente
65
Seleccionar el botn:
Finalizar
a.
66
a.
Clic en NorthWind
b.
67
a.
b.
68
19. Se visualiza lo
siguiente:
a.
Clic en
ACEPTAR
Se visualiza la tabla:
Employees
69
Clic y arrastre en
la
section2
70
Objeto: Lnea
Clic en:
Dar Formato a Objeto
Seleccionar el estilo de
lnea, Ancho y Color de
Lnea
71
32. Renombrar los ttulos o rtulos que se encuentran en la section2, como se visualiza
en la siguiente imagen:
33. El diseo final del reporte, quedara como se muestra en la siguiente imagen:
72
quedara
Frmreportes01.
vb
Seleccionar la opcin:
CrystalReportViewer
73
41. Se visualiza:
Desactivar la casilla:
Mostrar rbol de Grupos
Clic en el vnculo:
Acoplar en contenedor
principal
42. Se visualiza lo siguiente:
CrystalReportViewer Acoplado Al
objeto Formulario
74
75
LABORATORIO
46. Crear los siguientes reportes de las siguientes tablas:
i. Customers
ii. Orders
iii. Products
iv. Categories
v. Shippers
vi. Suppliers
47. Invocar los reportes desde un formulario principal diseado con los controles
necesarios para si visualizacin.
Name
: Frmreportes02
Text
WindowState : Maximized
76
ReporteDatos0
primero Reporte.
77
78
b. Orders : OrderId,OrderDate,RequireDate
c. Order Details : UnitPrice,Quantity,Discount
79
por:
Employee.EmployeeID y Orders.OrderID
80
Arrastrar hacia la
derecha
81
CrystalReportViewer
82
83
:
:
Frmfecha
Reportes Con Fechas
84
85
86
87
88
89
Clic en el botn:
>
44. Importando la librera del Crystal Report para trabajar con los procedimientos
almacenados:
91
End Try
End Sub
SESIN V
CREANDO SETUP DE INSTALACION
92
CONTENIDO
Creando Proyecto
93
Imports System.Data
Imports System.Data.SqlClient
94
GroupBox
Name: gbxdatos
Text: Datos de Empleados
btnprimero
btnsalir
btnanterior
btnsiguiente
btnultimo
GroupBox
Name: gbxopciones
Text: Opciones De Control
95
Module Modsetup
Try
With frmaplicasetup
.txtid.Text = IIf(IsDBNull(objclase.listado.Rows(fila)(0)), "", objclase.listado. Rows(fila)(0))
.txtfirstname.Text = IIf(IsDBNull(objclase.listado.Rows(fila)(1)), "", objclase.listado.Rows(fila)(1))
.txtlastname.Text = IIf(IsDBNull(objclase.listado.Rows(fila)(2)), "", objclase.listado.Rows(fila)(2))
96
End With
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Try
With frmaplicasetup
contador = objclase.listado.Rows.Count - 1
If contador < 0 Then Return
fila = 0
Call cajas()
End With
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Try
With frmaplicasetup
contador = objclase.listado.Rows.Count
If contador < 0 Then Return
fila -= 1
If fila < 0 Then fila = 0
Call cajas()
End With
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
97
Try
With frmaplicasetup
contador = objclase.listado.Rows.Count
If contador < 0 Then Return
fila += 1
If fila >= contador Then fila = contador - 1
Call cajas()
End With
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Try
With frmaplicasetup
contador = objclase.listado.Rows.Count - 1
If contador < 0 Then Return
fila = contador
Call cajas()
End With
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Module
Call primero()
End Sub
Private Sub btnanterior_Click
Call anterior()
98
End Sub
Private Sub btnsiguiente_Click
Call siguiente()
End Sub
Private Sub btnultimo_Click
Call ultimo()
End Sub
Private Sub btnsalir_Click
End
End Sub
End Class
22. Desde el proyecto, seleccionar la opcin: Archivo
Seleccionar la opcin:
Instalacin e Implementacin
Seleccionar el icono:
Asistente para proyectos de instalacin
Seleccionar el botn:
Aceptar
Carpeta:
C:\DemoSetup\AplicacionSetup
99
100
101
102
Wiener
Wiener
Wiener
103
Wiener
de Desplazamiento
104
Clic en la opcin:
Crear Nuevo Acceso Directo
105
Clic en el botn:
Aceptar
106
Clic en la opcin:
Generar
107
Doble Clic en el
archivo:
108
109
110
111
112
Aplicacion
113
114
SESIN VI
SISTEMA FINAL
CONTENIDO
Pasos a Seguir
Mdulos a utilizar
115
SISTEMA INKAFARMA
Base de Datos Inkafarma
116
InkaFarma.
CLASES:
CCliente:
Public Class CCliente
Inherits CConexion
Private xcod_cli As String
Private xpat_cli As String
Private xmat_cli As String
Private xnom_cli As String
Private xapnom_cli As String
Private xcod_dis As String
Private xdir_cli As String
Private xtelef_cli As String
Private xtipo_cli As String
Private xruc_cli As String
Public Property cod_cli() As String
Get
Return xcod_cli
End Get
Set(ByVal value As String)
xcod_cli = value
End Set
End Property
Public Property pat_cli() As String
Get
Return xpat_cli
End Get
Set(ByVal value As String)
xpat_cli = value
End Set
End Property
Public Property mat_cli() As String
Get
Return xmat_cli
117
End Get
Set(ByVal value As String)
xmat_cli = value
End Set
End Property
Public Property nom_cli() As String
Get
Return xnom_cli
End Get
Set(ByVal value As String)
xnom_cli = value
End Set
End Property
Public Property apnom_cli() As String
Get
Return xapnom_cli
End Get
Set(ByVal value As String)
xapnom_cli = value
End Set
End Property
Public Property cod_dis() As String
Get
Return xcod_dis
End Get
Set(ByVal value As String)
xcod_dis = value
End Set
End Property
Public Property dir_cli() As String
Get
Return xdir_cli
End Get
Set(ByVal value As String)
xdir_cli = value
End Set
End Property
Public Property telef_cli() As String
Get
Return xtelef_cli
End Get
Set(ByVal value As String)
xtelef_cli = value
End Set
End Property
Public Property tipo_cli() As String
Get
Return xtipo_cli
End Get
Set(ByVal value As String)
xtipo_cli = value
End Set
End Property
Public Property ruc_cli() As String
Get
118
Return xruc_cli
End Get
Set(ByVal value As String)
xruc_cli = value
End Set
End Property
Public Sub Guardar_(ByVal xcod_cli As String, ByVal xpat_cli As String, ByVal xmat_cli As String,
ByVal xnom_cli As String, ByVal xapnom_cli As String, ByVal xcod_dis As String, ByVal xdir_cli
As String, ByVal xtelef_cli As String, ByVal xtipo_cli As String, ByVal xruc_cli As String)
cn.Open()
Try
cmd.CommandText = "INSERT INTO CLIENTE VALUES ('" & xcod_cli & "','" & xpat_cli & "','" &
xmat_cli & "','" & xnom_cli & "','" & xapnom_cli & "','" & xcod_dis & "','" & xdir_cli & "','" & xtelef_cli & "','" &
xtipo_cli & "','" & xruc_cli & "')"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Guardado", MsgBoxStyle.Information, "Mensaje")
Catch ex As Exception
MsgBox("No se pudo guardar registro, porfabor verifique sus datos", MsgBoxStyle.Critical, "E R R
O R ")
End Try
cn.Close()
End Sub
Public Sub Buscar_(ByVal xcod_cli As String)
cn.Open()
dt.Clear()
cmd.CommandText = "SELECT
CLI.cod_cli,CLI.pat_cli,CLI.mat_cli,CLI.nom_cli,CLI.apnom_cli,DIS.distrito,CLI.dir_cli,CLI.telef_cli,CLI.tipo
_cli,CLI.ruc_cli
from CLIENTE CLI,DISTRITO DIS where DIS.cod_dis=CLI.cod_dis AND
CLI.COD_CLI='" & xcod_cli & "' OR CLI.APNOM_CLI='" & xcod_cli & "'"
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(dt)
If dt.Rows.Count = 0 Then
MsgBox("Codigo No Existe")
Else
cod_cli = dt.Rows(0).Item("cod_cli")
pat_cli = dt.Rows(0).Item("pat_cli")
mat_cli = dt.Rows(0).Item("mat_cli")
nom_cli = dt.Rows(0).Item("nom_cli")
apnom_cli = dt.Rows(0).Item("apnom_cli")
cod_dis = dt.Rows(0).Item("distrito")
dir_cli = dt.Rows(0).Item("dir_cli")
telef_cli = dt.Rows(0).Item("telef_cli")
tipo_cli = dt.Rows(0).Item("tipo_cli")
ruc_cli = dt.Rows(0).Item("ruc_cli")
End If
cn.Close()
End Sub
Public Sub Actualizar_(ByVal xcod_cli As String, ByVal xpat_cli As String, ByVal xmat_cli As
String, ByVal xnom_cli As String, ByVal xapnom_cli As String, ByVal xcod_dis As String, ByVal
xdir_cli As String, ByVal xtelef_cli As String, ByVal xtipo_cli As String, ByVal xruc_cli As String)
cn.Open()
119
cmd.CommandText = "update CLIENTE set pat_cli='" & xpat_cli & "',mat_cli='" & xmat_cli &
"',nom_cli='" & xnom_cli & "',apnom_cli='" & xapnom_cli & "',cod_dis='" & xcod_dis & "',dir_cli='" & xdir_cli
& "',telef_cli='" & xtelef_cli & "',tipo_cli='" & xtipo_cli & "',ruc_cli='" & xruc_cli & "' where cod_cli='" &
xcod_cli & "'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Modificado")
cn.Close()
End Sub
End Class
CConexin:
Imports System.Data
Imports System.Data.SqlClient
Imports formulario = System.Windows.Forms
Public Class CConexion
Public cn As New SqlConnection("data source=(local); initial catalog =BDInkafarma; user id
=sa;Integrated Security=True;")
Public cmd As New SqlCommand
Public da As New SqlDataAdapter
Public ds As New DataSet
Public dt As New DataTable
Public dv As New DataView
Public dr As SqlDataReader
Public XCOD_ As String
End Class
Cdistrito:
Imports INKAFARMA.CConexion
Imports formulario = System.Windows.Forms
Public Class CDistrito
Inherits CConexion
Private xcod_dis As String
Private xdistrito As String
Public Property cod_dis() As String
Get
Return xcod_dis
End Get
Set(ByVal value As String)
xcod_dis = value
End Set
End Property
Public Property distrito() As String
Get
Return xdistrito
End Get
Set(ByVal value As String)
xdistrito = value
End Set
End Property
Public Sub Guardar_(ByVal xcod_dis As String, ByVal xdistrito As String)
cn.Open()
Try
cmd.CommandText = "INSERT INTO DISTRITO VALUES ('" & xcod_dis & "','" & xdistrito & "')"
120
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Guardado", MsgBoxStyle.Information, "Mensaje")
Catch ex As Exception
MsgBox("No se pudo guardar registro, porfabor verifique sus datos", MsgBoxStyle.Critical, "E R R
O R")
End Try
cn.Close()
End Sub
Public Sub Buscar_(ByVal xcod_dis As String)
cn.Open()
dt.Clear()
cmd.CommandText = "SELECT * FROM DISTRITO WHERE COD_DIS='" & xcod_dis & "' OR
DISTRITO='" & xcod_dis & "'"
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(dt)
If dt.Rows.Count = 0 Then
MsgBox("Codigo No Existe")
Else
cod_dis = dt.Rows(0).Item("cod_dis")
distrito = dt.Rows(0).Item("distrito")
End If
cn.Close()
End Sub
Public Sub Actualizar_(ByVal xcod_dis As String, ByVal xdistrito As String)
cn.Open()
cmd.CommandText = "update DISTRITO set distrito='" & xdistrito & "'where cod_dis='" & xcod_dis &
"'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Modificado")
cn.Close()
End Sub
End Class
CEAlmacen:
Public Class CEAlmacen
Inherits CConexion
Private xcod_ealm As String
Private xpat_ealm As String
Private xmat_ealm As String
Private xnom_ealm As String
Private xapnom_ealm As String
Private xcod_dis As String
Private xdir_ealm As String
Public Property cod_ealm() As String
Get
Return xcod_ealm
End Get
Set(ByVal value As String)
xcod_ealm = value
End Set
End Property
121
122
cmd.CommandText = "INSERT INTO EMPLEADO VALUES ('" & xcod_ealm & "','" & xpat_ealm &
"','" & xmat_ealm & "','" & xnom_ealm & "','" & xapnom_ealm & "','" & xcod_dis & "','" & xdir_ealm & "')"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Guardado", MsgBoxStyle.Information, "Mensaje")
Catch ex As Exception
MsgBox("No se pudo guardar registro, porfabor verifique sus datos", MsgBoxStyle.Critical, "E R R
O R")
End Try
cn.Close()
End Sub
Public Sub Buscar_(ByVal xcod_emp As String)
cn.Open()
dt.Clear()
cmd.CommandText = "SELECT
EAL.cod_ealm,EAL.pat_ealm,EAL.mat_ealm,EAL.nom_ealm,EAL.apnom_ealm,DIS.distrito,EAL.dir_ealm
FROM EALMACEN EAL,DISTRITO DIS WHERE DIS.cod_dis=EAL.cod_dis AND EAL.COD_ealm='" &
xcod_emp & "' OR EAL.APNOM_EALM='" & xcod_emp & "' "
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(dt)
If dt.Rows.Count = 0 Then
MsgBox("Codigo No Existe")
Else
cod_ealm = dt.Rows(0).Item("cod_ealm")
pat_ealm = dt.Rows(0).Item("pat_ealm")
mat_ealm = dt.Rows(0).Item("mat_ealm")
nom_ealm = dt.Rows(0).Item("nom_ealm")
apnom_ealm = dt.Rows(0).Item("apnom_ealm")
cod_dis = dt.Rows(0).Item("distrito")
dir_ealm = dt.Rows(0).Item("dir_ealm")
End If
cn.Close()
End Sub
Public Sub Actualizar_(ByVal xcod_ealm As String, ByVal xpat_ealm As String, ByVal xmat_ealm
As String, ByVal xnom_ealm As String, ByVal xapnom_ealm As String, ByVal xcod_dis As String,
ByVal xdir_ealm As String)
cn.Open()
cmd.CommandText = "update EALMACEN set pat_ealm='" & xpat_ealm & "',mat_ealm='" &
xmat_ealm & "',nom_ealm='" & xnom_ealm & "',apnom_ealm='" & xapnom_ealm & "',cod_dis='" &
xcod_dis & "',dir_ealm='" & xdir_ealm & "' where cod_ealm='" & xcod_ealm & "'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Modificado")
cn.Close()
End Sub
End Class
CEMPLEADO
Public Class CEmpleado
Inherits CConexion
123
124
125
cmd.CommandText = "update EMPLEADO set pat_emp='" & xpat_emp & "',mat_emp='" &
xmat_emp & "',nom_emp='" & xnom_emp & "',apnom_emp='" & xapnom_emp & "',cod_dis='" & xcod_dis
& "',dir_emp='" & xdir_emp & "' where cod_emp='" & xcod_emp & "'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Modificado")
cn.Close()
End Sub
Cfactura:
Imports formulario = System.Windows.Forms
Public Class CFactura
Inherits CConexion
'TABLA FACTURA -------------Private xcod_cli, xnum_fac, xfecha_fac, xcod_tdoc, xcod_emp As String
Private xstot_fac As Double
Private xigv_fac As Double
Private xtot_fac As Double
Dim subtotal = 0
'TABLA DETALLE -------------Private xcod, xprod As String
Private xpres, xcant, ximp As Double
'CALCULO -------------------Public XSTOT As Double = 0
Public XIGV As Double = 0
Public XTOT As Double = 0
Public Property num_fac() As String
Get
Return xnum_fac
End Get
Set(ByVal value As String)
xnum_fac = value
End Set
End Property
Public Property cod_cli() As String
Get
Return xcod_cli
End Get
Set(ByVal value As String)
xcod_cli = value
End Set
End Property
Public Property fecha_fac() As String
Get
Return xfecha_fac
End Get
Set(ByVal value As String)
xfecha_fac = value
End Set
End Property
Public Property cod_tdoc() As String
Get
126
Return xcod_tdoc
End Get
Set(ByVal value As String)
xcod_tdoc = value
End Set
End Property
Public Property cod_emp() As String
Get
Return xcod_emp
End Get
Set(ByVal value As String)
xcod_emp = value
End Set
End Property
Public Property stot_fac() As Double
Get
Return xstot_fac
End Get
Set(ByVal value As Double)
xstot_fac = value
End Set
End Property
Public Property igv_fac() As Double
Get
Return xigv_fac
End Get
Set(ByVal value As Double)
xigv_fac = value
End Set
End Property
Public Property tot_fac() As Double
Get
Return xtot_fac
End Get
Set(ByVal value As Double)
xtot_fac = value
End Set
End Property
Sub agregar_linea(ByVal xcod As String, ByVal xprod As String, ByVal xstock As Double, ByVal
xprec As Double, ByVal xcant As Integer)
cn.Open()
If xstock < xcant Then
MsgBox("No hay suficiente Stock", MsgBoxStyle.Information, "Mensaje")
Else
Try
Dim ximp = Math.Round(Val(xprec) * Val(xcant), 2)
cmd.CommandText = "insert into DETALLE values ('" & xcod & "','" & xprod & "','" & xprec & "','"
& xcant & "','" & ximp & "') "
cmd.Connection = cn
cmd.ExecuteNonQuery()
subtotal = Math.Round(Val(xprec) * Val(xcant), 2)
stot_fac = Math.Round(stot_fac + subtotal, 2)
igv_fac = Math.Round(stot_fac * 0.19, 2)
tot_fac = Math.Round(stot_fac + igv_fac, 2)
127
Catch ex As Exception
MsgBox("No se pudo realizar la operacin correctamente", MsgBoxStyle.Exclamation,
"Mensaje")
End Try
End If
cn.Close()
End Sub
Sub quitar_linea(ByVal codi As String)
cn.Open()
Try
cmd.CommandText = "delete from DETALLE where CODIGO='" & Trim(codi) & "'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
Catch ex As Exception
MsgBox("No hay Productos", MsgBoxStyle.Exclamation, "Mensaje")
End Try
cn.Close()
End Sub
Sub Guardar_(ByVal xnum_fac As String, ByVal xcod_tdoc As String, ByVal xfecha_fac As String,
ByVal xcod_cli As String, ByVal xcod_emp As String, ByVal xstot_fac As Double, ByVal xigv_fac
As Double, ByVal xtot_fac As Double)
'TABLA FACTURA --------------------------cn.Open()
Try
cmd.CommandText = "INSERT INTO FACTURA VALUES('" & xnum_fac & "', '" & xcod_tdoc & "','" &
CDate(xfecha_fac) & "','" & xcod_cli & "','" & xcod_emp & "' ,'" & xstot_fac & "','" & xigv_fac & "','" &
xtot_fac & "' )"
cmd.Connection = cn
cmd.ExecuteNonQuery()
' cn.Close()
'TABLA DETALLE_AUXILIAR -------------------Dim n As Integer = 0
' cn.Open()
ds.Tables.Clear()
cmd.CommandText = "Select * from DETALLE"
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(ds, "DETALLE")
For n = 0 To ds.Tables("DETALLE").Rows.Count - 1
Dim codf = ds.Tables("DETALLE").Rows(n).Item(0)
Dim cant = ds.Tables("DETALLE").Rows(n).Item(3)
Dim importe = ds.Tables("DETALLE").Rows(n).Item(4)
' GUARDANDO TABLA DETALLE --------------cmd.CommandText = "Insert into detalle_factura values ('" & xnum_fac & "','" & codf & "','" & Val(cant) &
"','" & Val(importe) & "')"
cmd.Connection = cn
cmd.ExecuteNonQuery()
' ACTUALIZA STOCK ----------------------' ==================
dt.Clear()
cmd.CommandText = "SELECT STOCK FROM MEDICAMENTO WHERE cod_med= '" & codf
& "'"
cmd.Connection = cn
128
da.SelectCommand = cmd
da.Fill(dt)
Dim stock = dt.Rows(0).Item("stock")
' ===================
cmd.CommandText = "UPDATE MEDICAMENTO SET STOCK='" & Val(stock) - Val(cant) & "' WHERE
cod_med='" & codf & "'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
' ===================
Next
'------------------------------------------------------------MsgBox("Registro Guardado", MsgBoxStyle.Information, "Mensaje")
Catch ex As Exception
MsgBox("No se pudo guardar el documento, porfabor verifique sus datos", MsgBoxStyle.Critical,
"E R R O R")
End Try
cn.Close()
End Sub
Sub NUEVO()
cn.Open()
cmd.CommandText = "delete from DETALLE"
cmd.Connection = cn
cmd.ExecuteNonQuery()
cn.Close()
End Sub
Sub DETALLE_()
Dim n As Integer = 0
cn.Open()
ds.Tables.Clear()
cmd.CommandText = "Select * from DETALLE"
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(ds, "DETALLE")
For n = 0 To ds.Tables("DETALLE").Rows.Count - 1
Dim codf = ds.Tables("DETALLE").Rows(n).Item(0)
Dim cant = ds.Tables("DETALLE").Rows(n).Item(3)
Dim importe = ds.Tables("DETALLE").Rows(n).Item(4)
Next
cn.Close()
End Sub
CFMedicamento:
Imports INKAFARMA.CConexion
Imports formulario = System.Windows.Forms
Public Class CFmedicamento
Inherits CConexion
Private xcod As String
Private xmedicam As String
Private xpot As String
Private xlab As String
129
130
da.SelectCommand = cmd
da.Fill(ds)
dv = New DataView(ds.Tables(0))
cn.Close()
End Sub
Public Sub Guardar_(ByVal xcod As String, ByVal xmedicam As String, ByVal xpot As String,
ByVal xlab As String, ByVal xunimed As String, ByVal xpres As String)
cn.Open()
Try
cmd.CommandText = "INSERT INTO FMEDICAMENTO VALUES ('" & xcod & "','" & xmedicam & "','" &
xpot & "','" & xlab & "','" & xunimed & "','" & xpres & "')"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Guardado", MsgBoxStyle.Information, "Mensaje")
Catch ex As Exception
MsgBox("No se pudo guardar registro, porfabor verifique sus datos", MsgBoxStyle.Critical, "E R R
O R")
End Try
cn.Close()
End Sub
Public Sub Buscar_(ByVal XCODIGO As String)
cn.Open()
dt.Clear()
cmd.CommandText = "SELECT
FMED.cod_fmed,MED.medicamento,POT.potencia,LAB.laboratorio,UMED.unidadmed,PRES.presentacio
n FROM MEDICAMENTO MED,POTENCIA POT,LABORATORIO LAB,UNIDADES_MEDIDA
UMED,PRESENTACION PRES,FMEDICAMENTO FMED WHERE MED.cod_med=FMED.cod_med and
POT.cod_pot=FMED.cod_pot and LAB.cod_lab=FMED.cod_lab and UMED.cod_unid=FMED.cod_unid
AND PRES.cod_pres=FMED.cod_pres and FMED.COD_FMED= '" & XCODIGO & "' "
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(dt)
If dt.Rows.Count = 0 Then
MsgBox("Codigo No Existe")
Else
medicam = dt.Rows(0).Item("medicamento")
pot = dt.Rows(0).Item("potencia")
lab = dt.Rows(0).Item("laboratorio")
unimed = dt.Rows(0).Item("unidadmed")
pres = dt.Rows(0).Item("presentacion")
End If
cn.Close()
End Sub
Public Sub Actualizar_(ByVal xcod As String, ByVal xmedicam As String, ByVal xpot As String,
ByVal xlab As String, ByVal xunimed As String, ByVal xpres As String)
cn.Open()
cmd.CommandText = "update FMEDICAMENTO set cod_med='" & xmedicam & "',cod_pot='" & xpot &
"',cod_lab='" & xlab & "',cod_unid='" & xunimed & "',cod_pres='" & xpres & "' where cod_fmed='" & xcod &
"'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Modificado")
cn.Close()
End Sub
End Class
131
Ckardek
Imports formulario = System.Windows.Forms
Imports INKAFARMA.CKardex
Public Class CKardex
Inherits CConexion
Private xcod As String
Private xfecha As String
Private xfmed As String
Private xprecio As Decimal
Private xstock As Integer
Public Property cod() As String
Get
Return xcod
End Get
Set(ByVal value As String)
xcod = value
End Set
End Property
Public Property fecha() As String
Get
Return xfecha
End Get
Set(ByVal value As String)
xfecha = value
End Set
End Property
Public Property fmed() As String
Get
Return xfmed
End Get
Set(ByVal value As String)
xfmed = value
End Set
End Property
Public Property precio() As Double
Get
Return xprecio
End Get
Set(ByVal value As Double)
xprecio = value
End Set
End Property
Public Property stock() As Integer
Get
Return xstock
End Get
Set(ByVal value As Integer)
xstock = value
End Set
End Property
Public Sub Guardar_(ByVal xcod As String, ByVal xfecha As String, ByVal xfmed As String, ByVal
xprecio As Double, ByVal xstock As Integer)
132
cn.Open()
Try
cmd.CommandText = "INSERT INTO FICHA_KARDEX VALUES ('" & xcod & "','" & CDate(xfecha) & "','" &
xfmed & "','" & Val(xprecio) & "','" & xstock & "')"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Guardado", MsgBoxStyle.Information, "Mensaje")
Catch ex As Exception
MsgBox("No se pudo guardar registro, porfabor verifique sus datos", MsgBoxStyle.Critical, "E R R
O R")
End Try
cn.Close()
End Sub
Public Sub Buscar_(ByVal XCODIGO As String)
cn.Open()
dt.Clear()
cmd.CommandText = "SELECT * FROM FICHA_KARDEX WHERE COD_f='" & XCODIGO & "' "
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(dt)
If dt.Rows.Count = 0 Then
MsgBox("Codigo No Existe")
Else
cod = dt.Rows(0).Item("cod_f")
fecha = dt.Rows(0).Item("fecha_f")
fmed = dt.Rows(0).Item("cod_fmed")
precio = dt.Rows(0).Item("costo")
stock = dt.Rows(0).Item("stock")
End If
cn.Close()
End Sub
Public Sub Actualizar_(ByVal xcod As String, ByVal xfecha As String, ByVal xfmed As String,
ByVal xprecio As Decimal, ByVal xstock As Integer)
cn.Open()
Try
cmd.CommandText = "update FICHA_KARDEX set fecha_f='" & CDate(xfecha) & "',cod_fmed='" &
xfmed & "',costo='" & Val(xprecio) & "',stock='" & xstock & "' where cod_f='" & xcod & "'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Modificado")
Catch ex As Exception
MsgBox("Nose pudo actualizar los datos", MsgBoxStyle.Critical, "ERROR")
End Try
cn.Close()
End Sub
End Class
COrden_Compra:
133
134
Get
Return xobs_ord
End Get
Set(ByVal value As String)
xobs_ord = value
End Set
End Property
Public Property stot_ord() As Double
Get
Return xstot_ord
End Get
Set(ByVal value As Double)
xstot_ord = value
End Set
End Property
Public Property igv_ord() As Double
Get
Return xigv_ord
End Get
Set(ByVal value As Double)
xigv_ord = value
End Set
End Property
Public Property tot_ord() As Double
Get
Return xtot_ord
End Get
Set(ByVal value As Double)
xtot_ord = value
End Set
End Property
Sub agregar_linea(ByVal CODIGO As String, ByVal PRODUCTO As String, ByVal PRECIO As
Double, ByVal CANTIDAD As Integer)
cn.Open()
Try
Dim IMPORTE = Math.Round(Val(PRECIO) * Val(CANTIDAD), 2)
cmd.CommandText = "insert into DETALLE values ('" & CODIGO & "','" & PRODUCTO & "','" & PRECIO &
"','" & CANTIDAD & "','" & IMPORTE & "') "
cmd.Connection = cn
cmd.ExecuteNonQuery()
subtotal = Math.Round((PRECIO * CANTIDAD), 2)
stot_ord = Math.Round(stot_ord + subtotal, 2)
igv_ord = Math.Round(stot_ord * 0.19, 2)
tot_ord = Math.Round(stot_ord + igv_ord, 2)
Catch ex As Exception
MsgBox("Verificar datos, vuelva a intentarlo ", MsgBoxStyle.Critical, "ERROR")
End Try
cn.Close()
End Sub
Sub Quitar_Linea(ByVal codi As String)
cn.Open()
Try
135
cmd.CommandText = "delete from DETALLE where CODIGO='" & Trim(codi) & "'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
'CALCULOS_
Catch ex As Exception
MsgBox("Verificar datos, vuelva a intentarlo ", MsgBoxStyle.Critical, "ERROR")
End Try
cn.Close()
End Sub
Sub Guardar_(ByVal xnum_ord As String, ByVal xcod_tdoc As String, ByVal xfecha_ord As String,
ByVal xcod_prov As String, ByVal xcod_ealm As String, ByVal xobs_ord As String, ByVal
xstot_ord As Double, ByVal xigv_ord As Double, ByVal xtot_ord As Double)
'TABLA FACTURA -------------------cn.Open()
Try
cmd.CommandText = "INSERT INTO ORDEN_COMPRA VALUES('" & xnum_ord & "', '" & xcod_tdoc &
"','" & CDate(xfecha_ord) & "','" & xcod_prov & "','" & xcod_ealm & "' ,'" & xobs_ord & "' ,'" & xstot_ord &
"','" & Val(xigv_ord) & "','" & Val(xtot_ord) & "' )"
cmd.Connection = cn
cmd.ExecuteNonQuery()
cn.Close()
'TABLA DETALLE --------------------Dim n As Integer = 0
cn.Open()
ds.Tables.Clear()
cmd.CommandText = "Select * from DETALLE"
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(ds, "DETALLE")
For n = 0 To ds.Tables("DETALLE").Rows.Count - 1
Dim codf = ds.Tables("DETALLE").Rows(n).Item(0)
Dim cant = ds.Tables("DETALLE").Rows(n).Item(3)
Dim importe = ds.Tables("DETALLE").Rows(n).Item(4)
'------------------------------------------------cmd.CommandText = "Insert into detalle_ocompra values ('" & xnum_ord & "','" & codf & "','" & Val(cant) &
"','" & Val(importe) & "')"
cmd.Connection = cn
cmd.ExecuteNonQuery()
Next
'------------------------------------------------------------MsgBox("Registro Guardado", MsgBoxStyle.Information, "Mensaje")
Catch ex As Exception
MsgBox("No se pudo guardar registro, porfabor verifique sus datos", MsgBoxStyle.Critical, "E R R O R")
End Try
cn.Close()
End Sub
Sub NUEVO()
cn.Open()
cmd.CommandText = "delete from DETALLE"
cmd.Connection = cn
cmd.ExecuteNonQuery()
cn.Close()
136
End Sub
End Class
CTDocumento:
Imports formulario = System.Windows.Forms
Public Class CTDocumento
Inherits CConexion
Private xcod_tdoc As String
PUBLIC xdocumento As String
Public Property cod_tdoc() As String
Get
Return xcod_tdoc
End Get
Set(ByVal value As String)
xcod_tdoc = value
End Set
End Property
Public Property documento() As String
Get
Return xdocumento
End Get
Set(ByVal value As String)
xdocumento = value
End Set
End Property
Public Sub Guardar_(ByVal xcod_tdoc As String, ByVal xdocumento As String)
cn.Open()
Try
cmd.CommandText = "INSERT INTO TDOCUMENTO VALUES ('" & xcod_tdoc & "','" & xdocumento & "')"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Guardado", MsgBoxStyle.Information, "Mensaje")
Catch ex As Exception
MsgBox("No se pudo guardar registro, porfabor verifique sus datos", MsgBoxStyle.Critical, "E R R O R")
End Try
cn.Close()
End Sub
Public Sub Buscar_(ByVal xcod_tdoc As String)
cn.Open()
dt.Clear()
cmd.CommandText = "SELECT * FROM TDOCUMENTO WHERE COD_TDOC='" & xcod_tdoc & "' OR
DOCUMENTO='" & xcod_tdoc & "'"
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(dt)
If dt.Rows.Count = 0 Then
MsgBox("Codigo No Existe")
Else
137
cod_tdoc = dt.Rows(0).Item("cod_tdoc")
documento = dt.Rows(0).Item("documento")
End If
cn.Close()
End Sub
Public Sub Actualizar_(ByVal xcod_tdoc As String, ByVal xdocumento As String)
cn.Open()
cmd.CommandText = "UPDATE TDOCUMENTO SET documento='" & xdocumento & "'where
cod_tdoc='" & xcod_tdoc & "'"
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Modificado")
cn.Close()
End Sub
End Class
Las otras clases debern ser elaboradas por Ud.
REUTILIZABLES
RBUSCAR
Imports formulario = System.Windows.Forms
Public Class RBuscar
Inherits CConexion
Sub BUSCAR_(ByVal SQL As String)
cn.Open()
dt.Clear()
cmd.CommandText = SQL
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(dt)
If dt.Rows.Count = 0 Then
MsgBox("Codigo No Existe")
Else
' cod_ealm = dt.Rows(0).Item("cod_ealm")
End If
cn.Close()
End Sub
End Class
RCODIGO
Imports formulario = System.Windows.Forms
Public Class RCodigo
Inherits CConexion
Private XCODIGO As String
Public Property CODIGO() As String
Get
Return XCODIGO
138
End Get
Set(ByVal value As String)
XCODIGO = value
End Set
End Property
Public Sub GCodigo(ByVal campo As String, ByVal tabla As String, ByVal ini As String)
cn.Open()
dt.Clear()
cmd.CommandText = "SELECT DISTINCT " + "MAX" + "(" + campo + ")" + " as xx " + " FROM " +
tabla
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(dt)
Dim cod
cod = Right(dt.Rows(0).Item("XX"), 5)
XCODIGO = ini + Right("00000" + Right(Int(cod) + 1, 5), 5)
cn.Close()
End Sub
End Class
RCOMBO
Imports formulario = System.Windows.Forms
Public Class RCombo
Inherits CConexion
Public Sub CCombo(ByVal C As formulario.ComboBox, ByVal campo As String, ByVal tabla As
String)
Dim n As Integer
C.Items.Clear()
ds.Tables.Clear()
cn.Open()
cmd.CommandText = "SELECT DISTINCT " + campo + " FROM " + tabla
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(ds, "XXX")
For n = 0 To ds.Tables("XXX").Rows.Count - 1
C.Items.Add(ds.Tables("XXX").Rows(n).Item(0))
Next
cn.Close()
End Sub
End Class
RELIMINAR
Public Class REliminar
Inherits CConexion
Public Sub Eliminar(ByVal campo As String, ByVal tabla As String, ByVal XCODIGO As String)
cn.Open()
Try
cmd.CommandText = "DELETE FROM " & tabla & " WHERE " & campo & "=" & XCODIGO
cmd.Connection = cn
cmd.ExecuteNonQuery()
MsgBox("Registro Eliminado", MsgBoxStyle.Information, "Mensaje")
Catch ex As Exception
139
MsgBox("No se pudo eliminar registro, porfabor verifique sus datos", MsgBoxStyle.Critical, "E R R
O R")
End Try
cn.Close()
End Sub
End Class
RMOSTRAR
Imports INKAFARMA.RMostrar
Imports formulario = System.Windows.Forms
Public Class RMostrar
Inherits CConexion
Public Sub Mostrar_(ByVal GV As formulario.DataGridView, ByVal campo As String, ByVal tabla As
String)
cn.Open()
ds.Tables.Clear()
cmd.CommandText = "SELECT DISTINCT " + campo + " FROM " + tabla
cmd.Connection = cn
da.SelectCommand = cmd
da.Fill(ds)
dv = New DataView(ds.Tables(0))
GV.DataSource = dv
cn.Close()
End Sub
End Class
RNUEVO
Public Class RNuevo
Inherits CConexion
Public Sub BLANCO(ByVal ff As Form)
Dim ctrl As Object
For Each ctrl In ff.Controls
If TypeOf ctrl Is TextBox Then
ctrl.Text = ""
End If
If TypeOf ctrl Is ComboBox Then
ctrl.Text = ""
End If
Next
End Sub
End Class
140
FORMULARIOS
Me.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
141
End If
End Sub
Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
Me.Close()
End Sub
End Class
Pas
Kardek :
Cliente
Proveedor
Empleado
Medida
Ficha Artesana
Tipo de Documento
Artesana
Presentacin
Venta :
Factura
Compra
Orden
Compra
142
Reporte
Factura
Sub MOSTRAR()
143
CLI.Buscar_(TextBox1.Text)
TextBox2.Text = CLI.pat_cli
TextBox3.Text = CLI.mat_cli
TextBox4.Text = CLI.nom_cli
ComboBox1.Text = CLI.cod_dis
TextBox5.Text = CLI.dir_cli
TextBox6.Text = CLI.telef_cli
If CLI.tipo_cli = "NATURAL" Then RadioButton1.Checked = True
If CLI.tipo_cli = "JURIDICO" Then RadioButton2.Checked = True
TextBox7.Text = CLI.ruc_cli
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
RNUEVO.BLANCO(Me)
RCODIGO.GCodigo("cod_cli", "CLIENTE", "")
144
TextBox1.Text = RCODIGO.CODIGO
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button5.Click
Dim APNOM = TextBox2.Text & " " & TextBox3.Text & ", " & TextBox4.Text
If RadioButton1.Checked = True Then ESTADO = "NATURAL"
If RadioButton2.Checked = True Then ESTADO = "JURIDICO"
CLI.Guardar_(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, APNOM, DISTRITO,
TextBox5.Text, TextBox6.Text, ESTADO, TextBox7.Text)
Call MOSTRAR()
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
DIS.Buscar_(ComboBox1.Text)
DISTRITO = DIS.cod_dis
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click
Dim APNOM = TextBox2.Text & " " & TextBox3.Text & ", " & TextBox4.Text
If RadioButton1.Checked = True Then ESTADO = "NATURAL"
If RadioButton2.Checked = True Then ESTADO = "JURIDICO"
CLI.Actualizar_(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, APNOM,
DISTRITO, TextBox5.Text, TextBox6.Text, ESTADO, TextBox7.Text)
Call MOSTRAR()
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button6.Click
145
Me.Close()
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles RadioButton2.CheckedChanged
146
with datagridview1
.columns(0).headertext = "numero"
.columns(0).width = 60
.columns(1).headertext = "fecha"
.columns(1).width = 70
.columns(2).headertext = "cliente"
.columns(2).width = 250
.columns(3).headertext = "empleado"
.columns(3).width = 250
.columns(4).headertext = "total"
.columns(4).width = 60
end with
End Sub
Private Sub COSULTA_FACTURA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
147
rmostrar.mostrar_(datagridview1, "fac.num_fac,fac.fecha_fac,cli.apnom_cli,emp.apnom_emp,
fac.tot_fac", "factura fac,cliente cli,empleado emp where cli.cod_cli=fac.cod_cli and
emp.cod_emp=fac.cod_emp and cli.apnom_cli= '" & combobox1.text & "'")
call mostrar()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
RMOSTRAR.Mostrar_(DataGridView1, "fac.num_fac,fac.fecha_fac
,cli.apnom_cli,emp.apnom_emp,
148
Mantenimiento de PAIS
Call MOSTRAR()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
RNUEVO.BLANCO(Me)
RCODIGO.GCodigo("cod_dis", "DISTRITO", "")
TextBox1.Text = RCODIGO.CODIGO
149
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click
DIS.Guardar_(TextBox1.Text, TextBox2.Text)
Call MOSTRAR()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
DIS.Buscar_(TextBox1.Text)
TextBox2.Text = DIS.distrito
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click
DIS.Actualizar_(TextBox1.Text, TextBox2.Text)
Call MOSTRAR()
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button5.Click
Me.Close()
End Sub
End Class
150
RMOSTRAR.Mostrar_(DataGridView1, "EMP.cod_emp,EMP.apnom_emp,DIS.distrito",
"EMPLEADO EMP,DISTRITO DIS where DIS.cod_dis=EMP.cod_dis")
End Sub
Private Sub EMPLEADO_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
151
Call MOSTRAR()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
EMPL.Buscar_(TextBox1.Text)
TextBox2.Text = EMPL.pat_emp
TextBox3.Text = EMPL.mat_emp
TextBox4.Text = EMPL.nom_emp
ComboBox1.Text = EMPL.cod_dis
TextBox5.Text = EMPL.dir_emp
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button2.Click
RNUEVO.BLANCO(Me)
RCODIGO.GCodigo("cod_emp", "EMPLEADO", "")
TextBox1.Text = RCODIGO.CODIGO
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click
Dim APNOM = TextBox2.Text & " " & TextBox3.Text & ", " & TextBox4.Text
EMPL.Guardar_(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, APNOM,
DISTRITO, TextBox5.Text)
Call MOSTRAR()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click
Dim APNOM = TextBox2.Text & " " & TextBox3.Text & ", " & TextBox4.Text
EMPL.Actualizar_(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, APNOM,
DISTRITO, TextBox5.Text)
Call MOSTRAR()
End Sub
152
Me.Close()
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
DIS.Buscar_(ComboBox1.Text)
DISTRITO = DIS.cod_dis
End Sub
End Class
Crear la ventana de
FACTURACION:
153
Imports System.Data
Imports System.Data.SqlClient
Public Class FACTURA
'-------------------------
RMOS.Mostrar_(DataGridView1, "CODIGO,PRODUCTO,PRECIO,CANTIDAD,IMPORTE",
"DETALLE")
With DataGridView1
154
.Columns(0).HeaderText = "Codigo"
.Columns(0).Width = 60
.Columns(1).HeaderText = "Producto"
.Columns(1).Width = 255
.Columns(2).HeaderText = "Precio"
.Columns(2).Width = 70
.Columns(3).HeaderText = "Cantidad"
.Columns(3).Width = 70
.Columns(4).HeaderText = "Importe"
.Columns(4).Width = 70
End With
End Sub
Private Sub FACTURA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
KARDEX.Buscar_(ComboBox3.Text)
TextBox3.Text = KARDEX.precio
TextBox4.Text = KARDEX.stock
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click
155
NU.BLANCO(Me)
RGCOD.GCodigo("num_fac", "FACTURA", "000")
TextBox1.Text = RGCOD.CODIGO
TextBox7.Text = Format(Val(0), "###,###,##0.00")
TextBox8.Text = Format(Val(0), "###,###,##0.00")
TextBox9.Text = Format(Val(0), "###,###,##0.00")
FAC.NUEVO()
Call VER()
ComboBox1.Text = ""
ComboBox2.Text = ""
ComboBox3.Text = ""
ComboBox4.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox6.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
End Sub
Private Sub ComboBox3_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox3.SelectedIndexChanged
MED.Buscar_(ComboBox3.Text)
156
TextBox3.Text = Math.Round(MED.precio, 2)
TextBox4.Text = MED.stock
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim aa As String
Try
aa = DataGridView1.CurrentCell.Value
FAC.quitar_linea(aa)
Catch ex As Exception
MsgBox("No hay Productos", MsgBoxStyle.Exclamation, "Mensaje")
End Try
Call VER()
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
TDOC.Buscar_(ComboBox1.Text)
157
XCOD_TDOC = TDOC.cod_tdoc
End Sub
Private Sub ComboBox2_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox2.SelectedIndexChanged
CLI.Buscar_(ComboBox2.Text)
XCOD_CLI = CLI.cod_cli
TextBox10.Text = CLI.ruc_cli
TextBox11.Text = CLI.dir_cli
TextBox12.Text = CLI.telef_cli
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button8.Click
Me.Close()
End Sub
Private Sub ComboBox4_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox4.SelectedIndexChanged
EMP.Buscar_(ComboBox4.Text)
XCOD_EMP = EMP.cod_emp
End Sub
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
Dim aa As String
Try
aa = DataGridView1.CurrentCell.Value
FAC.quitar_linea(aa)
Catch ex As Exception
MsgBox("No hay Productos", MsgBoxStyle.Exclamation, "Mensaje")
End Try
Call VER()
End Sub
End Class
158
Imports INKAFARMA.FKARDEX
Public Class FKARDEX
159
RNUEVO.BLANCO(Me)
RNUEVO.BLANCO(Me)
RNUEVO.BLANCO(Me)
RCODIGO.GCodigo("cod_f", "FICHA_KARDEX", "")
TextBox1.Text = RCODIGO.CODIGO
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click
Me.Close()
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button5.Click
FMED.Buscar_(ComboBox1.Text)
TextBox2.Text = FMED.medicam
160
'TextBox3.Text = FMED.lab
TextBox4.Text = FMED.pres
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
KARDEX.Buscar_(TextBox1.Text)
DateTimePicker1.Text = KARDEX.fecha
ComboBox1.Text = KARDEX.fmed
FMED.Buscar_(ComboBox1.Text)
TextBox2.Text = FMED.medicam
' TextBox3.Text = FMED.lab
TextBox4.Text = FMED.pres
TextBox3.Text = KARDEX.precio
TextBox7.Text = KARDEX.stock
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click
TAREA:
Crear los Siguientes Mantenimientos:
Laboratorio
161
Artesana
Medida
Presentacin
162
Tipo
Documento
Proveedor
Orden de Compra
163
164
RMOS.Mostrar_(DataGridView1, "CODIGO,PRODUCTO,PRECIO,CANTIDAD,IMPORTE",
"DETALLE")
With DataGridView1
.Columns(0).HeaderText = "Codigo"
.Columns(0).Width = 60
.Columns(1).HeaderText = "Producto"
.Columns(1).Width = 255
.Columns(2).HeaderText = "Precio"
.Columns(2).Width = 70
.Columns(3).HeaderText = "Cantidad"
.Columns(3).Width = 70
.Columns(4).HeaderText = "Importe"
.Columns(4).Width = 70
End With
End Sub
Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox2.SelectedIndexChanged
PROV.Buscar_(ComboBox2.Text)
XCOD_PROV = PROV.cod
TextBox10.Text = PROV.ruc
TextBox11.Text = PROV.dir
TextBox12.Text = PROV.telef
165
End Sub
Private Sub ORDEN_COMPRA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
KARDEX.Buscar_(ComboBox3.Text)
TextBox3.Text = KARDEX.precio
TextBox4.Text = KARDEX.stock
FMED.Buscar_(KARDEX.fmed)
TextBox2.Text = FMED.XCOD_
TextBox5.Text = FMED.pres
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click
NU.BLANCO(Me)
RGCOD.GCodigo("num_ord", "ORDEN_COMPRA", "000")
TextBox1.Text = RGCOD.CODIGO
TextBox7.Text = Format(Val(0), "###,###,##0.00")
TextBox8.Text = Format(Val(0), "###,###,##0.00")
TextBox9.Text = Format(Val(0), "###,###,##0.00")
Call MOSTRAR()
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button8.Click
Me.Close()
End Sub
166
Dim aa As String
Try
aa = DataGridView1.CurrentCell.Value
ORD.quitar_linea(aa)
TextBox7.Text = Format(Val(ORD.Ostot_ord), "###,###,##0.00")
TextBox8.Text = Format(Val(ORD.Oigv_ord), "###,###,##0.00")
TextBox9.Text = Format(Val(ORD.Otot_ord), "###,###,##0.00")
Catch ex As Exception
MsgBox("No hay Productos", MsgBoxStyle.Exclamation, "Mensaje")
End Try
Call MOSTRAR()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button4.Click
167
Else
ORD.Guardar_(TextBox1.Text, XCOD_TDOC, DateTimePicker1.Text, XCOD_PROV,
XCOD_EALM, TextBox13.Text, Val(TextBox7.Text), Val(TextBox8.Text), Val(TextBox9.Text))
MOSTRAR()
End If
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
TDOC.Buscar_(ComboBox1.Text)
XCOD_TDOC = TDOC.cod_tdoc
End Sub
Private Sub GroupBox3_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
GroupBox3.Enter
End Sub
Private Sub ComboBox4_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ComboBox4.SelectedIndexChanged
EAL.Buscar_(ComboBox4.Text)
XCOD_EALM = EAL.cod_ealm
End Sub
End Class
168