Você está na página 1de 3

(15) Plan de pagos (Control MSFlexGrid)

(15) Plan de pagos (Control MSFlexGrid) Añadir Microsoft FlexGrid Control 6.0 al cuadro de herramientas „

Añadir Microsoft FlexGrid Control 6.0 al cuadro de herramientas

El programa debe calcular un plan de pagos de un préstamo,

determinando la cuota total constante, el interés de cada periodo y

la amortización periódica sobre la base de los datos entrados.

En tiempo de diseño se debe armar la interfaz como sigue:

Arreglo Botón

SalirS

Salir

SalirB

Calcular

como sigue: Arreglo Botón SalirS Salir SalirB Calcular Utilizará la sgte. Fórmula P CalcularB CalcularI Ci

Utilizará la sgte. Fórmula

P

CalcularB

CalcularI

Ci (1 i ) N (1 i ) N 1
Ci
(1
i
)
N
(1
i )
N 1

CalcularS

Donde P = Pagos periódicos constantes,

i = Tasa de interés por periodo,

„ Usar propiedad FormatString para títulos en columnas

Definir variables para Capital, Interes, Periodos y Pagos de tipo

doble así como 3 switches (sw1, sw2, sw3) de tipo booleano

Al cargar el formulario centrarlo en la pantalla

El Botón Calcular debe estar inhibido

Al mover el mouse por el formulario

Si los botones del array están sobrerelieve, deben normalizarse

Si en Capital solo se entran números > o = 0

convertir los valores a números y cambiar a true el sw1

„ Se puede usar: If IsNumeric(Capital.Text) and Val(Capital.Text) >= 0 Then…

Si los 3 switches están en true, debe habilitar el botón Calcular

Caso de no haberse digitado números, debe enviar un mensaje,

Inhabilitar el Botón Calcular y permanecer el sw1 en False

Al presionar Enter ubicar el cursor en Nro de periodos

Si en Nro. Periodos solo se entran números > o = 0

convertir los valores a números y cambiar a true el sw2

Si los 3 switches están en true, debe habilitar el botón Calcular

Caso de no haberse digitado números, debe enviar un mensaje,

„ Inhabilitar el Botón Calcular y permanecer el sw2 en False

Al presionar Enter ubicar cursor en Interés por periodo

Si en Interés por periodo solo se entran números > o = 0 Ing. Hermas Herrera Callejas

C = Capital prestado

N = Plazo (Nro de periodos)

convertir los valores a números y cambiar a true el sw3

Si los 3 switches están en true, debe habilitar el boton Calcular

Caso de no haberse digitado números, debe enviar un mensaje,

Inhabilitar el Botón Calcular y permanecer el sw3 en False

Al presionar Enter (KeyAscii 13) ubicar cursor en Capital

Al mover el mouse por el array de controles Image ejecutar:

Select Case Index Case 0 If Boton(0).Picture = Calcular.Picture Then Boton(0).Picture = CalcularS.Picture End If Boton(1).Picture = Salir.Picture Case 1 If Boton(0).Picture = CalcularS.Picture Then Boton(0).Picture = Calcular.Picture End If Boton(1).Picture = SalirS.Picture End Select

Al clic del mouse en el array de botones, ejecutar lo siguiente:

Dim fila As Integer Dim sumaamort, sumacuotas, amort, Intere, sumaint As Double Cap = Val(Capital.Text) Select Case Index Case 0 If Boton(0).Picture = CalcularS.Picture Then Boton(0).Picture = CalcularB.Picture MousePointer = 11 limpiarrejilla pag = (Cap * i * (1 + i) ^ n) / ((1 + i) ^ n - 1) sumaint = 0: sumaamort = 0: sumacuotas = 0 With Rejilla For fila = 1 To n .TextMatrix(fila, 0) = fila .TextMatrix(fila, 1) = Format(Cap, "###,##0.00") Intere = Cap * i .TextMatrix(fila, 2) = Format(Intere, "#,##0.00") amort = pag - Intere .TextMatrix(fila, 3) = Format(amort, "#,##0.00")

.TextMatrix(fila, 4) = Format(pag, "#,##0.00")

Cap = Cap - amort

sumaint = sumaint + Intere sumaamort = sumaamort + amort sumacuotas = sumacuotas + pag Next fila .TextMatrix(fila, 2) = Format(sumaint, "##,##0.00") .TextMatrix(fila, 3) = Format(sumaamort, "##,##0.00") .TextMatrix(fila, 4) = Format(sumacuotas, "###,##0.00") End With MousePointer = 0 End If Case 1 Boton(1).Picture = SalirB.Picture End Select

Entrar procedimiento limpiarregilla para limpiar el MSFGlexGrid With Rejilla .Rows = n + 4 .Row = 1 .Col = 0 .RowSel = .Rows - 1 .ColSel = .Cols - 1 .FillStyle = flexFillRepeat .Text = "" End With

Página : 1 de 3

(16) Edición de Datos (Control MSFlexGrid)

(16) Edición de Datos (Control MSFlexGrid) Integrar el control TextBox con el control MSFlexGrid. Mantenimiento del

Integrar el control TextBox con el control MSFlexGrid. Mantenimiento del archivo de alumnos La interfaz tendrá cinco controles CommandButton, un control TextBox, un CommonDialog y un MSFlexGrid. Incorporar en el cuadro de herramientas los controles Microsoft Common Dialog Control 6.0 y Microsoft FlexGrid Control 6.0, antes de llevarlos a la Interfaz del Usuario. Propiedades de los controles:

Control

Propiedad

Valor

.

AllowUserResizing

1 flexResizeColumns

Form

Name

MantDatos

Rows

25

Caption Mantenimiento archivo de alumnos

Cols

12

TextBox Name BorderStyle Text Visible

Campo

Enabled

False

0-None

FixedRows

1

“”

FixedCols

0

False

FormatString

Cédula|<Paterno |<Materno |<Nombres |<Dirección |<F.de Nacim|<Gén |<Sw |

CommandButton Name Corrsultar

 
 

Caption

Consultar

CommandButton Name Guardar

 
 

Caption

Guardar

ScrollBars

3-flexScrollBarBoth

CommandButton Name Modificar

 

CommonDialog

Name

Abrir

 

Caption

Modificar

Label

Name

Mensaje1

CommandButton Name Eliminar

 

AutoSize

True

 

Caption

Eliminar

Label

Name

Mensaje2

CommandButton Name Salir

 

AutoSize

True

 

Caption

Salir

Label

Name

Mensaje3

 

AutoSize

True

MSFlexGrid Name Rejilla Agregar en un módulo la estructura Reg_Alumnos del archivo de

alumnos de acuerdo al siguiente detalle Cédula As String * 10 Paterno As String * 20 Materno As String * 20 Nombres As String * 30 Dirección As String * 40 Fecha_Nac As Date Género As String * 1 SW As String * 1 Definir la variable Alumnos con esta estructura Global Alumnos As Reg_Alumnos Asociar un procedimiento a cada uno de los controles:

Dim AuxCéd, AuxCédula As String Dim Fila, XFila As Integer Al cargar el formulario:

Lo sitúa en el centro de la pantalla lnhabilita botones Ingresar, Modificar y Eliminar Abrir el archivo de alumnos usando cuadro de diálogo Al hacer clic en Consultar Los datos del archivo alumnos, deben copiarse al MSFlexGrid. El título del formulario debe ser “Consulta de datos" Los Label deben mostrar mensajes:

"Haga clic con el botón izquierdo del mouse sobre un registro para eliminarlo." Ing. Hermas Herrera Callejas

"Haga clic con el botón derecho del mouse para añadir un registro." "Presione la tecla Alt y haga clic sobre un campo para realizar modificaciones." Inhabilita botones Guardar, Modificar y Eliminar Habilita el control MSFlexgrid Calcula el total de registros Llama al procedimiento LimpiarRegistros Iterativamente para todos los registros Lee un registro Si el SW es 1 Incrementa Fila en 1

Mueve los campos del archivo al MSFlexGris Si Fila >= 21 Añade nueva fila al MSFlexGrid En el TextBox Campo guarda el contenido de la celda (1,0)

Con el suceso MouseUp en el MSFlexGrid Borrar Mensaje2 Borrar Mensaje3

Si se pulsó el botón izquierdo del mouse. Título del formulario "Eliminar registros" Mensaje1 "Haga clic en el botón Eliminar para borrar el registro seleccionado." Inhabilita botones Guardar y Modificar Habilita botón Eliminar Selecciona fila con registro a eliminar

Página : 2 de 3

.Row = .MouseRow: .Col = 0 .RowSel = .MouseRow: .ColSel = .Cols - 1 AuxCéd = .Text 'Cédula de registro almacena en AuxCéd Si se pulsó el botón derecho del mouse Título de formulario "Ingreso de datos" Mensaje1 "Ingrese los datos en todos los campos y haga clic en el botón Guardar" Habilita botón Guardar Inhabilita botones Modificar y Eliminar Selecciona celda para ingresar datos. .Row = Fila + 1 .Col = 0 Si se pulsó Alt y botón izquierdo del mouse. Título formulario "Modificar registros" Mensaje1 "Presione la tecla Enter para confirmar el cambio realizado" Borrar Mensaje2 y Mensaje3 Inhabilita botones Guardar y Eliminar Habilita botón Modificar Selecciona celda en que se hizo clic .Row = .MouseRow .Col = .MouseCol Cédula del registro almacena en AuxCédula AuxCédula = .TextMatrix(.Row, 0) Fila de celda seleccionada se almacena en XFila. XFila = .Row Con suceso EnterCell en MSFlexGrid Borra el TextBox Sitúa el TextBox sobre celda seleccionada Campo.Top = Rejilla.Top + Rejilla.CellTop Campo.Left = Rejilla.Left + Rejilla.CellLeft Ajusta tamaño de TextBox al de la celda Campo.Width = Rejilla.CellWidth Campo.Height = Rejilla.CellHeight Mueve contenido de celda a TextBox Campo.Text = Rejilla.Text Campo.SetFocus Con suceso LeaveCell en MSFlexGrid El contenido de TextBox pasa a celda que abandona. Rejilla.Text = Campo.Text Con suceso KeyPress en TextBox Selecciona celda derecha de celda activa.

Si se presionó tecla Enter Si TextBox no está vacio Rejilla.Row = Rejilla.RowSel Rejilla.Col = Rejilla.ColSel + 1 Con Clic en botón Guardar lngresa nuevo registro en archivo de alumnos. Alumnos.Cédula = Rejilla.TextMatrix(Fila + 1, 0) Alumnos.Paterno = Rejilla.TextMatrix(Fila + 1, 1) Alumnos.Materno = Rejilla.TextMatrix(Fila + 1, 2)…etc Calcula Total Registros en Archivo Graba registro en siguiente posición Llama procedimiento Consultar_Click Inhabilita botón Guardar Con Clic en Modificar Título de formulario “Modificar Datos” Iterativamente busca registro modificado Transfiere datos de MSFlexGrid al archivo Alumnos.Cédula = Rejilla.TextMatrix(XFila, 0) Alumnos.Paterno = Rejilla.TextMatrix(XFila, 1) Alumnos.Materno = Rejilla.TextMatrix(XFila, 2)…etc Graba registro Llama a procedimiento Consultar_Click Inhabilita botón Modificar Con Clic en Eliminar Título de formulario "Eliminar datos" Iterativamente busca registro a eliminar Al encontrar mueve 0 a SW Graba registro Llama a procedimiento Consultar_Click lnhabilita botón Eliminar Procedimiento LimpiarRegistros Selecciona todas las celdas de MSFlexGrid menos fila 0 .Row = 1: Col = 0: .RowSel = .Rows - 1: .ColSel = .Cols - 1 Cambios en todas las celdas seleccionadas .FillStyle = flexFillRepeat .Text = " " Cambios solo en celda activa .FillStyle = flexFillSingle .Row = 1: .Col = 0:

Con Clic en botón Salir Termina proceso

.Row = 1: .Col = 0: Con Clic en botón Salir Termina proceso Ing. Hermas Herrera