Posibles causas que hacen que un Reporte de Crystal no funcione
Estas son varias de las posibles causas que hacen que un informe (reporte) hecho en Crystal Report no funcione debidamente.
En ocasiones nos encontramos que luego de diseñar un reporte, pueden suceder algunos de estos problemas.
Problemas en Crystal
Posibles causas que hacen que este tipo de cosas pasen
Crystal, siempre tratará de imponer su relación de tablas, recuerda que cuando trates de relacionar el ID de una tabla con el ID de otra y Crystal no lo acepte, es porque el tipo de campo no es igual entre ellas, ya que por ejemplo, si un ID es de tipo Numerico(Double) y el otro ID es de tipo Numerio(Long) aunque ambos sean numerio no son iguales. Una de las cosas con respecto a lidiar con Crystal es saberlo entender para evitar confusiones y retrasos al momento de hacer los informes.

Para sistemas Windows la ayuda de Crystal se encuentra en:
C:\Archivos de programa\CrystalReport\Tools\Reports\crw.exe
Escribe el tipo de base de datos que usas y la ayuda te informara de las DLL que deben estar presentes para que el reporte no tenga problemas. Algo que estaría demás comentar, pero puede pasar, el también recordar que si hemos modificado la estructura de las tablas, debemos actualizar el reporte ya que éste no hace esto por si solo, y referencia a campos que ya no existen o han cambiado su formato de datos tambien causa problemas, por algun leve descuido algo tan tonto podría causarnos problemas.
Para el caso estar desactivado el boton de imprimir el reporte esto tiene que ver cuando incrustamos o colocamos un control OCX CrystalReport en la ventana (no el uso de ViewCR, vista de diseño de reporte desde el propio lenguaje), debe ser uno por reporte, si la ventana carga más de un reporte, lo adecuado es que sea un control por reporte en la ventana CrystalReport1, CrystalReport2,… ya que problemas como el no estar activado el boton de imprimir (para el caso de cargar el reporte en pantalla y no mandarlo a imprimir directamente) entonces debe ser un control por reporte.
Para el caso en que colocamos un subreporte y éste se repite es debido a que lo hemos colocado en la sección “Detalle” del reporte padre. El subreporte debe estar en cualquier otra sección menos en detalle para que el subreporte no se repita, ya sea en una misma hoja o se repita tantas veces que genere un reporte de varias hojas. Simplemente con cambiar de sección esto puede resolverse algo muy tonto que en ocasiones consideamos que puede ser debido a algo más complejo y nos hace perder tiempo hasta luego caer por casualidad o prueba en que el problema era debido por cosas que deben de saberse con respecto al diseño de reportes.
En mi caso, prefiero diseñar los reportes desde el propio Crystal, y no recurrir a interfaces del lenguaje, es mucho mejor llamar al archivo .RPT ya que en caso de necesitarse ese reporte para otra aplicación (de otro lenguaje por ejemplo) es portable hacerlo de esta forma, mientras que hacer el reporte dentro del lenguaje, implica siempre tener que cargar los fuentes del programa para realizar ajustes al reporte, mucho mejor mantener el reporte y el programa como dos cosas a parte pero que a la vez trabajan en conjunto, pero cada quien lo hace como mejor lo prefiera desde luego.
Una de las cosas que es una lastima en Crystal es que sus IF en formulas no sean indexados, lo cual da un poco de problemas al momento de realizar varias validaciones en donde ninguna depende de una validación padre.
Cuando la Fecha se muestra como 01/01/-4713
Esto pasa poco, en mi caso ha llegado a pasar, por ejemplo, un reporte el cual no es un reporte conformado por tablas de la base de datos, sino por unas SQL, Crystal Report permite formar un reporte no solo de tablas sino de VIEW o sentencias SQL que hemos hecho para traerlos los datos de distintas tablas. En ocasiones cuando me da problemas la relación de tablas recurro a hacer una SQL o algunas y es lo que uso en alguno que otro reporte Crystal.
Sea de tablas o de SQLs, si alguna vez observas que los campos de fecha (todos los del reporte) aparecen como 01/01/-4713 esto es debido porque la información no está relacionada o vinculada, es decir, sean tablas o SQLs no estan relacionadas entre si en la parte de Relaciones de Crystal.
Este es un reporte de prueba el cual se trae información falsa (información de prueba) en donde se observa que todos los campos de fecha poseen este problema ya comentado:
Este reporte trae información de unas tablas, pero no son tablas con lo que fue creado o armado este reporte, sino con unas SQLs que se muestran a continuación en la parte de relación de tablas de Crystal Report:
Para solucionar este problema de las fechas, ingrese en las SQLs el campo que permite relacinar o enlazar las SQLs unas con otras. Debido a que las SQL en su filtro ya poseen sus relaciones, normalmente esto es algo que uno no hace pero al ver el problema que esto puede ocasionar, nos obliga a hacer unos ajustes en las SQLs para que Crystal las pueda linkear unas con otras y asi Crystal es que logra atar cabos sueltos y nos trae los datos que queremos, ya que en la primera vista del reporte, no solo estaba el problema de las fechas, también no habian datos (cuando realmente si los hay) el reporte no estaba funcionando.
Con la información ya vinculada (linkeada) y si los vinculos son correctos, ningun reporte Crystal deberia dejar de funcionar bien sea tantoen su carga (que se muestre) como sobre todo en la ifnormación que nos expone (nos trae de la BD).
Al hacer estos ajustes en las tablas o SQLs de un reporte Crystal, debemos hacer la Verificación de la base de datos por medio del menú de Crystal Report: Database > Verify Database para que Crystal detecte los cambios, luego ingresar a la relación de tablas de Crystal menú Database >Visual Linking Expert, visualizamos la nueva relación y debemos pulsar el botón Ok para que Crystal tome realmente los cambios, es luego de esto que la información se visualizara correctamente en el reporte.
La clave de un problema de un reporte Crystal puede estar muchas veces en la relación de tablas del Crystal. Otra cosa a decir sobre el caso del formato de fecha 01/01/-4713 y de otras raresas de que no salgan datos, además de los formatos entre campos relacionados, es recordar que los datos deben estar todos completos. Por ejemplo, tenia otro reporte con el caso de la fecha, aunque todo parecia estar correcto con la relación de tablas en Crystal, la fecha seguía apareciendo como 01/01/-4713. El problema era que en dichas pruebas, habia una tabla que no tenia registros para relacionarse con los registros de las otras tablas relacionadas, un descuido de mi parte y un descuido que puede pasarle a cualquiera y es bueno comentarlo.




Me guta tu sugerencia, sabes como puedo hacer solo 1 diseño de x reporte y que este solo archivo rpt sea accesado por multiples usuarios ? asi solo tendría que modificar en su caso un solo reporte y no correr de maquina en maquina de los usarios para actualizarlos además eso tendría seguros mis reportes.
Saludos
server142@hotmail.com
carlos
Octubre 23, 2007 a 9:42 pm
Hola Carlos
Por lo que comentas, tu aplicación es local en todas las estaciones, es preferible que sea una aplicacion bajo una arquitectura cliente-servidor. Tanto la base de datos como los reportes en un solo equipo (el servidor o equipo que haga de servidor) y la instalación del binario y librerias en todos los equipos.
Si es una base de datos Access, debe ser una carpeta compartida y dar los permisos de usuario adecuados en la red para que el programa en cada estacion no tenga problemas de acceder a la información en el servidor, pero seria mejor y en caso de otras bases de datos, hacer la conexión por un enlace de origen ODBC u OLEDB,a diferencia de Access el cual no es un verdadero gestor de BD, otros poseen su propio puerto, nada de estar compartiendo carpetas, aunque tambien con una BD Access también sería factible por ODBC.
Manten la base de datos y los reportes en un solo equipo de forma centralizada y que los usuarios se conecten a este. Tu programa debe estar en red y no local en cada equipo.
jose
Octubre 23, 2007 a 10:49 pm
BUENAS TARDES:
ME PODRIAN AYUDAR A RESOLVER UN DETALLE QUE TRAIGO CON ALGUNOS REPORTES DE CRYSTAL , LO QUE PASA ES QUE A LA HORA DE QUERER CORRER LOS REPORTES ME MANDA UN MENSAJE DE ACTIVE X FILE NOT FOUND Y NO ENCUENTRO QUE ES LO QUE ME PUEDA ESTAR PROVOCANDO ESTE DETALLE YA QUE LA UNIDAD DE RED EN DONDE TENGO LOS REPORTES SI ACCESA.
ISRAEL BASURTO
Noviembre 7, 2007 a 8:01 pm
Hola Israel, perdon por no contestar antes, pero ingresaste tu cmentario en dias en que tenia trabajo que debia resolverse “para ayer” es decir “ya” y en donde me toco llevar trabajo a casa por lo que en verdad no tenia el tiempo ni podia preferirlo usar en otra cosa, por el corto tiempo de entrega.
Nunca he sido un guru o experto en Crystal, pero cosas como tu caso me ha pasado, indicas que Crystal no carga el reporte (los reportes por la pluralidad que usas, son varios, todos) porque no lo consigue (y el cual lo busca remotamente en otro equipo). Obviamente esa conexión de tu reporte Crystal a la Base de Datos debe ser o deberia ser preferiblemente un Reporte hecho por conexión ODBC a la BD. Porque aunque el reporte este en otro equipo, “la data” del reporte la toma de una BD que está en otro equipo. La BD en el equipo que seria o haria como Servdor, los reportes si pueden estar en cada terminal, ya que su conexion apunta siempre a un equipo en particular, por lo que al hacer ajustes en el reporte, seria en uno solo pero lo vuelves a copiar en todos los demas equipos.
Ahora, tu caso parece indicar que los reportes estan en el servidor y solo el ejecutable esta en las terminales, y estableciste por codigo la ruta directaente o desde un archivo txt o en la Bd (ruta gardada en un campo de X tabla). Y el ejecutable en las terminales no puede llegar al archivo.
Si tu por red puedes acceder de A a B, y tu progama puede conectarse a la BD de A a B, eso descartaria la falta de permisos del programa o reportes para acceder al medio compartido. Pero no sé si cuando indicas el aviso FILE NOT FOUND, es un aviso del programa o propio de Crystal.
Vuelve a verificar los permsisos de usuario, pero mas que todo verifica la ruta que usas en el codigo para llegar a los archivos .rpt y en crystal indica verificar BD para evitar algunos cambios en las tablas que usa el reporte.
Nuevamente perdon por la demora y en espera de nueva información y más detallada con respecto a “desde donde viene el problema” para opinar sobre ello.
saludos.
jose
Noviembre 9, 2007 a 11:07 am
BUENOS DIAS: HELPPPP
Soy desarrollador, estoy trabajando con delphi 2006, db2 y crystal reports XI. En db2 manejamos esquemas para el manejo de tablas, esos esquemas en crystal los maneja como “propietario” en las propiedades de la tabla, mi problema es que no puedo accesar desde delphi a esa propiedad de la tabla, estoy utilizando el vcl 11.0.0.0 de crystal.
Ramon Robles
Noviembre 12, 2007 a 5:41 pm
Lo siento Ramon, no trabajo con Delphi ni con DB2 por lo que no podre dar mi opinión con respecto a tu problema, ya que serian conjeturas sin base a pruebas, deberas explicar tu problema en foros de Delphi o Crystal (preferiblemete foros de Delphi) lo cual pienso que ya debes de haber hecho.
saludos.
jose
Noviembre 12, 2007 a 6:03 pm
Hola, estoy trabajando con un crystal report, y al momento de realizar la consulta, y cargar mi data set, este si funciona correctamente, ya que carga un data grid que puse de prueba, pero , al momento de cargarlos en el Crystal Report Viewer unicamente me muestra el primer registro de la consulta, ¿porqué?
Les agradecería infinitamente que me ayudaran, porfis!
Viridiana Berzosa
viridiana
Marzo 27, 2008 a 11:42 pm
ESTE ES MI CÓDIGO, OLVIDÉ PONERLO .
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conexion As String = (“Provider=Microsoft.Jet.OLEDB.4.0; Data Source= C:\Documents and Settings\shernandez\Desktop\PisosDB.mdb”)
Dim dbDataAdapter As OleDbDataAdapter
Dim dbDataSet As New DataSet
Dim comando As New OleDbCommand
Dim dsfisico As New PruebaDataSet
dbConn = New OleDbConnection(conexion)
dbConn.Open()
dbDataAdapter = New OleDbDataAdapter(“select * from tblCatClientes where idproyecto >= ” & CStr(_varidproyecto), conexion)
‘dbDataAdapter = New OleDbDataAdapter(“select p.idproyecto, z.idzona, m.idcargamon, c.idcliente, r.idcargarack, ca.idcargauni ” & _
‘”_& from tblproyectos p ” & _
‘”_& inner join tblzonas z on (p.idproyecto = z.idproyecto)” & _
‘”_& inner join tblmontacargas m on (p.idproyecto = m.idproyecto and z.idzona = m.idzona)” & _
‘”_& inner join tblcatclientes c on (p.idproyecto = c.idproyecto and p.idcliente = c.idcliente) ” & _
‘”_& inner join tblRacks r on (p.idproyecto = r.idproyecto and z.idzona = r.idzona)” & _
‘”_& inner join tblcargauni ca on (p.idproyecto = ca.idproyecto and z.idzona = ca.idzona)” & _
‘”_& where p.idproyecto =” & CStr(_varidproyecto), conexion)
Dim commandbuilder = New OleDbCommandBuilder(dbDataAdapter)
dbDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
dbDataAdapter.Fill(dbDataSet)
Dim i As Integer = 0
Dim dr As Data.DataRow
For Each dr In dbDataSet.Tables(0).Rows
dr = dsfisico.Tables(“tblCatClientes”).NewRow
dr(“IdCliente”) = dbDataSet.Tables(0).Rows(i).Item(0)
dr(“NomCompania”) = dbDataSet.Tables(0).Rows(i).Item(1)
dr(“Contacto”) = dbDataSet.Tables(0).Rows(i).Item(2)
dr(“Idproyecto”) = dbDataSet.Tables(0).Rows(i).Item(9)
dsfisico.Tables(“tblCatClientes”).Rows.Add(dr)
i = i + 1
Next
‘repetir
‘este código llena el datagridview
dbDataSet.Clear()
dbDataAdapter.Fill(dbDataSet, “tblCatClientes”)
Me.DataGridView1.DataSource = dsfisico
Me.DataGridView1.DataMember = “tblCatClientes”
‘report12.SetDataSource(dsfisico.Tables(“tblCatClientes”))
report12.SetDataSource(dsfisico)
‘report12.SetDataSource(dbDataSet)
dbConn.Close()
CrystalReportViewer1.ReportSource = report12
End Sub
End Class
viridiana
Marzo 27, 2008 a 11:44 pm
Saludos viridiana
Yo trabajo directamente en Crystal, no por los view del lenguaje
Te propondria que colocaras la SQL del problema en la seccion de consultas de Access, y lo corras, pero como indicas que en el Grid si salen todos los registros del query, e hiciste un llenado de prueba el cual funciona en esta rejilla. Lo que si me gustaria ver, seria esto ejecutandolo yo mismo. No pidiendo tus fuentes sino una copia de la BD ya que involucras en la consulta varias tablas, el codigo ya me lo haz expuesto.
Lo unico parecido a tu caso que me ha pasado ha sido el que los campos en modo de diseno no han estado en el Deteil de Crystal sino en otra seccion lo cual no hacia el recorrido del recordset, sino que solo me traia un solo registro, pero de verdad que no creo que ese sea tu caso.
De seguro ya haz explicado tu caso en algun foro, el unico momento en que yo podria ver esto seria el domingo y sin saber a ciencia sierta si podria ayudarte.
En resumen por los momentos solo podria decirte que mires si al momento de hacer y guardar tu reporte hayas quitado lo de save data with Report del menu File. Pulsa el boton de actualizar, el boton de refresh data de crystal, y nuevamente indico el verificar el que los campos esten el la seccion Details del reportee y no en alguna seccion de cabecera.
Saludos.
jose
Marzo 28, 2008 a 1:21 am
Viridiana Berzosa
Hola nuevamente. Con la novedad de que el crystal ya funciona,con ciertas consultas, pero las consultas son directas con un “* from”, pero yo necesito que las tablas esten relacionadas, y aunque el query que tengo se ejecuta correctamente en SQL, no se como podría llenarlo en código Visual con Access, ya que si mando llamar el idproyecto de tres tablas por ejemplo, me marca un error que dice algo asi como:”column is constrained to be unique. Value ‘47′ is already present.error”.
Agradezco de antemano tu atención y espero tener respuesta sobre esto, si me pudieran ayudar. Se que Access está demasiado limitado en cuanto a relación de tablas y otras cuestiones, por eso estoy batallando un poco, porque siempre he manejado SQL =(.
viridiana
Abril 2, 2008 a 7:33 pm
No sé si capte algunos puntos de esto ultimo con respecto a estos avisos y sobre todo a toda tu explicación en general.
Puedes usar el campo como formato Autoincrementado?
Cambia la AutoIncrementSeed y AutoIncrementStep los Valores en la CustomersDataTable a -1 y -1.
Crystal relaciona tablas, por los view no sabria como seria el caso, una sql en access puede ser usada en crystal sin problemas, crystal ve la sql como si fuese otra tabla más, ya que al momento de seleccionar la BD él se trae en el Tree, arbol donde se seleccionan las tablas, tambien muestra las querys, cuando se seleccionan las tablas y campos que conformaran al reporte. Para el caso de SQL en el reporte, si algun campo de la SQL no se cumple (vacio por ejemplo) toda la SQL completa podria no traer la data, a veces pasa. La atencion en esto seria revisar la relación entre las tablas, en caso de relación hechas por crystal ya que como dices, la sql corre bien.
jose
Abril 3, 2008 a 12:41 am
Buen día,
Mi problema es en el detalle, este repite las líneas dos veces, y no me sirve colocar en el objeto: “suprimir si se duplica”, pues, hay valores que si tienen que si se debe repetir (ejemplo: estado de algún producto especifico).
Trabajo con Visual Studio 2005 y SQL. Las consultas son a través de procedimientos almacenados.
Mil gracias.
Mario
Abril 4, 2008 a 5:00 pm
Considero precisamente que al cargar los datos del reporte por SP y en donde uno o varios campos (mas no todos) deben repetirse, es claro que para llenar los espacios vacios de columas, por hablar de registros, en la consulta, se duplicarian campos.
Actulmente administro una web en ASP.NET que trae datos de una BD SQL Server 2000, todo por SP, pero normalmente no trabajo con SP.
jose
Abril 5, 2008 a 12:36 am
Entonces no habria solucion para mi consulta?
Mario
Abril 7, 2008 a 2:32 pm
Soy un novatillo en esto de programar. Trabajo con vb.net y tengo unos resultados en una tabla volcados en un datagrid. Quiero pasar estos datos a un report para imprimir. Explico un poco como lo he confeccionado.-
Sub btn_Imprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Imprimir.Click
‘Configurar un pdf con el filtro y resultados obtenidos
If (dgFiltro.VisibleRowCount > 0) Then
‘Instancio el formulario donde va a cargar el rpt.
Dim formreport As New Formulario_Imprimir
‘Instancio el report que va a contener los datos.
Dim rptfiltro As New Filtro
‘Doy la dirección donde se localiza el rpt
‘y lo asignamos al control crviewer.
Dim ruta As String
ruta = Application.StartupPath.Replace(“bin”, “Reportes\Filtro.rpt”)
formreport.CrystalReportViewer1.ReportSource = ruta
me.CrearConexionBDRPT(rptfiltro)
‘Cargamos el formulario con el report.
formreport.ShowDialog()
Else
MsgBox(“No hay datos para imprimir”, MsgBoxStyle.Information, “Imprimir”)
End If
End Sub
Public Function Crear_Conexion_BD_RPT(ByVal rpt As CrystalDecisions.CrystalReports.Engine.ReportDocument) As Boolean
Dim ConexInfo As ConnectionInfo = New ConnectionInfo
Try
ConexInfo.DatabaseName = “nombre”
ConexInfo.UserID = “user”
ConexInfo.Password = “pass”
ConexInfo.ServerName = “server”
rpt.SetDatabaseLogon(ConexInfo.UserID, ConexInfo.Password, ConexInfo.ServerName, ConexInfo.DatabaseName)
Dim tablas As Tables = rpt.Database.Tables
For Each tabla As CrystalDecisions.CrystalReports.Engine.Table In tablas
ConexInfo.DatabaseName = “nombre”
ConexInfo.UserID = “user”
ConexInfo.Password = “pass”
ConexInfo.ServerName = “server”
rpt.SetDatabaseLogon(ConexInfo.UserID, ConexInfo.Password, ConexInfo.ServerName, ConexInfo.DatabaseName)
Dim tablelogoninfo As New TableLogOnInfo
tablelogoninfo = tabla.LogOnInfo
tablelogoninfo.ConnectionInfo = ConexInfo
tabla.ApplyLogOnInfo(tablelogoninfo)
Next
Return True
Catch ex As Exception
Dim s As String = ex.Message
Return False
End Try
End Function
El caso es que antes de cargar el reporte me pide la password para acceder a la base de datos. Que necesito?. Pues aunque le paso la conexion, la ignora o la pierde. Qué estoy haciendo mal?.
Veronica
Abril 17, 2008 a 7:51 am
Ya lo he resuelto… si antes os escribo… La solución ha sido:
Private Sub btn_Imprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Imprimir.Click
‘Configurar un pdf con el filtro y resultados obtenidos
If (dgFiltro.VisibleRowCount > 0) Then
‘Instancio el formulario donde va a cargar el rpt.
Dim formreport As New Formulario_Imprimir
‘Instancio el report que va a contener los datos.
Dim rptfiltro As New Filtro
formreport.ShowDialog()
Else
MsgBox(“No hay datos para imprimir”, MsgBoxStyle.Information, “Imprimir”)
End If
End Sub
y en la clase del formulario que contiene el crystalreportviewer
he puesto:
Public Sub New()
MyBase.New()
‘El Diseñador de Windows Forms requiere esta llamada.
InitializeComponent()
‘Agregar cualquier inicialización después de la llamada a InitializeComponent()
Dim oRpt As New CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim ruta As String
ruta = Application.StartupPath.Replace(“bin”, “Reportes\Filtro.rpt”)
‘Dim filtroform As New FiltroForm
oRpt.Load(ruta)
Me.Crear_conexion_ bd_rpt(oRpt) (sin modificar, la anterior)
CrystalReportViewer1.ReportSource = oRpt
End Sub
Veronica
Abril 17, 2008 a 8:50 am
Cuando hago un reporte con graficos, el cristal me pone las leyendas automaticas, no puedo editarlas?
sandra carbajal
Mayo 19, 2008 a 7:59 pm
Hola, estoy haciendo un reporte que utiliza un subreporte, este es el codigo que utilizo:
Dim RptPrincipalDoc As New ReportDocument ‘principal
Dim subRpt As SubreportObject
Dim subRptDoc As New ReportDocument
‘para imprimir
RptPrincipalDoc.PrintOptions.PaperOrientation = PaperOrientation.Portrait
RptPrincipalDoc.PrintOptions.PaperSize = PaperSize.PaperLetter
‘report principal
RptPrincipalDoc.Load(Server.MapPath(“.\reports\rGrafics_pc.rpt”))
arrayLRep = objReporte.getObjGraficsPE(sError) ‘datos
RptPrincipalDoc.SetDataSource(arrayLRep)
’subreport
subRpt = CType(RptPrincipalDoc.ReportDefinition.ReportObjects(“rGrafics_pc_encabezado”), SubreportObject)
subRptDoc = RptPrincipalDoc.OpenSubreport(subRpt.SubreportName)
arrayLSubRep = objReporte.getObjGraficsPE(sError) ‘datos
subRptDoc.SetDataSource(arrayLSubRep)
subRptDoc.OpenSubreport(subRpt.SubreportName)
Me da un error en esta linea:
subRpt = CType(RptPrincipalDoc.ReportDefinition.ReportObjects(“rGrafics_pc_encabezado”), SubreportObject)
que dice que el indice rGrafics_pc_encabezado esta fuera de lugar, ese es el nombre del subreport.
Alguien puede guiarme o recomendarme otra forma de hacer esto por fa!!!
sandra carbajal
Mayo 19, 2008 a 8:17 pm
Hola que tal, estoy tratando de ejecutar un crystall report en Visual C#, por medio de un dataSet pero, al momento de quererlo ejecutar me aparece una ventana pidiendo nombre de la base de datos, del servidor y contraseña, AYUDA POR FAVOR!!
Helen
Mayo 29, 2008 a 6:33 pm
Hola que tal grupo, tengo un problema, tengo un sistema desarrollado en VB6, y antes utilizaba CR 8 y ahora utiliza CR 9, pero lo que sucede es que desde que tenia la version CR 8 hay un reporte que en ocasiones abre sin problemas y en otras ocasiones no abre, nose que pueda estar pasando, si alguien tiene conocimiento de que puede estar sucediendo, les agradeceria mucho.
Eric
Mayo 31, 2008 a 5:11 pm
Estoy trabajando en un proyecto WEB en el que utilizo un reportviewer y yo indico el nombre del reporte que necesito. Pero estos estan dependen del resultado de un store procedure.
El problema es que cuando el resultado de la consulta no tiene registros el crystal lo que saca es un error.
Dim myReport As New ReportClass
myReport.FileName = “myreport.rpt”
myReport.ResourceName = “myreport.rtp”
myReport.DataSourceConnections(0).SetConnection(ds,ic,True)
setParameter(myArrayList) ‘Cargar parametros
me.crvReporte.ReportSource = myReport
Rodolfo
Junio 20, 2008 a 9:04 pm
queria ver si me podrias ayudar
estoy haciendo un proyecto con visual basic.net 2003 y access 2003
pero a la hora de hacer mis reportes en crystal report
no puedo me marca error en la sentencia de la consulta
y pues nose como hacer un parametro en visual o access para que
me de mi reporte de factura
te lo agradeceria mucho
karla
Julio 11, 2008 a 7:11 pm
necesito ayuda tengo un proyecto en vb 6.0 e imprimo los reportes en crystal 11 el sistema se ejecuta bien en mi maquina pero cuando lo empaqueto para instalarlo en el cliente no me emite los reportes sale un erros “invalid TLV record” he revisado todo y parece que es un problema de las dll las desregistre y la registre nuevamente para evitar error pero igual que debo hacer alguien me puede ayudar?
Pedro Duran
Julio 16, 2008 a 8:16 pm
Necesito ayuda con un reporte en crystal reports como componente de vb.net y SQL server, lo q sucede es q yo necesito montar un reporte para una aplicación de evaluación, para distintas instituciones y el problema q se me presenta es el siguiente q no sé cómo manejar o controlar la información q estoy tomado por q en realidad no sé cómo montarlas en el mismo por q no se a cuál de las instituciones se le mostrara la información de cada estudiante q hace parte de ella y ese el problema q tengo si alguien me puede ayudar se lo agradecería
Estos son mis correos:
jaider.lopezm@misena.edu.co
jaider.lopez@comunidad.sena.edu.co
Mis agradecimiento por lo q puedan hacer por mi
jaider
Julio 19, 2008 a 2:54 pm
Disculpen señores serán q me pueden hacer el favor de ayudar con un problemita q se me presenta a la hora de utilizar formulas en crystal reports como componente de vb.net2005.
Mire lo q sucede es lo siguiente yo creo una formula para controlar los informes q quiero mostrar. Bien el lo hace, pero el problema se produce cuando ingreso un dato erróneo, el me coloca el reporte en blanco y no me toma la condición donde yo comparo los datos de entrada con los de la base de datos y no me toma esta condición si me puede ayudar se lo agradecería
Miren aquí genero la formula como tal. para q me pueda mostrar las instituciones q correspondan al código q digiten en el txtContraseña no sé si hay algo malo con la formula o qué, pero en si me resulta.
Public Class Form1
Public Shared formula As String
Public Shared selectFormula As String
Public Shared info As New CrystalReport2
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
info.RecordSelectionFormula = ” {Instituciones.id_Institucion} = ‘” & frmUsario.txtContraseña.Text & “‘”
Dim sqlConn As SqlConnection
Dim sqlinstitucion As SqlDataAdapter
Dim sqlestudiante As SqlDataAdapter
Dim sqlresultado As SqlDataAdapter
Dim dsPc As New depronto
Dim strconn As String = “Server=ADSI13\ADSI13;Initial catalog=Integracion SENA;Integrated Security = SSPI”
Dim StrCommEst As String = “Select * From estudiantes”
Dim strCommRes As String = “Select * From resultado”
Dim strCommInst As String = “Select * From instituciones”
selectFormula = info.RecordSelectionFormula
info.DataDefinition.RecordSelectionFormula = selectFormula
Try
‘Crear los DataAdapters
sqlConn = New SqlConnection(strconn)
sqlestudiante = New SqlDataAdapter(StrCommEst, sqlConn)
sqlresultado = New SqlDataAdapter(strCommRes, sqlConn)
sqlinstitucion = New SqlDataAdapter(strCommInst, sqlConn)
‘Poblar las tablas del dataset desde los dataAdaperts
sqlestudiante.Fill(dsPc, “estudiantes”)
sqlresultado.Fill(dsPc, “resultado”)
sqlinstitucion.Fill(dsPc, “instituciones”)
‘Poblar el informe con el dataSet y mostrarloinfo &
info.SetDataSource(dsPc)
CrystalReportViewer1.ReportSource = info
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
Pero el error q se me presenta es en el código del botón aceptar cuando ha digitado un código q no aprace en la base de datos él me muestra el reporte e blanco.
aquí le dejo el código del otro formulario para q lo revises y me digas si es ahí donde tengo el error o es donde tengo la formula.
Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
Dim conexion As String = (“Server=ADSI13\ADSI13;” & “Database=Integracion SENA;integrated security = SSPI”)
Try
Dim oconexion As New SqlConnection(conexion)
oconexion.Open()
If Form1.info.DataDefinition.RecordSelectionFormula = Form1.selectFormula Then
‘Form1.cargar()
Form1.Show()
‘Form1.Close()
Else
MsgBox(“USUARIO NO ENCONTRADO”, MsgBoxstyle.Critical, “Prueba”)
Me.txtContraseña.Focus()
Me.txtContraseña.Clear()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Agradesco lo q puedan hacer por mi.
Espero su respuesta
Gracias por todo
Estos son mis correos:
jaider.lopezm@misena.edu.co
jaider.lopez@comunidad.sena.edu.co
jaider
Agosto 22, 2008 a 12:17 am
hola…estoy haciendo un reporte de todos los servicios del dia, y no me muestran algunos campos con sus datos…pero cuando no tiene ningun datos el cristal me sale completo las columnas..pero sin datos
Naim
Septiembre 8, 2008 a 5:49 pm
TENGO UN REPORTE DE UNA TABLA FOXPRO 2.6 (DBF) Y FILTRO POR UN CAMPO QUE EN VARIOS REGISTROS ESTA VACIO COMO HAGO PARA QUE ME MUESTRE SOLO LOS QUE ESTAN LLENOS
NOEL
Septiembre 15, 2008 a 8:22 pm
ya que cuando utilizo el filtro el reporte sale en bvlanco
NOEL
Septiembre 15, 2008 a 8:23 pm
alguien me puede dar el codigo que necesito para conectar visual basic 6.0 con crystal reports 11 utilizando una base de datos de acces 2003 es urgente porfavor alquien que sepa de esto porfavor mandemelo y si me pude explicar lo que hizo en el codigo es urgente
julio
Septiembre 18, 2008 a 10:05 pm
me pueden ayuar a conseguir un form que mande a imprimir reportes filtrando un dato consultado
Alex
Octubre 7, 2008 a 3:55 pm
Al hacer un reporte con Crystal en la seccion detail me repite cada tupla dos veces. En la tabla son unicas, pero el reporte lo duplica.
Tambien necesito tener dos secciones de detalle ya que quiero listar todos los trabajos y luego listar todos los pagos. Si hago dos secciones detail, me intercala las tuplas. Y ademas no se como agregar el titulo para las tuplas del segundo detalle.
Alguien podria ayudarme? Muchas gracias
Florencia
Octubre 29, 2008 a 8:54 pm
Estoy generando una aplicación en visual basic 6.0 y crystal report 8.0 y en un reporte donde estoy generando un par de subreportes con tablas no relacionadas me marca error “File Not Found” no logro entender por que da ese error, me podrían dar una pista sobre esto, muchas gracias por su ayuda y saludos.
José Luis González
Noviembre 13, 2008 a 8:57 pm
Hola como estan? soy nuevo en todo el tema de crystal reports, y en el lugar que trabajo surgio un inconveniente con unos reportes que al actualizar la base de datos, los reportes dejaron de funcionar. Note que la tabla a la que se referia el reporte habia cambiado unos campos y por eso el reporte tiraba errores. Todo esto lo pude hacer sin conexion a la DB, mi problema surgio cuando 3 de los campos era si o si necesario la conexion a la DB para que actualize la tabla y se vean los nuevos campos… el problema es que estoy teniendo muchos inconvenientes a la hora de hacer la conexion con el crystal y la DB (SYBASE), alguien tiene experiencia de como solucionar mi problema?
Desde ya Muchas Gracias!!
Ernesto
Noviembre 18, 2008 a 4:38 pm
Hola a todos
No se si alguno se ha topado con el problema que les comentaré, pero espero que alguien tenga una lección aprendida al respecto:
Resulta que estoy intentando modificar un reporte en Crystal 8 con VB6 pero de un tiempo para aca (incluso desde antes de modificarlo) ya no salia, me marcaba el error “File not found”, estuve debugueando y no encontré nada raro, incluso pense que era porque la consulta la hacía directamente en el código y ahora la puse en una función de SQL, la cual me regresa la misma información, pero el reporte sigue marcando error. Si necesitan más detalle, con gusto les contesto.
Ruth
Noviembre 26, 2008 a 10:36 pm
Buenas tengo una pregunta.Bueno tengo el siguiente problema tengo varios reportes que poseen un solo parametro que es una fecha. Mi Store Procedure que genera el reporte tiene un parametro Datetime. Y desde el Visual studio le envio un parametro Date. El problema radica en que hay veces que cuando enviamos la fecha de parametro este reporte funciona. Pero hay veces que se congela. Y la solucion que encontre para que no se congele es ponerle a mi procedure. Por ejemplo : @fecha = null y despues de ejecutar el procedure me funciona nuevamente. Pero el problema radica que esta solucion es temporal porque nuevamente se me congela a veces y tengo q volver a cambiarle el parametro del store a @fecha solamente.
Miguel
Enero 27, 2009 a 1:58 am
Solucion para File Not Found
Dim CRReporte As CRAXDRT.Report
Dim crAplicacion As New CRAXDRT.Application
Dim oRecordset As New ADODB.Recordset
Dim oSubRecordset As New ADODB.Recordset
Set oSubRecordset = .DataSource(“Select * from Tabla”, Parametro)
Set oRecordset = .DataSource(“Select * from Tabla2″, Parametros)
Set CRReporte = crAplicacion.OpenReport(App.Path & “\” & “Reportes” & “\” & “Nombre_Del_Reporte”, 1)
With CRReporte
.DiscardSavedData .OpenSubreport(“Nombre_del_SubReporte”).Database.SetDataSource oSubRecordset
.Database.SetDataSource oRecordset
.PrinterDuplex = crPRDPSimplex
end with
With frmReporte.CRReporte
.ReportSource = CRReporte
.ViewReport
End With
Espero les sirva
Sa!
Febrero 10, 2009 a 12:30 pm
Hola, necesito ayuda tengo una base de datos en acces 2007 que esta en una carpeta compartida y tengo una aplicacion en vb 6 que reportea en crystal reports XI, para que la base de datos no pueda ser accedida por cualquier persona le puse contraseña el problema es que al tratar de abrir un reporte que contiene campos de dos tablas me envia un mensaje de error que dice logon failed details[database vendor code: -1905], la conexion de CR XI con la bd la hago a traves de ODBC y cuando abro informes que solo utilizan una tabla funciona perfectamente
JOSE MANUEL
Febrero 10, 2009 a 7:03 pm
disculpa Jose pero tengo un prblema con un crystal report.
Lo que pasa es que cargo los datos utlizando conjunto de datos .XSD y al parecer todo esta bien. los campos que tengo en detalle los arrastro directamente de los campos de las tablas el problema es que al visualizarlo imprime dos veces cada registro por ejemplo si tengo en la base de datos:
Clave Usuario
1 Luis
2 Victor
3 Julio
me muestra lo siguiente:
Clave Usuario
1 Luis
2 Victor
3 Julio
1 Luis
2 Victor
3 Julio
Y no se a que se deba que siempre me imprima dos veces todos los registros. espero que puedas ayudarme. gracias de antemano.
Julio Ota
Mayo 8, 2009 a 11:25 pm
Hola, buenas noches.
Estoy trabajando con Visual Studio 2005, aqui en la empresa se desarrollo un sistema para el manejo de bodegas, nada mas que las personas que lo desarrollaron ya no estan en la empresa y yo lo estoy revisando para hacerle unas adecuaciones, el problema que tengo es que al visualizar los reportes en Crystal Reports Viewer, el verlos no es el problema, es al imprimirlos, le doy click en el icono de imprimir reporte y no pasa nada simplemente no imprime nada, y no da señal de que lo este haciendo, alguien sabria la causa de este detalle. se los agradeceria mucho la ayuda. ya tengo rato buscandole y no le doy al clavo.
Gracias de antemando por el apoyo.
Hermas Ortiz
Agosto 11, 2009 a 2:59 am
Si tu reporte carga sin problemas, se visualiza y le das al boton imprimir y no imprime, realmente se consideraria que el problema no lo tiene Crystal Report ya que de haber algun problema con el reporte, ni siquiera se cargaria o saldria en blanco. Pero si el reporte se viaualiza bien, eso indica que todo funciona bien, relacion de las tablas, datos de formato correcto, formula de reporte sin problemas, etc.
Tu problema debe estar en el vinculo de la impresora con el PC, verifique bien a que impresora estas apuntando, en caso de ser una impresora en Red, haz incluso la prueba de imprimir una pagina de prueba, imprime algo desde Windows, intenta imprimir desde otro equipo, confirma que tu usuario tiene los permisos para imprimir en esa impresora.
Verifica si el programa desarrollado en la empresa tiene configurada esa impresora, tambien intenta imprimir un reporte distinto al actual. Entra en Crystal Report, abre el reporte y hazle una Verificación de Base de Datos al reporte para comprobar si nadie ha hecho cambios a nivel de Base de Datos y el reporte deba actualizarse, pero el perfil del problema apunta más a ser problema de impresora a no ser que puedas imprimir cualquier cosa menos el reporte.
saludos.
jose
Agosto 11, 2009 a 1:09 pm
Hola Jose mira tengo un problema con Crystal Report pero ya es en el diseño tengo ya un rato con este problema y la verdad ya no se ni que hacer.
¿Se puede repetir en la siguiente pagina la parte del detalle?
¿Tengo un subreporte y quisiera saver si se puede sacar la sumatoria de la primera hoja, y luego la sumatoria de la hoja 2, pero que esa sumatoria me aparezca en la hoja 1 y un total de la sumatoria de las dos hojas
Zuri
Agosto 18, 2009 a 5:34 pm
No comprendo mucho lo de repetir en la segunda pagina, cuando los datos exceden la 1era hoja, se crea la 2da.. etc, para repetir exactamente una informacion completa en una 2da hoja, etc, ya seria colocar los campos no en el body details, sino en la sección de cabecero del reporte para que dicha informacion aparezca en cada continuacion de hoja, pero eso no permitira multiples registros sino uno solo, ya que es la seccion Detalle la que permite varios registros.
Sobre sumar o relacionar dos campos de dos reportes diferentes (sea un subreporte o no) realmente creo que esto no es posible. Prueba boton derecho en el subreporte, Change Subreport Links, pero esto solo te permitira meter un campo de Report1 a Report2 (siendo report2 el subreporte de report1), pero el dato sea un Sum(), Count(), un dato Formula con el Total, si aparecera en datos o Formulas del reprot2 pero perdera el vinculo con su tabla, por lo que no cargara nada y Crystal pedira un dato inicial para evaluarlo en la hoja.
El que crees una SQL en la BD que haga esta sumatoria no creo que tampoco te sirva, eso dependeria de si lograses crear la SQL que genere tanto una sumatoria como de la otra y puedas colocar el campoSumatoria de la SQL en el reporte agregandolo al reporte como cualquier otra tabla como normalmente se trabaja.
Esto es dificil (lo de trabajar dos datos de dos reportes diferentes) porque aunque uno es subreporte del otro, realmente Crystal no los está relacionando, no se ven las tablas de uno o del otro en la relacion de tablas, ni formulas, etc, estan juntos pero no revueltos por lo que vincular un proceso de datos de otro es dificil, en mi caso no me ha pasado y de suceder, tendria que ingeniarmelas como sea para conseguir solventarlo.
No creo que seas el primero al que se le presente esto, por lo que ya seria buscar en internet y ver quien ha solucionado esta relacion entre reportes.
jose
Agosto 18, 2009 a 7:06 pm
La verdad ya investigue un buen y no encuentro nada, lo que pasa es que almomento de mandar imprimir en el detalle me sale la tabla que le dibuje al momento de pasar a la 2da hoja me sigue imprimiendo los registros pero la tabla que yo dibuje ya no sale, por eso mi pregunta de que si se puede repetir la parte de detalle.
Zuri
Agosto 18, 2009 a 9:04 pm
No entiendo, me confundes cuando dices lo de “dibujar” la tabla.
Lo unico que recuerdo referente a repetirse la informacion en otra hoja era porque los campos eran demasiados o alguno de ellos era un campo que alargue mucho y el formato de hoja del reporte era Carta, por lo que la informacion completa aparecia nuevamente en otra hoja porque era un subreporte o era un query, es decir, era un grupo de datos completos que o pasan todos a la siguiente hoja o no, pero no era como el caso de quedar los datos en la 1era hoja y pasarse alguno (alguno que otro los ultimos normalmente) a la siguiente hoja, algo verdaderamente estupido pero ocasionaba dicho problema, y no sé si sea tu caso. En caso de tener informacion agrupada (es decir, creaste grupos en Crystal para que agruge la información) verifica esto.
jose
Agosto 19, 2009 a 2:11 am
No no uso grupos, creo que no me se explicar verdad, mira tengo un reporte pero en la parte del detalle tengo un subreporte, este tiene que ir en una tabla bueno almomento de que se imprima debe de aparecer en una tabla si yo formo la tabla en el detalle, suando se llena automaticamente pasa a la otro mi problema es cuando pasa a la siguiente hoja ya no aparece la tabla, aparecen solo los registros, la tabla aparece nadamas en la primera hoja entonces mi pregunta es que si tu sabes alguna forma para que aparezca en la siguiente hoja igual.
Zuri
Agosto 19, 2009 a 3:43 pm
Necesariamente el subreporte debe estar en el Details?
Mueve el subreporte a otra sección del reporte, la sección debajo de Detalle por ejemplo.
Lo de “tabla” confundia en vista de que uno piensa primeramente en “tabla” es a las tablas de la BD, pero tu al decir tabla es como un marco donde contienes o se mostraran los registros dentro de el.
Un subreporte predeterminadamente aparece en un recuadro, que uno le deja o le quita dichos bordes, pero en tu caso, indicas que haz “dibujado” una tabla donde estara el subreporte bien sea con lineas, rectangulos o algun objeto parecido donde contendras la información, es lo que se entiende.
No sé si esa tabla la haces en el Reporte principal o dentro del subreporte, deberia estar presente es en el subreporte. Es todo lo que podria opinar referente al caso.
jose
Agosto 19, 2009 a 4:35 pm
Estimado José
Veo que tienes una paciencia infinita y voy a tratar de no abusar de ella.
Estoy trabajando en VB con Sql Server y tengo un reporte en Crystal que debe salir en Original y Duplicado en la misma hoja (mitad y mitad)
El problema es que cada una de esas mitades tiene un subreporte inluido. Cuando quiero agregar el mismo subreporte en la segunda mitad me lo agrega como subreporte.rpt – 01
Como el dataset está agregado en la propiedad subreporte.database.tables.setDataSourse, el segundo subreporte me sale en blanco.
Qué es lo que debo hacer o qué es lo que estoy haciendo mal? Desde ya, mil gracias
Luis
luis
Septiembre 24, 2009 a 7:37 pm
No se cual version de VB.NET usas y cual de CR.
Tu caso es de imprimir una hoja con separacion punteada donde se le entrega a una persona copia y se conserga el original de factura o lo que sea dicha impresion. Y tienes un reporte Maestro-Detalle, donde el subreporte debe ser el detalle (varios items de la factura). Reporte principal un registro de la tabla A, subreporte varios registros de la tabla B.
No es que esta sea la solucion, pero como otra opcion, prueba tener un reporte Padre sin datos. En la 1era mitad coloca (no me refiero a tu subreporte sino a los datos maestro) un subreporte con los datos Maestro y ese mismo subreporte tendra a su subreporte dentro. Y vuelve a poner esto en la 2da mitad de la hoja (el reporte contenedor en blanco).
Otro manejo bien valido es crear una SQL que arme o se traiga los datos del subreporte, y llamar en tu subreporte la SQL.
Perdon por darte estas sugerencias pero en estos momentos mi sistema anfitrion o host es un Ubuntu Linux, y no puedo en estos momentos hacer unas pruebas para opinar en base a ello. Pero espero que te den una idea de como atacar el fallo.
saludos.
jose
Septiembre 24, 2009 a 8:00 pm
Hola,
Tengo un problema con el Crystal Reports.
1. Utilizo Visual Studio 2008 / Crystal Reports 2008 / SQL Server 2000
2. Tengo un reporte que utiliza un procedimiento almacenado que extra datos y una de las comumas es una fecha.
3. El reporte funciona a la perfección en mi máquina.
4. El reporte funciona e el servidor a excepción del problema. NO MUESTRA LOS DATOS FECHA. Es decir, muestra toda la información, excepto las fechas.
5. El reporte extrae datos utilizando un SqlDataSource y no funciona.
6. Cuando dejo de utilizar el SqlDataSource y pongo el reporte en el servidor, entonces al antrar al reporte Crystal Reports 2008 me solicita datos para los párametros del procedimiento almacendo, que son dos fechas, utilizo los controles de Crystal Reports y el reporte funciona a la perfección.
¿Qué debo de hacer para que el reporte funcione correctamente utilizando SqlDataSource?
Saludos Cordiales y muchas gracias de antemano
Javier Garcia
Octubre 9, 2009 a 8:36 pm