Bases de Datos > Crystal Reports
Datos Especificos
(1/1)
karolarivero:
Hola a todos, ya es hora que pida ayuda, estoy tratando de hacer un reporte que muestre datos concretos, es decir, se hace una busqueda de lugares de almacenamientos no conformes se selecciona uno de los lugares y se manda a imprimir toda la informacion relacionada a ese lugar la cual proviene de varias tablas que se encuentran relacionadas en la BD,la informacion deberia presentarse asi:
Fecha de Evaluacion: FechaE.Evaluacion
Producto declarado no conforme: NombreS.Silo “,” NombreT.Trigo
Variables Resultado Valor maximo Valor Minimo
nombreV.variables valor.Evaluacion max.relacionTE min.relacionTE
(Se debe presentar un listado de las variables…)
Bueno, he intentado hacerlo pero no me sale, porque en vez de salir una sola fecha me aparecen todas las fechas, todos los nombres de los silos…será que alguien me puede dar una orientación, una guía, para poder hacer este reporte que muestre solo datos específicos.
Soy nueva usando CrystalReport …
Saludos, gracias por su atención
viHack:
El filtrado es mas facil hacerlo desde codigo, en que lenguaje estas programando?
Me parece que lo mas facil es filtrar antes, y enviar solo los datos que necesitas al reporte.
Saludos
karolarivero:
Hola
Estoy programando en Visual Basic.net 2003.
Ahorita estoy probando con esto:
1.- diseño mi reporte: busco las tablas que voy a necesitar, agrego al informe los campos que quiero que se muestren, por ejemplo necesito mostrar una fecha de evaluacion que esta asociada a un nombre de deposito no conforme, ademas necesito mostrar lo que hay en ese deposito...entonces pongo Evaluacion.FechaE y asi sucesivamente segun lo que tenga que mostrar, no le hago mas nada, hasta ahorita esto es lo unico que se hacer en CR :(
2.- luego utilizo un formulario para visualizar el reporte (agrego el CrystalReportViewer...) y en el editor de codigo coloco lo siguiente:
--- Código: Text --- 'ReporteNcRecepcion: Nombre de la clase donde muestro el reporte Public Sub ReporteNcRecepcion() Dim CodigoE As Date = #12/3/2006# Dim silo As String = "Silo Nº 01" Dim trigo As String = "HRW" InitializeComponent() Dim Reporte As New CrystalReport1() CrystalReportViewer1.ReportSource = Reporte CrystalReportViewer1.SelectionFormula = "Evaluacion.FechaE=" + CodigoE + "and Silo.NombreS = " + silo + "AND Trigo.NombreT = " + trigo End Sub
Luego en otro formulario coloco lo siguiente, para mostrar el reporte:
--- Código: Text --- Private Sub boton1_Click(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles Boton1.Click Dim aviso As New ReporteNcRecepcion() Dim a As New ReporteNcRecepcion() a.ReporteNcRecepcion() aviso.ShowDialog() End Sub
y sabes que? no pasa nada, no muestra nada, nada de nada...
para ir descartando que puede ser coloque en las propiedades del CrystalReportViewer1.ReportSource, la ruta donde esta el reporte y lo muestra pero trae todas las fechas, todos los nombres de los lugares de almacenamiento... :blink: y hasta alli llegue, alguien me puede explicar que estoy haciendo mal o que estoy dejando de hacer?
gracias y saludos...
viHack:
Prueba de esta forma
--- Código: Text --- Imports System.Data.SqlClientImports System.Data.OleDb Public Sub ReporteNcRecepcion() 'Primero que Nada tendrias que tener tu cadena de conexion a la base de datos, asumo que en eso no tienes problema, si me equivoco avisame. Dim sqlConn As New SqlConnection("AQUI IRIA LA CADENA DE CONEXION A TU BASE DE DATOS") 'Crea una variable de tipo Report, y luego seteala a tu reporte. Dim Reporte as New CrystalReport1 'Crea un SqlDataAdapter y un Dataset para cargar los datos que deseamos mostrar, ya filtrados por medio de una consulta SELECT. Dim dsDatos As DataSet Dim daTabla As SqlDataAdapter daTabla = New SqlDataAdapter("AQUI IRIA TU SELECT O CONSULTA", sqlConn) dsDatos = New DataSet("CualquierNombre") 'Llenando el Dataset daTabla.Fill(dsDatos, "Command") 'El nombre tiene que coincidir con el nombre de la consulta del reporte 'No se que sistema de bases de datos uses, yo uso SQL SERVER 2005, si este fuera tu caso, usa esto para asignar la conexion a tu reporte. Dim tbCurrent As CrystalDecisions.CrystalReports.Engine.Table Dim tliCurrent As CrystalDecisions.Shared.TableLogOnInfo For Each tbCurrent In Report.Database.Tables tliCurrent = tbCurrent.LogOnInfo With tliCurrent.ConnectionInfo .ServerName = ".\SQLExpress" 'Puese escribir ".\INSTANCIA" si el nombre de tu instancia no es la que da sqlserver 2005 por default .UserID = "sa" 'O el usuario que uses .Password = "MyPass" .DatabaseName = "MyDataBase" End With tbCurrent.ApplyLogOnInfo(tliCurrent) Next tbCurrent 'Luego asignas el DataSet como DataSource de tu reporte Reporte.SetDataSource(dsDatos) Luego asignas el reporte a tu crviewer CrystalReportViewer1.ReportSource = Report CrystalReportViewer1.Zoom((85)) CrystalReportViewer1.Show()
Al diseñar tu reporte tal vez tengas que agrupar por Silo, no estoy muy seguro ya que no entiendo con exactitud el manejo de tus datos.
Recuerda que el filtrado lo tendrias que hacer con SQL, o con recordset desconectados, si tienes problemas en esto tal vez pueda ayudarte.
Esto me ha funcionado a mi, espero que de igual forma de sirva a ti, cualquier duda me cuentas.
Saludos
Navegación
Ir a la versión completa