Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Informe Cristal Adjuntos en proyecto VB 6

135 views
Skip to first unread message

J.L. Vila

unread,
Oct 16, 2003, 5:21:58 AM10/16/03
to
Hola Grupo,

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


Jesús M.G.

unread,
Oct 16, 2003, 5:53:48 AM10/16/03
to
Hola no he entendido del todo tus preguntas, pero comentarte que para que tu
usuario pueda módificar los listados debe de tener instalado en su maquina
crystal reports, y dudo que ningún usuario "normal" lo tenga instalado.

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


Rubén Vigón

unread,
Oct 16, 2003, 6:09:07 AM10/16/03
to
> 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

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

J.L. Vila

unread,
Oct 16, 2003, 7:18:19 AM10/16/03
to
De verdad así da gusto. Muchas Gracias.

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...

Rubén Vigón

unread,
Oct 16, 2003, 10:12:01 AM10/16/03
to
No cabe duda que Crystal Reports es muy completo y potente, pero también es cierto que puede hacer
que gastes mucho dinero en analgésicos. Después de varios años peleándome contra Crystal Reports (su
«SelectionFormula», su «SQLQuery» y demás embrollos) me he pasado a un método sencillísimo de
utilizar y que ofrece todas las posibilidades que puedas necesitar: los informes basados en archivos
de definición de campos (TTX). Ahí va un cursillo acelerado sobre cómo utilizarlos:

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,

J.L. Vila

unread,
Oct 17, 2003, 11:37:37 AM10/17/03
to
Gracias otra vez.


"Rubén Vigón" <vi...@wanadoo.es> escribió en el mensaje

news:OJc817%23kDH...@TK2MSFTNGP10.phx.gbl...

Guille

unread,
Oct 20, 2003, 7:54:46 AM10/20/03
to
Un buen curso acelerado Rubén. Solo aclararte que el fichero .TTX tambien se
puede crear con el Notepad o block de notas.
Lo único importante es que los nombres de los campos, el tipo y el tamaño
esten separados por un tabulador.

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...

0 new messages