[TUTORIAL]Crear Facturas/Pedidos/Etiquetas co Data Report desde Visual Basic 6.0En el ejemplo he sacado una única factura,
para ello he creado otro datareport (datareport2) he añadido lo mismo que antes,
dejando la opción del before por defecto.
He añadido también dos nuevas consultas, command3 en la que la realizo igual que la anterior(command1)
simplemente cambiando las cosillas que os digo a continuación y command4 que es idéntica a command2 (lo mejor es hacer copy paste de la sentencia generada de los anteriores y modificarla).
Para sacar una factura en el paso de generar el encabezado de la consulta (Command1) en nuestro command3
haremos todo igual salvo que deberemos especificar un parámetro,
eso se hace poniendo =? en el campo criterio de la consulta.
Luego click derecho command3 propiedades pestaña Parámetros, le ponemos un nombre, Ejemplo=NumeroFactura.
Para mostrar el datareport2 se le debe llamar con el parámetro.
Añadimos un textbox en el que meteremos el num del pedido que deseamos mostrar y
un botón para realizar las acciones.
Private Sub Command2_Click()
dataenviroment1.Command3 Val(Me.Text1.Text)
datareport2.Show
End Sub
Generar etiquetas con Datareport desde Visual Basic 6.0Bueno vamos a generar una serie de etiquetas de estas que se suelen repartir y tal, tarjetitas xD
Antse de nada decir que data report no es un potente editor y tiene cuatro propiedades… asi que puede resultar bastante básicas sus características, ahí vamos…
Primero vamos a añadir un nuevo command al dataenviroment. Click derecho propiedades, generar consulta y ahí seleccionaremos la tabla proveedores y actividades_proveedor. Las enlazamos por codactividad y seleccionamos los datos junto con el nombre de la actividad. Añadimos el valor que le vamos a pasar, aqui os dejo elegir el que querais, o nombre proveedor o cod proveedor. Yo lo voy a hacer con cod proveedor. (en el campo que deseemos se pone =? y luego se especifica en la pestaña parametros de las propiedades del command agregado xD)
Añadimos un datareport, el datasource a DataEnvironment y el datamember al comand creado. Colocamos únicamente tres o cuatro rectángulos, en detalle sección1, con los datos deseados (se supone que eso van a ser las etiquetas xD).
Para añadir los datos se hace arrastrandolos desde el command del dataenviroment. Para adornarla se le puede añadir todo lo que creáis oportuno.
Se añade el código para evitar errores al reabrir el recordsource en el datareport queryunload
Private Sub DataReport_QueryClose(Cancel As Integer, CloseMode As Integer)
DataEnvironment1.rsCommand5.Close
End Sub
Ejemplo etiquetas
Se añade un botón en el formulario principal, un DBCombo (click derecho sobre la barra de componentes/componente/pestaña controles/Microsoft Data Bound List Controls 6.0(OLEDB)) y lo asociamos a una oledatabase
(click derecho sobre la barra de componentes/componente/pestaña controles/Microsoft ADO data control 6.0(OLEDB)) .
Asignamos la cadena de conexión al adodc (database).
En su recordsource ponemos en su texto de comando.
select * from proveedores
(realmente solo nos hacen falta 2 campos, codproveedor y nomprovedor pero weno, ésto no lo pongáis eh!! xD)
Ahora asociamos el adodc al dbcombo.
En su propiedad rowsource le ponemos nuestro adodc, en lisfield el campo nombre y en boundcolumn el campo codpro.
Añadimos el siguiente código para que funcione al clicar en el botoncito y listo xD
Private Sub Command3_Click()
If DataCombo1.BoundText <> “” Then
DataEnvironment1.Command5 DataCombo1.BoundText
DataReport3.Show
Else
MsgBox “Mamonazo selecciona alguno”, vbInformation, “Selecciona un proveedor xD”
End If
End Sub
Una vez configurado compilamos y seleccionamos para ver si tira sino… algo has hecho mal o aligual he metido la pata xD
Los ejemplos estan realizados muy deprisa por lo tanto el diseño deja mucho que desear y tal xD
Si os ha sido útil puedo ir añadiendo algunos ejemplillos de hacer etiquetas y alguna cosilla más.
DESCARGAR Ejemplo Data Report Visual Basic 6.0 by RobiHmP.D.(Para poder ver el environment y tal en agregar componentes, click derecho sobre la barra componentes/componentes/diseñadores/marcamos data report y data environment )
Generar un informe con tres commands relacionados en Datareport desde Visual Basic 6.0Como ha habido personas que me lo han preguntado voy a poner un ejemplo sencillito. Vamos al tema xD
Creamos un nuevo botón en el formulario (con éste ya vamos por el command4) realizamos su evento click
Private Sub Command4_Click()
'presentamos el datareport con unión triple de las campañas
DataEnvironment1.cmd_campañas
End Sub
Creamos a continuación tres commands en el dataenviroment1 mismamente.
Vamos a renombrarlos porque sino va a ser mucho lío. (más que nada para mi que no estoy acostumbrado a esos nombres xD)
cmd_campañas, cmd_chicas, cmd_citas mismamente
Ahora generamos las consultas con las nuevas tablas que he añadido: campañas, chicas y citas... ejem
(solamente tres ya lo se soy un vago pero no tengo ganas de entrelazar siete tablas para un ejemplo sencillito xD)
Mirar un poco la estructura de las tablas y veréis que campañas se enlaza con chicas y que chicas con citas.
Bueno generemos las consultas (click derecho encima del command/propiedades/... no voy a entrar en detalles)
cmd_campañas
SELECT id_temporada, eslogan, ini_fecha, lugar_apertura FROM campañas
cmd_chicas
SELECT nombre, id_chica, descripcion, dato3, dato2, dato1 FROM chicas where temporada=ident_temporada
además añadiremos en la pestaña relación:
relacionar con un comando primario, el comando primario: cmd_campañas, definición de relación: id_temporada to ident_temporada, agregar, aceptar y listo xD
cmd_citas
SELECT duracion, id_chica, id_cita, tipo, inc_fecha FROM citas WHERE id_chica=ident_chica
además añadiremos en la pestaña relación:
comando primario: cmd_chicas
definición de relación: id_chica to ident_chica,
agregar, aceptar y listo xD
Creamos el data report (DRcampañas) lo asociamos,
DataSource=DataEnvironment1
DataMember=cmd_campañas
Quitamos forzar a la cuadricula y le damos a obtener estructura y tenemos un monton de encabezados y pie de grupos xD
Posicionamos los campos que queremos mostrar (arrastrandolos desde el dataenviroment mismamente. Cada uno en su posición. Veréis que no os dejará meter los detalles de cmd_citas en encabezados y tal.
En cmd_camapañas_header irán los datos de la campaña.
En sus propiedades ForcePageBreak le metemos la opción 1- rptPageBreakBefore, para que haga divisiones(saltos de página) por cada campaña diferente.
En cmd_chicas_header metemos los datos de las chicas.
En cmd_citas_Detail los datos de las chicas y en cmd_chicas_footer meteremos un función count para contar sus citas y una sum para contar sus duraciones globalos mismamente,
ave cuál ha soportado a más tios xD
Acordaros de poner en el queryclose del data report esto
Private Sub DataReport_QueryClose(Cancel As Integer, CloseMode As Integer)
DataEnvironment1.rscmd_campañas.Close
End Sub
Ala ya hemos terminado, igual hago otro tuto dentro de un par de días en el que enviemos en vez de un parámetro varios y creo que poco más se puede hacer con un data report xD
P.D. Visual Basic da un montón de problemas al trabajar con bases de datos y data reports amén de command dialogs de rutas. Ya que se hace la picha un lío y guarda la última ruta que maneja como la raíz del programa. Por lo tango es recomendable guardar la ruta en el load del programa en una variable general o pública si usamos más de un formulario/módulos
y luego al hacer algún cambio en command dialog o al abrir data reports meterle después
así lograremos que no de problemas, yo en el ejemplo no lo he hecho ya que en un par de pruebas que he hecho no me ha dado problemas xD
Subo el códido y el ejemplo:
DESCARGAR Ejemplo Data Report Visual Basic 6.0 by RobiHmDinamizar Encabezados DatareportsVoy a poner algo bastante útil a la hora de personalizar datareports en tiempo de ejecución.
Dinamizar los encabezados de los datareports desde visual basic 6.0.
Código Coloreado'con with evitamos el tener que repetir todo el rato la ruta
'en ReportHeader pones la sección en la que se encuentra el control
With DataReport1.Sections("ReportHeader")
'cualquier etiqueta
.Controls.Item("Etiqueta1").Caption = "loquesea 1"
'etiqueta n
.Controls.Item("Etiquetan").Caption = "loquesea n"
'imagen
Set .Controls("Image1").Picture = LoadPicture("ruta de la imagen")
End With
Dinamizar conexiones con ODBCComo colofón voy a postear un módulo para personalizar/dinamizar las conexiones utilizando DSN.
Así se pueden romper las cadenas de andar sujetos a una conexión estática de los DataReports y demás controles/objetos.
Dinamizar la conexión de los datareports mediante DSN