Por: Roberto Alvarado
Capitulo 7
En este nuevo capítulo del tutorial de eVB les muestro como debe quedar aproximadamente nuestra pantalla en tiempo de desarrollo de nuestra aplicación de tareas:
En este capítulo vamos a poner a funcionar las opciones del Menú que creamos en el capítulo anterior.
Para nuestro menú de Tablas tenemos tres opciones: Tareas, Clientes y Aplicaciones, vamos a colocar el código para cada vez que escojamos esta opción nos muestre la pantalla correcta.
Para esto, el código del evento MenuClick quedaría de la siguiente manera:
Private Sub MenuBar1_MenuClick(ByVal Item As MenuBarLib.Item)
Select Case Item.Key
Case "mnuTabTareas"
'TAREAS
fraTareas.Top = 0
fraTareas.Left = 30
fraTareas.Visible = True
Case "mnuTabClientes"
'CLIENTES
fraClientes.Top = 0
fraClientes.Left = 30
fraClientes.Visible = True
Case "mnuTabApp"
'APLICACIONES
fraAplicaciones.Top = 0
fraAplicaciones.Left = 30
fraAplicaciones.Visible = True
Case "mnuNuevo"
'NUEVO
Case "mnuEditar"
'EDITAR
Case "mnuborrar"
'BORRAR
Case "mnuCancelar"
'CANCELAR
Case "mnuGuardar"
'GUARDAR, GRABAR O SALVAR
Case "mnuCerrar"
'CERRAR LA OPCION ACTUAL
If fraTareas.Visible Then
fraTareas.Visible = False
End If
If fraClientes.Visible Then
fraClientes.Visible = False
End If
If fraAplicaciones.Visible Then
fraAplicaciones.Visible = False
End If
End Select
End Sub
Como podemos apreciar colocamos cada uno de los frames en la posición superior de la pantalla y lo mostramos, en la opción de cerrar ocultamos el frame si esta visible.
Lo más importante y esperados por todos.... la BD
Ahora vamos a empezar a trabajar con la base de datos, lo primero es verificar si el archivo cdb existe para ir a crearlo, al igual que las tablas que conforman nuestra base de datos.
Para poder hacer esto necesitamos el control FileSystem, y necesitamos activarlo en el proyecto, vamos al menú Project, y escogemos la opción Componnents, aquí seleccionamos Microsoft CE File System Control 3.0. Con esto en nuestra barra de herramientas de la parte izquierda nos van a aparecer dos controles: FileSystem y File.
Para insertar el control FileSystem en nuestro proyecto hacemos doble clic sobre el icono de la barra de herramientas , se inserta el control en la forma con el nombre FileSystem1; se puede cambiar el nombre de este control que seria la mas relevante de las 5 propiedades que muestra, ya que en ejecución este control es totalmente invisible a la vista del usuario.
Este es el código en el evento Load de la forma para verificar si existe el archivo o no:
'Verifico si existe el archivo CDB
If FileSystem1.Dir(App.Path & "Tareas.cdb") = "" Then
'No existe el Archivo
Call CrearBaseDatos
End If
Como podemos apreciar si el archivo no existe llamamos a una rutina o procedimiento llamada CrearBaseDatos. Esta rutina la vamos a colocar en un Modulo .BAS. Para crear este modulo .Bas nos vamos a la opción Project, escogemos Add Module y hacemos clic sobre el botón Open, esto nos creara un modulo en blanco, al cual le vamos a asignar el nombre de modTareas. Esto lo podemos hacer en la propiedad Name del Modulo.
En el modulo modTareas vamos a desarrollar la rutina CrearBasedatos, como vamos a crear las tablas que vamos a utilizar en el programa me permito colocar tal y como vienen en la ayuda de las EVT la descripción de los tipos de campos que podemos utilizar para nuestras tablas. No traduzco la descripción, porque considero esta sencilla y no quiero entrar en errores de interpretación. Así que aquí esta la descripción de los campos que podemos utilizar:
Data Type | Description |
Varchar[(n)] | NULL-terminated Unicode character string of length n, with a maximum of 255 characters. If n is not supplied, then 1 is assumed. |
Text | Variable length string that can hold up to 32,000 characters. It is typically used for more than 255 characters. |
Varbinary[(n)] | Binary value of less than 256. If n is not specified, the default is 1. |
Long Varbinary | Binary value of less than 65,469 bytes. This type is also known as OLE Object. |
Integer, int | 4-byte signed integer. |
Smallint | 2-byte signed integer. |
Float | Double-precision floating point value. |
Datetime | Date object value. |
Bit | Logical or Boolean value. Zero is FALSE and nonzero is TRUE. |
Uint | Unsigned 4-byte integer, which is provided for backward compatibility only. |
Usmallint | Unsigned 2-byte integer, which is provided for backward compatibility only. |
Enseguida les muestro el código de la rutina para crear la base de datos cdb y sus respectivas tablas, de acuerdo al diseño de la tercera entrega.
Sub CrearBaseDatos()
'Creo el archivo de Base de datos en la
'misma carpeta de la aplicacion
Dim rs As ADOCE.Recordset
Dim DB As String
Dim cnn As ADOCE.Connection
'Creamos el archivo CDB
DB = App.Path & "Tareas.cdb"
Set rs = CreateObject("ADOCE.Recordset.3.0")
rs.Open "CREATE DATABASE '" & DB & "'"
Set rs = Nothing
'Creamos las tablas
'Tabla de Tareas
Set cnn = CreateObject("ADOCE.Connection.3.0")
cnn.Open DB
cnn.Execute "CREATE TABLE Tareas (IdTarea Int, " & _
"Aplicacion varchar(5), " & _
"Tarea varchar(50), " & _
"Cliente Int, " & _
"Tiempo varchar(8), " & _
"FecIni DateTime, " & _
"FecFin DateTime, " & _
"Estado Varchar, " & _
"HoraInicio Varchar(8), " & _
"HoraFinal Varchar(8), " & _
"ValorHora Int, " & _
"Descripcion Varchar(255) )"
'Ahora la Tabla existe en la Base de Datos CDB
cnn.Close
'Tabla de Clientes
cnn.Open DB
cnn.Execute "CREATE TABLE Clientes (IdCliente Int, " & _
"Nombre varchar(50), " & _
"Direccion varchar(50), " & _
"Telefonos Varchar(20), " & _
"Celular varchar(20), " & _
"Fax Varchar(20), " & _
"ValorHora Int )"
cnn.Close
'Tabla del LOG
cnn.Open DB
cnn.Execute "CREATE TABLE Log (Fecha DateTime, " & _
"Hora varchar(8), " & _
"IdTarea Int), " & _
"Tipo Varchar, " & _
"Observacion varchar(255) )"
cnn.Close
'Tabla Aplicaciones
cnn.Open DB
cnn.Execute "CREATE TABLE Aplicaciones (IdApp Varchar(5), " & _
"Aplicacion varchar(30) ) "
cnn.Close
Set cnn = Nothing
End Sub
Con esto contesto una de las preguntas que más se hacen en los post, Como se pueden crear base de datos en Windows CE.
Esta es una muy buena opción para trabajar con la base de datos en el emulador, lo único es crear una rutina que suba los datos desde un archivo en formato de texto a las tablas de la base de datos. Esto lo realizaremos en un próximo capitulo.
No hay comentarios.:
Publicar un comentario