El entorno de programación de Gambas se ha convertido en un auténtico heredero del popular entorno de Visual Basic 6.0 y una delicia para los programadores que trabajan y conocen sus entresijos, ya que no solo emula a Visual Basic 6.0 sino que lo mejora en muchos aspectos.
Gambas solo funciona en sistemas operativos Linux, aunque muchos buscan formas alternativas para ejecutar Gambas en Windows con máquinas virtuales como VirtualBox y otros similares, que en mi opinión todavía no dan la talla, ya que presentan problemas de lentitud y son engorrosas de implementar.
Lo mejor es trabajar en un entorno Linux con Gambas directamente, para obtener la máxima eficacia y rendimiento.
Este artículo está dirigido al alumnado que se inicia en la programación de aplicaciones sencillas en la asignatura de Tecnologías de la Información y la Comunicación (TIC), aunque puede servir a cualquiera que se inicie en el tema.
Por tanto, veremos este ejemplo desde un enfoque didáctico, haciendo hincapié en los conceptos fundamentales de la programación y de los contenidos relacionados con esta asignatura.
Para el desarrollo de nuestra aplicación vamos a seguir dos manuales sencillos:
- Manual paso a paso de Gambas: Donde se describe paso a paso el desarrollo de una aplicación para Listín de datos.
- Bases de datos SQLite desde Gambas3: Donde nos describe como crear una sencilla aplicación con acceso a una base de datos creada con SQLite.
El primer paso es la instalación de la aplicación gambas desde el gestor de software de sistema Linux:
Una vez instalada la última versión de gambas, procedemos a la instalación de los complementos de Bases de datos para Gambas, entre ellos SQLite, en el caso de que no se hayan instalado al instalar Gambas.
También podemos descargar dos programas de gestión de bases de datos Sqlite como DB Browser for SQLite y SQLiteman:
Pero la opción que más recomiendo para gestionar bases de datos Sqlite es el complemento del navegador Firefox llamado "SQLite Manager", que se instala fácilmente desde el gestor de complementos del navegador.
1.- ESTRUCTURAS DE DATOS:
En Gambas como en la mayoría de los lenguajes de programación, los datos se definen utilizando un estructura determinada para cada tipo de dato. En nuestro ejemplo tenemos que definir los siguientes datos:
Public
Struct alumno '
ejemplo de estructura
Id As Integer ' id: identificador del alumno variable tipo numero entero
Nombre As
String
' nombre:
variable donde guardaremos el nombre del alumno
Apellidos As
String'
apellidos: variable donde guardaremos los apellidos del alumno
Centro as String 'Nombre del centro de enseñanza
Curso As String
' Identificación del curso que que realiza el alumnos (3ºESO,2º BCH,..)
Asignatura as String 'Asignatura que se está evaluando.
Actividad as String 'Nombre de la actividad que se califica, ej: Exámen Tema 7
Fechaentrega as Date 'Variable con la fecha de entrega realización de la prueba.
Nota as numeric 'Variable con la nota en formato numérico
promedio_notas As
Float 'variable con el promedio de las notas que tenga el alumno
Obser as String 'Una variable para guardar las observaciones que creamos necesarias.
End Struct
En este ejemplo hemos definido los datos tipo texto como String, los datos numéricos se pueden definir con entero corto, entero largo o de coma flotante y los datos de tipo fecha como Date.
También existen otros tipos de datos como arrays, que son matrices o vectores, donde se almacena valores de tablas y booleanos que son datos del tipo verdadero o falso.
- Primer paso: creación del formulario en Gambas3
Creamos el formulario con los campos definidos en la estructura de datos. El formulario va a contener además un Grisview para visualizar los registros de la tabla.
- Segundo paso: selección del fichero de base de datos
Vamos a utilizar una base de datos sqlite3. Crearemos una opción de menú para seleccionar una ubicación distinta del fichero de base datos. Con la combinación de teclas Ctrl+E abrimos el editor de menús:
Creamos dentro del menú opciones un item que llamamos "Selección de la Bases de datos", en la que añadimos el siguientes código.
Public Sub Menu_SelectBD_Click()
' Inicializar valores
Dialog.Path = User.Home
DirViewBD.Root = Dialog.Path
FileViewBD.Dir = DirViewBD.Current
FrameSelecBD.visible = True
FrameSelecBD.Enabled = True
End
En este código activamos y hacemos visible el marco "FrameSelecBD" que contiene los controles Dirview y Fileview.
En la parte de la derecha he incluido el frame en fondo naranja que incluye los dos controles: DirviewBD y un FileviewBD, que nos van a servir para seleccionar una base de datos, en caso de que no se haya definido al abrir el formulario o que se haya cambiado o movido de directorio.
El código que contienen estos controles es el siguiente:
Public Sub DirViewBD_Click()
rutaBD = DirViewBD.Current
FileViewBD.Dir = DirViewBD.Current
End
Public Sub FileViewBD_Click()
rutaBD = FileViewBD.Current
'Message(rutaBD)
End
Al hacer clic en el DirViewBD ponemos en la varible rutaBD el directorio seleccionado, y actualizamos en directorio en el control FileViewBD. Cuando hacemos clic en el control FileViewBD actualizamos la variable ruta con la ruta del fichero de base de datos seleccionado.
En el frame colocamos dos botones: El botón seleccionar y cancelar con el siguiente código:
Public Sub Boton_AceptarBD_Click()
rutaBD = DirViewBD.Current & "/" & FileViewBD.Current
'Message(rutaBD)
Conexion = New Connection
Conexion.Type = "sqlite3"
Conexion.Host = DirViewBD.Current
Conexion.Name = FileViewBD.Current
Try Conexion.Open()
If Error Then
Message.Error("Error al conectar a la base de datos.")
Conexion = Null
Else
TablaNotas = Conexion.Exec("Select * from Notas")
If TablaNotas.Available Then MostrarCampos
TextAreaMensaje.Text = "Conexión establecida con Base de datos: " & rutaBD
'Message.info("Conexión establecida con Base de datos: " & rutaBD)
FMain.Text = "CALIFICACIONES --->" & " Ruta de la Base de datos: " & rutaBD
FrameSelecBD.visible = False
FrameSelecBD.Enabled = False
definirGridviewDatos()
rellenadatosGridview()
Gridviewdatos.mode = Select.Single
End If
End
En este botón abrimos la conexión y asignamos el tipo ("sqlite3"), la ruta del directorio y el nombre de la base de datos. Probamos la conexión, en caso de error enviamos un mensaje por pantalla y en caso de que conecte ejecutamos la sentencia SQL que nos carga los datos de la tabla notas. Después mostramos un mensaje en un texbox para nos informe de que se ha establecido conexión con la base de datos. Además ponemos la ruta de la base de datos en el texto de cabecera del formulario. Después ocultamos el marco de selección de la base de datos y rellenamos los datos del Gridview.
En el botón cancelar cerramos el frame de selección de base de datos sin hacer nada.
Public Sub Boton_CancelarBD_Click()
FrameSelecBD.visible = False
FrameSelecBD.Enabled = False
End
- Declaraciones de variables:
' Gambas class file
Public rutaBD As String
Private Conexion As Connection
Private TablaNotas As Result
- Código que se ejecuta a la apertura del formulario:
Public Sub Form_Open()
Me.center()
Conexion = New Connection
Conexion.Type = "sqlite3"
Conexion.Host = "/home/francisco/Datos"
Conexion.Name = "Calificaciones.sqlite"
Try Conexion.Open()
If Error Then
Message.Error("Error al conectar a la base de datos. Selecciones una BD")
Conexion = Null
Menu_SelectBD_Click()
Else
TablaNotas = Conexion.Exec("Select * from Notas")
If TablaNotas.Available Then MostrarCampos
definirGridviewDatos()
rellenadatosGridview()
Gridviewdatos.mode = Select.Single
End If
rutaBD = "/home/francisco/Datos" & "/" & "Calificaciones.sqlite"
FMain.Text = FMain.Text & " Ruta de la Base de datos: " & rutaBD
TextAreaMensaje.Text = "Área de mensajes de la aplicación"
End
Vamos a introducir el código necesario para añadir un registro en la base de datos con el botón "Insertar":
Para añadir un registro seleccionamos en el menú de operaciones de la aplicación la opción de "Insertar":
Hay que poner el siguiente código para que se ejecute al hacer clic en Insertar:
Public Sub Boton_Insertar_Click()
Dim VarResult As Result
VarResult = Conexion.Create("Notas")
VarResult["Nombre"] = textbox_Nombre.Text
VarResult["Apellidos"] = textbox_apellidos.Text
VarResult["Centro"] = ComboBox_Centro.Text
VarResult["Curso"] = ComboBox_Curso.Text
VarResult["Asignatura"] = ComboBox_Asignatura.Text
VarResult["Actividad"] = ComboBox_Actividad.Text
VarResult["Fecha"] = DateboxFecha.Value
VarResult["Nota"] = ComboBox_Nota.Text
VarResult["Obser"] = TextBox_Obser.Text
VarResult.Update
TablaNotas = Conexion.Exec("Select * from Notas")
Boton_Ultimo_Click
TextAreaMensaje.Text = "Se ha añadido el registro: " & TablaNotas["Id"] & " ---> " & textbox_Nombre.Text & " " & textbox_apellidos.Text
Boton_Insertar.Enabled = False
Boton_Modificar.Enabled = False
Boton_Primero.Enabled = True
Boton_Anterior.Enabled = True
Boton_Siguiente.Enabled = True
Boton_Ultimo.Enabled = True
End
No hay comentarios:
Publicar un comentario