miércoles, septiembre 05, 2007

Tutor Embedded Visual Basic - Capitulo 7

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.: