Con todos los informes diseñados, resulta que me he encontrado
con un problema. Actualmente al instalar la aplicación, los *.rpt los puede
modificar el usuario a su antojo y quisiera evitar este hecho. Los informes
están realizados sobre Cristal Reports 7.0 , la aplicación está en vb 6.0.
los llamo desde Visual y todo funciona correctamente. ( le paso además
parámetros)
He intentado añadir los reportes mediante Agregar Cristal report
y al solicitar un informe, salta una pantalla solicitando un parámetro, sin
embargo ya se lo he pasado por codigo.
Por otro lado cada vez que añado un reporte al proyecto, me crea
un formulario para dicho *.rpt
Quisiera escuchar vuestras sugencias de acerca de cómo pasarle
un parámetro a los informes que están adjuntos a la aplicación .
Además me gustaría evitar añadir 32 forms al proyecto, puesto que tengo 32
*.rpt. y saber si existe alguna forma de utilizar el mismo form para mostrar
todos los infomes
Gracias por vuestra ayuda
SALUDOS
A partir de la versión 8 ( no se si la 7 dispone de ello) puedes integrar
crystal en visual y los reportes en el proyecto por lo que no es necesario
adjuntar los .rpt aunque aumenta considerablemente el tamaño del ejecutable.
No se muy bien que te refieres con pasarle parametros.... Supongo que te
refieres a las formulas ¿no? Yo al menos cuando tengo que pasarle algún
valor que no está incluido en la BD uso una formula.
Claro que puedes usar un mismo form para mostrar todos los informes, tan
sólo tienes que tener el ocx de crystal en ese formulario e indicarle las
propiedades individuales de cada formulario, bases de datos que usas, nombre
del informe, formulas, formulas de selección.... etc.
Saludos.
--
Jesús Morales González
Almuñécar (Granada) España
MSN: jemog...@ESTOhotmail.com <-- No escribir a esta dirección
E-mail: jesusARROBApolizainformaticaPUNTOcom
www.polizainformatica.com
----
(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro
Sí, la versión 7.0 (la que yo uso) también permite integrar los informes en el ejecutable utilizando
el RDC (Report Designer Component). De ésta manera, el usuario final no puede modificar los
informes, aunque tenga Crystal Reports instalado
Un saludo!
Rubén Vigón
Microsoft MVP Visual Basic
Pero en este pregunta, no he recibido la respuesto que necesito.
A lo que me refiero con el parámetro es a cómo le paso qué informe quiero,
por ejemplo, el id de un cliente, u otra dato por el que yo pido el informe,
no sé, por ejemplo, la fecha.
Incluso me gustaría saber como pasar más de un parámetro, por ejemplo, 2
fechas, para así poder poder un informe entre fechas.
Muchas gracias otra vez.
"Rubén Vigón" <vi...@wanadoo.es> escribió en el mensaje
news:OOYUH08k...@TK2MSFTNGP09.phx.gbl...
1) En tu proyecto de Visual Basic, selecciona Proyecto > Componentes > Diseñadores y activa "Crystal
Reports 7"
2) Selecciona Proyecto > Agregar Crystal Reports 7 > Empty Report
3) En el diseñador de Crystal Reports pulsa con el botón derecho y selecciona Database > Log On
Server... > Active Data (Field Definitions Only)
4) En el diálogo "Select Data Source" tienes dos opciones "Browse..." y "New...", para
seleccionar/crear el archivo *.TTX que contendrá la definición de los campos que se utilizarán en el
informe:
- Si pulsamos en "New..." pasaremos a un diálogo titulado "Database Definition Tool", donde
definiremos los campos que tendrá nuestro informe (nombre, tipo de datos y un dato de ejemplo para
mostrar)
- Si pulsamos en "Browse..." se nos pedirá la ruta del archivo *.TTX con la definición de los
campos. Para generar éstos archivos más fácilmente, basándonos en el «ADODB.Recordset» que actuará
como origen de datos de nuestro informe, es muy cómodo utilizar la API «CreateFieldDefFile» de
p2smon.dll:
Private Declare Function CreateFieldDefFile Lib "p2smon.dll" (lpUnk As Object, ByVal FileName As
String, ByVal bOverWriteExistingFile As Integer) As Long
Ésta API recibe (lpUnk) un objeto «ADODB.Recordset» (que contendrá los datos que quedarán definidos
en el archivo TTX) y una ruta de disco (FileName), y como resultado, genera el archivo *.TTX
correspondiente
5) Una vez asociado el archivo *.TTX a nuestro informe seleccionaremos Database > Add Database to
Report... y pulsamos OK dos veces (en los diálogos "Choose SQL Table" y "Visual Linking Expert") y
ya estaremos en condiciones de diseñar el informe a la manera "clásica" (arrastrando los campos
necesarios al espacio del papel del informe, creando secciones, subtotales, etc.)
6) El último paso sería, desde nuestra aplicación, especificar al informe los datos que debe mostrar
(hasta ahora sólo hemos definido los campos que utilizará el informe, pero no los datos reales que
se visualizarán). Para ello, abriremos un objeto «ADODB.Recordset» con los datos y criterios que
necesitemos (mediante una consulta SQL, un procedimiento almacenado/vista, etc.) y asociaremos ése
objeto como origen de datos del informe mediante «SetDataSource»; por ejemplo:
Dim Cn As ADODB.Connection, Rs As ADODB.Recordset
Set Cn = New ADODB.Connection
Set Rs = New ADODB.Recordset
Cn.Open "cadenaconexion"
Rs.Open "SELECT * FROM Proveedores", Cn, adOpenForwardOnly, adLockReadOnly, adCmdStoredProc
crdTuInforme.Database.SetDataSource Rs
PD: Suerte! ;-)
Un saludo,
"Rubén Vigón" <vi...@wanadoo.es> escribió en el mensaje
news:OJc817%23kDH...@TK2MSFTNGP10.phx.gbl...
Ejemplo:
Codigo String 5
Nombre String 10
etc...
Saludos:
Guillermo Márquez Coello
Eléctrica de Cádiz, S.A.
Avda. Mª Auxiliadora, Nº 4
11009 (Cádiz)
Tfno: 956071100 Extensión: 213
Fax:956071106
mailto: gmar...@electricadecadiz.es
www.electricadecadiz.es
"Rubén Vigón" <vi...@wanadoo.es> escribió en el mensaje
news:OJc817%23kDH...@TK2MSFTNGP10.phx.gbl...