Download - SISTEMA DE VENDEDORES(MODIFICADO).docx
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 1 -
Su sistema sencillo debe tener las siguientes característicasMínimo dos tablas que se relacionanMínimo tres formularios, (un formulario MDI)Debe tener actualizaciones, consultas, filtros y reportes si es posibles gráficosPresentar informe en Word y en visual básico 2008 en Cd y un informe en un folder máximo 8 páginas Pueden presentar en grupo hasta de 3 alumnosA continuación se presenta un modelo de trabajo de un sistema de ventas sencillo
SISTEMA DE VENDEDORES TRABAJO DE BASE DE DATOS1. Cree las siguientes tablas
TABLA VENDEDORESCODVENDEDOR
NOMBRE
1 JUAN2 PEDRO3 LUIS
4CARLOS
5 MARIA
TABLA VENTASIDVENTAS FECHA
CODVENDEDOR
MONTO DISTRITO
101/01/2009 1 1000
PAUCARPATA
201/01/2009 2 2000 CERCADO
301/01/2009 3 3000 HUNTER
401/01/2009 4 4000
MIRAFLORES
501/01/2009 5 5000
PAUCARPATA
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 2 -
601/02/2009 1 6000 CERCADO
701/02/2009 2 7000 HUNTER
801/02/2009 1 100 CERCADO
El sistema tiene la siguiente estructura
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 3 -
En este caso son 4 formularios, un modulo, dos dataset, Dos Cristal report y una base de datos con dos tablas
Los diseños de los formularios son lo siguienteFormulario frmprincipal
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 4 -
FrmMantenimiento
Algunas salidas
El reporte
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 5 -
CODIGO DEL FORMULARIO 1Imports System.Data.SqlClientPublic Class FrmPrincipal
Private Sub VendedoresToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VendedoresToolStripMenuItem.Click frmMantenimiento.Show() End Sub
Private Sub SalirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SalirToolStripMenuItem.Click End End Sub
Private Sub VendedoresToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VendedoresToolStripMenuItem1.Click frmConsultas.Show() frmConsultas.Text = "CONSULTA SOBRE VENDEDORES" dst.Tables.Clear() CadenaSQl = "select * from vendedores" dap.SelectCommand.CommandText = CadenaSQL dap.Fill(dst, "CONSULTA") frmConsultas.DataGridView1.DataSource = dst.Tables(0) End Sub
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 6 -
Private Sub VentasToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VentasToolStripMenuItem1.Click frmConsultas.Show() frmConsultas.Text = "CONSULTA SOBRE VENTAS" dst.Tables.Clear() CadenaSQl = "select * from ventas" dap.SelectCommand.CommandText = CadenaSQl dap.Fill(dst, "CONSULTA") frmConsultas.DataGridView1.DataSource = dst.Tables(0) End Sub
Private Sub VendedoresVentasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VendedoresVentasToolStripMenuItem.Click Dim codigo As String frmConsultas.Show() frmConsultas.Text = "CONSULTA SOBRE VENDEDOR VENTAS" dst.Tables.Clear() codigo = InputBox("ingrese codigo del vendedor", "ingreso", "V1") CadenaSQl = "Select * From Ventas where codvendedor = '" & codigo & "'" dap.SelectCommand.CommandText = CadenaSQl dap.Fill(dst, "CONSULTA") frmConsultas.DataGridView1.DataSource = dst.Tables(0) End Sub
Private Sub VentasDistritoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VentasDistritoToolStripMenuItem.Click Dim Distrito As String frmConsultas.Show() frmConsultas.Text = "CONSULTA SOBRE VENTAS DISTRITO" dst.Tables.Clear() Distrito = InputBox("ingrese nombre del distrito", "ingreso", "PAUCARPATA") CadenaSQl = "Select * From Ventas where DISTRITO = '" & Distrito & "'" dap.SelectCommand.CommandText = CadenaSQl dap.Fill(dst, "CONSULTA") frmConsultas.DataGridView1.DataSource = dst.Tables(0) End Sub
Private Sub VendedoresToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VendedoresToolStripMenuItem2.Click frmreporte.Show() frmConsultas.Text = "INFORME DE VENDEDORES" SqlDataAdapter1.Fill(DataSetVendedores1, "vendedores") Dim rpt As New CrystalReport1 rpt.SetDataSource(DataSetVendedores1) frmreporte.CrystalReportViewer1.ReportSource = rpt End Sub
Private Sub VentasToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VentasToolStripMenuItem2.Click frmreporte.Show()
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 7 -
frmConsultas.Text = "CONSULTA SOBRE VENTAS DISTRITO" SqlDataAdapter2.Fill(DataSetventas1, "ventas") Dim rpt As New CrystalReport2 rpt.SetDataSource(DataSetventas1) frmreporte.CrystalReportViewer1.ReportSource = rpt End SubEnd Class
CODIGO DEL FORMULARIO FRMMANTENIMIENTO
Imports System.Data.SqlClientPublic Class frmMantenimiento Inherits System.Windows.Forms.Form Dim fila As DataRow Private WithEvents cmr As CurrencyManager Private Sub CargarDatos(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load dap.SelectCommand.CommandText = "Select codvendedor,nombre From vendedores" dap.Fill(dst, "VENDEDORES") DataGridView1.DataSource = dst.Tables(0) EnlazarDatos() Label3.Text = cmr.Position + 1 & " de " & cmr.Count End Sub
Private Sub MostrarVendedor() TextBox1.Text = dst.Tables(0).Rows(pos).Item(0) TextBox2.Text = dst.Tables(0).Rows(pos).Item(1) End Sub
Private Sub MostrarDetalle(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click, btnEditar.Click, BtnEliminar.Click pos = DataGridView1.CurrentCell.RowIndex opera = sender.Tag Select Case opera Case 1 Me.Text = "Adicionar un vendedor" GroupBox1.Enabled = True LImpiarTextos() Case 2 Me.Text = "Actualizar VENDEDOR" GroupBox1.Enabled = True MostrarVendedor() Case 3 Me.Text = "Eliminar un VENDEDOR" GroupBox1.Enabled = True MostrarVendedor() End Select End Sub
Private Sub BtnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEnviar.Click
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 8 -
dap.SelectCommand.CommandText = "Select * FROM VENDEDORES" Dim cbd As New SqlCommandBuilder(dap) dap.Update(dst, "VENDEDORES") MessageBox.Show("Operacion Realizada", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub
Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click GroupBox1.Enabled = False GroupBox2.Enabled = True End Sub Private Sub LImpiarTextos() TextBox1.Clear() TextBox2.Clear() End Sub
Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click Dim fila As DataRow Select Case opera Case 1 fila = dst.Tables(0).NewRow fila(0) = TextBox1.Text fila(1) = TextBox2.Text dst.Tables(0).Rows.Add(fila) Case 2 dst.Tables(0).BeginInit() fila = dst.Tables(0).Rows(pos) fila(0) = TextBox1.Text fila(1) = TextBox2.Text dst.Tables(0).EndInit() Case 3 fila = dst.Tables(0).Rows(pos) fila.Delete() End Select GroupBox1.Enabled = False GroupBox2.Enabled = True End Sub
Private Sub EnlazarDatos() TextBox1.DataBindings.Add("Text", dst.Tables(0), "CodVendedor") TextBox2.DataBindings.Add("Text", dst.Tables(0), "Nombre") cmr = Me.BindingContext(dst.Tables(0)) End Sub
Private Sub MoverRegistro(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrimero.Click, btnAnterior.Click, BtnSiguiente.Click, BtnUltimo.Click Select Case sender.Text Case "<<" cmr.Position = 0
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 9 -
Case "<" If cmr.Position > 0 Then cmr.Position = cmr.Position - 1 Case ">" If cmr.Position < cmr.Count - 1 Then cmr.Position = cmr.Position + 1 Case ">>" cmr.Position = cmr.Count - 1 End Select DataGridView1.CurrentCell = DataGridView1(0, cmr.Position) End Sub
Private Sub MostrarPosicion(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmr.PositionChanged Label3.Text = cmr.Position + 1 & " de " & cmr.Count End SubEnd Class
CODIGO DEL MODULOImports System.Data.SqlClientModule Module1 Public dst As New DataSet() Public pos As Integer Public opera As Operacion Public CadenaSQl As String
Public CadenaConexion As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=E:\DATOS\VENTAS.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" Public con As New SqlConnection(CadenaConexion) Public dap As New SqlDataAdapter("Select * FROM VENdedores", con) Public Enum Operacion Nuevo = 1 Editar = 2 Eliminar = 3 End EnumEnd Module
SISTEMA DE ALUMNOS
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 10 -
DISEÑO
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 11 -
CODIGO DEL FORMULARIO 1
Public Class Form1 Inherits System.Windows.Forms.Form
Private Sub ListarAlumno(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load dap.SelectCommand.CommandText = "select * from alumnos" dap.Fill(dst, "ALUMNOS") REM dst.Clear() DataGrid1.DataSource = dst.Tables(0) End Sub
Private Sub MnuAlumno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuAlumno.Click dst.Reset() dap.SelectCommand.CommandText = "select * from alumnos" dap.Fill(dst, "ALUMNOS") DataGrid1.DataSource = dst.Tables(0) End Sub
Private Sub MnuCursos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuCursos.Click dst.Reset()
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 12 -
dap.SelectCommand.CommandText = "select * from Cursos" dap.Fill(dst, "Cursos") DataGrid1.DataSource = dst.Tables(0) End Sub
Private Sub MnuPagos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuPagos.Click dst.Reset() dap.SelectCommand.CommandText = "select * from Pagos" dap.Fill(dst, "Pagos") DataGrid1.DataSource = dst.Tables(0) End Sub
Private Sub MnuPagosPorAlumno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuPagosPorAlumno.Click dst.Reset() dap.SelectCommand.CommandText = "select CodAlumno ,Sum(monto) as Total from Pagos Group by CodAlumno" dap.Fill(dst, "subtotales alumno") DataGrid1.DataSource = dst.Tables(0) End Sub
Private Sub PAGOSPORCURSOToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PAGOSPORCURSOToolStripMenuItem.Click dst.Reset() dap.SelectCommand.CommandText = "select CodCurso ,Sum(monto) as Total from Pagos Group by CodCurso" dap.Fill(dst, "subtotales curso") DataGrid1.DataSource = dst.Tables(0) End Sub
Private Sub PAGOSPORAÑOToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PAGOSPORAÑOToolStripMenuItem.Click dst.Reset() dap.SelectCommand.CommandText = "select year(FechaPago) as año , Sum(monto) as Total from Pagos Group by year(fechapago)" dap.Fill(dst, "subtotales curso") DataGrid1.DataSource = dst.Tables(0) End Sub
Private Sub LSITADOPORCURSOSToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LSITADOPORCURSOSToolStripMenuItem.Click dst.Reset() dap.SelectCommand.CommandText = "select year(FechaPago) as año , Sum(monto) as Total from Pagos Group by year(fechapago)" dap.Fill(dst, "subtotales curso") DataGrid1.DataSource = dst.Tables(0) End Sub
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 13 -
Private Sub MnuListadoPorALumno_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuListadoPorALumno.Click Form2.Show() End SubEnd Class
CODIGO DEL FORMULARIO 2
Public Class Form2 Dim i As Integer Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load dst.Reset() dap.SelectCommand.CommandText = "select * from alumnos" dap.Fill(dst, "alumnos") For i = 0 To dst.Tables(0).Rows.Count - 1 ListBox1.Items.Add(dst.Tables(0).Rows(i).Item(1)) Next i End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged Dim nombre As String, nombre2 As String nombre = TextBox1.Text Dim n As Integer For i = 0 To ListBox1.Items.Count - 1 nombre2 = ListBox1.Items(i) n = InStr(nombre, nombre2) If n > 0 Then ListBox1.SelectedIndex = i Exit For End If Next End SubEnd Class
CODIGO DEL MODULO
Imports System.Data.SqlClientModule Module1 Public CadenaConexion As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=E:\SI2010A\DATOS\ALUMNOS2.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 14 -
Public con As New SqlConnection(CadenaConexion) Public dap As New SqlDataAdapter("", con) Public dst As New DataSet()
End Module
TAREA PARA LOS ALUMNOS DE SISTEMAS DE INFORMACION 2014BA
Cada grupo debe armar su sistema de base de datos en el software que prefiera por ejemplo en Excel, Access, Visual Basic 2005,2008 , SQL server Etc. con preferencia con Visual Basic 2008 o 2010Bajar su sistema y un Pc y demostrarJugar con la base de datos , como realizar consultas, de selección , actualización de datos etc.
EJEMPLO SIMPLE DE BASE DE DATOSSe tiene el sistema Segunda especialidadCompuesto por las siguientes tablas
TABLA ALUMNOS
CODALUMNO NOMBRE FECHANAC SEXO PROFESIONA1 JUAN 01/01/1970 H INGENIERO GEOLOGOA2 KAREN 01/01/1977 M INGENIERO INDUSTRIALA3 CARLOS 01/01/1980 H INGENIERO CIVILA4 JORGE 01/01/1990 H ARQUETECTOA5 MARIA 01/01/1993 M ENFERMERAA6 JORGE 30/04/1980 H PROFESOR
TABLA CURSOS
CODCURSO NOMBRECURSOAD AdmisionM1 Matrícula 1C1 ErgonomiaC2 Gestión de Recursos HumanosC3 Condiciones de SeguridadC4 Salud Ocupacional
TABLA PAGOS
NRO
CODALUMNO
FECHAPAGO TIPO
NRODOC
RUNSA
MONTO
CODCURSO
1 A1 01/04/2007 RECIBO 1 100 100 AD
2 A2 01/12/2007 FACTURA F1 100 100 AD3 A1 01/02/2008 VOUCHER V1 200 200 C14 A3 01/03/2008 RECIBO 2 300 100 AD5 A2 01/02/2009 RECIBO 3 400 200 C2
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 15 -
6 A1 02/04/2009TRANSFERENCIA T1 500 200 C2
7 A4 03/05/2009 FACTURA F2 500 200 AD8 A4 04/08/2009 VOUCHER V2 600 200 C1
TABLA NOTAS
ID
CODALUMNO
CODCURSO
NOTA
FECHAUEVALUACION
COD PROFESOR
1 A1 AD 18 01/04/2007 P12 A1 M1 0 01/12/2007 P13 A1 C1 11 01/02/2008 P14 A2 AD 12 01/03/2008 P25 A2 C1 13 01/02/2009 P26 A2 C4 14 02/04/2009 P37 A3 C1 10 03/05/2009 P48 A4 C2 17 04/02/2010 P5
TABLA PROFESORESCODPROFESOR
NOMBREPROFESOR PROFESION
PROCEDENCIA
P1 GOMEZ INGENIERO CIVIL AREQUIPA
P2 RIOSINGENIERO DE SEGURIDAD LIMA
P3 PEREZ MEDICO AREQUIPAP4 LOPEZ MINAS TACNAP5 TORRES INGENIERO INDUSTRIAL PUNO
ID FECHA MOTIVO MONTO COD CURSO1 01/01/2006 Pago profesores 100 C12 02/02/2007 pago proveedores 150 C13 02/03/2008 pago Profesores 500 C24 02/04/2009 Gastos varios 300 C4
Su base de datos podría tener las siguientes consultas
LISTADOSListar la tabla alumnos
Listar la tabla alumnos con todos los campos Listar la tabla alumnos que aparezcan solo los campos, codalumno , nombre y ordenado por nombre
Listar la tabla CursosListar la tabla pagos Listar todos los registros
Que aparezca solamente el código del alumno y el monto y ordenado por montoListar la tabla notasListar la tabla Profesores
Todos los registros
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 16 -
Solo código del profesor y NombreListar la tabla egresos
Todos los camposSolo los campos fecha y monto
Listar la tablas , por todos los campos, solo los campos deseados, ordenado por algún campo,
FILTRADOSTABLA ALUMNOS
Listar la relación de IngenierosListar la relación de mujeresListar todos los varones mayores a 25 añosListar todos los alumnos que cuyo nombre comienza con PListar los alumnos que pagaron mas de 1000 soles
TABLA CURSOSListar todos los cursos que contienen el texto “Salud”
TABLA PAGOS Listar todos los alumnos que pagaron con recibo Listar todos los registros cuyo pago es mayor a 200Listar todos los registros dado el código del alumnoListar los registros en la tabla pagos dado el código del cursoListar los registros generados en un año dadoListar los registros generados en un mes dadoListar los registros dado un intervalo de dos fechas
TABLA NOTASListar todos los alumnos aprobadosListar las notas dado el código de un alumnoListar las notas dado el código del cursoElaborar un listado dado una fecha de evaluación y curso(planilla de notas)Elaborar un listado del tercio superior
TABLA PROFESORESElaborar un listado de profesores procedentes de LIMAElaborar un listado de Profesores cuyo nombre contenga contiene la palabra “TORRES”
TABLA EGRESOS
Listado de tabla egresosListado de tabla de egreso por fecha
SUBTOTALES
TABLA NOMBRESCantidad de registros de la tabla nombresCantidad de mujeresCantidad de varones mayores de 25 añosCantidad de IngenierosSubtotales por profesión
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 17 -
Cantidad de alumnos por año
TABLA CURSOSCantidad de registros de la tabla cursos
TABLA PAGOSCantidad de registros de la tabla pagosSubtotales por tipo de pagoSubtotales por alumnoSubtotales por cursoSubtotales por añoCantidad de pagos por añoPromedio de pagos por cursoPromedio de pagos por alumnos
TABLA NOTASSubtotales de cantidad de aprobados y desaprobados y porcentajePromedio de notas por cursoMostrar el código del alumno que tiene la mas alta notaMostrar el código del curso donde esta la minima notaMostra el nombre del alumno que tiene la mas alta nota
TABLA PROFESORESCantidad de profesoresSubtotales de profesores por profesiónSubtotales de profesores por procedenciaCuantos profesores son de LIMA FILTROS EN VARIAS TABLAS
Dado el nombre de un alumno que muestre sus notasDado el nombre del alumno que muestre sus pagosDado el nombre del curso que liste la cantidad de alumnos que llevaron el curso y cuanto pagaronElaborar un listado donde figure el código del alumno, el nombre del alumno , y total de sus pagosDado el nombre del profesor que liste en que cursos ha enseñado
CUADRICULASCuadricula de notas de alumnos cursosCuadricula de pagos años mesesCuadriculas de pagos alumnos mesesDado el nombre del alumno elaborar una cuadricula que muestre sus pagos año mesCuadricula alumno y tipo de pagoCuadricula de año tipo de pagoCantidad y total de pagos por añosCantidad y total de pagos por alumnoSubtotal alumnos – pagosElabore unión de tablas
OTROS
Modelo de sistema sencillo usando Visual Basic 2012\Ismael Véliz Vilca - 18 -
Encontrar la edad de los alumnos en la tabla Nombres
SELECT CODALUMNO,NOMBRE ,FECHANAC, (NOW-FECHANAC)/365.24219879 AS EDAD FROM [ALUMNOS$]
Listado de alumnos que no pagaronDado el código del alumno , elaborar un listado de sus notas y sus pagosListado de alumnos que no tienen notasListar alumnos que cuya ultima fecha de pago es mas de dos añosElaborar balance por añosBalance por cursoSaldos de alumnosPermanencia de alumno en la especialidadultima fecha que aparece el nombre del alumnoListar los alumnos por años ( en la tabla pagos)
CONSULTAS DE ACTUALIZACIONAdicionar un nuevo registros a la tabla alumnosAdicionar un nuevo registros a la CursosActualizar los pagosEliminar un registro de la tabla notasEliminar todos los registros de la tabla notas de alumnos que no pagaronAumentar el pago de profesores en un 10 %