Está en la página 1de 14

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 versin de Visual Basic 5.0 venia la versin de Crystal Report 4.2 ah aprend un poco disculpen lo obsoleto, y pues si tiene la VISUAL STUDIO: versin 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 :

Ojo la opcin que viene en la pestaa, creacin de informes, deben de activar la casilla sig. Para sus datos se actualizen junto con las base de datos.

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 opcin del men proyectoscomponentes (ctrl+T), despus desde la propiedad name le pondremos al reporte el nombre cr1. Si no sabes utilizar tu Crystal Report no hay problemas un pequeo wizard al estilo microsoft te va guiando de la mano, pero si tienes problemas chame un grito.

ESTO LO RECOPILE DE LA AYUDA DE LOS LIBROS EN PANTALLA DE MICROSOFT VISUAL BASIC 5.0 , en la opcin buscar tecleen algn comando de Crystal Report y automticamente te genere el listado de todos los comandos de Crystal Report a continuacin solo puse los ms usados, pero si necesitan checar los dems entren a la opcin del Submenu de Visual Basic 5.0 en la opcin libros en pantalla

BoundReportHeading
Descripcin Propiedad de cadena que permite al usuario asignar el ttulo del informe. Uso en tiempo de ejecucin [formulario.]CrystalReport1.BoundReportHeading = ttulo de informe Por ejemplo: Report1.BoundReportHeading = "Ventas por regin" imprime el ttulo indicado para el informe especificado. Disponibilidad Tiempo de diseo; tiempo de ejecucin.

Connect
Descripcin Inicia una sesin en un servidor SQL. Uso en tiempo de ejecucin [formulario.]Report.Connect [= Name;UserID;Password;DatabaseQualifier$] Por ejemplo: Report1.Connect = "DSN = Contabilidad;UID = 734;PWD = grande;DSQ = Administracin" conecta con la base de datos "Administracin" del servidor "Contabilidad" usando el Id. de usuario 734 y la contrasea "grande". Comentarios Escriba los parmetros necesarios para iniciar una sesin en el servidor SQL que necesita activar para el informe. Los parmetros deben aparecer con el siguiente formato: DSN = nombre;UID = Idusuario;PWD = contrasea;DSQ = calificador base de datos Nombre es el nombre del servidor. Id. usuario es el nombre que se le ha asignado para iniciar una sesin en el servidor SQL. Contrasea es la contrasea que se le ha asignado para iniciar una sesin 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 ubicacin Database/BIN en la ruta de acceso.

Nota Este parmetro slo se requiere cuando sea aplicable al controlador ODBC que est usando. Disponibilidad Tiempo de diseo; tiempo de ejecucin.

Formulas
Descripcin Especifica una nueva cadena para una frmula existente. Uso en tiempo de ejecucin [formulario.]Report.Formulas(ndiceMatriz)[= "NombreFrmula= TextoFrmula"] Escriba el nombre de la frmula y la cadena que quiera que sustituya a la existente para cada frmula del informe que desee cambiar. Por ejemplo, para cambiar una frmula @COMISIN a {archivo.VENTAS}*.1, y una segunda frmula @TOTAL a {archivo.VENTAS} + {archivo.COMISIN}, escriba lo siguiente: Report1.Formulas(0) = "COMISIN= {archivo.VENTAS} * .1" Report1.Formulas(1) = "TOTAL= {archivo.VENTAS} + {archivo.COMISIN}" Comentarios Formulas es una propiedad de matriz que slo est disponible en tiempo de ejecucin. Use una lnea de cdigo distinta para cada frmula que desee cambiar. Cambie slo aquellas frmulas que quiera cambiar. La primera frmula que cambie debe asignarse al ndice (0) de la matriz, la segunda debe asignarse al ndice (1), etc. La nueva cadena de frmula debe cumplir los requisitos sintcticos de Crystal Reports. Esta propiedad se borra una vez impresa la tarea. Si imprime por segunda vez, el programa vuelve a las frmulas segn se especificaron originalmente en el informe. Nota Los espacios en blanco son significativos en los nombres de frmulas. Por esta razn, el signo igual debe seguir al nombre de la frmula sin espacio entre ellos. Nota El signo @ no se usa cuando se designa un nombre de frmula en esta propiedad. Nota Esta propiedad no puede utilizarse para crear nuevas frmulas. Slo pueden cambiarse frmulas existentes. Disponibilidad Tiempo de ejecucin (lectura y escritura).

GroupCondition
Descripcin Especifica qu tipo de cambio en el campo de condicin de grupo desencadenar la creacin de un grupo. Uso en tiempo de ejecucin [form.]Report.GroupCondition(SequentialIndex%)[= group; field; condition; sortDirection$]

Por ejemplo: Report1.GroupCondition(0)="GROUP1;{header.ordernum};ANYCHANGE;A" Especifica que cualquier cambio en el campo ordernum de Group1 producir una nueva agrupacin. Comentarios Consulte las siguientes tablas para valores de parmetros de esta propiedad:

PARMETRO DESCRIPCIN VALORES ESPERADOS group El grupo en que el que desea establecer la condicin de grupo. El grupo ms externo del informe es GROUP1, el siguiente grupo es GROUP2, etc. field El nombre del campo que producir una agrupacin siempre que cambie su valor. Indique el nombre en el siguiente formato: {tabla.campo} condition Indique la condicin que producir la agrupacin. Consulte las siguientes tablas. SortDirection La direccin en que se ordenarn los grupos. A = Ascendente,D = Descendente Condiciones de campo de fecha

CONDICIN CDIGO DE CONDICIN Diario DAILY Semanal WEEKLY Quincenal BIWEEKLY Semi-mensual SEMIMONTHLY Mensual MONTHLY Trimestral QUARTERLY Semi-anual SEMIANNUALLY Anual ANNUALLY Condiciones de campo booleano

CONDICIN CDIGO DE CONDICIN A s TOYES A No TONO Cada Yes EVERYYES Cada No EVERYNO Prximo Yes NEXTISYES Prximo No NEXTISNO Condicin para los dems tipos de datos

CONDICIN CDIGO DE CONDICIN Cualquier cambio ANYCHANGE Disponibilidad Lectura y escritura en tiempo de ejecucin solamente.

GroupSelectionFormula
Descripcin Especifica los grupos que se van a utilizar cuando se imprima el informe. Uso en tiempo de ejecucin [form.]Report.GroupSelectionFormula[= "GroupSelectionFormula"] Escriba la frmula de seleccin de grupo como si le introdujera en el Editor de frmulas. 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 frmula de seleccin de grupo: Sum ( {header.AMOUNT}, {header.CustNumb}) < $10000 Comentarios Si la frmula de seleccin de grupo incluye comillas internas, cambie todas las dobles comillas internas a comillas simples y encierre la frmula de seleccin de grupo entre dobles comillas. Nota Si ha creado una frmula de seleccin de grupo en tiempo de diseo, cualquier frmula de seleccin de grupo que indique aqu se agregar a dicha frmula de seleccin de grupo, conectada por "and". As, los registros se seleccionarn segn una combinacin de las dos frmulas. Disponibilidad Tiempo de diseo; tiempo de ejecucin.

GroupSortFields
Descripcin Especifica el o los campos de grupo que se usarn para ordenar los datos cuando se imprima el informe. Uso en tiempo de ejecucin [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 nmero de clientes de cada grupo. Para imprimir el grupo con el mayor contador primero y despus 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 slo disponible en tiempo de ejecucin. Use una lnea de cdigo distinta para especificar cada campo de orden de grupo. Introduzca los campos de ordenacin en el orden en que desee ordenarlos en el informe. Por ejemplo, si primero quiere ordenar el informe segn el campo de ordenacin de grupo A y despus segn el campo B, especifique el campo de ordenacin A en la primera lnea de cdigo y el campo B en la segunda lnea de cdigo. Al primer campo de ordenacin de grupo que especifique debe asignarse el ndice de matriz 0, al segundo campo de ordenacin 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 subndices en el cdigo inmediatamente despus del nombre de la propiedad; por ejemplo, Report1.GroupSortFields(0) =. Si ha especificado campos de ordenacin para el informe en tiempo de diseo, los campos de ordenacin introducidos aqu sustituirn a los campos de ordenacin del informe. Si no usa esta propiedad, el programa usar las instrucciones de ordenacin que se especificaron en el informe. Si desea borrar los campos de ordenacin de grupo del informe, use una cadena vaca (Report1.GroupSortFields(0) = ""). Esta propiedad se borra cuando se imprime la tarea. Si se imprime una segunda vez, el programa restablece los campos de ordenacin de grupo especificados originalmente en el informe. Nota La entrada del campo de ordenacin de grupo debe ir seguida del signo de direccin (+ o -) sin espacios. Nota Para encontrar la sintaxis correcta para cualquier grupo del informe usando Crystal Reports para Visual Basic: seleccione Insertar|Campo de frmula, escriba cualquier nombre de frmula en el cuadro de dilogo Insertar frmula cuando aparezca, haga clic en el botn de desplazamiento de la lista Campos en el de frmulas 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 frmula. Use el nombre y la sintaxis de dicho cuadro de texto cuando construya la cadena del campo de ordenacin de grupo. Disponibilidad Tiempo de ejecucin.

SectionMinHeight
Descripcin Establece el alto de seccin mnimo para la seccin de informe especificada. Uso en tiempo de ejecucin [form.]Report.SectionMinHeight(SequentialIndex%)[=sectionCode;minHeight$] Por ejemplo: Report1.SectionMinHeight(0) = "ALL; 500" Establece el alto mnimo para todas las secciones a 500 twips. Comentarios Con SectionMinHeight puede especificar cambios a una o ms secciones en tiempo de ejecucin. Dichos cambios se producen secuencialmente cuando se realiza la llamada "Action=1". El valor de ndice secuencial para SectionMinHeight simplemente especifica el nmero de orden para el cambio. As: Report1.SectionMinHeight(0)= "DETAIL;500" cuando se efectan cambios slo a la seccin DETAIL, pero Report1.SectionMinHeight(0) = "HEADER;500" Report1.SectionMinHeight(1) = "DETAIL;500" cuando se efectan cambios a ms de una seccin. Disponibilidad Lectura y escritura en tiempo de ejecucin.

SelectionFormula
Descripcin Especifica 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 ejecucin [form.]Report.SelectionFormulaProperty[= SelectionFormula$] Escriba la frmula de seleccin como lo hara en el Editor de frmulas 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 frmula de seleccin; por ejemplo: Report1.SelectionFormula = "{file.QTY} > 5" Comentarios Asegrese de que encierra la frmula de seleccin entre dobles comillas. Si la frmula de seleccin incluye comillas internas, por ejemplo: {file.STATE} = "CA" cambie todas las dobles comillas internas a comillas simples y encierre toda la frmula de seleccin entre dobles comillas como sigue: "{file.STATE} = 'CA'" Si ha creado una frmula de seleccin en el informe en tiempo de diseo, cualquier frmula de seleccin que escriba aqu se agregar a dicha frmula de seleccin. As, los registros se seleccionarn segn una combinacin de las dos frmulas de seleccin. Disponibilidad.Tiempo de diseo; tiempo de ejecucin.

SessionHandle
Descripcin Establece el controlador de sesin 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 ejecucin [form.]Report.SessionHandle[= Handle%] Comentarios Si ya ha abierto una sesin de Jet en la aplicacin de Visual Basic, puede establecer esta propiedad para que sea el controlador de sesin actual. De lo contrario tendr que usar las propiedades Password y UserName para establecer la sesin de Jet. Por ejemplo: Report1.SessionHandle = CurrentSessionHandle establece el controlador de sesin al controlador de sesin retornado en otra parte de la aplicacin y almacenado en la variable CurrentSessionHandle. Disponibilidad Tiempo de ejecucin (lectura y escritura).

SortFields
Descripcin Especifica el o los campos que se usarn para ordenar los datos cuando se imprima el informe. Uso en tiempo de ejecucin [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 alfabticamente por cliente, y despus por fecha de pedido, puede escribir cdigo similar a ste: Report1.SortFields(0) = "+{orders.CUSTOMER}"Report1.SortFields(1) = "+ {orders.ORDERDATE}" Comentarios SortFields es una propiedad de matriz disponible slo en tiempo de ejecucin. Use una lnea de cdigo distinta para especificar cada campo de ordenacin. Escriba los campos de ordenacin en el orden en que desee ordenar el informe. Por ejemplo, si quiere ordenar el informe por el campo A y despus por el campo B, especifique el campo de ordenacin A en la primera lnea de cdigo y el campo de ordenacin B en la segunda lnea de cdigo. Al campo de ordenacin 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 subndices en el cdigo inmediatamente despus del nombre de la propiedad; por ejemplo, Report1.SortFields(0) =. Si ha especificado campos de ordenacin para un informe en tiempo de diseo, los que escriban aqu sustituirn a los del informe. Si no usa esta propiedad, el programa usar las instrucciones de ordenacin que se especificaron en el informe. Si quiere borrar los campos de ordenacin de un informe, use una cadena vaca (Report1.SortFields(0) = ""). Encierre los nombres de campos entre corchetes. Los campos de ordenacin pueden ser campos de la base de datos o campos de frmula. Si ordena por un campo de frmula, use el signo @ delante del nombre de la frmula; por ejemplo, @FRMULA. Disponibilidad Tiempo de ejecucin (lectura y escritura)

SQLQuery
Descripcin Obtiene y establece la cadena de consulta SQL usada por el informe especificado. Uso en tiempo de ejecucin [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 estn alfabticamente despus de Madison. Comentarios Puede cambiar slo las secciones WHERE y FROM de una consulta SQL. Aunque la propiedad requiere que se introduzca toda la consulta SQL, la seccin SELECT no debe ser diferente de la consulta original. Disponibilidad Lectura y escritura (tiempo de diseo y de ejecucin).

Status
Descripcin Determina el estado de impresin para el informe especificado. Uso en tiempo de ejecucin [form.]Report.Status Por ejemplo: Status% = Report1.Status Recupera el estado de impresin y lo guarda en la variable Status. Comentarios La 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. Disponibilidad Slo lectura en tiempo de ejecucin.

StoredProcParam
Uso en tiempo de ejecucin [form.]Report.StoredProcParam(Parameter Array Index%)[= newParameter$] Por ejemplo: Report1.StoredProcParam(0) = "06/14/1989" Establece el primer parmetro de procedimiento almacenado a la fecha 14 de junio de 1989. Comentarios StoredProcParam establece el valor del parmetro especificado de una tabla de base de datos SQL que est basada en un procedimiento almacenado. Pase el valor al que quiera establecer el parmetro como cadena. Si el parmetro 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 impresin de Crystal realizar la conversin del valor a formato entero. Disponibilidad Lectura y escritura en tiempo de ejecucin solamente.

UserName
Descripcin Introduce 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 ejecucin [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. Disponibilidad Tiempo de diseo; tiempo de ejecucin.

Buenos despus de tantos comandos, a continuacin 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 tambin un botn al que llamaremos cdmimprimir despus hacemos doble click sobre el botn.

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 compaero. 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 an 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(ao,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 validas Ultima = CDate(fecha2.Text) dia1 = Day(Primera) mes1 = Month(Primera) agno1 = Year(Primera) dia2 = Day(Ultima) mes2 = Month(Ultima)

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 quedara as REPORTE DIARIO DE EMBARQUES DEL 12/05/1999 Estoy 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 opcin de Insertar Campo de Formula Una ves seleccionada esta opcin 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 = crptToWindow cr1.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.

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 OPCIN DEL CRYSTAL REPORT AL MENU DE BASE DATOS Y ELSUBMENU COMPROBAR BASE DE DATOS, PARA CORREGIR LA BASE DE DATOS O QUE TOME EL REPRTE 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 OPERACIN 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 = 0 borrard 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 Suponemos que es un objeto de Crystal Report: despues de generar el reporte mandar a llamar a la RUTINA Cmo lo mando a llamar desde una forma? 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... 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

.. 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 regin 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 Mexico BUENOS MIS cuate arriba la informatica, las pcs y todo lo relacionado con ella, espero y pronto termine mi pagina personal para que la visites, perdn por la ortografa End ** MEXICANA DE PAPEL PERIODICO S.A. DE C.V. L.I. JOSE ANGEL SORIANO GONZALEZ Clipper, vb5, pascal, c, foxpro,cobol, RPG/AS400 EDAD: 25 AOS PERTENECIENTE A LA COMUNIDAD VISUAL BASIC DIRECCION DE LA COMUNIDAD grupovb@egroups.com datasoft@tuxnet.net.mx jose_angel4@starmedia.com TEL (01-288) 69000, 50066, 50988, 50989 TRES VALLES, VERACRUZ P.D. FELIZ NAVIDAD Y PROSPERO AO NUEVO 2000

NECESITAMOS HACERLO MAS GRANDE ESTE MANUALILLO CON LA COLABORACION DE TODOS ESPERO Y ME DISCULPEN POR LA POCA INFORMACIN, PERO ESTE ESPACIO TE ESTA ESPERANDO GRACIAS A TODOS Y A DIOS POR HABERLOS CONOCIDOS........ Este manual ha sido descargado de La Web del Programador http://www.lawebdelprogramador.com

También podría gustarte