Interacción entre formularios

Terminábamos el post anterior mostrando los siete procedimientos de búsqueda diferentes para ver los datos por pantalla. Tomaremos unos como ejemplo para irlo explicando y verems en que se diferencian uno de otros. Veamos el que busca por pareja protagónica.

Public Sub porambos()

Dim filtro As String   ‘declaramos las variables
Dim filtro2 As String

cargartabla

filtro = cbxactriz.Current.text   ‘asignamos los filtros
filtro2 = cbxactor.Current.text
hresul = hconn.Exec(“Select * from films  where actrizuno or actriz2 like ‘” & filtro & “‘ AND  actoruno or actor2 like ‘” & filtro2 & “‘”) ‘consulta sql”
If hresul.Available = False Then
message(“no hay resultados que coincidan con su búsqueda”)
Else
Endif
mostrar

End

Como siempre comenzamos declarando las variables que pueden ser uno, dos o tres. Aquí va el procedimiento carga que lo que hace es dibujar la tabla. Luego les asignamos el valor y ejecutamos la sentencia sql que es diferente para cada uno de los siete procedimientos.   Comprobamos si hay resultados, si es así los mostramos con el procedimiento mostrar y en caso contrario mostramos un mensaje al usuario para informarle esta situación.

Veamos  estos dos procedimientos que son comunes a los siete y por eso se escriben una sola vez y se llaman por su nombre.

Public Sub cargartabla()

tabla5.Clear ‘limpiar tabla5

tabla5.Columns.Count = 9

tabla5.Columns[0].text = “Título”
tabla5.Columns[0].Width = 280
tabla5.Columns[0].Alignment = Align.Center
tabla5.Columns[1].text = “Director”
tabla5.Columns[1].Alignment = Align.Center
tabla5.Columns[1].Width = 160
tabla5.Columns[2].text = “Actor principal”
tabla5.Columns[2].Width = 160
tabla5.Columns[2].Alignment = Align.Center
tabla5.Columns[3].text = “Actriz principal”
tabla5.Columns[3].Alignment = Align.Center
tabla5.Columns[3].Width = 160
tabla5.Columns[4].text = “Actor 2”
tabla5.Columns[4].Alignment = Align.Center
tabla5.Columns[4].Width = 160
tabla5.Columns[5].text = “Actriz 2”
tabla5.Columns[5].Alignment = Align.Center
tabla5.Columns[5].Width = 160
tabla5.Columns[6].text = “Género”
tabla5.Columns[6].Width = 160
tabla5.Columns[6].Alignment = Align.Center
tabla5.Columns[7].text = “Puntaje”
tabla5.Columns[7].Alignment = Align.Center
tabla5.Columns[7].Width = 40
tabla5.Columns[8].text = “Año”
tabla5.Columns[8].Alignment = Align.Center
tabla5.Columns[8].Width = 40

End

Public Sub mostrar()

Dim clave As String

Do While hresul.Available
Clave = hresul[“titulo”]
tabla5.Add(Clave, Clave)
tabla5[Clave][1] = hresul[“director”]
tabla5[Clave][2] = hresul[“actoruno”]
tabla5[Clave][3] = hresul[“actrizuno”]
tabla5[Clave][4] = hresul[“actor2”]
tabla5[Clave][5] = hresul[“actriz2”]
tabla5[Clave][6] = hresul[“genero”]
tabla5[Clave][7] = hresul[“calificacion”]
tabla5[Clave][8] = hresul[“anio”]
hresul.MoveNext()
Loop

End

Ya hemos visto este tipo de rutinas antes, por lo que creo no necesitan explicarse, solo recordar que la primera crea la estructura de la tabla y la segunda rellena los datos.

Hasta aquí tenemos los informes por pantalla, pero nuestra idea es poder imprimirlos. Deberemos ahora crear ahora los siete procedimientos que nos permitan hacerlo. Son muy parecidos a los que usamos para verlos por pantalla, pero su finalidad esencial es crear una variable del tipo string que será una sentencia sql. Veamos uno:

Public Sub poractor1()

Dim filtro As String   ‘declaramos variables

filtro = cbxactor.Current.text  ‘le asignamos el valor
hresul = hconn.Exec(“Select * from films  where actoruno like ‘” & filtro & “‘or actor2 like ‘” & filtro & “‘”)   ‘realizamos la busqueda
If hresul.Available = False Then   ‘si no hay resultados
valor = “”  ‘valor null
Else                 ‘si los hay asignamos a la variable valor la sentencia sql
valor = “Select * from films  where actoruno like ‘” & filtro & “‘or actor2 like ‘” & filtro & “‘”
Endif

Esto nos va a permitir con un solo reporte crear siete reportes diferentes. La variable valor está declarada al principio del formulario como pública , puesto que deberemos acceder a ella desde el reporte. El reporte comprobará el valor de dicha variable, si es null mostrará un mensaje informativo, caso contrario ejecutará la sentencia sql. Veremos esto en el próximo post.

Anuncios
Esta entrada fue publicada en programación y etiquetada , , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s