Foros del Web » Programación para mayores de 30 ;) » .NET »

Crystal Report Question!?

Estas en el tema de Crystal Report Question!? en el foro de .NET en Foros del Web. Hola tengo una aplicacion en VB 2008 le agrege Crystal Report, lo que necesito es lo siguente. En una bd Access tengo como primary key ...
  #1 (permalink)  
Antiguo 13/11/2009, 09:11
Avatar de molinojopiento  
Fecha de Ingreso: septiembre-2004
Mensajes: 128
Antigüedad: 19 años, 8 meses
Puntos: 1
Crystal Report Question!?

Hola tengo una aplicacion en VB 2008 le agrege Crystal Report, lo que necesito es lo siguente.

En una bd Access tengo como primary key el codigo y segun el "codigo" puedo ver los datos del cliente, como el nombre, ubicacion etc...Hay un menu que se llama buscar, cuando el usuario presiona buscar debe ingresar un "codigo" para ver los datos, lo que necesito es que cuando presione el menu "Reporte" me diga, ingrese el "codigo" y me muestre los datos solamente de ese codigo, porque ahora me los muestra todos. He investigado y he probado con formulas, parametros etc...pero no puedo implementarlos. Gracias
__________________
:-D algun dia sere el mejor....... :aplauso:
  #2 (permalink)  
Antiguo 13/11/2009, 10:00
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Crystal Report Question!?

Hola, Desde access debes construir la consulta de cliente agregando como parámetro el código del cliente, en access creo que es así, en Vista SQL pones lo siguiente:
Código sql:
Ver original
  1. PARAMETERS codigo Text ( 255 );
  2. SELECT Clientes.IdCliente, Clientes.NombreCompañía
  3. FROM Clientes
  4. WHERE (((Clientes.IdCliente)=[codigo]));
Obviamente los campos de tu tabla e inclusive el nombre de la misma son otros.
Una vez ya tienes esto, realiza el diseño de reporte enlazándolo con esta consulta, luego para que mediante código le asignes ese parámetro puedes usar lo siguiente:
Código vb.net:
Ver original
  1. 'Mostramos un mensaje para que se ingrese el código
  2. Dim codigo As String = InputBox("Ingrese el código del cliente","")
  3. Dim rpt As New ReportDocument()
  4. rpt.Load("C:\mireporte.rpt") 'Reemplazas por la ruta de tu reporte
  5. 'Parámetro para el reporte
  6. 'El primero indica el nombre del parámetro y el segundo el valor
  7. rpt.SetParameterValue("@codigo", codigo)
  8. CrystalReportsViewer1.ReportSource = rpt

Eso sería todo, espero te ayude

PD: En mi blog tengo 2 ejemplos sobre crystal reports con el código fuente incluído, puedes darle una ojeada quizá te ayude más.
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 13/11/2009, 11:49
Avatar de molinojopiento  
Fecha de Ingreso: septiembre-2004
Mensajes: 128
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: Crystal Report Question!?

Vamos probando....bueno lo que no entendi muy bien fue esto:

rpt.SetParameterValue("@codigo", codigo)

La diferencia entre @codigo y codigo?....cual es cual?.





Dim rpt As New ReportDocument() <--- Seria el nombre de mi clase?
__________________
:-D algun dia sere el mejor....... :aplauso:

Última edición por molinojopiento; 13/11/2009 a las 11:56
  #4 (permalink)  
Antiguo 13/11/2009, 13:09
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Crystal Report Question!?

Me olvidé de mencionar pero debes tener el namespace CrystalDecisions.CrystalReports.Engine
ReportDocument es una clase que representa a un reporte. por eso luego debes usar el método load para indicarle el reporte a trabajar.
rpt.Load("C:\mireporte.rpt")

@codigo es el nombre del parámetro que pusiste en la consulta de Access. mientras que código si te das cuenta es la variable que acabo de declarar y la cual recibirá el valor que el usuario ingrese en el inputbox.
O sea @codigo = nombre del parámetro, codigo = valor del parámetro

Cualquier duda me avisas
__________________
Eduardo Peredo
Wigoin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:33.