Manualillo de Crystal Report.doc

18
LO QUE PASA ES QUE YA HE MANDADO ESTE ARCHIVO A DIFERENTES PERSONAS QUE ME LO HAN SOLICITADO, PERO TODO EMPEZO POR UNA PERSONA QUE ME REALIZO LA SIG. PREGUNTA. he tratado de generar un reporte en Cristal Report de VB 5, el reporte lo genero le indico los campos etc.. pero ahora como lo llamo desde visual basic ? Primero entramos a Crystal Report , en la versión de Visual Basic 5.0 venia la versión de Crystal Report 4.2 ahí aprendí un poco disculpen lo obsoleto, y pues si tiene la VISUAL STUDIO: versión 6.0 de visual basic, dicen que viene en el 3er. CD., verdaderamente no tengo el Visual Studio, pero pues vamos abocarnos un poquito a lo del Crystal Report en primer lugar: Nos Vamos a Crystal Report Elegimos Archivo Opciones, viene una serie de pantallas como esta : Segundo, antes que nada entramos a Visual Basic en mi caso VB 5.0 ya tenemos nuestro control del Crystal Report que lo llamaremos desde la opción del menú Ojo la opción que viene en la pestaña, creación de informes, deben de activar la casilla sig. Para sus datos se actualizen junto con las base de datos.

Transcript of Manualillo de Crystal Report.doc

Page 1: Manualillo de Crystal Report.doc

LO QUE PASA ES QUE YA HE MANDADO ESTE ARCHIVO A DIFERENTES PERSONAS QUE ME LO HAN SOLICITADO, PERO TODO EMPEZO POR UNA PERSONA QUE ME REALIZO LA SIG. PREGUNTA.

he tratado de generar un reporte en Cristal Report de VB 5, el reporte lo genero le indico los campos etc.. pero ahora como lo llamo desde visual basic ?

Primero entramos a Crystal Report , en la versión de Visual Basic 5.0 venia la versión de Crystal Report 4.2 ahí aprendí un poco disculpen lo obsoleto, y pues si tiene la VISUAL STUDIO: versión 6.0 de visual basic, dicen que viene en el 3er. CD., verdaderamente no tengo el Visual Studio, pero pues vamos abocarnos un poquito a lo del Crystal Report en primer lugar:

Nos Vamos a Crystal Report Elegimos Archivo Opciones, viene una serie de pantallas como esta :

Segundo, antes que nada entramos a Visual Basic en mi caso VB 5.0 ya tenemos nuestro control del Crystal Report que lo llamaremos desde la opción del menú proyectos—componentes (ctrl+T), después desde la propiedad name le pondremos al reporte el nombre cr1.

Si no sabes utilizar tu Crystal Report no hay problemas un pequeño wizard al estilo microsoft te va guiando de la mano, pero si tienes problemas échame un grito.

Ojo la opción que viene en la pestaña, creación de informes, deben de activar la casilla sig.Para sus datos se actualizen junto con las base de datos.

Page 2: Manualillo de Crystal Report.doc

ESTO LO RECOPILE DE LA AYUDA DE LOS LIBROS EN PANTALLA DE MICROSOFT VISUAL BASIC 5.0 , en la opción buscar tecleen algún comando de Crystal Report y automáticamente te genere el listado de todos los comandos de Crystal Report a continuación solo puse los más usados, pero si necesitan checar los demás entren a la opción del Submenu de Visual Basic 5.0 en la opción libros en pantalla

BoundReportHeadingDescripciónPropiedad de cadena que permite al usuario asignar el título del informe.

Uso en tiempo de ejecución[formulario.]CrystalReport1.BoundReportHeading = “título de informe”

Por ejemplo:Report1.BoundReportHeading = "Ventas por región"

«imprime el título indicado para el informe especificado.»

DisponibilidadTiempo de diseño; tiempo de ejecución.

ConnectDescripciónInicia una sesión en un servidor SQL.

Uso en tiempo de ejecución[formulario.]Report.Connect[= Name;UserID;Password;DatabaseQualifier$]

Por ejemplo:Report1.Connect = "DSN = Contabilidad;UID = 734;PWD = grande;DSQ = Administración"

«conecta con la base de datos "Administración" del servidor "Contabilidad" usando el Id. de usuario 734 y la contraseña "grande".»

ComentariosEscriba los parámetros necesarios para iniciar una sesión en el servidor SQL que necesita activar para el informe.

Los parámetros deben aparecer con el siguiente formato:DSN = nombre;UID = Idusuario;PWD = contraseña;DSQ = calificador base de datos

Nombre es el nombre del servidor.

Id. usuario es el nombre que se le ha asignado para iniciar una sesión en el servidor SQL.

Contraseña es la contraseña que se le ha asignado para iniciar una sesión en el servidor SQL.

Calificador de base de datos es el nombre de la base de datos si el servidor utiliza el concepto de base de datos.

Nota Antes de poder utilizar esta propiedad debe instalar el controlador ODBC para la base de datos SQL que piense utilizar e indicar la ubicación Database/BIN en la ruta de acceso.

Page 3: Manualillo de Crystal Report.doc

Nota Este parámetro sólo se requiere cuando sea aplicable al controlador ODBC que esté usando.

DisponibilidadTiempo de diseño; tiempo de ejecución.

FormulasDescripciónEspecifica una nueva cadena para una fórmula existente.

Uso en tiempo de ejecución[formulario.]Report.Formulas(ÍndiceMatriz)[= "NombreFórmula= TextoFórmula"]

Escriba el nombre de la fórmula y la cadena que quiera que sustituya a la existente para cada fórmula del informe que desee cambiar.

Por ejemplo, para cambiar una fórmula @COMISIÓN a {archivo.VENTAS}*.1, y una segunda fórmula @TOTAL a {archivo.VENTAS} + {archivo.COMISIÓN}, escriba lo siguiente:Report1.Formulas(0) = "COMISIÓN= {archivo.VENTAS} * .1"Report1.Formulas(1) = "TOTAL= {archivo.VENTAS} +{archivo.COMISIÓN}"

Comentarios

Formulas es una propiedad de matriz que sólo está disponible en tiempo de ejecución.

Use una línea de código distinta para cada fórmula que desee cambiar.

Cambie sólo aquellas fórmulas que quiera cambiar.

La primera fórmula que cambie debe asignarse al índice (0) de la matriz, la segunda debe asignarse al índice (1), etc.

La nueva cadena de fórmula debe cumplir los requisitos sintácticos de Crystal Reports.

Esta propiedad se borra una vez impresa la tarea. Si imprime por segunda vez, el programa vuelve a las fórmulas según se especificaron originalmente en el informe.

Nota Los espacios en blanco son significativos en los nombres de fórmulas. Por esta razón, el signo igual debe seguir al nombre de la fórmula sin espacio entre ellos.

Nota El signo @ no se usa cuando se designa un nombre de fórmula en esta propiedad.

Nota Esta propiedad no puede utilizarse para crear nuevas fórmulas. Sólo pueden cambiarse fórmulas existentes.

DisponibilidadTiempo de ejecución (lectura y escritura).

GroupConditionDescripciónEspecifica qué tipo de cambio en el campo de condición de grupo desencadenará la creación de un grupo.

Uso en tiempo de ejecución[form.]Report.GroupCondition(SequentialIndex%)[= group; field; condition; sortDirection$]

Por ejemplo:Report1.GroupCondition(0)="GROUP1;{header.ordernum};ANYCHANGE;A"

Page 4: Manualillo de Crystal Report.doc

«Especifica que cualquier cambio en el campo ordernum de Group1 producirá una nueva agrupación.»

ComentariosConsulte las siguientes tablas para valores de parámetros de esta propiedad:

PARÁMETRO DESCRIPCIÓN VALORES ESPERADOS

group El grupo en que el que desea establecer la condición de grupo. El grupo más externo del informe es GROUP1, el siguiente grupo es GROUP2, etc.field El nombre del campo que producirá una agrupación siempre que cambie su valor. Indique el nombre en el siguiente formato: {tabla.campo}condition Indique la condición que producirá la agrupación. Consulte las siguientes tablas.SortDirection La dirección en que se ordenarán los grupos. A = Ascendente,D = Descendente

Condiciones de campo de fecha

CONDICIÓN CÓDIGO DE CONDICIÓN

Diario DAILYSemanal WEEKLYQuincenal BIWEEKLYSemi-mensual SEMIMONTHLYMensual MONTHLYTrimestral QUARTERLYSemi-anual SEMIANNUALLYAnual ANNUALLY

Condiciones de campo booleano

CONDICIÓN CÓDIGO DE CONDICIÓN

A sí TOYESA No TONOCada Yes EVERYYESCada No EVERYNOPróximo Yes NEXTISYESPróximo No NEXTISNO

Condición para los demás tipos de datos

CONDICIÓN CÓDIGO DE CONDICIÓN

Cualquier cambio ANYCHANGE

DisponibilidadLectura y escritura en tiempo de ejecución solamente.

GroupSelectionFormula

Page 5: Manualillo de Crystal Report.doc

DescripciónEspecifica los grupos que se van a utilizar cuando se imprima el informe.

Uso en tiempo de ejecución[form.]Report.GroupSelectionFormula[= "GroupSelectionFormula"]

Escriba la fórmula de selección de grupo como si le introdujera en el Editor de fórmulas. Por ejemplo, para limitar el informe a aquellos grupos que tengan un subtotal en el campo header.AMOUNT menor que $10.000 (con subtotales producidos por cambios en el campo header.CUSTNUMB), debe introducir lo siguiente como fórmula de selección de grupo:Sum ( {header.AMOUNT}, {header.CustNumb}) < $10000

ComentariosSi la fórmula de selección de grupo incluye comillas internas, cambie todas las dobles comillas internas a comillas simples y encierre la fórmula de selección de grupo entre dobles comillas.

Nota Si ha creado una fórmula de selección de grupo en tiempo de diseño, cualquier fórmula de selección de grupo que indique aquí se agregará a dicha fórmula de selección de grupo, conectada por "and". Así, los registros se seleccionarán según una combinación de las dos fórmulas.

DisponibilidadTiempo de diseño; tiempo de ejecución.

GroupSortFieldsDescripciónEspecifica el o los campos de grupo que se usarán para ordenar los datos cuando se imprima el informe.

Uso en tiempo de ejecución[form.]Report.GroupSortFields(ArrayIndex)[= "{+|-}GroupField"]

Escriba el o los campos de grupo por los que desee ordenar el informe.

Por ejemplo, suponga que ha separado los datos en grupos de estado y Crystal Reports ha contado el número de clientes de cada grupo. Para imprimir el grupo con el mayor contador primero y después con el siguiente contador, etc. (orden descendente), especifique una cadena de caracteres similar a la siguiente:Report1.GroupSortFields(0) = "-Count({customer.CUSTOMER},{customer.STATE})"

Comentarios

GroupSortFields es una propiedad de matriz sólo disponible en tiempo de ejecución.

Use una línea de código distinta para especificar cada campo de orden de grupo.

Introduzca los campos de ordenación en el orden en que desee ordenarlos en el informe. Por ejemplo, si primero quiere ordenar el informe según el campo de ordenación de grupo A y después según el campo B, especifique el campo de ordenación A en la primera línea de código y el campo B en la segunda línea de código.

Al primer campo de ordenación de grupo que especifique debe asignarse el índice de matriz 0, al segundo campo de ordenación de grupo debe asignarse el índice de matriz 1, etc.

Los valores de índice asignados deben ser continuos; no se admiten saltos (0,1,2 = correcto, 0,1,3 = incorrecto).

Los valores de índices de matriz deben ser subíndices en el código inmediatamente después del nombre de la propiedad; por ejemplo, Report1.GroupSortFields(0) =.

Page 6: Manualillo de Crystal Report.doc

Si ha especificado campos de ordenación para el informe en tiempo de diseño, los campos de ordenación introducidos aquí sustituirán a los campos de ordenación del informe.

Si no usa esta propiedad, el programa usará las instrucciones de ordenación que se especificaron en el informe.

Si desea borrar los campos de ordenación de grupo del informe, use una cadena vacía (Report1.GroupSortFields(0) = "").

Esta propiedad se borra cuando se imprime la tarea. Si se imprime una segunda vez, el programa restablece los campos de ordenación de grupo especificados originalmente en el informe.

Nota La entrada del campo de ordenación de grupo debe ir seguida del signo de dirección (+ o -) sin espacios.

Nota Para encontrar la sintaxis correcta para cualquier grupo del informe usando Crystal Reports para Visual Basic: seleccione Insertar|Campo de fórmula, escriba cualquier nombre de fórmula en el cuadro de diálogo Insertar fórmula cuando aparezca, haga clic en el botón de desplazamiento de la lista Campos en el de fórmulas Editor cuando aparezca, y haga doble clic en el campo de grupo que desee.

Crystal Reports escribe el nombre del campo de grupo en el cuadro Texto de fórmula. Use el nombre y la sintaxis de dicho cuadro de texto cuando construya la cadena del campo de ordenación de grupo.

DisponibilidadTiempo de ejecución.

SectionMinHeightDescripciónEstablece el alto de sección mínimo para la sección de informe especificada.

Uso en tiempo de ejecución[form.]Report.SectionMinHeight(SequentialIndex%)[=sectionCode;minHeight$]

Por ejemplo:Report1.SectionMinHeight(0) = "ALL; 500"

«Establece el alto mínimo para todas las secciones a 500 twips.»

ComentariosCon SectionMinHeight puede especificar cambios a una o más secciones en tiempo de ejecución. Dichos cambios se producen secuencialmente cuando se realiza la llamada "Action=1". El valor de índice secuencial para SectionMinHeight simplemente especifica el número de orden para el cambio. Así:Report1.SectionMinHeight(0)= "DETAIL;500"

cuando se efectúan cambios sólo a la sección DETAIL, peroReport1.SectionMinHeight(0) = "HEADER;500"Report1.SectionMinHeight(1) = "DETAIL;500"

cuando se efectúan cambios a más de una sección.

DisponibilidadLectura y escritura en tiempo de ejecución.

SelectionFormula

Page 7: Manualillo de Crystal Report.doc

DescripciónEspecifica los registros que se van a usar al imprimir el informe, ES DECIR ES DONDE FILTRAMOS TODO LO QUE QUEREMOS VER EN NUESTRO REPORTE

Uso en tiempo de ejecución[form.]Report.SelectionFormulaProperty[= SelectionFormula$]

Escriba la fórmula de selección como lo haría en el Editor de fórmulas de Crystal Reports. Por ejemplo, para incluir los registros que tienen una cantidad mayor que 5 en el archivo {file.Qty}, escriba "{file.QTY} > 5" como fórmula de selección; por ejemplo:

Report1.SelectionFormula = "{file.QTY} > 5"

Comentarios

Asegúrese de que encierra la fórmula de selección entre dobles comillas.

Si la fórmula de selección incluye comillas internas, por ejemplo:{file.STATE} = "CA"

cambie todas las dobles comillas internas a comillas simples y encierre toda la fórmula de selección entre dobles comillas como sigue:"{file.STATE} = 'CA'"

Si ha creado una fórmula de selección en el informe en tiempo de diseño, cualquier fórmula de selección que escriba aquí se agregará a dicha fórmula de selección. Así, los registros se seleccionarán según una combinación de las dos fórmulas de selección.

Disponibilidad.Tiempo de diseño; tiempo de ejecución.

SessionHandleDescripciónEstablece el controlador de sesión para un usuario una vez que las propiedades UserName y Password hayan abierto un archivo.mdb de Access para usarlo en el informe.

Uso en tiempo de ejecución[form.]Report.SessionHandle[= Handle%]

ComentariosSi ya ha abierto una sesión de Jet en la aplicación de Visual Basic, puede establecer esta propiedad para que sea el controlador de sesión actual. De lo contrario tendrá que usar las propiedades Password y UserName para establecer la sesión de Jet.

Por ejemplo:Report1.SessionHandle = CurrentSessionHandle

«establece el controlador de sesión al controlador de sesión retornado en otra parte de la aplicación y almacenado en la variable CurrentSessionHandle.»

DisponibilidadTiempo de ejecución (lectura y escritura).

SortFields

Page 8: Manualillo de Crystal Report.doc

DescripciónEspecifica el o los campos que se usarán para ordenar los datos cuando se imprima el informe.

Uso en tiempo de ejecución[form.]Report.SortFields(ArrayIndex)[= "{+|-}SortField"]

Escriba los campos por los que desee ordenar los datos del informe.

Por ejemplo, para ordenar una base de datos de pedidos alfabéticamente por cliente, y después por fecha de pedido, puede escribir código similar a éste:Report1.SortFields(0) = "+{orders.CUSTOMER}"Report1.SortFields(1) = "+{orders.ORDERDATE}"

Comentarios

SortFields es una propiedad de matriz disponible sólo en tiempo de ejecución.

Use una línea de código distinta para especificar cada campo de ordenación.

Escriba los campos de ordenación en el orden en que desee ordenar el informe. Por ejemplo, si quiere ordenar el informe por el campo A y después por el campo B, especifique el campo de ordenación A en la primera línea de código y el campo de ordenación B en la segunda línea de código.

Al campo de ordenación que especifique debe asignarse el índice de matriz 0, al segundo campo debe asignarse el índice de matriz 1, etc.

Los valores de índice que se asignen deben ser continuos; no se permiten saltos (0,1,2 = correcto, 0,1,3 = incorrecto).

Los valores de índice de matriz deben ser subíndices en el código inmediatamente después del nombre de la propiedad; por ejemplo, Report1.SortFields(0) =.

Si ha especificado campos de ordenación para un informe en tiempo de diseño, los que escriban aquí sustituirán a los del informe.

Si no usa esta propiedad, el programa usará las instrucciones de ordenación que se especificaron en el informe.

Si quiere borrar los campos de ordenación de un informe, use una cadena vacía (Report1.SortFields(0) = "").

Encierre los nombres de campos entre corchetes.

Los campos de ordenación pueden ser campos de la base de datos o campos de fórmula. Si ordena por un campo de fórmula, use el signo @ delante del nombre de la fórmula; por ejemplo, @FÓRMULA.

DisponibilidadTiempo de ejecución (lectura y escritura)

SQLQueryDescripciónObtiene y establece la cadena de consulta SQL usada por el informe especificado.

Uso en tiempo de ejecución[form.]Report.SQLQuery[=SQLQuery$]

Por ejemplo:Report1.SQLQuery = "SELECT authors.au_id, authors.au_lname, authors.au_fname FROM pubs2.dbo.authors authors WHERE authors.au_lname > 'Madison'"

«Consulta la base de datos SQL para retornar únicamente los registros en los que el nombre de los autores están alfabéticamente después de Madison.»

Page 9: Manualillo de Crystal Report.doc

ComentariosPuede cambiar sólo las secciones WHERE y FROM de una consulta SQL. Aunque la propiedad requiere que se introduzca toda la consulta SQL, la sección SELECT no debe ser diferente de la consulta original.

DisponibilidadLectura y escritura (tiempo de diseño y de ejecución).

Status

DescripciónDetermina el estado de impresión para el informe especificado.

Uso en tiempo de ejecución[form.]Report.Status

Por ejemplo:Status% = Report1.Status

«Recupera el estado de impresión y lo guarda en la variable Status.»

ComentariosLa propiedad Status retornará uno de los siguientes valores:

0 - El informe no se ha impreso o no se ha terminado de imprimir.

3 - El informe se terminó de imprimir.

5 - El usuario canceló el informe.

DisponibilidadSólo lectura en tiempo de ejecución.

StoredProcParamUso en tiempo de ejecución[form.]Report.StoredProcParam(Parameter Array Index%)[= newParameter$]

Por ejemplo:Report1.StoredProcParam(0) = "06/14/1989"

«Establece el primer parámetro de procedimiento almacenado a la fecha 14 de junio de 1989.»

ComentariosStoredProcParam establece el valor del parámetro especificado de una tabla de base de datos SQL que está basada en un procedimiento almacenado. Pase el valor al que quiera establecer el parámetro como cadena. Si el parámetro espera un tipo de datos diferente, debe pasar el valor como una cadena. Por ejemplo, para pasar el valor entero 396, use la cadena "396". El motor de impresión de Crystal realizará la conversión del valor a formato entero.

DisponibilidadLectura y escritura en tiempo de ejecución solamente.

Page 10: Manualillo de Crystal Report.doc

UserNameDescripciónIntroduce el nombre asignado a un usuario para conectarse a un archivo .mdb de Access protegido con el fin de obtener los archivos de datos necesarios por el informe.

Uso en tiempo de ejecución[form.]Report.UserName[= Name$]

Por ejemplo:Report1.UserName = "MIS"

«introduce el nombre de usuario "MIS"»

Comentarios

Escriba el nombre que se le ha asignado.

El nombre debe encerrarse entre comillas.

DisponibilidadTiempo de diseño; tiempo de ejecución.

Page 11: Manualillo de Crystal Report.doc

Buenos después de tantos comandos, a continuación describire la forma en que yo he utilizado algunos de estos comandos :Cargamos una forma y le agregamos nuestro control de Crystal Report que lo llamaremos cr1, agregamos también un botón al que llamaremos cdmimprimir después hacemos doble click sobre el botón.

Private Sub cdmimprimir_Click() Cr1.selectionformula =”{nombre_de_la_tabla.campo} = ‘texto o numericos ojo con las comillas’”

Ejemplos:

Cr1.selectionformula = “{datos_personal} = ‘JOSE ANGEL SORIANO GLEZ’”

‘ Esta es la sintaxis del Selectionformula que es la madre de todas la ‘propiedades. Con ella montamos los filtros que queremos usar para que ‘nuestro informe muestre una u otra cosa.(Texto de algunas colaboraciones de la Pag. Del Guille)

‘Ejemplo: cr1.selectionformula =“{Ofertas.total}=12”

‘ Le estoy pasando el valor que solo me muestre todos los valores que ‘sean iguales a 12, en lo personal tuve un poquito de problemas con las ‘comillas, ojo compañero.

cr1.SelectionFormula = "{papel.nombre del papel}=' " & nombre.Text & "”

‘ Le estoy diciendo que solo me muestre todos lo valores que sean iguales a lo que esta en el textbox llamado nombre., CHEQUEN LAS COMILLAS, COMO ES DE TIPO TEXTO LE PASO DELANTE DE LAS 2 UNA comilla sencilla, SI FUERA UN VALOR ENTERO NO LAS PASO

‘ mas dificil aún quiero que me filtre solo una fecha y todos los pesos mayores que 0.

Primera = CDate(fecha1.Text) ' se supone que en Fecha1.text, tengo un fechas valida o pregunto al usuario por una fecha

dia1 = Day(Primera) mes1 = Month(Primera) agno1 = Year(Primera)

cr1.selectionformula = “{Papel.fecha} = Date (" & agno1 & "," & mes1 & "," & dia1 & " ) And {embarcados.TOT_PESO}> 0 "

‘ Aclaro que para la Sintaxis de Fecha la lectura debe ser de este tipo:cr1.selectionformula = “{papel.fecha} = Date(año,mes,dia)‘ Ahor a quiero que me muestre un rango de fechas

Primera = CDate(fecha1.Text) ' se supone que en Fecha1.text y Fecha2.Text tengo fechas validasUltima = CDate(fecha2.Text)dia1 = Day(Primera) mes1 = Month(Primera) agno1 = Year(Primera)dia2 = Day(Ultima)mes2 = Month(Ultima)

Page 12: Manualillo de Crystal Report.doc

agno2 = Year(Ultima)nombre.Text = Combo2.List(Combo2.ListIndex)

‘se supone que ya declare estas variables ‘ Paso campos de Fechas

cr1.SelectionFormula = "{papel.Fecha} in Date(" & agno1 & "," & mes1 & "," & dia1 & " ) to Date (" & agno2 & "," & mes2 & "," & dia2 & ") And {papel.nombre del papel}='" & nombre.Text & "'"

‘ Como un BETWEN EN SQL DESDE EL 1/01/1999 HASTA 5/01/1999

‘ Mas dificil aun **************

cr1.SelectionFormula = "{papel.nombre del papel}='" & nombre.Text & "' And {papel.Turno}='" & tur.Text & "'"

‘ le estoy pasando el valor del textbox nombre, y el de textbox tur y puede ‘anidar cuantos yo quiera +++++ojo cuidad con las comillas”++++

‘ Enviarle mensajes al Reporte, en lo personal a mi me ha sido muy util , pues hago mi reporte y de ahí le pongo formulas y las mando a rellenar con mensajes en el caso de una FACTURA.

Dim mens as string

mens = "REPORTE DIARIO DE EMBARQUES DEL" + " " + Fecha.Text

‘ Mande a imprimir un mensaje concatenando una fecha que quedaría así

REPORTE DIARIO DE EMBARQUES DEL 12/05/1999Estoy pasando por medio de la formula un mensaje, aclaro para esto se necesita tener un reporte preestablecido e insertar formulas en el menu del Programa de Crystal Report :Insert y tomar la opción de Insertar Campo de Formula Una ves seleccionada esta opción le daremos el nombre a nuestra formula(EN ESTE CASO LA FORMULA SE LLAMA MENSAJE) y dentro de la formula la dejaremos en blanco, ahora esa formula esta lista en nuestro reporte para mandarle mensaje desde Visual Basic como el ejemplo siguiente:

Rep.Formulas(0) = "mensaje=" " " & mens & " " " "

‘ Chequen las comillas, nombre la formula en el Reporte

‘ Bueno y como veo los resultados pues facil con el cr1.destination lo estas ‘mandando a una ventana, Con el Windowtitle le pones titulos a la ventana ‘y con el action lo activas o que se muestre el REPORTE

cr1.Destination = crptToWindowcr1.windowtitle = “AYUDA DE ANGEL DE TRES VALLES, VERACRUZ”cr1.Action = 0

‘Otra sugerencia cuando estes ejecutando inicia la venta del inmediato con ‘CTRL+G la activas, o el debug print y ahí escribe tu formula y checas si esta ‘correcta.

Page 13: Manualillo de Crystal Report.doc

IMPORTANTISIMO MUCHACHOS, CUANDO VAYAN A GENERAR EL REPORTE YA PREESTABLECIDO, Y LA ESTRUCTURA DE SUS BASES DE DATOS HAYA CAMBIADO ES NECESARIO, IRSE A LA OPCIÓN DEL CRYSTAL REPORT AL MENU DE BASE DATOS Y ELSUBMENU COMPROBAR BASE DE DATOS, PARA CORREGIR LA BASE DE DATOS O QUE TOME EL REPÓRTE LOS NUEVOS CAMBIOS QUE SE HAYAN ECHO A LA MISMA.

YA SEA QUE ESTA BASE DE DATOS ESTE HECHA EN ACCES, O EN DBASE O EN PARADOX O LO QUE SEA ESTE PROCEDIMIENTO SE DEBE HACER.

EJEMPLO: UNA VEZ QUE GENERARON SU REPORTE Y LES ARROJO ALGUN RESULTADO, PERO DE REPENTE DICEN EL NOMBRE DEL CAMPO Y DE LA TABLA X NO DEBE SER DE 40 SINO DEBE SER DE 50 DE ANCHO, HACEN EL CAMBIO EN LA BASE DE DATOS DEBEN DE HACER LA OPERACIÓN QUE COMENTE ARRIBA, PORQUE DE NO HACERLO EL REPORTE PUEDE CAUSAR ALGUN ERROR O NO MOSTRAR LOS RESULTADOS ESPERADOS.

Bueno un comentario por ultimo, le voy a pasar algo que yo hice en Visual Basic, para dejar en Blanco ar todas las formulas que yo haya utilizado para generar mi Reporte, BUENO Y SE PREGUNTARAN CON QUE FIN¡¡¡ Esto se hace con el fin de que al generar un reporte las formulas se quedan con los valores que se llamaron y al andar a llamar otro reporte el Programa no vaya utilizar otra vez la misma formula o esta contenga alguna y se genere un error creado por el Control del Crystal Report:

Ejemplo Practico: Supongamos que tenemos una rutina que llamamos el Reporte :

crtavan.ReportFileName = "C:\Raul de Anda\Avances1.RPT"crtavan.SelectionFormula = "{Embarcados.Re_clave} =" & Trim(Text4.Text) & " and {Embarcados.re_ped}= '" & Trim(Text2.Text) & "' And {Embarcados.re_ancho}= " & (Text3.Text) & ""crtavan.Destination = crptToWindow 'crtavan.Action = 0borrard crtavan, 1 ‘’ Mando a llamar la rutina de Borrado

El Reporte genera los Resultados esperados, y las formulas se vuelven a quedar en Blanco para que al mandar llamar otro reporte, estas formulas esten vacias y el control Crystal no genere un errror

‘Esto lo pueden poner en un modulo: Es necesario y despues de generar el reporte mandar a llamar a la RUTINA

Sub borrard(report1 As CrystalReport, num As Integer)

For i = 1 To num report1.SelectionFormula = ""Next

For i = 1 To num report1.Formulas(i) = ""Next

End Sub

‘Bueno espero y te haya ayudado en Algo, y no se me desesperen..... y me ‘mandan un correo a ver como les va.... espero sus comentarios y no se me haya pasado ‘algo...

Suponemos que es un objeto de Crystal Report:¿Cómo lo mando a llamar desde una forma?

borrard crtavan, 1

Que es lo que le paso a la rutina borrard como parametros pues el nombre del Objeto de Crystal y el numero de Formulas que estoy utilizando

Page 14: Manualillo de Crystal Report.doc

.. visita estas ‘pagina en internet y claro si eres visualero aun mas..’‘Verdaderamente es poco lo que hay en estas paginas del Guille pero de ‘mucha ayuda, vienen algunos ejemplos....

‘www.guille.costasol.net/crystal/crystal_04.htm

‘ p.d. Debido a nuestra región en la que estamos nuestro servicio es muy ‘ilimitado y me conecto muy poco tiempo... estoy en la lista de todo clipper ‘de Philipe Morchain..... hay tambien me puedes encontrar.... y ademas en la D. Garza de Visual Basic en MexicoBUENOS MIS cuate arriba la informatica, las pc’s y todo lo relacionado con ella, espero y ‘pronto termine mi pagina personal para que la visites, perdón por la ortografía

End.