Problema al generar CrystalReport y Microsoft SQL Server Compact 3.5
-
sábado, 03 de marzo de 2012 0:10
Hola amigos, espero puedan ayudarme, he estado leyendo mucho sobre este tema pero aun no encuentro la solución. El problema es que al tratar de visualizar mi CR me solicita un usuario y password, pero mi base de datos es una .sdf y pues la trabajo directamente desde visual Studio 2010. he visto en algunos foros que solucionan este problema con la siguiente linea de codigo:
cryRpt.SetDatabaseLogon("user", "pass");
pero mi BD no tiene autenticación así que no tengo idea de que mas hacer. genero el crystal report .rpt desde una dataset tipado, no me arroja ningún error pero me solicita el user y pass, espero me puedan ayudar.
Aquí un fragmento de como estoy llamando al Crystal ( uso el Net Framework 4.0 para que el Crystal Report Viewer se pueda ver en el Cuadro de herramientas )
ReportDocument cryRpt = new ReportDocument(); ryRpt.Load("C:/Users/Proyectos/Documents/Visual Studio 2010/Projects/OBRAS/OBRAS/Reportegastos.rpt"); //cryRpt.SetDatabaseLogon("", ""); crystalReportViewer1.ReportSource = cryRpt; crystalReportViewer1.Refresh();
este código va dentro de un evento clic de un botón. espero puedan echarme una mano.. espero sus respuestas desde ya muchas gracias
Todas las respuestas
-
sábado, 03 de marzo de 2012 1:12
Realiza algo como esto
CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); string serverName1 = "Server1"; string userID = "MyUserID"; string password = "MyPassword"; report.Load(@"C:\My Crystal Reports\Report Name.rpt"); //Set Database Logon to main report foreach (CrystalDecisions.Shared.IConnectionInfo connection in report.DataSourceConnections) { if (connection.ServerName == serverName1) { connection.SetLogon(userID, password); } } //Set Database Logon to subreport foreach (CrystalDecisions.CrystalReports.Engine.ReportDocument subreport in report.Subreports) { foreach (CrystalDecisions.Shared.IConnectionInfo connection in subreport.DataSourceConnections) { if (connection.ServerName == serverName1) { connection.SetLogon(userID, password); } } }Controlar Autentificación Crystal Reports
Angel R. Jimenez G.
Software Development
Santo Domingo
Republica Dominicana
Blog
-
sábado, 03 de marzo de 2012 1:22Moderador
no conectes directamente el reporte a la base de datos, menos aun Crystal es para problemas
carga un dataset tipado con los datos de una query que quieras representar en el reprote
y asignma estos al .rpt es la forma en que menos problemas tendras
Creación de Reportes con Crystal Reports en Visual Studio 2005/2008
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
domingo, 04 de marzo de 2012 20:45
Hola amigos gracias por responder tan pronto... pero haber creo que no me deje entender bien... esto es lo que he hecho:
- Primero: cree mi Base de Datos desde el Visual Estudio profesional 2010 con Microsoft SQL Server Compact 3.5
- Segundo: cree un dataset con la consulta que quiero mostrar
- Tercero: cree mi reporte.rpt con su diseñador y a este lo enlace con mi dataset
- Cuarto: estoy llamando a este reporte desde un CrystalReportViewer como lo indicaba mas arriba pero es ahy donde me pide el usuario y pass
La verdad es que recién estoy empezando a usar crystal report ojala me puedan hechar la mano, muchas gracias de antemano
-
lunes, 05 de marzo de 2012 2:28Moderador
pero entonces no estas conectando el reporte al dataset tipado, porque si le asignas en el SetDataSource()
no deberia pedir usuario y password
de casualidad antes habias conectado el reporte rpt a una db directamente y despues lo cambiaste? porque puede que queda la info de conexion
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
lunes, 05 de marzo de 2012 14:18
Hola Leandro, gracias por tu interés... nunca conecte el rpt a un bd directamente... lo conecte desde el asistente como indicas en el link http://www.codeproject.com/Articles/12694/Creating-Crystal-Reports-using-C-with-Datasets
la cuestión es el como lo llamo, creo que no lo tengo muy claro, si pudieras darme un ejemplo de como hacerlo te estaría agradecido
Saludos y gracias
-
lunes, 05 de marzo de 2012 15:25
Hola muchachos.. ya logre que me deje de pedir el user y pass: lo conseguí de la siguiente manera
Para que se ejecute de manera correcta solo tenemos que configurar el App.Config, agregando esta línea.
<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup> //Y comentando la línea <!–<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>–>
Pero ahora tengo otro problema :S, el reporte solo me muestra las columnas y no los datos.. por favor si alguien me da un ejemplo de como generarlo bien.. muchas gracias
-
martes, 06 de marzo de 2012 21:18
Hola amigos alguien me puede hechar la mano????
Saludos
-
viernes, 09 de marzo de 2012 14:01Dale gente alguien que me ayude....
-
sábado, 10 de marzo de 2012 23:09
Tengo el mismo problema que tu, yo uso visual studio 2010.
Mi BBDD es access 2010 (requisitos del cliente) y no tengo problema para hacer reports si los conecto directamente a la BBDD pero cuando quiero usar cualquier dataset, al principio me pedia usuario y contraseña, pero hice el cambio que decias y ya no me lo pide, pero exactamente igual que a ti solo me muestra el nombre de los campos pero no los datos.
EStoy pegandome con ello, si encuentro la solución la pondre.
Por cierto gracias por la solución a lo de usuario y contraseña :)
Half.
-
martes, 13 de marzo de 2012 16:40
Lo consegui!!!!
Esto es lo que yo he usado en el evento click del boton que muestra el listado.
Dim listado As New list_altasporaño()
Dim listinfo As SummaryInfo
Dim myreport As ReportDocument
myreport = New list_altasporaño()
listinfo = listado.SummaryInfo
form_listados.Socios1TableAdapter1.Fillañoalta(form_listados.Socios_finalDataSet.socios1, año)
myreport.Load("N:\desarrollo gsp\GSP-TdS\GSP-TdS\list_altasporaño.rpt")
myreport.SetDataSource(CType(form_listados.Socios_finalDataSet.socios1, DataTable))
form_listados.CrystalReportViewer1.ReportSource = myreport
form_listados.CrystalReportViewer1.RefreshReport()
form_listados.CrystalReportViewer1.Zoom(2)Con eso he conseguido que me muestre los datos.
Espero que te sirva de ayuda.
Half.
-
miércoles, 14 de marzo de 2012 23:09
Que bueno que lo hayas solucionado... pero yo aun no puedo con mi problema, interpretando tu código he tratado de adaptar el mio, estoy utilizando Visual C# y no se como asignar el SetDataSource. si encuentras algo hechame la mano que te estaré muy agradecido
Saludos

