Sistema Administrativo Integral para Linux

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.

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.

ejecutable

2. Guardamos el archivo asegurandonos que contenga extension gambas (*.gambas). Ver la siguiente imagen:

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

paquete1.png

paquete2.png

paquete3.png

Nota: Es recomendable seleccionar una distribucion a la vez, ya que puede ocasionar problemas en la siguiente ventana del asistente.

paquete4.png

paquete5.png

paquete6.png

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.

By Julio Montaño Publicado en General

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:

pantalla productos

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

Guia para Principiantes en Gambas

By Julio Montaño Publicado en General

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.

By Julio Montaño Publicado en Noticias

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.

By Julio Montaño Publicado en General

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.

progressbar

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

Interfaz de Reloj Digital

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.

By Julio Montaño Publicado en Noticias