Sie sind auf Seite 1von 3

(15) Plan de pagos (Control MSFlexGrid)

Aadir Microsoft FlexGrid Control 6.0 al cuadro de herramientas


El programa debe calcular un plan de pagos de un prstamo,
determinando la cuota total constante, el inters de cada periodo y
la amortizacin peridica sobre la base de los datos entrados.
En tiempo de diseo se debe armar la interfaz como sigue:
Arreglo Botn
SalirS Salir SalirB Calcular

CalcularB
Utilizar la sgte. Frmula P

CalcularI

CalcularS

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

Donde P = Pagos peridicos constantes, C = Capital prestado


i = Tasa de inters por periodo, N = Plazo (Nro de periodos)
Usar propiedad FormatString para ttulos 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 Botn Calcular debe estar inhibido
Al mover el mouse por el formulario
Si los botones del array estn sobrerelieve, deben normalizarse
Si en Capital solo se entran nmeros > o = 0
convertir los valores a nmeros y cambiar a true el sw1
Se puede usar: If IsNumeric(Capital.Text) and Val(Capital.Text) >= 0 Then

Si los 3 switches estn en true, debe habilitar el botn Calcular


Caso de no haberse digitado nmeros, debe enviar un mensaje,
Inhabilitar el Botn Calcular y permanecer el sw1 en False
Al presionar Enter ubicar el cursor en Nro de periodos
Si en Nro. Periodos solo se entran nmeros > o = 0
convertir los valores a nmeros y cambiar a true el sw2
Si los 3 switches estn en true, debe habilitar el botn Calcular
Caso de no haberse digitado nmeros, debe enviar un mensaje,
Inhabilitar el Botn Calcular y permanecer el sw2 en False
Al presionar Enter ubicar cursor en Inters por periodo
Si en Inters por periodo solo se entran nmeros > o = 0
Ing. Hermas Herrera Callejas

convertir los valores a nmeros y cambiar a true el sw3


Si los 3 switches estn en true, debe habilitar el boton Calcular
Caso de no haberse digitado nmeros, debe enviar un mensaje,
Inhabilitar el Botn 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
Pgina : 1 de 3

(16) Edicin de Datos (Control MSFlexGrid)

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:
AllowUserResizing 1 flexResizeColumns
Control
Propiedad
Valor
.
Form
Name
MantDatos
Rows
25
Caption
Mantenimiento archivo de alumnos
Cols
12
TextBox
Name
Campo
Enabled
False
BorderStyle
0-None
FixedRows
1
Text

FixedCols
0
Visible
False
FormatString
Cdula|<Paterno |<Materno
CommandButton Name
Corrsultar
|<Nombres |<Direccin
Caption
Consultar
|<F.de Nacim|<Gn
CommandButton Name
Guardar
|<Sw |
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
MSFlexGrid
Name
Rejilla
AutoSize
True
Agregar en un mdulo la estructura Reg_Alumnos del archivo de
"Haga clic con el botn derecho del mouse para aadir
alumnos de acuerdo al siguiente detalle
un registro."
Cdula As String * 10
"Presione la tecla Alt y haga clic sobre un campo para
Paterno As String * 20
realizar modificaciones."
Materno As String * 20
Inhabilita botones Guardar, Modificar y Eliminar
Nombres As String * 30
Habilita el control MSFlexgrid
Direccin As String * 40
Calcula el total de registros
Fecha_Nac As Date
Llama al procedimiento LimpiarRegistros
Gnero As String * 1
Iterativamente para todos los registros
SW As String * 1
Lee un registro
Definir la variable Alumnos con esta estructura
Si el SW es 1
Global Alumnos As Reg_Alumnos
Incrementa Fila en 1
Asociar un procedimiento a cada uno de los controles:
Mueve los campos del archivo al MSFlexGris
Dim AuxCd, AuxCdula As String
Si Fila >= 21 Aade nueva fila al MSFlexGrid
Dim Fila, XFila As Integer
En el TextBox Campo guarda el contenido de la celda (1,0)
Al cargar el formulario:
Con el suceso MouseUp en el MSFlexGrid
Lo sita en el centro de la pantalla
Borrar Mensaje2
lnhabilita botones Ingresar, Modificar y Eliminar
Borrar Mensaje3
Abrir el archivo de alumnos usando cuadro de dilogo
Si se puls el botn izquierdo del mouse.
Al hacer clic en Consultar
Ttulo del formulario "Eliminar registros"
Los datos del archivo alumnos, deben copiarse al MSFlexGrid.
Mensaje1 "Haga clic en el botn Eliminar para borrar el
El ttulo del formulario debe ser Consulta de datos"
registro seleccionado."
Los Label deben mostrar mensajes:
Inhabilita botones Guardar y Modificar
"Haga clic con el botn izquierdo del mouse sobre un registro
Habilita botn Eliminar
para eliminarlo."
Selecciona fila con registro a eliminar
Ing. Hermas Herrera Callejas
Pgina : 2 de 3

.Row = .MouseRow: .Col = 0


.RowSel = .MouseRow: .ColSel = .Cols - 1
AuxCd = .Text 'Cdula de registro almacena en AuxCd
Si se puls el botn derecho del mouse
Ttulo de formulario "Ingreso de datos"
Mensaje1 "Ingrese los datos en todos los campos y haga clic
en el botn Guardar"
Habilita botn Guardar
Inhabilita botones Modificar y Eliminar
Selecciona celda para ingresar datos.
.Row = Fila + 1
.Col = 0
Si se puls Alt y botn izquierdo del mouse.
Ttulo formulario "Modificar registros"
Mensaje1 "Presione la tecla Enter para confirmar el
cambio realizado"
Borrar Mensaje2 y Mensaje3
Inhabilita botones Guardar y Eliminar
Habilita botn Modificar
Selecciona celda en que se hizo clic
.Row = .MouseRow
.Col = .MouseCol
Cdula del registro almacena en AuxCdula
AuxCdula = .TextMatrix(.Row, 0)
Fila de celda seleccionada se almacena en XFila.
XFila = .Row
Con suceso EnterCell en MSFlexGrid
Borra el TextBox
Sita el TextBox sobre celda seleccionada
Campo.Top = Rejilla.Top + Rejilla.CellTop
Campo.Left = Rejilla.Left + Rejilla.CellLeft
Ajusta tamao 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.

Ing. Hermas Herrera Callejas

Si se presion tecla Enter


Si TextBox no est vacio
Rejilla.Row = Rejilla.RowSel
Rejilla.Col = Rejilla.ColSel + 1
Con Clic en botn Guardar
lngresa nuevo registro en archivo de alumnos.
Alumnos.Cdula = 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 posicin
Llama procedimiento Consultar_Click
Inhabilita botn Guardar
Con Clic en Modificar
Ttulo de formulario Modificar Datos
Iterativamente busca registro modificado
Transfiere datos de MSFlexGrid al archivo
Alumnos.Cdula = 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 botn Modificar
Con Clic en Eliminar
Ttulo de formulario "Eliminar datos"
Iterativamente busca registro a eliminar
Al encontrar mueve 0 a SW
Graba registro
Llama a procedimiento Consultar_Click
lnhabilita botn 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 botn Salir
Termina proceso

Pgina : 3 de 3

Das könnte Ihnen auch gefallen