CARGA DE DATA DE DOS COMBOBOX

A continuacion les coloco el codigo y el formulario de como cargar dos combobox con la data contenida en una BD.

Imagen del formulario en vista de diseño

Imagen del formulario en vista de diseño

El codigo de este formulario es el siguiente:

PUBLIC Atencion AS Boolean

PUBLIC SUB Form_Open()

ME.Center()
LlenarCombo()
LaFecha()

END

PUBLIC SUB LaFecha()

DIM FechaActual AS Variant

FechaActual = Date(Day(Now) & “/” & Month(Now) & “/” & Year(Now))
Label9.Text = FechaActual

END

PUBLIC SUB LlenarCombo()

DIM query AS String
DIM resultado AS Result
DIM captura AS Integer
DIM i AS Integer

ModConexion.rs1 = ModConexion.db.Exec(“select codigo FROM laboratorio.datoslab”)
ModConexion.rs1.MoveFirst
captura = ModConexion.rs1.Count
i = 1
WHILE i <= captura
ComboBox1.Add(ModConexion.rs1!codigo)
ComboBox1.Refresh()
ModConexion.rs1.MoveNext
DEC (captura)
WEND
END

PUBLIC SUB Button4_Click()

ME.Close()

END

PUBLIC SUB ValidarVacios()

IF ComboBox1.Text = “” OR ComboBox2.Text = “” OR TextBox1.Text = “” OR TextBox2.Text = “” OR TextEdit1.Text = “” THEN
Message.Error(“Existen casillas vacias\n asegurese de llenarlas todas”)
Atencion = FALSE
TextBox1.Clear()
TextBox2.Clear()
TextEdit1.Clear()
ELSE
Atencion = TRUE
ENDIF

END

PUBLIC SUB ComboBox1_Change()

DIM Respuesta AS String
DIM query AS String
DIM resultado AS Result
DIM captura AS Integer
DIM i AS Integer

ComboBox2.Clear()
TextBox1.Clear()
TextBox2.Clear()

Respuesta = Trim(ComboBox1.Text)

query = “select * from laboratorio.datosequipo where codigo ='” & Respuesta & “‘”
ModConexion.consulta(query)

resultado = db.Exec(query)
ModConexion.rs1.MoveFirst
captura = ModConexion.rs1.Count
i = 1

WHILE i <= captura
ComboBox2.Add(ModConexion.rs1!codequipo)
ComboBox2.Refresh()
ModConexion.rs1.MoveNext
DEC (captura)
WEND

END

PUBLIC SUB ComboBox2_Change()

DIM Respuesta AS String
DIM query AS String
DIM resultado AS Result

Respuesta = Trim(ComboBox2.Text)

query = “select * from laboratorio.datosequipo where codequipo ='” & Respuesta & “‘”
ModConexion.consulta(query)

resultado = db.Exec(query)

IF resultado.Count > 0 THEN
TextBox1.Text = ModConexion.rs1!marca
TextBox2.Text = ModConexion.rs1!modelo

END IF

END

PUBLIC SUB Button1_Click()

DIM query AS String

ValidarVacios()
IF Atencion = TRUE THEN
query = “INSERT INTO laboratorio.mantenimiento set codlab='” & UCase(comboBox1.Text) & “‘, fecha='” & Trim(Label9.Text) & “‘, codequipo='” & UCase(ComboBox2.Text) & “‘, marca='” & UCase(TextBox1.Text) & “‘, modelo='” & UCase(textbox2.text) & “‘, falla='” & UCase(Trim(TextEdit1.text)) & “‘, entregado='” & UCase(TextBox3.Text) & “‘, dpto='” & UCase(ComboBox3.Text) & “‘”
ModConexion.consulta(query)
IF ModConexion.conexion() THEN
message.Info(“Los dato se insertaron satisfactoriamente”)
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextEdit1.Clear()
ComboBox2.Clear()

ELSE
message.Error(“Los datos no se pudieron insertar”)
ENDIF
ENDIF

END

PUBLIC SUB Button2_Click()

END

Uso del Objeto Workspace

El objeto Workspace es muy parecido a lo que usaban VisualBasic se llama formularios MDI. La ventaja del uso de este objeto es que nos permite colocar formularios dentro de formularios, es decir, que en un mismo formulario principal podemos llamar a otros sin necesidad de recordar de cerrar todos los formularios que por alli queden abiertos. Pueden descargar un ejemplo del uso de este control, aqui.

PD: Deben activar el componente gb.form.mdi que se encuentra en:Proyecto -> Propiedades, y escojer la pestaña componentes.

Uso de los Controles Data (databrowser, datasource, etc)

A peticion de la audiencia, y despues de bastante tiempo sin colocar entradas en el blog, les traigo algo que por lo menos a mi me tenia de cabeza… ¿como se utilizan los controles data de Gambas?. Pues bien, despues de varios intentos fallidos, preguntas en foros en ingles, revisar la ayuda de gambas, etc, realice un ejemplo sobre el uso basico de estos controles. Debo confesar que prefiero el metodo antiguo, se tiene mas control de los procesos. Aqui les dejo la aplicacion.

Ejemplo de aplicacion con Reportes

A continuacion coloco un ejemplo un poco mas completo de como generar reportes con html. El sistema ademas incorpora algunos topicos importantes cuando diseñamos sistemas tales como: validacion de usuarios y contraseñas, carga de una data en un control (por ejemplo, un combobox), reportes con boton de impresión, etc.

Espero les sea de utilidad. El link para descargar, aqui.

Uso de Clases en Gambas

Como ya sabemos Gambas es un lenguaje de programacion orientada a objetos. Pero realmente como utilizar o poner en practica esos conceptos de herencia, clases, polimorfismo, etc. Pues bien, aqui les coloco un ejmplo que se encuentra en el Libro GAMBAS “Programación Visual con Software Libre”, el cual he mejorado un poco para su entendimiento. Para descargarlo pulse aqui.

Nota: Es un programa de consola, pero el ejemplo es valido para ser aplicado en proyectos con interfaz grafica.

Envio de Correo Electronico

En esta oportunidad les coloco un programa que permite enviar correo electronico leido desde una base de datos en mysql y que muestra al final, en un listbox, todos los e-mail enviados. ademas tiene una opcion de consulta y envio individual. Se debe tomar en consideracion que para enviar exitosamente un email desde GNU/Linux, deben tener instalado algun programa de servidor de correo, como sendmail o postfix. Les recomiendo este ultimo por su facilidad de configurar al momento de su instalacion. El enlace al programa, aqui.

Nota: No se incluye la Base de datos hecha en MYSQL.