Luego de una reunión celebrada el dia de ayer, la Asociación Cooperativa “Tecnologia Bolivariana” con cede en Carúpano, Estado Sucre, Venezuela, acordó el diseño y construcción de un sistema administrativo que permita, entre otras cosas, facturación, almacen, etc. Esto con el fin de proveer a las pequeñas y medianas empresas de un sistema alternativo a los existentes bajo windows y que lamentablemente las empresas utilizan sin tener las licencias tanto del sistema operativo como del programa administrativo. Aun no se ha decidido bajo que licencia se distribuira el programa, pero de seguro sera bajo GPL o LGPL. De esta manera se espera disminuir la dependencia de software propietario en el mercado venezolano e impulsar el uso de tecnologias libres, como el sistema operativo GNU/Linux, y tambien ayudar al cumplimiendo del decreto Nº 3390, emitido por el Gobierno de la República Bolivariana de Venezuela.
Archivos Mensuales: diciembre 2007
Crear paquetes bajo Gambas
1. Abrimos nuestro programa y creamos el ejecutable. Para ello hacemos clic en la opción: proyecto -> Crear -> Ejecutable; como se aprecia en la imagen mas abajo.
2. Guardamos el archivo asegurandonos que contenga extension gambas (*.gambas). Ver la siguiente imagen:
3. Ahora creamos el paquete de instalacion el cual dependiendo de la(s) distribucion(es) donde se instalara generará los instaladores necesarios (bien sea, *.deb, *.rpm, etc). Para ello debemos pulsar: Proyecto->Crear->Paquete de Instalación, y seguir el asistente:
Nota: Es recomendable seleccionar una distribucion a la vez, ya que puede ocasionar problemas en la siguiente ventana del asistente.
Una vez finalizado el asistente, se genera el paquete en función de las distribuciones elegidas durante la compilación y empaquetado.
Luego de instalar el paquete en el pc, si no aparece en el menu, tipeas en consola: Nombre_del_programa.gambas, y listo.
Conectarse a MySql y Guardar Datos
En primer lugar debe asegurarse de tener instalado Mysql en su pc. Personalmente recomiendo tambien la instalacion de PhpMyadmin que es un programa para administrar y crear bases de datos con Mysql. Si desea mas informacion de como instalar un servidor LAPM (Linux Apache Php Mysql), este link lo puede ayudar.
Ok instalado Mysql en su equipo, podemos crear nuestra base de datos bien sea por phpmyadmin o usando el gestor de base de datos que trae Gambas, el cual se accede en: Herramientas -> Gestor de base de Datos…
Al principio te pide una contraseña para encriptarla, esto para hacer mas segura tu BD. Luego puedes crear la BD y sus tablas de forma muy sencilla e intuitiva.
UN EJEMPLO.
Nada mejor que un ejemplo para ilustrar como se hace para conectar la BD creada y nuestro formulario.
Formulario: En este ejemplo, el formulario se encarga de agregar informacion sobre unos productos a nuestra BD. El aspecto es el siguiente:
Codigo: El codigo, un poco extenso, es el siguiente:
‘ Gambas class file
‘estas son las variables de conexion a la base de datos
PUBLIC cn AS NEW Connection
PUBLIC rs AS Result
‘variables booleanas para evaluacion de expresiones
PUBLIC valor AS Boolean
PUBLIC valor1 AS Boolean
PUBLIC valor2 AS Boolean
PUBLIC SUB BtnCerrar_Click()
ME.Hide
END
PUBLIC SUB Form_Open()
‘este evento permite crear la conexion a la base de datos
WITH cn
.type = “mysql”
.host = “localhost”
.login = “root”
.password = “102172″
.name = “cibercafe”
TRY .OPEN
IF ERROR THEN
Message.Error(“Error abriendo la base de datos!!!\n” & Error.Text)
ME.Close
ELSE
‘se selecciona los campos de la tabla que contiene la BD
rs = cn.Exec(“SELECT * FROM productos”)
rs.MoveFirst
END IF
END WITH
END
PRIVATE SUB Evaluacion()
IF IsNumber(texto2.Text) THEN
valor = TRUE
ELSE
Message.Info(“el valor no es numerico\n” & “usted introdujo:\n” & texto2.Text)
valor = FALSE
END IF
IF IsNumber(texto3.Text) THEN
valor1 = TRUE
ELSE
Message.Info(“el valor no es numerico\n” & “usted introdujo:\n” & texto3.Text)
valor1 = FALSE
END IF
IF IsNumber(texto4.Text) THEN
valor2 = TRUE
ELSE
Message.Info(“el valor no es numerico\n” & “usted introdujo:\n” & texto4.Text)
valor2 = FALSE
END IF
END
PUBLIC SUB BtnGuardar_Click()
‘este es el evento que permite agregar los datos ingresados
‘mediante el formulario a la base de datos
DIM xresult AS Result
DIM xQuery AS String
DIM xParam AS Integer
Evaluacion()
IF valor = FALSE OR valor1 = FALSE OR valor2 = FALSE THEN
ClearField()
RETURN
END IF
xresult = cn.Create(“productos”)
xresult!tipo = UCase(Combo1.Text)
xresult!descripcion = Trim(UCase(texto1.Text))
xresult!precio = Val(Trim(texto2.Text))
xresult!stock = Val(Trim(texto3.Text))
xresult!precio_final = Val(Trim(texto4.Text))
xresult.Update
Message.Info(“Datos Guardados”)
IF ERROR THEN Message.Error(Error.Text)
rs = cn.Exec(“SELECT * FROM usuarios”)
rs.MoveFirst
ClearField()
END
PRIVATE SUB ClearField()
texto1.Text = “”
texto2.Text = “”
texto3.Text = “”
texto4.Text = “”
combo1.SetFocus
END
PUBLIC SUB BtnModificar_Click()
‘FrmOperadores.Hide
FrmModificaProducto.Show
END
Guia para Principiantes
En esta oportunidad les traigo un libro en formato pdf para principiantes de Gambas. gambas-beginner-guide le hace honor a su hombre, es un libro bastante basico pero excelente para aquellos que se inician en la programación bajo GNU/Linux. Su unico problema es que esta en Ingles.
Distribuciones GNU/Linux donde Gambas Funciona OK
ArkLinux 0.7.1 OK
Conectiva 10 OK
Debian Woody OK
Sarge / Sid OK
Fedora Core 3, 4, 5… OK
Gentoo 1.4 OK
Lindowsspire ? Some unresolved problems with QT styles.
Linex OK
Mandriva 2005 / 2006 / 2007 / 2008 OK
QiLinux 1.2 OK
RedHat 9.0 OK But you must upgrade your Qt library or modify a Makefile.am by hand. 8.0 OK But you must compile the Qt 3.2 library and maybe others.
Slackware 10.1 OK Maybe a little elbow grease is needed…
10 OK
9.1 OK
SuSE 9.x / 10.x OK
9.0 OK Some problems with the way SuSE sets the LANG and LC_* system environment variables.
Xandros 2.0 OK
Ubuntu Dapper / Edgy / Feisty / Gutsy OK
Una nota final. Por ahora Gambas funciona en plataforma de 32 bits, pero se esta trabajando para hacerlo funcionar en plataforma de 64 bits.
Tipos de Datos en Gambas
Los tipos de datos que soporta Gambas son los siguientes:
Boolean: es un tipo que suele ser el resultado de una comparación. Solo acepta valores True o False.
Byte: representa un numero entero positivo entre 0 y 255.
Short: representa un numero entero con valores posibles entre -32.768 y +32.767
Integer: representa un numero entero con valores posibles entre -2.147.483.648 y +2.147.483.647
Long: representa un numero entero con valores posibles entre -9.223.372.036.854.775.808 y +9.223.372.036.854.775.807
Single: representa un numero real, con decimales, con valores posibles entre -1,7012118+38 y +1,7014118E+38
Float: representa un numero real, con decimales, con valores posibles entre -8,98846567431105E+307 y +8,98846567431105E+307
Date: almacena valores de fecha y hora en formato UTC.
String: se usa para almacenar una cadena de texto. Su asignación es con dobles comillas.
Variant: almacena cualquier tipo de dato. Se debe evitar su uso porque utiliza mas memorias que los anteriores.
Object: representa cualquier objeto creado en Gambas.
Programar Bajo Consola en Gambas
Es muy sencillo programar bajo consola en Gambas. A continuación les presento un programa que calcula la serie armonica de N numeros.
Analisis: en primer lugar se debe pedir al usuario el valor de N, luego se debe acumular la suma dada (variable suma), y en tercer lugar se deben realizar N iteraciones (usaremos un bucle for).
Comenzando: Ahora Iniciamos Gambas y selecionamos Nuevo Proyecto y elegimos el Tipo Aplicación de Consola. En las opciones podemos elegir que tipo de aplicación de consola realizaremos. Si no seleccionamos ninguna posteriormente podremos agregarlas. Una vez que colocamos el nombre a nuestro proyecto de consola colocamos la codoficación que resuelve el problema planteado.
Codificación: Muy sencilla:
‘ Gambas module file
PUBLIC SUB Main()
‘Declaramos las variables que usara el programa
DIM I AS Integer
DIM N AS Integer
DIM Suma AS Float
‘Inicializamos la variable Suma en 0
Suma = 0
PRINT “¿Cuanto terminos desea Sumar?”
INPUT N
‘por medio de INPUT se ingresa los datos solicitados
FOR I = 1 TO N
Suma = Suma + 1 / I
NEXT
‘Despues del ciclo for que realiza las sumas sucesivas
‘se presentan por consola los resultados
PRINT “La suma de los “, N & ” primeros terminos es: “, Suma
‘El comando WAIT permite, por lo menos en este caso, que el
‘programa permanezca activo 3 segundos despues de su ejecucion
WAIT 3
END
Uso del ProgressBar
La barra de progreso (progressbar en inlges) es uno de los objetos de Gambas que nos permite medir la carga de un archivo, formulario o base de datos de forma grafica. Tambien puede utilizarse para simular el inicio de un sistema, como en el ejemplo siguiente.
La Interfaz: Colocamos en un formulario 2 objetos Timer, un progressbar y 3 textlabel.
El codigo: La codificacion sera la siguiente:
‘ Gambas class file
PUBLIC SUB Form_Open()
‘Timer1 controla la velocidad con que se incrementa
‘el pogressbar. Mientras menor sea el valor mas lento
‘el incremento y en consecuencia se debe incrementar
‘el valor del Timer2 que controla el tiempo que estara
‘visible el formulario hasta desencadenar el siguiente
‘proceso que sera en este caso el llamado a un formulario
‘para ingresar la contraseña. pero puede ser el formulario
‘que usted desee
timer1.Enabled = TRUE
timer1.Delay = 60
progressbar1.Value = 0.01
timer2.Enabled = TRUE
timer2.Delay = 6500
END
PUBLIC SUB Timer1_Timer()
IF progressbar1.Value < 1.00 THEN
progressbar1.Value = progressbar1.Value + 0.01
END IF
END
PUBLIC SUB Timer2_Timer()
ME.Close
FrmContrasena.Show
END
¿Como construir un reloj Digital?
Bien lo dice el slogan de Gambas: “Gambas no es Visual Basic!!”. Decidí hacer este codigo hace unos meses a solicitud de un amigo que me pidio que lo ayudara a construir un reloj digital para una aplicación bajo Gambas; estaba usando sus codigos de Visual Basic… pero nada. Esto me causo curiosidad y constuí este pequeño programa. Espero que sirva de ejemplo para todos.
Primero: La interfaz. En el formulario se deben colocar dos botones, un control timer, una etiqueta (label) y un cuadro de texto (textlabel).
Segundo: La codificación del formulario y los objetos contenidos en el:
‘ Gambas class file
PUBLIC SUB Form_Open()
timer1.Enabled = TRUE
END
PUBLIC SUB Timer1_Timer()
timer1.Delay = 1000
etiqueta1.Text = Time(Hour(Now), Minute(Now), Second(Now))
END
PUBLIC SUB Button1_Click()
message.info(“Es facil programar en Gambas!!!
“)
ME.Close
END
PUBLIC SUB Button2_Click()
message.Delete(“Ejemplo de Reloj Digital\nRealizado por: T.S.U Julio J.Montaño C.”)
END
¿Sencillo verdad? Pero les aseguro que es muy util.
Documentacion de Gambas
Uno de los problemas mas grandes que presenta este lenguaje es la falta de documentacion relacionada con el mismo, es extremadamente escasa, y la que hay generalmente esta en ingles, aleman u otro idioma. Afortunadamente la gente de gnulinex.org ha comenzado a recopilar manuales, libros y cualquier otro material en castellano sobre Gambas. En el siguiente Link podran tener acceso a la documentación existente, es un libro sobre gambas en versión descarble, que si bien es basico, es de tremenda ayuda cuando se esta conociendo este entorno de desarrollo.