Sunteți pe pagina 1din 3

(15) Plan de pagos (Control MSFlexGrid) ‘ Si en Interés por periodo solo se entran números > o = 0

‘ 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
Añadir Microsoft FlexGrid Control 6.0 al cuadro de herramientas Boton(0).Picture = Calcular.Picture
‘ El programa debe calcular un plan de pagos de un préstamo, End If
‘ determinando la cuota total constante, el interés de cada periodo y Boton(1).Picture = SalirS.Picture
‘ la amortización periódica sobre la base de los datos entrados. End Select
‘ En tiempo de diseño se debe armar la interfaz como sigue: ‘ Al clic del mouse en el array de botones, ejecutar lo siguiente:
Arreglo Botón SalirS Salir SalirB Calcular 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")
CalcularB CalcularI CalcularS amort = pag - Intere
Ci (1  i ) N .TextMatrix(fila, 3) = Format(amort, "#,##0.00")
Utilizará la sgte. Fórmula P  .TextMatrix(fila, 4) = Format(pag, "#,##0.00")
(1  i ) N  1 Cap = Cap - amort
Donde P = Pagos periódicos constantes, C = Capital prestado sumaint = sumaint + Intere
i = Tasa de interés por periodo, N = Plazo (Nro de periodos) sumaamort = sumaamort + amort
‘ Usar propiedad FormatString para títulos en columnas sumacuotas = sumacuotas + pag
‘ Definir variables para Capital, Interes, Periodos y Pagos de tipo Next fila
‘ doble así como 3 switches (sw1, sw2, sw3) de tipo booleano .TextMatrix(fila, 2) = Format(sumaint, "##,##0.00")
‘ Al cargar el formulario centrarlo en la pantalla .TextMatrix(fila, 3) = Format(sumaamort, "##,##0.00")
‘ El Botón Calcular debe estar inhibido .TextMatrix(fila, 4) = Format(sumacuotas, "###,##0.00")
‘ Al mover el mouse por el formulario End With
‘ Si los botones del array están sobrerelieve, deben normalizarse MousePointer = 0
‘ Si en Capital solo se entran números > o = 0 End If
‘ convertir los valores a números y cambiar a true el sw1 Case 1
‘ Se puede usar: If IsNumeric(Capital.Text) and Val(Capital.Text) >= 0 Then… Boton(1).Picture = SalirB.Picture
‘ Si los 3 switches están en true, debe habilitar el botón Calcular End Select
‘ Caso de no haberse digitado números, debe enviar un mensaje, ‘ Entrar procedimiento limpiarregilla para limpiar el MSFGlexGrid
‘ Inhabilitar el Botón Calcular y permanecer el sw1 en False With Rejilla
‘ Al presionar Enter ubicar el cursor en Nro de periodos .Rows = n + 4
‘ Si en Nro. Periodos solo se entran números > o = 0 .Row = 1
‘ convertir los valores a números y cambiar a true el sw2 .Col = 0
‘ Si los 3 switches están en true, debe habilitar el botón Calcular .RowSel = .Rows - 1
‘ Caso de no haberse digitado números, debe enviar un mensaje, .ColSel = .Cols - 1
‘ Inhabilitar el Botón Calcular y permanecer el sw2 en False .FillStyle = flexFillRepeat
‘ Al presionar Enter ubicar cursor en Interés por periodo .Text = ""

Ing. Hermas Herrera Callejas Página : 1 de 3


End With

(16) Edición 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:
Control Propiedad Valor . AllowUserResizing 1 – flexResizeColumns
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 Cédula|<Paterno |<Materno
CommandButton Name Corrsultar |<Nombres |<Dirección
Caption Consultar |<F.de Nacim|<Gén
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 módulo la estructura Reg_Alumnos del archivo de El título del formulario debe ser “Consulta de datos"
alumnos de acuerdo al siguiente detalle Los Label deben mostrar mensajes:
Cédula As String * 10 "Haga clic con el botón izquierdo del mouse sobre un registro
Paterno As String * 20 para eliminarlo."
Materno As String * 20 "Haga clic con el botón derecho del mouse para añadir
Nombres As String * 30 un registro."
Dirección As String * 40 "Presione la tecla Alt y haga clic sobre un campo para
Fecha_Nac As Date realizar modificaciones."
Género As String * 1 Inhabilita botones Guardar, Modificar y Eliminar
SW As String * 1 Habilita el control MSFlexgrid
Definir la variable Alumnos con esta estructura Calcula el total de registros
Global Alumnos As Reg_Alumnos Llama al procedimiento LimpiarRegistros
Asociar un procedimiento a cada uno de los controles: Iterativamente para todos los registros
Dim AuxCéd, AuxCédula As String Lee un registro
Dim Fila, XFila As Integer Si el SW es 1
Al cargar el formulario: Incrementa Fila en 1
Lo sitúa en el centro de la pantalla Mueve los campos del archivo al MSFlexGris
lnhabilita botones Ingresar, Modificar y Eliminar Si Fila >= 21 Añade nueva fila al MSFlexGrid
Abrir el archivo de alumnos usando cuadro de diálogo En el TextBox Campo guarda el contenido de la celda (1,0)
Al hacer clic en Consultar Con el suceso MouseUp en el MSFlexGrid
Los datos del archivo alumnos, deben copiarse al MSFlexGrid. Borrar Mensaje2

Ing. Hermas Herrera Callejas Página : 2 de 3


Borrar Mensaje3 El contenido de TextBox pasa a celda que abandona.
Si se pulsó el botón izquierdo del mouse. Rejilla.Text = Campo.Text
Título del formulario "Eliminar registros" Con suceso KeyPress en TextBox
Mensaje1 "Haga clic en el botón Eliminar para borrar el Selecciona celda derecha de celda activa.
registro seleccionado." Si se presionó tecla Enter
Inhabilita botones Guardar y Modificar Si TextBox no está vacio
Habilita botón Eliminar Rejilla.Row = Rejilla.RowSel
Selecciona fila con registro a eliminar Rejilla.Col = Rejilla.ColSel + 1
.Row = .MouseRow: .Col = 0 Con Clic en botón Guardar
.RowSel = .MouseRow: .ColSel = .Cols - 1 lngresa nuevo registro en archivo de alumnos.
AuxCéd = .Text 'Cédula de registro almacena en AuxCéd Alumnos.Cédula = Rejilla.TextMatrix(Fila + 1, 0)
Si se pulsó el botón derecho del mouse Alumnos.Paterno = Rejilla.TextMatrix(Fila + 1, 1)
Título de formulario "Ingreso de datos" Alumnos.Materno = Rejilla.TextMatrix(Fila + 1, 2)…etc
Mensaje1 "Ingrese los datos en todos los campos y haga clic Calcula Total Registros en Archivo
en el botón Guardar" Graba registro en siguiente posición
Habilita botón Guardar Llama procedimiento Consultar_Click
Inhabilita botones Modificar y Eliminar Inhabilita botón Guardar
Selecciona celda para ingresar datos. Con Clic en Modificar
.Row = Fila + 1 Título de formulario “Modificar Datos”
.Col = 0 Iterativamente busca registro modificado
Si se pulsó Alt y botón izquierdo del mouse. Transfiere datos de MSFlexGrid al archivo
Título formulario "Modificar registros" Alumnos.Cédula = Rejilla.TextMatrix(XFila, 0)
Mensaje1 "Presione la tecla Enter para confirmar el Alumnos.Paterno = Rejilla.TextMatrix(XFila, 1)
cambio realizado" Alumnos.Materno = Rejilla.TextMatrix(XFila, 2)…etc
Borrar Mensaje2 y Mensaje3 Graba registro
Inhabilita botones Guardar y Eliminar Llama a procedimiento Consultar_Click
Habilita botón Modificar Inhabilita botón Modificar
Selecciona celda en que se hizo clic Con Clic en Eliminar
.Row = .MouseRow Título de formulario "Eliminar datos"
.Col = .MouseCol Iterativamente busca registro a eliminar
Cédula del registro almacena en AuxCédula Al encontrar mueve 0 a SW
AuxCédula = .TextMatrix(.Row, 0) Graba registro
Fila de celda seleccionada se almacena en XFila. Llama a procedimiento Consultar_Click
XFila = .Row lnhabilita botón Eliminar
Con suceso EnterCell en MSFlexGrid Procedimiento LimpiarRegistros
Borra el TextBox Selecciona todas las celdas de MSFlexGrid menos fila 0
Sitúa el TextBox sobre celda seleccionada .Row = 1: Col = 0: .RowSel = .Rows - 1: .ColSel = .Cols - 1
Campo.Top = Rejilla.Top + Rejilla.CellTop Cambios en todas las celdas seleccionadas
Campo.Left = Rejilla.Left + Rejilla.CellLeft .FillStyle = flexFillRepeat
Ajusta tamaño de TextBox al de la celda .Text = " "
Campo.Width = Rejilla.CellWidth Cambios solo en celda activa
Campo.Height = Rejilla.CellHeight .FillStyle = flexFillSingle
Mueve contenido de celda a TextBox .Row = 1: .Col = 0:
Campo.Text = Rejilla.Text Con Clic en botón Salir
Campo.SetFocus Termina proceso
Con suceso LeaveCell en MSFlexGrid

Ing. Hermas Herrera Callejas Página : 3 de 3

S-ar putea să vă placă și