Posteado por: jsbsan | 15 Noviembre 2009

Revista linux +: Curso de Gambas

En la siguiente direccion linux +

linuxplus

podeis descargaros la revista linux +, en formato PDF. En el nº de 56, aparece un articulo dedicado al Acceso a Bases de Datos SQLITE, de Jorge Emanuel Capurro (paginas 72 a la 82)

revista linux1

Espero que os guste, un saludo

Tras la pregunta de Emil Colina, he realizado esta entrada para explicar el uso de variables globales, ademas de un pequeña anotación sobre hacer que los controles sean públicos (se puedan leer sus valores desde otros formularios del que fueron creados).

Bien empiezo:

1) Lo primero que debes hacer es añadir un modulo a tu programa, donde contenga todas las variables que quieran que sean accesibles desde todas las partes del programa (es para ser ordenados y las encuentres facilmente). Yo cree un modulo llamado “var“, donde las tengo todas definidas.

2) Dentro de estre modulo, defines las variables:
‘——————————————-fechas———————–
PUBLIC fechaincluida AS Date

Pantallazo-GestionAlmacen - Gambas 2-1

3) Ya desde cualquier parte del programa puedes acceder a esa variable de la siguiente manera:

var.fechaincluida

para asignarle un valor, cambiarlo, o leerlo

4)Si vas a leer datos de controles (textbox, etc) desde otros formularios del que esta creado el control, estos deben de ser publicos. Esto lo haces en el menu:
Proyecto/Propiedades (ctrl+P)/Opciones
tener en las Opciones del Proyecto como “si” en el apartado de compilacion los controles de formulario

Pantallazo-Propiedades del proyecto - GestionAlmacen

Para mas detalles te explico como lo he hecho en el programa Gestion-Almacen:
Si abres el modulo var, en la linea 127, defino la variable fechaincluida

Si abres el formulario Finformes,

En la linea 1663, asignamos a una variable local (fecha_dia) el resultado de la funcion Preguntarhastafecha()

fecha_dia = Preguntarhastafecha()

Pantallazo-GestionAlmacen - Gambas 2

En la linea 991, se define una funcion “Preguntarhastafecha() AS Date”, que carga el formulario de Ffechadia

PUBLIC FUNCTION Preguntarhastafecha() AS Date
‘leer la fecha de trabajo actual del formulario FMain.LabelFechaTrabajoInforme.text
var.fechaincluida = Val(FMain.LabelFechaTrabajoInforme.text)
‘carga el formulario Ffechadia
Ffechadia.ShowModal
‘devuelve la fechaincluida
RETURN var.fechaincluida

END

Pantallazo-GestionAlmacen - Gambas 2-2

Si abres el formulario “Ffechadia”, veras como se encarga de que la fecha que elija el usuario, la guarde en var.fechaincluida

Pantallazo-GestionAlmacen - Gambas 2-3

Pantallazo-GestionAlmacen - Gambas 2-4

Bueno, asi termino la explicación, espero que os sea util.

Un saludo.

Posteado por: jsbsan | 1 Noviembre 2009

Juego Rubik 2D

He encontrado en este foro un interesante codigo de un juego realizado por ARIEL.

Os adjunto varias capturas de pantalla y su codigo fuente

Posteado por: jsbsan | 1 Noviembre 2009

Ejemplo de Drag & Drop

Gracias al foro de http://www.gambas-es.org/ y a sus integrantes que me han ayudado a resolver mis dudas sobre drag y drop, he podido realizar este pequeño programa para ejemplo de su aplicación.

Se trata de utilizar drag y drop entre textbox y listbox, (pasarse datos con coger y soltar), que resultara muy cómodo al usuario de nuestros programas a la hora de añadir datos, moverlos, etc..

cogerysoltar

Y este es el codigo del formulario principal:


' Gambas class file
'propiedades drog:
'TextBox2.Drop debes declararlas desde el editor de propiedades TRUE
'ListBox1.Drop debes declararlas desde el editor de propiedades TRUE
'listbox2.Drop debes declararlas desde el editor de propiedades TRUE
PUBLIC SUB Form_Open()
ListBox1.Add("Andalucia")
ListBox1.Add("Canarias")
listbox1.add("Murcia")
END
'coger
PUBLIC SUB TextBox1_MouseDrag()
IF Mouse.Left THEN
TextBox1.Drag(TextBox1.Text)
ENDIF
END
PUBLIC SUB ListBox1_MouseDrag()
IF Mouse.Left THEN
listbox1.Drag(ListBox1[ListBox1.index].text)
ENDIF
END
PUBLIC SUB ListBox2_MouseDrag()
IF Mouse.Left THEN
listbox2.Drag(ListBox2[ListBox2.index].text)
ENDIF
END
'soltar
PUBLIC SUB TextBox2_Drop()
TextBox2.text = Drag.Data
END
PUBLIC SUB ListBox1_Drop()
ListBox1.Add(Drag.data)
END
PUBLIC SUB listbox2_Drop()
ListBox2.Add(Drag.data)
END

Aqui teneis el codigo fuente

Y de nuevo gracias al foro y a las personas que han hecho posible este programa.

Espero que os sea util, un saludo

Julio

Hola a todos.

Combinando la informacion de tres paginas web, vamos a:
1) Buscar nuevos tipos de letras (TTF) para nuestro linux (Ubuntu, en mi caso).
2) Instalarlas en nuestro ordenador
3) Hacer un reloj digital, con el tipo de letra que acabamos de instalar.

Nota importante: darle las gracias a los autores de las paginas a las que me voy a referir.


Pasamos a hacerlo:
1) Buscar nuevos tipos de letras:
http://fonts500.com/
Desde aqui podemos descargarnos la que mas nos guste. Por ejemplo: ALLSTAR, pulsamos sobre ella y nos saldra el cuadro de guardar:

DESCARGA TIPO DE LETRA 1

La extraemos en una carpeta que crearemos nueva llamada fuentes:

00 extraer letra 2

Otras direcciones para obtener tipos de letras:
http://www.letramania.com/index.htm
http://www.fontreactor.com/
http://recursosgratis.com/fuentesgratis/
http://www.creamundo.com/

2) Instalar el nuevo tipo de letra:
En la direccion http://nideaderedes.urlansoft.com/2006/11/14/instalar-nuevos-tipos-de-letras-en-ubuntu/, nos explican como instalar tipos de letras ttf, la que nos hemos descargado es de ese tipo.

Crearemos (si no esta creado) esta carpeta font-install en /usr/share/fonts/truetype/ :

sudo mkdir -p /usr/share/fonts/truetype/font-install

Crearemos un archivo llamado “instalador”, (por ejemplo con el Editor de textos gedit), pegaremos el siguiente código:
#!/bin/bash
#
# This script helps to install fonts
#
# Set your default font storage directory here
##DEFAULT_DIR="$HOME/fonts"
DEFAULT_DIR=`pwd`
# Set the default font installation directory here
DEFAULT_DEST="/usr/share/fonts/truetype/font-install"
# Don't edit anything below unless you know what you're doing.
echo "¿En qué directorio están las fuentes?"
echo -n "[$DEFAULT_DIR] "
read DIR
echo
echo "¿Cuál es la extensión (sin el punto) de las fuentes? (ojo, no es lo mismo ttf que TTF)"
echo -n "[ttf] "
read EXT
echo
echo "¿Dónde instalo las fuentes?"
echo "¡NO CAMBIES ESTO A NO SER QUE SEPAS LO QUE HACES!"
echo -n "[$DEFAULT_DEST] "
read DEST
if [ -z "$DIR" ]; then
DIR="$DEFAULT_DIR"
fi
if [ -z "$EXT" ]; then
EXT="ttf"
fi
if [ -z "$DEST" ]; then
DEST="$DEFAULT_DEST"
fi
sudo -v
if [ $? != 0 ]; then
echo "Imposible conseguir los privilegios necesarios. Saliendo..."
echo -n "Press to continue. "
read WER
exit $?
fi
echo
echo
if [ ! -d "$DIR" ]; then
echo "El directorio $DIR no existe. Saliendo..."
echo -n "Press to continue. "
read SDF
exit 2
fi
if [ ! -d "$DEST" ]; then
echo "El directorio $DIR no existe. Saliendo..."
echo -n "Press to continue. "
read DFG
exit 1
fi
echo "Copiando fuentes..."
cd "$DIR"
for i in *."$EXT"; do
sudo cp -iv "$i" "$DEST"
done
echo
echo
echo "Actualizando la caché de fuentes..."
sudo fc-cache -fv
if [ $? != 0 ]; then
echo "Error actualizando la caché de fuentes. Tus fuentes no se han instalando correctamente. Prueba a ejecutar sudo fc-cache -fv manualmente. Saliendo..."
echo -n "Pulsa para salir. "
read FSF
exit $?
fi
echo
echo
echo "Proceso terminado."
echo
echo "Probablemente necesitarás reiniciar los programas que están en marcha para poder usar estas fuentes."
echo -n "Pulsa para salir. "
read WERT
exit 0

Lo guardamos en la carpeta fuentes,con el nombre de instalador
01 guardando instalador
lo haremos ejecutable:
chmod +x instalador
y lo ejecutaremos:
.\instalador
pulsamos ENTER cada vez que nos pregunte algo. Obtendremos una salida tal como esta:

$ ./instalador
¿En qué directorio están las fuentes?
[/home/uno/fuentes] (PULSA ENTER)
¿Cuál es la extensión (sin el punto) de las fuentes? (ojo, no es lo mismo ttf que TTF)
[ttf] (PULSA ENTER)
¿Dónde instalo las fuentes?
¡NO CAMBIES ESTO A NO SER QUE SEPAS LO QUE HACES!
[/usr/share/fonts/truetype/font-install] (PULSA ENTER)
Copiando fuentes...
«All Star Resort.ttf» -> «/usr/share/fonts/truetype/font-install/All Star Resort.ttf»
Actualizando la caché de fuentes...
/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs
/usr/share/fonts/X11: caching, new cache contents: 0 fonts, 6 dirs
/usr/share/fonts/X11/100dpi: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/X11/75dpi: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/X11/Type1: caching, new cache contents: 43 fonts, 0 dirs
/usr/share/fonts/X11/encodings: caching, new cache contents: 0 fonts, 1 dirs
/usr/share/fonts/X11/encodings/large: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/X11/misc: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/X11/util: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/truetype: caching, new cache contents: 2 fonts, 19 dirs
/usr/share/fonts/truetype/arphic: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/truetype/font-install: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/truetype/freefont: caching, new cache contents: 12 fonts, 0 dirs
/usr/share/fonts/truetype/latex-xft-fonts: caching, new cache contents: 7 fonts, 0 dirs
/usr/share/fonts/truetype/openoffice: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/truetype/sazanami: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/fonts/truetype/thai: caching, new cache contents: 51 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-arabeyes: caching, new cache contents: 39 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-bengali-fonts: caching, new cache contents: 5 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-bitstream-vera: caching, new cache contents: 10 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-dejavu: caching, new cache contents: 21 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-indic-fonts-core: caching, new cache contents: 11 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-kannada-fonts: caching, new cache contents: 7 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-lao: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-liberation: caching, new cache contents: 12 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-oriya-fonts: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/fonts/truetype/ttf-telugu-fonts: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/fonts/truetype/unfonts: caching, new cache contents: 4 fonts, 0 dirs
/usr/share/fonts/truetype/wqy: caching, new cache contents: 2 fonts, 0 dirs
/usr/share/fonts/type1: caching, new cache contents: 0 fonts, 1 dirs
/usr/share/fonts/type1/gsfonts: caching, new cache contents: 35 fonts, 0 dirs
/usr/share/X11/fonts: skipping, no such directory
/usr/local/share/fonts: caching, new cache contents: 0 fonts, 0 dirs
/home/uno/.fonts: skipping, no such directory
/usr/share/fonts/truetype/ttf-malayalam-fonts: skipping, no such directory
/var/cache/fontconfig: cleaning cache directory
/home/uno/.fontconfig: cleaning cache directory
/home/uno/.fontconfig: invalid cache file: 63a4f2800cb770cfbf6fd5bd92ba9af9-x86.cache-2
fc-cache: succeeded
Proceso terminado.
Probablemente necesitarás reiniciar los programas que están en marcha para poder usar estas fuentes.
Pulsa para salir.

Con todo esto ya tendremos instalada el nuevo tipo de letra.

3) Hacer un reloj digital, con el tipo de letra que acabamos de instalar.
En la pagina: http://gambaslinux.wordpress.com/2007/12/11/%C2%BFcomo-construir-un-reloj-digital/
nos explican como hacer un reloj digital.
Una vez realizado lo que nos cuentan, en la etiqueta1, vamos a cambiar el tipo de letra:
02 cambio de letra de un textbox

Y ejecutamos el código obtenemos nuestro reloj digital con el tipo de letra “ALLSTAR”:
03 reloj final

Bueno, espero que os haya gustado esta combinación de información de varias paginas web, y de nuevo darle las gracias a los autores de las paginas a las que me he referido, sin ellas no hubiera podido hacerlo.

Saludos, Julio

Posteado por: jsbsan | 10 Octubre 2009

fotito graciosa…

Os dejo una foto curiosa, la hice en Huelva.

la gamba alegre

Un saludo

Posteado por: jsbsan | 18 Septiembre 2009

J 11: generador de fractales en Gambas2

Pakito, nos ha dejado un interesantisimo programa realizado en Gambas2 que genera images de fractales.

Esta es su pagina web:
http://fractalia.fortunecity.com/Fractalia.html

Descripción:
J 11 es un generador de imágenes fractales para Linux escrito en Gambas 2.8

Posteado por: jsbsan | 12 Septiembre 2009

Nuevo Foro: COMUNIDAD GAMBAS-ES (http://www.gambas-es.org/)

Copio textualmente la presentación de este nuevo foro:

00 foro gamba2

Bienvenidos al nuevo Portal de Gambas

Finalmente este sitio es ya una realidad. Era algo necesario y demandado por toda la Comunidad hispano parlante y pretende ser el sitio de referencia para tod@s los entusiastas de este magnífico lenguaje de programación.

Por eso en nombre de todos me gustaría dar las gracias a Benoît Minissini por sus constantes esfuerzos en el desarrollo del lenguaje y a todos en general por las muestras de apoyo en la construcción de este espacio dedicado a Gambas. Aunque sirva de apoyo y aprendizaje a uno sólo de nuestros usuarios, podemos estar seguros de que habrá merecido la pena.

¡Larga vida a la Comunidad Gambas-es!

http://www.gambas-es.org/

Posteado por: jsbsan | 11 Septiembre 2009

Gestor de Maquiladora de Ropa (ejemplo de base de datos MySQL)

Os presento una nueva categoria: Aportaciones de Otros Programadores
En esta categoria incluire todas las aportaciones que me hagan llegar, espero que asi sea mas completa la información, ampliar el abanico de programas y que todos aprendamos mas.

Desde Mexico, Jesus y Celso, me han hecho llegar su programa (su codigo fuente y manual para instalación de MySQL) de gestor de Maquiladora de Ropa (para la gestion de un negocio de cortadores (cortan la tela) y los maquiladores (cosen la tela).

Descripción
1. Control de maquiladores
2. Control de cortadores
3. Control de los clientes y sucursales
4. Control de las ventas
5. Manejo de devoluciones.
6. Reportes de todo lo anterior y de los productos mas vendidos, los mejores clientes y los mejores trabajadores.
7. Control de usuarios el administrador y usuario normal.
8. Manejo de almacen
9. Respaldo de la BD con un solo click y restauración tambien.

Antes de utilizar este programa es necesario instalar MySQL en nuestro linux. Aqui teneis un pequeño manual: Manual de instalacion MySQL

Nota Importante:
Si a la hora de instalar MySQL, no dejaste en blanco la contraseña de Mysql para root, entra al mysql administrator (con la contraseña) y restaura el back up de la base de datos. Si ya lo hiciste no lo vuelvas hacer.
Ahora abre el proyecto en gambas y te vas a la parte donde estan los formularios(parte izquierda)
y busca el modulo que dice Mglobal
en esa parte del codigo busca esta parte

db.Host = “localhost”
db.Login = “root”
db.Password = “”

y ahi donde dice password=”" escribe la contraseña que usas para entrar al mysql administrator. tienes que escribirla dentro de las comillas no las vayas a borrar y ahora si correo y veras que funciona.

Una vez instalado MySQL, os doy el link de descarga del programa de Gestion de Maquiladora de Ropa

Cuando descomprimais el archivo, vereis 3 carpetas:
BD: se encuentra el archivo Empty.sql, la base de datos (seguid las instrucciones del manual de instalacion del MySQL, para poderla utilizar)
BIN: se encuentra el proyecto de gambas (formularios, modulos, clases, etc)
Doc: dos archivos:
…………… Manual de instalación: manual de instalación de MySQL
…………… leeme: archivo con las instrucciones para el arranque del programa

Gracias por vuestra oportación, Jesus y Celso.

Posteado por: jsbsan | 5 Septiembre 2009

Gestión Almacén: mejoras… versión 0.0.7.4.3r07

Hola de nuevo.

He incluido varias mejoras en el programa de gestión de almacen:
ga0.0.07.4.3r07
- Al copiar al portapapeles, para luego pasarlo a openoffice calc, los numeros son correctamente convertidos para poder realizar calculos y utilizar las formulas. ¡¡ muy util !!, a la hora de hacer comprobaciones.

- Nuevos informes:
Albaranes por dia:
Nos muestras todos los albaranes que tengan una fecha en concreto.
Alquileres por mes:
conceptos que sean del tipo maq.med.aux. los vemos listados segun el mes que elijamos.

-Mejor organización de los botones de informes.

-Calcula del valor del albaran, cada vez que le introducimos algun nuevo concepto.

-Documentos Recientes: implementada esta función. Hace muy comodo el acceso a las secciones recientemente utilizadas (guarda hasta 5 rutas de secciones distintas)

-En facturas, vemos ordenados los albaranes (por el numero de albaran del proveedor), mientras los estamos imputando. Muy util y comodo.

-Corregido algun bugs…. siempre hay alguno que se me escapa.

Bueno, practicamente esta concluido el programa, ahora solo me queda redactar un buen manual de instrucciones y ejemplos de como utilizarlo. (teneis un manual de la version 0.0.5. (manual)

Aqui esta el código fuente de la version 0.0.7.4.3r07

Un saludo

Julio

Entradas antiguas »

Categorías