Ahora vamos a crear los formularios de entrada (el tipico que pide el Usuario y su login), y el formulario de trabajo (donde podremos ver los contactos, editarlos, borrarlos, insertarlos, etc).
Para crear formularios nuevos, nos vamos al lado izquierdo, pulsamos el boton derecho en "Fuentes" -> "Nuevos" -> "formulario"
Y pondremos el nombre de "FormulariodeTrabajo"
Repetimos los mismos pasos para crear el formulario "FormularioAcceso"
Vamos a trabajar sobre este último.
Tenemos que poner dos etiquetas tipo "label" y dos tipo "Textbox", además de un botón para seguir adelante.
El formulario os debe quedar asi:
Ahora vamos a modificar las propiedades "text" de las label1 y labe2 y del botón
Eso se hace seleccionando el componente que hemos puesto en el formulario (por ejemplo el label1) y a la derecha de la pantalla nos aparece sus propiedades, buscamos "text", y ponemos el texto de "Usuario:".
Asi obtendremos el siguiente formulario:
Como veis en la captura, también hay una propiedad de los texbox, que nos interesa a la hora de ocultar lo que escribimos, para ello hay que pulsar en la propiedad "password" y ponerla como "True".
Ahora vamos a añadir controles al formulario "FormulariodeTrabajo" :
El primer control que vamos a usar es un contenedor, el "IconPanel", este control es un contenedor que puede contener a más controles y ademas nos muestra una lista de pestañas que podemos personalizar con texto e iconos.
Lo añadimos al formulario.
Ahora en la propiedad "count" podemos indicar el nº de pestañas que tendrá, podremos 3.
Y en la propiedad "text", pondremos el nombre de la pestaña y su icono en la propiedad "Picture" (podemos aprovechar el stock de iconos para elegirlos).
Podeis obtener esto:
A cada pestaña le iremos añadiendo diversos controles:
- Textbox: para introducir datos
- Label: para indicar etiquetas
- Gridview: para presentar los datos
- Botones: para hacer operaciones.
Ademas, nos falta añadir el código a los formularios, ya que estos, aun no pueden hacer nada, esto será en las próximas entradas...
sábado, 28 de abril de 2012
07. Clases: Añadiendo Métodos (I)
Ahora, vamos a añadir varios métodos a nuestras clases.
En particular voy a explicar, como añadir métodos a la clase Registro.
Para ello, vamos a necesitar varias variables privadas nuevas:
Estas se deben de introducir antes de la zona donde definimos los métodos Sub, dentro de la clase "Registro.class".
Ahora pasamos a los métodos:
En particular voy a explicar, como añadir métodos a la clase Registro.
Para ello, vamos a necesitar varias variables privadas nuevas:
'---------------------------- ' Variables extras... '---------------------------- Private conectar As Connection 'conecta a la base de datos Private resultado As Result 'contiene los registros que se devuelven de una consulta Private SQLString As String 'nos va ha servir para contener las ordenes en el lenguaje SQL |
Ahora pasamos a los métodos:
Conectarse: es el que se encarga de conectarse a la base de datos, si hay algún problema devuelve un mensaje "Error abriendo la base de datos!!!".
Public Function conectarse()As Boolean
With conectar
.type = "mysql"
.host = "localhost" 'lugar donde esta la base de datos
.login = "admin"
.password = "admin"
.name = "dblistin" 'nombre de la base de datos
Try .OPEN
If Error Then
Message.Error("Error abriendo la base de datos!!!\n" & Error.Text)
Return False
Else
Return True
Endif
End With
End
With conectar
.type = "mysql"
.host = "localhost" 'lugar donde esta la base de datos
.login = "admin"
.password = "admin"
.name = "dblistin" 'nombre de la base de datos
Try .OPEN
If Error Then
Message.Error("Error abriendo la base de datos!!!\n" & Error.Text)
Return False
Else
Return True
Endif
End With
End
Insertar: se encarga de insertar un registro en la tabla "datoslistin"
Public
Sub insertar()
SQLString = "INSERT INTO datoslistin(nif,nombre,apellidos,telefono,movil,domicilio,
ruta_grafica,ruta_mini) Values ('"
SQLString &= hnombre
SQLString &= "','" & hapellidos
SQLString &= "','" & htelefono
SQLString &= "','" & hmovil
SQLString &= "','" & hdomicilio
SQLString &= "','" & hruta_grafica
SQLString &= "','" & hruta_mini & "')"
Try resultado = conectar.Exec(SQLString)
If Error Then
Message.Error(" Se ha producido un ERROR al Intentar insertar datos, revise ID, " & "\nSentencia: " & sqlstring)
Endif
End
SQLString = "INSERT INTO datoslistin(nif,nombre,apellidos,telefono,movil,domicilio,
ruta_grafica,ruta_mini) Values ('"
SQLString &= hnombre
SQLString &= "','" & hapellidos
SQLString &= "','" & htelefono
SQLString &= "','" & hmovil
SQLString &= "','" & hdomicilio
SQLString &= "','" & hruta_grafica
SQLString &= "','" & hruta_mini & "')"
Try resultado = conectar.Exec(SQLString)
If Error Then
Message.Error(" Se ha producido un ERROR al Intentar insertar datos, revise ID, " & "\nSentencia: " & sqlstring)
Endif
End
Ahora, vamos a añadir el método modificar_nif, el cual dado un nif concreto, va a modificar los datos del registro que coincida con ese nif.
Public Sub modificar_nif()
SQLString = "UPDATE datoslistin SET "
SQLString &= "nombre='" & hnombre
SQLString &= "', apellido='" & hapellido
SQLString &= "', telefono='" & htelefono
SQLString &= "', movil='" & hmovil
SQLString &= "', domicilio='" & hdomicilio
SQLString &= "', ruta_grafica='" & hruta_grafica
SQLString &= "', ruta_mini='" & hruta_mini & "'"
SQlString &= " WHERE nif='" & hnif & "'"
Try resultado = conectar.Exec(SQLString)
If Error Then
Message.Error(" Se ha producido un ERROR al Modificar datos, revise ID , "
& "\nSentencia: " & sqlstring)
Else
Return mRs
Endif
End
Y ahora, vamos a hacer una función que pasado una consulta en sql, nos devuelva los campos que genera dicha consulta.
Public Function sql(consulta As String) As Result
Try resultado = conectar.Exec(consulta)
If Error Then message.info("Consulta erronea, revisela")
Return resultado
End
Como tarea, podeis hacer lo mismo con la clase Usuario, añadirle los mismos métodos, eso si, los teneis que adaptar a los campos que tiene la tabla "login".
SQLString = "UPDATE datoslistin SET "
SQLString &= "nombre='" & hnombre
SQLString &= "', apellido='" & hapellido
SQLString &= "', telefono='" & htelefono
SQLString &= "', movil='" & hmovil
SQLString &= "', domicilio='" & hdomicilio
SQLString &= "', ruta_grafica='" & hruta_grafica
SQLString &= "', ruta_mini='" & hruta_mini & "'"
SQlString &= " WHERE nif='" & hnif & "'"
Try resultado = conectar.Exec(SQLString)
If Error Then
Message.Error(" Se ha producido un ERROR al Modificar datos, revise ID , "
& "\nSentencia: " & sqlstring)
Else
Return mRs
Endif
End
Y ahora, vamos a hacer una función que pasado una consulta en sql, nos devuelva los campos que genera dicha consulta.
Public Function sql(consulta As String) As Result
Try resultado = conectar.Exec(consulta)
If Error Then message.info("Consulta erronea, revisela")
Return resultado
End
Como tarea, podeis hacer lo mismo con la clase Usuario, añadirle los mismos métodos, eso si, los teneis que adaptar a los campos que tiene la tabla "login".
viernes, 27 de abril de 2012
06. Clases: Añadiendo Propiedades.
Vamos a añadir varias propiedades a nuestras clases recien creadas.
Por cada campo que tiene la tabla, haremos una propiedad siguiendo este esquema:
Por cada campo que tiene la tabla, haremos una propiedad siguiendo este esquema:
'zona para definir las propiedades....
PROPERTY
Nombre
AS
Tipo
PRIVATE
hNombre
AS
Tipo
....
....
'zona para definir el acceso de lectura y escritura a las propiedades
PRIVATE
FUNCTION
Nombre_read()
AS
Tipo
RETURN
hNombre
END
PRIVATE
SUB
Nombre_write(Valor
AS
Tipo)
hNombre
=
Valor
END.... .... |
Nombre: vamos a nombrarlo como cada campo de la tabla
hNombre
: sera una variable privada (solo lo usara la misma clase)
Tipo: aqui le tenemos que poner el tipo de dato (String, Integer, Float, etc)
Nos vamos a la clase Registro, y empazamos a crear estas propiedades:
'----------------------------
'zona para definir las propiedades....
'----------------------------
Property
nif
As
StringPrivate hnif As String Property nombre As String Private hnombre As String Property apellidos As String Private hapellidos As String Property telefono As String Private htelefono As String Property movil As String Private hmovil As String Property domicilio As String Private hdomicilio As String Property ruta_grafica As String Private hruta_grafica As String Property ruta_mini As String Private hruta_mini As String
'------------------------------------------
'zona para definir el acceso de lectura y escritura a las propiedades
'------------------------------------------
Private
Function
ruta_mini_read()
As
StringReturn hruta_mini End Private Sub ruta_mini_write(Valor As String) hruta_mini = Valor End Private Function ruta_grafica_read() As String Return hruta_grafica End Private Sub ruta_grafica_write(Valor As String) hruta_grafica = Valor End Private Function domicilio_read() As String Return hdomicilio End Private Sub domicilio_write(Valor As String) hdomicilio = Valor End Private Function movil_read() As String Return hmovil End Private Sub movil_write(Valor As String) hmovil = Valor End Private Function telefono_read() As String Return htelefono End Private Sub telefono_write(Valor As String) htelefono = Valor End Private Function apellidos_read() As String Return hapellidos End Private Sub apellidos_write(Valor As String) hapellidos = Valor End Private Function nombre_read() As String Return hnombre End Private Sub nombre_write(Valor As String) hnombre = Valor End Private Function nif_read() As String Return hnif End Private Sub nif_write(Valor As String) hnif = Valor End |
Nota:
Este proceso es muy mecánico, para hacerlo más rápido podeis usar esta pequeña herramienta CreadorClasesGambas3.gambas
Si quereis ver como esta hecha, podeis descargar el código fuente en:
Tarea:
Para la clase Usuario, por cada campo de la tabla, hacer sus propiedades correspondientes.
05 Clases: ¿ como se crean ?
En este proyecto vamos a usar el paradigma de Programación Orientada a Objetos (POO), ya que es la forma en que se programa actualmente.
Si quereis saber más sobre POO, podeis visitar este enlace Wikipedia Programación_orientada_a_objetos
Nuestro proyecto va a necesitar de varias clases.
a) La clase Registro:
Es la que se va a encargar de manejar la información (insertar, modificar, borrar, etc) que va a contener la tabla "datoslistin" de la base de datos.
b) La clase Usuario, que es la que se encargará de permitir el acceso a los usuarios y contener la información del nivel de usuario.
¿como crear una clase?
Tenemos que hacer click con el botón derecho en el lado izquierdo de la pantalla, en "Fuentes", aparece un menu, elegimos "Nuevo", y otro donde elegiremos en "Clases"
Nota:
En este menu, es donde podremos añadir también Formularios y módulos.
Los módulos se usan para contener funciones y subrutinas, en el paradigma de la programación Estructurada (ver para más detalles wiki Programación_estructurada)
Una vez que pulsamos en "Clases" aparece esta pantalla:
Donde podemos elegir la pestaña "Nuevo" (si la vamos a crear nueva) o "Existente" donde podremos elegir alguna que ya hayamos creado en otro proyecto , para que se añada a nuestro programa.
En nuestro nos quedamos en la pestaña "Nuevo", y ponemos el nombre a nuestra clase "Registro", y pulsamos "OK"
Nos aparece el editor de programación. Fijaros en la pestaña que estamos "Registro.Class", pulsando sobre estas pestañas, nos movemos entre los distintos archivos (formularios, clases) que componen nuestro proyecto.
y ya podemos escribir el código fuente.
Os dejo la tarea de crear la clase "Usuario"
sábado, 21 de abril de 2012
04. Diagramas de nuestra aplicación
Ya tenemos todo configurado: mysql y gambas3
Además tenemos nuestro proyecto ya iniciado en gambas, con los componentes necesarios activado y realizado la conexión a la base de datos.
Ahora vamos a pensar... ¿que es lo que queremos que haga la aplicación?
1º) Almacenar los datos de personas en la tabla "datoslistin"
2º) Controlar el acceso de los usuarios a esos datos.
He hecho este esquema:
Aqui podemos ver como interactua el usuario.
1º El usuario entra en la aplicación y se le solicita atreves de un formulario su nombre y clave
2º Según sea el nivel del usuario podrá Ver,Editar,Borrar Datos del listin.
3º Si el usuario es Administrador, podrá también Ver, Editar, Borrar, los datos y privilegios de los usuarios.
4º Todo esto se hace con consultas a la base de datos.
En la próxima entrada veremos como crear los formularios y el código necesario para interactuar con la base de datos.
Suscribirse a:
Entradas (Atom)