Está en la página 1de 43

ESCUELA DE INGENIERÍA DE SISTEMAS

INFORME FINAL

AUTOR

EDUARDO MARIO RODRIGUEZ ALVAREZ

ASESOR

Dr. RICARDO MENDOZA RIVERA

TRUJILLO – PERÚ

2021
1. INDICE
2. INTRODUCCIÓN.....................................................................................................................3
2.1. Breve historia de la empresa..............................................................................................3
2.2. Problemática actual de la empresa...................................................................................3
3. DESCRIPCION Y ANALISIS DEL ESTUDIO......................................................................3
a. Objetivos de la investigación..................................................................................................3
b. Acerca del proceso del negocio (diagrama: BIZAGI)..........................................................4
c. Modelo de Datos (E – R)........................................................................................................5
d. Implementacion de requerimientos.......................................................................................6
e. Implementar 1 Funcion...........................................................................................................9
f. Implementar 3 Vistas...............................................................................................................9
g. Implementar 2 disparadores.................................................................................................10
h. Implementar Indices..............................................................................................................12
i. Implementar Cursores...........................................................................................................12
j. Implementar 4 interfaces con Visual NET..........................................................................15
4. CONCLUSIONES..................................................................................................................16
5. RECOMENDACIONES.........................................................................................................16
2. INTRODUCCIÓN
2.1. Breve historia de la empresa
El Instituto de Educación Superior Tecnológico Publico “PARCONA", se encuentra
ubicado en la Avenida Jhon F. Kennedy N° 500 en el distrito de PARCONA,
provincia de ICA , oferta a los egresados de Educación Secundaria las
herramientas cognoscitivas y las competencias necesarias para responder a las
demandas del mercado laboral, manteniéndose siempre un paso adelante en
cuanto a otorgar mayores oportunidades profesionales y ventajas competitivas a
nuestros egresados, otorga un Título Profesional Técnico a nombre de la Nación
mediante la formación profesional técnica a través de tres (03) años de estudios.
En este contexto les oferta los Programas de Estudio: Computación e Informática
y Enfermería Técnica, en las que a través de una formación eficiente adquirirá las
habilidades necesarias para ser un profesional de calidad, que se desenvolverá a
entera satisfacción de sus empleadores, sean estos de la actividad pública o
privada.

2.2. Problemática actual de la empresa


En la Región ICA, en el Sector Educación Superior Técnica, en el Instituto de
Educación Superior Tecnológico Publico Municipal “Parcona”, en la
Sistematización en el registro de matriculas de estudiantes se encuentra en una
situación deficiente, en comparación con otras Regiones, además de ello este
control se lleva a mano, y en hojas de cálculo del Software Microsoft Excel, lo que
no permite integrar la información, para una mejor toma de decisiones, ni permite
que esta información se de en tiempo real, minimizando tiempo y costos, además
de no permitir realizar la matricula en tiempo real evitando así retrazos, errores de
registro de datos, validación de datos escritos y otros como registro del voucher
de pago, fotografía y firma del estudiante matriculado. Los procesos se realizan a
mano en formularios impresos, lo que genera retraso en la disposición de la
información.

3. DESCRIPCION Y ANALISIS DEL ESTUDIO


a. Objetivos de la investigación
- Implementar una base de datos en SQL SERVER, para llevar el control de la
matricula de los estudiantes del IESTP PARCONA - ICA.
- Registrar los datos de la matricula, utilizando un lenguaje de Programación.
- Minimizar el tiempo empleado para el registro de la matricula.
- Integrar la base de datos para otras aplicaciones que se realizan en la misma
institución.

b. Acerca del proceso del negocio (diagrama: BIZAGI)

DIAGRAMA DE ESTADO

Es atendido
Requerimiento de Espera de
Matricula requirimiento

Atenciòn inmediata respuesta

Espera de
requirimiento

DIAGRAMA DE SECUENCIA

Estudiante Secretaria Sistema

Requerimiento de Matricula

Consultar Vacante

Respuesta de Consulta

Informa Respuesta
DIAGRAMA DE ACTIVIDADES

Estudiante Secretaria

Busca códígo del alumno

Crea códígo nuevo alumno

Ingresa datos

c. Modelo de Datos (E – R)
d. Implementacion de requerimientos
- Listado de todos los estudiantes de las dos carreras técnicas, ordenado por
especialidad y turnos.
- Listado por estudiante, identificado por su DNI y sus cursos que llevara por
semestre.
- Listado del importe total recaudado por concepto de matriculas por semestre.
- Listado del importe total que deben por matricula, incluido mora.
- Listado de cuantos estudiantes se matricularon y cuantos faltan por matricularse
por carrera y turno.

i. Enunciado del requerimiento (Aplicando LEFT JOIN, RIGHT JOIN)


1. Listado de todos los estudiantes de las dos carreras técnicas, ordenado por
especialidad y turnos.
2. Listado por estudiante, identificado por su DNI y sus cursos que llevara por
semestre.
3. Listado cantidad de estudiantes que pagaron matricula, importe total
recaudado por concepto de matriculas el ultimo semestre.
4. Listado cantidad de estudiantes que deben, monto total que deben por
matricula, incluido mora el ultimo semestre.

ii. Copiar Orden SQL


1. Listado de todos los estudiantes de las dos carreras técnicas, ordenado por
especialidad y turnos.

use Instituto
SELECT a.apellidopaterno, a.apellidomaterno, a.nombres,
a.semestre_estudios, (e.especialidad) as especialidad, (t.turno) as
turno
FROM matriculas.estudiantes a
INNER JOIN matriculas.especialidades e ON a.especialidad =
e.codespecialidad
INNER JOIN matriculas.turnos t ON a.turnoestudios = t.idturno
LEFT JOIN matriculas.semestres_lectivos s ON a.codigosl=s.autocodigo
ORDER BY especialidad, turno, semestre_estudios

2. Listado por estudiante, identificado por su DNI y sus cursos que llevara por
semestre

SELECT a.apellidopaterno, a.apellidomaterno, a.nombres,


(e.especialidad) as especialidad, (t.turno) as turno,
s.semestre_academico, u.descripcion as curso
FROM matriculas.semestres_lectivos s
INNER JOIN matriculas.matriculasdetalle m ON m.codigosl = s.autocodigo
LEFT JOIN matriculas.estudiantes a ON a.dni=m.dni
INNER JOIN matriculas.especialidades e ON a.especialidad =
e.codespecialidad
INNER JOIN matriculas.turnos t ON a.turnoestudios = t.idturno
INNER JOIN matriculas.unidades_didacticas u ON u.codigoud = m.idunidad
WHERE a.dni='10643199' and s.semestre_academico='5'
3. Listado cantidad de estudiantes que pagaron matricula, importe total
recaudado por concepto de matriculas el ultimo semestre.

SELECT count(m.idmovmat) AS 'Total', dbo.montomatricula(0) as importe,


count(m.idmovmat)* dbo.montomatricula(0) as Monto_Total
FROM matriculas.semestres_lectivos s
INNER JOIN matriculas.matriculasmovi m ON m.codigosl = s.autocodigo
WHERE s.fechainicio>'2021/04/05'

4. Listado cantidad de estudiantes que deben, monto total que deben por
matricula, incluido mora el ultimo semestre.

ALTER FUNCTION [dbo].[montomatricula](@importematricula numeric)


RETURNS numeric(9,2)
AS BEGIN DECLARE @monto numeric(9,2)
SELECT @monto = montomatricula FROM matriculas.mora
RETURN @monto
END

ALTER FUNCTION [dbo].[Mora] (@fecha2 date) RETURNS numeric(9,2)


AS
BEGIN
DECLARE @tasa numeric(9,5), @interes numeric(9,2), @fecha1 date
SELECT @fecha1 = fechavcto, @tasa = importemora FROM
matriculas.mora
IF @fecha1 < @fecha2 --- vencio
SET @interes = datediff(dd, @fecha1 , @fecha2 ) * @tasa
ELSE
SET @interes =0

RETURN @interes
END

SELECT count(*) AS 'Total_Deben', count(*)* dbo.montomatricula(0) as


Monto_Sin_Mora,
Total_Mora = [dbo].[Mora](getdate())*count(*), Total_Inc_Mora =
(count(*)* dbo.montomatricula(0))+([dbo].[Mora](getdate())*count(*))
FROM matriculas.matriculasmovi m
RIGHT JOIN matriculas.estudiantes e ON m.codigosl = e.codigosl
RIGHT JOIN matriculas.semestres_lectivos sl ON sl.autocodigo =
e.codigosl
WHERE m.codigosl IS NULL

iii. Mostrar datos como resultado de aplicar la orden SQL


1)
2)

2)

3)
Total importe Monto_Total
154 80.00 12320.00

e. Implementar 1 Funcion
Total, de estudiantes que deben de matricula incluida mora por semestre

ALTER FUNCTION [dbo].[montomatricula](@importematricula numeric)


RETURNS numeric(9,2)
AS BEGIN DECLARE @monto numeric(9,2)
SELECT @monto = montomatricula FROM matriculas.mora
RETURN @monto
END

ALTER FUNCTION [dbo].[Mora] (@fecha2 date) RETURNS numeric(9,2)


AS
BEGIN
DECLARE @tasa numeric(9,5), @interes numeric(9,2), @fecha1 date
SELECT @fecha1 = fechavcto, @tasa = importemora FROM matriculas.mora
IF @fecha1 < @fecha2 --- vencio
SET @interes = datediff(dd, @fecha1 , @fecha2 ) * @tasa
ELSE
SET @interes =0

RETURN @interes
END

SELECT count(*) AS 'Total_Deben', count(*)* dbo.montomatricula(0) as


Monto_Sin_Mora,
Total_Mora = [dbo].[Mora](getdate())*count(*), Total_Inc_Mora = (count(*)*
dbo.montomatricula(0))+([dbo].[Mora](getdate())*count(*))
FROM matriculas.matriculasmovi m
RIGHT JOIN matriculas.estudiantes e ON m.codigosl = e.codigosl
RIGHT JOIN matriculas.semestres_lectivos sl ON sl.autocodigo = e.codigosl
WHERE m.codigosl IS NULL

RESULTADOS

Total_Deben Monto_Sin_Mora Total_Mora Total_Inc_Mora

517 41360.00 10340.00 51700.00

f. Implementar 3 Vistas
1) Vista de todos los estudiantes de las dos carreras técnicas, ordenado por especialidad y
turnos.
CREATE VIEW v_todosestudiantes
AS
SELECT a.apellidopaterno, a.apellidomaterno, a.nombres, a.semestre_estudios,
(e.especialidad) as especialidad, (t.turno) as turno
FROM matriculas.estudiantes a
INNER JOIN matriculas.especialidades e ON a.especialidad = e.codespecialidad
INNER JOIN matriculas.turnos t ON a.turnoestudios = t.idturno
LEFT JOIN matriculas.semestres_lectivos s ON a.codigosl=s.autocodigo

SELECT * FROM v_todosestudiantes ORDER BY especialidad, turno,


semestre_estudios

2) Vista del total de estudiantes y monto total que pagaron ultima matricula.
CREATE VIEW v_resumenMatriculas
AS
SELECT count(m.idmovmat) AS 'Total', dbo.montomatricula(0) as importe,
count(m.idmovmat)* dbo.montomatricula(0) as Monto_Total
FROM matriculas.semestres_lectivos s
INNER JOIN matriculas.matriculasmovi m ON m.codigosl = s.autocodigo

SELECT * FROM v_resumenMatriculas

3) Vista del total de estudiantes y monto total incluido mora, que no pagaron de la ultima
matricula.
CREATE VIEW v_resumenMatriculas_deben
AS
SELECT count(*) AS 'Total_Deben', count(*)* dbo.montomatricula(0) as
Monto_Sin_Mora,
Total_Mora = [dbo].[Mora](getdate())*count(*), Total_Inc_Mora = (count(*)*
dbo.montomatricula(0))+([dbo].[Mora](getdate())*count(*))
FROM matriculas.matriculasmovi m
RIGHT JOIN matriculas.estudiantes e ON m.codigosl = e.codigosl
RIGHT JOIN matriculas.semestres_lectivos sl ON sl.autocodigo = e.codigosl
WHERE m.codigosl IS NULL

SELECT * FROM v_resumenMatriculas_deben

g. Implementar 2 disparadores
1) Preparar un disparador para que cada vez que se registre el pago de la matricula
(matriculasmovi), se actualice: estudiantes.importepagos
A. Creando un disparador
La operación es del tipo INSERT en matriculasmovi

CREATE TRIGGER ti_matriculasmovi ON matriculas.matriculasmovi


FOR INSERT
AS
UPDATE e
SET importepagos = importepagos + mm.importerecibopago
FROM estudiantes e INNER JOIN inserted mm ON e.dni = mm.dni AND
e.codigosl=mm.codigosl;

B. Verificado importepagos antes de registrar el pago de la matricula. Tomaremos


como referencia:

SELECT * FROM matriculas.estudiantes where dni = '40553653'

C. Registrando el pago de la matricula


Vamos a realizar la matricula de un estudiante con codigo de DNI: ' 40553653 '.

INSERT matriculas.matriculasmovi(idalumno, dni, codigosl, condicion,


fecha, fecharecibopago, tipodoc, nrorecibopago, importerecibopago)
VALUES (60, '40553653',28,'MAT', '2021-05-27', '2021-05-27', '1',
'001515',80)

D. Verificado importepagos posterior al pago de la matricula en la cuenta de


estudiante.
2) Preparar un disparador para que cada vez que se BORRE el pago de la matricula
(matriculasmovi), se actualice: estudiantes.importepagos.

BORRANDO PAGO DE MATRICULA Y ACTUALIZANDO MATRICULA DE ESTUDIANTE


CREATE TRIGGER borra_matriculasmovi ON matriculas.matriculasmovi
FOR DELETE
AS
UPDATE e
SET importepagos = importepagos - mm.importerecibopago
FROM estudiantes e INNER JOIN deleted mm ON e.dni = mm.dni AND
e.codigosl=mm.codigosl;

DELETE matriculas.matriculasmovi WHERE nrorecibopago='001515'

h. Implementar Indices
I. Tablas movimientos
CREATE INDEX idx_dni ON matriculas.matriculasmovi (dni)
CREATE INDEX idx_idalumno ON matriculas.matriculasmovi (idalumno)
CREATE INDEX idx_semestre_lectivo ON matriculas.matriculasmovi
(semestre_lectivo )
CREATE INDEX idx_codigosl ON matriculas.matriculasdetalle (codigosl)
CREATE INDEX idx_idunidad ON matriculas.matriculasdetalle (idunidad)
CREATE INDEX idx_idalumno ON matriculas.matriculasdetalle (idalumno)
CREATE INDEX idx_dni ON matriculas.matriculasdetalle (dni)

II. Tablas FK
CREATE INDEX idx_especialidad ON matriculas.estudiantes (especialidad)

CREATE INDEX idx_semestre_estudios ON matriculas.estudiantes


(semestre_estudios)

CREATE INDEX idx_turnoestudios ON matriculas.estudiantes (turnoestudios)

CREATE INDEX idx_dni ON matriculas.estudiantes (dni)

i. Implementar Cursores
1) Pagos que ha realizado un estudiante desde que empezo su carrera tecnica x semestre
académico. (6 en total)
Tablas:
- estudiante
- matriculas_movi
- tipodoc

CODIGO SQL

CREATE PROCEDURE _Calculando_Movimientos_Pagos0


@dnie char(8)
as
DECLARE @dni char(8), @fecha date, @documento char(15), @nrorecibo char(15),
@importerecibopago numeric(12,2), @semestre_lectivo char(5)
DECLARE @totalpagos numeric(12,2) =0
SELECT e.apellidopaterno, e.apellidomaterno, e.nombres, e.dni,
mp.fecharecibopago, td.descripcion, mp.nrorecibopago, mp.importerecibopago,
sl.semestre_lectivo, @totalpagos as totalpagos
INTO #Movimientospagos0
FROM matriculas.estudiantes e
INNER JOIN matriculas.matriculasmovi mp ON e.dni =mp.dni
INNER JOIN matriculas.semestres_lectivos sl ON sl.autocodigo=mp.codigosl
INNER JOIN matriculas.tipodocumento td ON TD.TipoDoc = mp.TipoDoc
WHERE mp.dni = @dnie
CREATE INDEX idx_sl ON #Movimientospagos0 (dni, semestre_lectivo,
fecharecibopago)

--- declarando CURSOR


DECLARE c_pagos CURSOR FOR
SELECT dni, fecharecibopago, descripcion, nrorecibopago, importerecibopago,
semestre_lectivo
FROM #Movimientospagos0 ORDER BY dni, semestre_lectivo, fecharecibopago
-- abrir cursor
OPEN c_pagos
-- leer el cursor
FETCH c_pagos INTO @dni, @fecha, @documento, @nrorecibo, @importerecibopago,
@semestre_lectivo
---- procesar el cursor
WHILE @@FETCH_STATUS =0
BEGIN
--- Proceso
SET @totalpagos = @totalpagos + @importerecibopago
UPDATE #Movimientospagos0 SET totalpagos = @totalpagos WHERE nrorecibopago =
@nrorecibo
FETCH c_pagos INTO @dni, @fecha, @documento, @nrorecibo, @importerecibopago,
@semestre_lectivo
END
SELECT apellidopaterno, apellidomaterno, nombres, dni, fecharecibopago,
descripcion, nrorecibopago, importerecibopago, semestre_lectivo, totalpagos
from #Movimientospagos0 ORDER BY semestre_lectivo, fecharecibopago
DEALLOCATE c_pagos

EXEC _Calculando_Movimientos_Pagos0 @dnie='21416235'

2) Pagos que ha realizado un estudiante desde que inicio sus estudios.


use instituto
ALTER PROCEDURE _Calculando_CP
@dnie CHAR(8)
AS
DECLARE @totalpagos numeric(12,2) =0
DECLARE @dni char(8), @ap char(25), @am char(25), @nombres char(30),
@especialidad char(30), @turno char(10), @semestre_actual char(5)
DECLARE @idcuenta int, @concepto varchar(40), @semestre_lectivo char(5),
@fecharecibopago date, @documento varchar(10), @nrorecibopago char(10),
@importerecibopago numeric(9,2)
select @dni = e.dni, @ap = e.apellidopaterno, @am = e.apellidomaterno,
@nombres=e.nombres, @especialidad =es.especialidad, @turno=t.turno,
@semestre_actual=e.semestre_estudios
FROM matriculas.estudiantes e
INNER JOIN matriculas.especialidades es ON e.especialidad=es.codespecialidad
INNER JOIN matriculas.turnos t ON e.turnoestudios=t.idturno
WHERE e.dni = @dnie

SELECT @concepto as concepto, mp.fecharecibopago, td.descripcion,


mp.nrorecibopago, mp.importerecibopago, sl.semestre_lectivo, @totalpagos as
totalpagos
INTO #Movimientosxcuenta
FROM matriculas.matriculasmovi mp
INNER JOIN matriculas.semestres_lectivos sl ON sl.autocodigo=mp.codigosl
INNER JOIN matriculas.tipodocumento td ON TD.TipoDoc = mp.TipoDoc
WHERE mp.dni = @dnie
CREATE INDEX idx_sl ON #Movimientosxcuenta (semestre_lectivo,
fecharecibopago)

--- declarando CURSOR


DECLARE c_cuenta_pagos CURSOR FOR
SELECT concepto, fecharecibopago, descripcion, nrorecibopago,
importerecibopago, semestre_lectivo
FROM #Movimientosxcuenta ORDER BY semestre_lectivo, fecharecibopago
-- abrir cursor
OPEN c_cuenta_pagos
-- leer el cursor
FETCH c_cuenta_pagos INTO @concepto, @fecharecibopago, @documento,
@nrorecibopago, @importerecibopago, @semestre_lectivo
---- procesar el cursor
INSERT matriculas.Cuenta (dni, apellidopaterno, apellidomaterno, nombres,
especialidad, turno, semestre_actual)
VALUES (@dni, @ap, @am, @nombres, @especialidad, @turno,
@semestre_actual)
SET IDENTITY_INSERT matriculas.Cuentadetalle ON
SET @idcuenta = @@IDENTITY
WHILE @@FETCH_STATUS =0
BEGIN
----- calcular los detalles
INSERT matriculas.Cuentadetalle (idCuenta , concepto , semestre_lectivo,
fecharecibopago, documento, nrorecibopago, importerecibopago)
VALUES (@idcuenta, 'MATRICULA', @semestre_lectivo,
@fecharecibopago, @documento, @nrorecibopago, @importerecibopago)
SET @totalpagos = @totalpagos + @importerecibopago
UPDATE matriculas.Cuentadetalle SET totalpagos = @totalpagos WHERE
nrorecibopago = @nrorecibopago
FETCH c_cuenta_pagos INTO @concepto, @fecharecibopago, @documento,
@nrorecibopago, @importerecibopago, @semestre_lectivo

END
CLOSE c_cuenta_pagos
DEALLOCATE c_cuenta_pagos
GO

EXEC _Calculando_CP @dnie='40492091'

select * from matriculas.cuenta


select * from matriculas.cuentadetalle
DELETE dc FROM matriculas.CuentaDetalle dc INNER JOIN matriculas.Cuenta c on
DC.idCuenta = C.idCuenta
WHERE c.dni = '40492091'
DELETE FROM matriculas.Cuenta
DELETE FROM matriculas.Cuentadetalle

j. Implementar 4 interfaces con Visual NET


o 2 Mantenedores

a. Mantenimiento de Estudiantes

Imports System.Data.SqlClient

Public Class Form1

Dim cn As New SqlConnection("Server=localhost;Database=Instituto;Integrated Security=True")

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Me.Llenadatos()

End Sub

Private Sub Llenadatos()

Dim sql As String

sql = "SELECT e.apellidopaterno, e.apellidomaterno, e.nombres, e.dni, es.especialidad, t.turno,


e.semestre_estudios, IIF(e.estatus=1,'ACTIVO','INACTIVO') AS estado

FROM matriculas.estudiantes e

INNER JOIN matriculas.especialidades es ON e.especialidad=es.codespecialidad

INNER JOIN matriculas.turnos t ON e.turnoestudios=t.idturno


ORDER BY e.apellidopaterno, e.apellidomaterno, e.nombres, es.especialidad, t.turno,
e.semestre_estudios"

Dim dtEstudiante As New DataTable

Dim daEstudiante As New SqlDataAdapter(sql, cn)

daEstudiante.Fill(dtEstudiante)

dgDatos.DataSource = dtEstudiante

Dim sql1 As String

sql1 = "SELECT codespecialidad, especialidad FROM matriculas.especialidades ORDER BY 2"

Dim dtEspecialidad As New DataTable

Dim daEspecialidad As New SqlDataAdapter(sql1, cn)

daEspecialidad.Fill(dtEspecialidad)

CboCarrera.DataSource = dtEspecialidad

CboCarrera.DisplayMember = "especialidad"

CboCarrera.ValueMember = "codespecialidad"

Dim sql2 As String

sql2 = "SELECT idturno, turno FROM matriculas.turnos ORDER BY 2"

Dim dtTurno As New DataTable

Dim daTurno As New SqlDataAdapter(sql2, cn)

daTurno.Fill(dtTurno)

CboTurno.DataSource = dtTurno

CboTurno.DisplayMember = "turno"

CboTurno.ValueMember = "idturno"

Panel2.Visible = False

End Sub

Private Sub CmdVer_Click(sender As Object, e As EventArgs) Handles CmdVer.Click

Me.Consultar()

End Sub

Private Sub Consultar()

Dim vsql As String

vsql = "exec _ConsultarEstudiante @nombres='" & TxtBuscar1.Text.Trim & "'"

Dim dtEstudiante As New DataTable


cn.Open() 'abriendo conexión

Dim daEstudiante As New SqlDataAdapter(vsql, cn)

daEstudiante.Fill(dtEstudiante)

dgDatos.DataSource = dtEstudiante

Try

cn.Close() 'abriendo conexión

Catch ex As Exception

MessageBox.Show("Error...", Err.Description)

End Try

End Sub

Private Sub CmdNuevo_Click(sender As Object, e As EventArgs) Handles CmdNuevo.Click

Panel1.Visible = False

Panel2.Visible = True

Label8.Text = "NUEVO - DATOS DEL ESTUDIANTE"

TxtDNI.Text = ""

TxtAP.Text = ""

TxtAM.Text = ""

TxtNombres.Text = ""

TxtDireccion.Text = ""

End Sub

Private Sub CmdCancelar_Click(sender As Object, e As EventArgs) Handles CmdCancelar.Click

Panel1.Visible = True

Panel2.Visible = False

End Sub

Private Sub CmdGrabar_Click(sender As Object, e As EventArgs) Handles CmdGrabar.Click

If Label8.Text = "NUEVO - DATOS DEL ESTUDIANTE" Then

Dim semestre_Tipo1 As String, est_Carrera1 As Integer, est_Activo1 As String

Dim est_Turno1 As Integer

est_Activo1 = If(ChkActivo1.Checked, "1", "0")

semestre_Tipo1 = IIf(rb_s01.Checked, "I", IIf(rb_s02.Checked, "II", IIf(rb_s03.Checked, "III",


IIf(rb_s04.Checked, "IV", IIf(rb_s04.Checked, "V", "VI")))))
est_Carrera1 = CboCarrera.SelectedValue

est_Turno1 = CboTurno.SelectedValue

Dim vsql As String

vsql = " EXEC _RegistrarEstudiante @apellidopaterno ='" & TxtAP.Text.Trim & "',
@especialidad ='" & est_Carrera1 & "', @dni ='"

vsql = vsql + TxtDNI.Text & "', @apellidomaterno ='" & TxtAM.Text & "', @nombres ='" &
TxtNombres.Text & "', @Direccion ='"

vsql = vsql + TxtDireccion.Text & " ', @turno ='" & est_Turno1 & "', @semestre ='" &
semestre_Tipo1 & "', @estatus ='" & est_Activo1 & "', @tipo = 1"

cn.Open() 'abriendo conexión

Dim cmEstudiante As New SqlCommand(vsql, cn)

Try

cmEstudiante.ExecuteNonQuery() 'Ejecutando orden SQL en el servidor de BD

cn.Close() 'cerrando conexión

MessageBox.Show("Registro ingresado....")

Catch ex As Exception

MessageBox.Show("Error...", Err.Description)

End Try

Else

Dim semestre_Tipo1 As String, est_Carrera1 As Integer, est_Activo1 As String

Dim est_Turno1 As Integer

est_Activo1 = If(ChkActivo1.Checked, "1", "0")

semestre_Tipo1 = IIf(rb_s01.Checked, "I", IIf(rb_s02.Checked, "II", IIf(rb_s03.Checked, "III",


IIf(rb_s04.Checked, "IV", IIf(rb_s04.Checked, "V", "VI")))))

est_Carrera1 = CboCarrera.SelectedValue

est_Turno1 = CboTurno.SelectedValue

Dim vsql As String

vsql = " EXEC _RegistrarEstudiante @apellidopaterno ='" & TxtAP.Text.Trim & "',
@especialidad ='" & est_Carrera1 & "', @dni ='"

vsql = vsql + TxtDNI.Text & "', @apellidomaterno ='" & TxtAM.Text & "', @nombres ='" &
TxtNombres.Text & "', @Direccion ='"

vsql = vsql + TxtDireccion.Text & " ', @turno ='" & est_Turno1 & "', @semestre ='" &
semestre_Tipo1 & "', @estatus ='" & est_Activo1 & "', @tipo = 5"
cn.Open() 'abriendo conexión

Dim cmEstudiante As New SqlCommand(vsql, cn)

Try

cmEstudiante.ExecuteNonQuery() 'Ejecutando orden SQL en el servidor de BD

cn.Close() 'cerrando conexión

MessageBox.Show("Registro modificado....")

Catch ex As Exception

MessageBox.Show("Error...", Err.Description)

End Try

End If

Panel1.Visible = True

Panel2.Visible = False

Me.Consultar()

End Sub

Private Sub dgDatos_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles


dgDatos.CellClick

Dim i As Integer

i = dgDatos.CurrentRow.Index

TxtDNI.Text = dgDatos.Item(3, i).Value()

End Sub

Private Sub CmdEditar_Click(sender As Object, e As EventArgs) Handles CmdEditar.Click

cn.Open() 'abriendo conexión

Dim sql1 As String

sql1 = "SELECT apellidopaterno, apellidomaterno, nombres, domicilio, semestre_estudios,


especialidad, turnoestudios, estatus FROM matriculas.estudiantes WHERE dni='" & TxtDNI.Text.Trim
& "'"

Dim cmd As New SqlCommand(sql1, cn)

Dim reader As SqlDataReader = cmd.ExecuteReader()

If reader.Read() Then

Label8.Text = "EDITAR - DATOS DEL ESTUDIANTE"

TxtAP.Text = reader("apellidopaterno")
TxtAM.Text = reader("apellidomaterno")

TxtNombres.Text = reader("nombres")

TxtDireccion.Text = reader("domicilio")

ChkActivo1.Checked = If(reader("estatus"), "1", "0")

Dim A As String

Dim CodE, CodT As Integer

A = Trim(reader("semestre_estudios"))

CodE = reader("especialidad")

CodT = reader("turnoestudios")

Select Case A

Case "I"

rb_s01.Checked = 1

Case "II"

rb_s02.Checked = 1

Case "III"

rb_s03.Checked = 1

Case "IV"

rb_s04.Checked = 1

Case "V"

rb_s05.Checked = 1

Case Else

rb_s06.Checked = 1

End Select

CboCarrera.SelectedValue = CodE

CboTurno.SelectedValue = CodT

End If

Try

cn.Close() 'cerrando conexión

Catch ex As Exception

MessageBox.Show("Error...", Err.Description)
End Try

Panel1.Visible = False

Panel2.Visible = True

End Sub

Private Sub CmdEliminar_Click(sender As Object, e As EventArgs) Handles CmdEliminar.Click

If TxtDNI.Text <= 0 Then

Else

If MsgBox("¿Estas seguro de querer borrar el registro?", MsgBoxStyle.Question +


MsgBoxStyle.YesNo, "Confirmación") = MsgBoxResult.Yes Then

cn.Open() 'abriendo conexión

Dim elimina As String = "delete from matriculas.estudiantes where dni='" & TxtDNI.Text.Trim
& "'"

Dim comando As New SqlCommand(elimina, cn)

Dim i As String = comando.ExecuteNonQuery()

Try

cn.Close() 'cerrando conexión

Catch ex As Exception

MessageBox.Show("Error...", Err.Description)

End Try

If (i > 0) Then

MessageBox.Show("Eliminado correctamente")

Else

MessageBox.Show("No eliminado...")

End If

Panel1.Visible = True

Panel2.Visible = False

Me.Consultar()

End If

End If

End Sub

End Class
b. Mantenimiento de Unidades Didacticas

Imports System.Data.SqlClient
Public Class Form2
Dim cn As New SqlConnection("Server=localhost;Database=Instituto;Integrated
Security=True")
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Llenadatos()
End Sub
Private Sub Llenadatos()
Dim sql As String
sql = "SELECT ud.codigoud, ud.descripcion, e.especialidad, r.referencia, m.modulo,
s.semestre_academico, ud.horasxsemestre, ud.creditos, IIF(ud.estatus=1,'ACTIVO','INACTIVO')
AS estado
FROM matriculas.unidades_didacticas ud
INNER JOIN matriculas.especialidades e ON ud.especialidad=e.codespecialidad
INNER JOIN matriculas.referencia_sistema_educativo r ON ud.referencia=r.idreferencia
INNER JOIN matriculas.modulo_tecnico_profesional m ON ud.modulo=m.idmtc
INNER JOIN matriculas.semestres s ON ud.semestre_academico=s.idsemestre
ORDER BY ud.descripcion, e.especialidad, r.referencia, m.modulo, s.semestre_academico"
Dim dtUnidades As New DataTable
Dim daUnidades As New SqlDataAdapter(sql, cn)
daUnidades.Fill(dtUnidades)
dgDatos.DataSource = dtUnidades
Dim sql1 As String
sql1 = "SELECT codespecialidad, especialidad FROM matriculas.especialidades ORDER BY
2"
Dim dtEspecialidad As New DataTable
Dim daEspecialidad As New SqlDataAdapter(sql1, cn)
daEspecialidad.Fill(dtEspecialidad)
CboCarrera.DataSource = dtEspecialidad
CboCarrera.DisplayMember = "especialidad"
CboCarrera.ValueMember = "codespecialidad"
Dim sql2 As String
sql2 = "SELECT idreferencia, referencia FROM matriculas.referencia_sistema_educativo
ORDER BY 2"
Dim dtReferencia As New DataTable
Dim daReferencia As New SqlDataAdapter(sql2, cn)
daReferencia.Fill(dtReferencia)
CboReferencia.DataSource = dtReferencia
CboReferencia.DisplayMember = "referencia"
CboReferencia.ValueMember = "idreferencia"
Dim sql3 As String
sql3 = "SELECT idmtc, modulo FROM matriculas.modulo_tecnico_profesional ORDER BY 1"
Dim dtModulo As New DataTable
Dim daModulo As New SqlDataAdapter(sql3, cn)
daModulo.Fill(dtModulo)
CboModulo.DataSource = dtModulo
CboModulo.DisplayMember = "modulo"
CboModulo.ValueMember = "idmtc"
Dim sql4 As String
sql4 = "SELECT idsemestre, semestre_academico FROM matriculas.semestres ORDER BY
1"
Dim dtSemestres As New DataTable
Dim daSemestres As New SqlDataAdapter(sql4, cn)
daSemestres.Fill(dtSemestres)
CboSemestreA.DataSource = dtSemestres
CboSemestreA.DisplayMember = "semestre_academico"
CboSemestreA.ValueMember = "idsemestre"
Panel2.Visible = False
End Sub
Private Sub CmdVer_Click_1(sender As Object, e As EventArgs) Handles CmdVer.Click
Me.Consultar()
End Sub
Private Sub Consultar()
Dim vsql As String
vsql = "exec _ConsultarUnidades @nombres='" & TxtBuscar1.Text.Trim & "'"
Dim dtUnidades As New DataTable
cn.Open() 'abriendo conexión
Dim daUnidades As New SqlDataAdapter(vsql, cn)
daUnidades.Fill(dtUnidades)
dgDatos.DataSource = dtUnidades
Try
cn.Close() 'cerrando conexión
Catch ex As Exception
MessageBox.Show("Error...", Err.Description)
End Try
End Sub
Private Sub CmdNuevo_Click_1(sender As Object, e As EventArgs) Handles CmdNuevo.Click
Panel1.Visible = False
Panel2.Visible = True
Label8.Text = "NUEVO - DATOS DE LA UNIDAD DIDACTICA"
TxtCA.Text = ""
TxtDescripcion.Text = ""
TxtHorasxsemestre.Text = ""
TxtCreditos.Text = ""
End Sub
Private Sub dgDatos_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles
dgDatos.CellClick
Dim i As Integer
i = dgDatos.CurrentRow.Index
TxtCA.Text = dgDatos.Item(0, i).Value()
End Sub
Private Sub CmdEditar_Click(sender As Object, e As EventArgs) Handles CmdEditar.Click
'If TxtCA.Text = "" Then
'Else
cn.Open() 'abriendo conexión
Dim sql1 As String
sql1 = "SELECT descripcion, especialidad, referencia, modulo, semestre_academico,
horasxsemestre, creditos, estatus FROM matriculas.unidades_didacticas WHERE codigoud='"
& TxtCA.Text.Trim & "'"
Dim cmd As New SqlCommand(sql1, cn)
Dim reader As SqlDataReader = cmd.ExecuteReader()
If reader.Read() Then
Label8.Text = "EDITAR - DATOS DE LA UNIDAD DIDACTICA"
TxtDescripcion.Text = reader("descripcion")
TxtHorasxsemestre.Text = CStr(reader("horasxsemestre"))
TxtCreditos.Text = CStr(reader("creditos"))
ChkActivo1.Checked = If(reader("estatus"), "1", "0")
Dim CodE, CodR, CodM, CodSA As Integer
CodE = reader("especialidad")
CodR = reader("referencia")
CodM = reader("modulo")
CodSA = reader("semestre_academico")
CboCarrera.SelectedValue = CodE
CboReferencia.SelectedValue = CodR
CboModulo.SelectedValue = CodM
CboSemestreA.SelectedValue = CodSA
End If
Try
cn.Close() 'cerrando conexión
Catch ex As Exception
MessageBox.Show("Error...", Err.Description)
End Try
Panel1.Visible = False
Panel2.Visible = True
'End If
End Sub
Private Sub CmdEliminar_Click(sender As Object, e As EventArgs) Handles CmdEliminar.Click
If TxtCA.Text <= 0 Then
Else
If MsgBox("¿Estas seguro de querer borrar el registro?", MsgBoxStyle.Question +
MsgBoxStyle.YesNo, "Confirmación") = MsgBoxResult.Yes Then
cn.Open() 'abriendo conexión
Dim elimina As String = "delete from matriculas.[unidades_didacticas] where
codigoud='" & TxtCA.Text.Trim & "'"
Dim comando As New SqlCommand(elimina, cn)
Dim i As String = comando.ExecuteNonQuery()
Try
cn.Close() 'cerrando conexión
Catch ex As Exception
MessageBox.Show("Error...", Err.Description)
End Try
If (i > 0) Then
MessageBox.Show("Eliminado correctamente")
Else
MessageBox.Show("No eliminado...")
End If
Panel1.Visible = True
Panel2.Visible = False
Me.Consultar()
End If
End If
End Sub
Private Sub CmdGrabar_Click(sender As Object, e As EventArgs) Handles CmdGrabar.Click
If Label8.Text = "NUEVO - DATOS DE LA UNIDAD DIDACTICA" Then
Dim est_Carrera As Integer, est_Activo As String
Dim est_Referencia As Integer, est_Modulo As Integer, est_SemestreA As Integer
est_Activo = If(ChkActivo1.Checked, "1", "0")
est_Carrera = CboCarrera.SelectedValue
est_Referencia = CboReferencia.SelectedValue
est_Modulo = CboModulo.SelectedValue
est_SemestreA = CboSemestreA.SelectedValue
Dim vsql As String
vsql = " EXEC _RegistrarUnidadDidactica @descripcion ='" & TxtDescripcion.Text.Trim &
"', @especialidad ='" & est_Carrera & "', @referencia ='"
vsql = vsql & est_Referencia & "', @modulo ='" & est_Modulo & "',
@semestre_academico ='" & est_SemestreA & "', @horasxsemestre ='"
vsql = vsql + TxtHorasxsemestre.Text & " ', @creditos ='" & TxtCreditos.Text & "',
@codigoud ='0', @estatus ='" & est_Activo & "', @tipo = 1"
cn.Open() 'abriendo conexión
Dim cmUD As New SqlCommand(vsql, cn)
Try
cmUD.ExecuteNonQuery() 'Ejecutando orden SQL en el servidor de BD
cn.Close() 'cerrando conexión
MessageBox.Show("Registro ingresado....")
Catch ex As Exception
MessageBox.Show("Error...", Err.Description)
End Try
Else
Dim est_Carrera As Integer, est_Activo As String
Dim est_Referencia As Integer, est_Modulo As Integer, est_SemestreA As Integer
est_Activo = If(ChkActivo1.Checked, "1", "0")
est_Carrera = CboCarrera.SelectedValue
est_Referencia = CboReferencia.SelectedValue
est_Modulo = CboModulo.SelectedValue
est_SemestreA = CboSemestreA.SelectedValue
Dim vsql As String
vsql = " EXEC _RegistrarUnidadDidactica @descripcion ='" & TxtDescripcion.Text.Trim &
"', @especialidad ='" & est_Carrera & "', @referencia ='"
vsql = vsql & est_Referencia & "', @modulo ='" & est_Modulo & "',
@semestre_academico ='" & est_SemestreA & "', @horasxsemestre ='"
vsql = vsql + TxtHorasxsemestre.Text & " ', @creditos ='" & TxtCreditos.Text & "',
@codigoud ='" & TxtCA.Text & "', @estatus ='" & est_Activo & "', @tipo = 5"
cn.Open() 'abriendo conexión
Dim cmUD As New SqlCommand(vsql, cn)
Try
cmUD.ExecuteNonQuery() 'Ejecutando orden SQL en el servidor de BD
cn.Close() 'cerrando conexión
MessageBox.Show("Registro modificado....")
Catch ex As Exception
MessageBox.Show("Error...", Err.Description)
End Try
End If
Panel1.Visible = True
Panel2.Visible = False
Me.Consultar()

End Sub
Private Sub CmdCancelar_Click(sender As Object, e As EventArgs) Handles
CmdCancelar.Click
Panel1.Visible = True
Panel2.Visible = False
End Sub
End Class
o 2 Reporteadores
a. Reporte: Movimientos – Pagos de matriculas según estudiante

Imports System.Data.SqlClient
Public Class Form3
Dim cn As New SqlConnection("Server=localhost;Database=Instituto;Integrated
Security=True")
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
Me.LlenaDatos()
End Sub
Private Sub LlenaDatos()
Dim sql1 As String
sql1 = "SELECT dni, apellidopaterno+' '+apellidomaterno+' '+nombres AS
apellidos_nombres FROM matriculas.estudiantes ORDER BY apellidopaterno,
apellidomaterno, nombres"
Dim dtAlumnos As New DataTable
Dim daAlumnos As New SqlDataAdapter(sql1, cn)
daAlumnos.Fill(dtAlumnos)
CboAlumno.DataSource = dtAlumnos
CboAlumno.DisplayMember = "apellidos_nombres"
CboAlumno.ValueMember = "dni"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
Me.Consultar()
End Sub
Private Sub Consultar()
Dim sql As String
Dim idDNI As String = CboAlumno.SelectedValue.ToString
Dim dfecha1 As Date = dt1.Value.ToString
Dim dfecha2 As Date = dt2.Value.ToString
'dfecha1 = Format(dt1.Value, "dd/MM/yyyy")
'dfecha2 = Format(dt2.Value, "dd/MM/yyyy")
dfecha1 = Format(dt1.Value, "yyyy-MM-dd")
dfecha2 = Format(dt2.Value, "yyyy-MM-dd")

sql = "SET DATEFORMAT dmy EXEC _Calculando_Movimientos_Pagos


@fecha1 ='" & dfecha1 & "', @fecha2 ='" & dfecha2 & "',@dnie ='" & idDNI & "'"
Dim dtAlumno As New DataTable
Dim daAlumno As New SqlDataAdapter(sql, cn)
daAlumno.Fill(dtAlumno)
dgrData.DataSource = dtAlumno
End Sub
End Class

ALTER PROCEDURE [dbo].[_Calculando_Movimientos_Pagos]


@fecha1 datetime, @fecha2 datetime, @dnie char(8)
as
DECLARE @dni char(8), @fecha date, @documento char(15), @nrorecibo
char(15), @importerecibopago numeric(12,2), @semestre_lectivo char(5)
DECLARE @totalpagos numeric(12,2) =0
SELECT e.apellidopaterno, e.apellidomaterno, e.nombres, e.dni,
mp.fecharecibopago, td.descripcion, mp.nrorecibopago, mp.importerecibopago,
sl.semestre_lectivo, @totalpagos as totalpagos
INTO #Movimientospagos0
FROM matriculas.estudiantes e
INNER JOIN matriculas.matriculasmovi mp ON e.dni =mp.dni
INNER JOIN matriculas.semestres_lectivos sl ON sl.autocodigo=mp.codigosl
INNER JOIN matriculas.tipodocumento td ON TD.TipoDoc = mp.TipoDoc
WHERE mp.fecharecibopago BETWEEN @fecha1 AND @fecha2 and mp.dni =
@dnie
CREATE INDEX idx_sl ON #Movimientospagos0 (dni, semestre_lectivo,
fecharecibopago)

--- declarando CURSOR


DECLARE c_pagos CURSOR FOR
SELECT dni, fecharecibopago, descripcion, nrorecibopago, importerecibopago,
semestre_lectivo
FROM #Movimientospagos0 ORDER BY dni, semestre_lectivo, fecharecibopago
-- abrir cursor
OPEN c_pagos
-- leer el cursor
FETCH c_pagos INTO @dni, @fecha, @documento, @nrorecibo,
@importerecibopago, @semestre_lectivo
---- procesar el cursor
WHILE @@FETCH_STATUS =0
BEGIN
--- Proceso
SET @totalpagos = @totalpagos + @importerecibopago
UPDATE #Movimientospagos0 SET totalpagos = @totalpagos WHERE
nrorecibopago = @nrorecibo
FETCH c_pagos INTO @dni, @fecha, @documento, @nrorecibo,
@importerecibopago, @semestre_lectivo
END
SELECT dni, fecharecibopago, descripcion, nrorecibopago, importerecibopago,
semestre_lectivo, totalpagos
from #Movimientospagos0 ORDER BY semestre_lectivo, fecharecibopago
DEALLOCATE c_pagos
b. Reporte: Pagos de Matriculas en General según fecha y Semestre

Imports System.Data.SqlClient

Public Class Form4

Dim cn As New SqlConnection("Server=localhost;Database=Instituto;Integrated Security=True;")

Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load


Me.LlenaDatos()

End Sub

Private Sub LlenaDatos()

Dim sql1 As String

sql1 = "SELECT idsemestre, semestre_academico FROM matriculas.semestres ORDER BY


idsemestre"

Dim dtSemestreA As New DataTable

Dim daSemestreA As New SqlDataAdapter(sql1, cn)

daSemestreA.Fill(dtSemestreA)

CboSemestreA.DataSource = dtSemestreA

CboSemestreA.DisplayMember = "semestre_academico"

CboSemestreA.ValueMember = "semestre_academico"

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Me.Consultar()

End Sub

Private Sub Consultar()

Dim sql As String

Dim idsemestre As String = CboSemestreA.SelectedValue.ToString

Dim dfecha1 As Date = dt1.Value.ToString

Dim dfecha2 As Date = dt2.Value.ToString

'dfecha1 = Format(dt1.Value, "dd/MM/yyyy")

'dfecha2 = Format(dt2.Value, "dd/MM/yyyy")

dfecha1 = Format(dt1.Value, "yyyy-MM-dd")

dfecha2 = Format(dt2.Value, "yyyy-MM-dd")

sql = "SET DATEFORMAT dmy EXEC _Movimientos_PagosxSemestre @fecha1 ='" & dfecha1 & "',
@fecha2 ='" & dfecha2 & "',@semestre ='" & idsemestre & "'"
Dim dtAlumno As New DataTable

Dim daAlumno As New SqlDataAdapter(sql, cn)

daAlumno.Fill(dtAlumno)

dgrData.DataSource = dtAlumno

End Sub

End Class

CREATE PROCEDURE [dbo].[_Movimientos_PagosxSemestre]

@fecha1 datetime, @fecha2 datetime, @semestre char(8)

as

DECLARE @dni char(8), @fecha date, @documento char(15), @nrorecibo char(15),


@importerecibopago numeric(12,2), @semestre_estudios char(8)

DECLARE @totalpagos numeric(12,2) =0

SELECT es.especialidad, t.turno, e.apellidopaterno, e.apellidomaterno, e.nombres, e.dni,


mp.fecharecibopago, td.descripcion, mp.nrorecibopago, mp.importerecibopago,
e.semestre_estudios, @totalpagos as totalpagos

INTO #Movimientospagos0

FROM matriculas.estudiantes e

INNER JOIN matriculas.matriculasmovi mp ON e.dni =mp.dni

INNER JOIN matriculas.especialidades es ON e.especialidad =es.codespecialidad

INNER JOIN matriculas.turnos t ON e.turnoestudios =t.idturno

INNER JOIN matriculas.semestres_lectivos sl ON sl.autocodigo=mp.codigosl

INNER JOIN matriculas.semestres s ON s.idsemestre = sl.semestre_academico

INNER JOIN matriculas.tipodocumento td ON TD.TipoDoc = mp.TipoDoc

WHERE mp.fecharecibopago BETWEEN @fecha1 AND @fecha2 AND s.semestre_academico =


@semestre

CREATE INDEX idx_sl ON #Movimientospagos0 (especialidad, turno, semestre_estudios,


apellidopaterno, apellidomaterno, nombres, fecharecibopago)
--- declarando CURSOR

DECLARE c_pagos CURSOR FOR

SELECT dni, fecharecibopago, descripcion, nrorecibopago, importerecibopago, semestre_estudios

FROM #Movimientospagos0 ORDER BY especialidad, turno, semestre_estudios, apellidopaterno,


apellidomaterno, nombres, fecharecibopago

-- abrir cursor

OPEN c_pagos

-- leer el cursor

FETCH c_pagos INTO @dni, @fecha, @documento, @nrorecibo, @importerecibopago,


@semestre_estudios

---- procesar el cursor

WHILE @@FETCH_STATUS =0

BEGIN

--- Proceso

SET @totalpagos = @totalpagos + @importerecibopago

UPDATE #Movimientospagos0 SET totalpagos = @totalpagos WHERE nrorecibopago = @nrorecibo

FETCH c_pagos INTO @dni, @fecha, @documento, @nrorecibo, @importerecibopago,


@semestre_estudios

END

SELECT especialidad, turno, semestre_estudios AS semestre_actual, apellidopaterno,


apellidomaterno, nombres, dni, fecharecibopago, descripcion, nrorecibopago, importerecibopago,
totalpagos

from #Movimientospagos0 ORDER BY especialidad, turno, semestre_actual, apellidopaterno,


apellidomaterno, nombres, fecharecibopago

DEALLOCATE c_pagos
4. CONCLUSIONES
Tomando en cuenta los resultados obtenidos de esta investigación, se concluye
en lo siguiente:
 Al utilizar el software Sql Server, es una potente herramienta que permite
implementar funciones, vistas, triggers, cursores, que facilitan el análisis de
la información.
 La herramienta Sql Server, es una de las mejores del mercado mundial, que
permite utilizar comandos que hacen mas fácil el análisis de la información.
 La herramienta Sql Server comparado con otros Administradores de base de
datos, se puede decir que esta herramienta tiene muchos recursos que
ofrecer y que falta explotar.
5. RECOMENDACIONES
Tomando en cuenta los resultados obtenidos de la aplicación de este software
como es Sql Server, se recomienda:
 Utilizar esta poderosa herramienta de base de datos para el análisis de la
información.
 Personalmente he utilizado MYSQL SERVER y comparado con SQL
SERVER, este ultimo permite realizar análisis de datos, por lo que se
recomienda su uso.
 Usar SQL SERVER, ya que no se necesita programar mucho, la mayor
parte de las operaciones o procesos se hace en el mismo gestor.

Fecha y Hora: 13 de julio del 2021, 08:00 P.M.


ANEXOS

ESQUEMA DE LA BASE DE DATOS


APLICACIÓN

VISUAL NET 2019

MSQL SERVER 2019

POWER POINT DE CADA PANTALLA EN VISUAL .NET DESARROLLADAS

También podría gustarte