Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/04/2009, 10:17
Avatar de Dradi7
Dradi7
 
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar parametros a Reporte de Crystal report atravez de objetos de formula

Tienes 2 Formas de Hacerlo:

a traves de parametros q maneja el CrystalReport

Ejm de como usar parametros en el Crystal Report

Código vb:
Ver original
  1. Imports CrystalDecisions.Shared
  2.  
  3. Dim Rep As New CryRepPrueba           ' Instanciando el Crystal Report Creado
  4. Dim Params As New ParameterValues       ' Creando una Coleccion de Parametros
  5. Dim Par As New ParameterDiscreteValue   ' Parametro Discreto q viene en el proc. alm. y se muestra en el Crystal Report
  6.  
  7. Params.Clear()              ' Limpiando la Coleccion de Datos
  8. Par.Value = textbox1.text  ' Asignando un Valor Discreto a nuestra variable jalando el valor de una caja de texto de tu formulario
  9. Params.Add(Par)             ' Agregando el param discreto a la coleccion de parametros
  10. Rep.DataDefinition.ParameterFields("@PARAM1").ApplyCurrentValues(Params)   ' Aplicando los valores de nuestra coleccion a los parametros del crystal report
  11.  
  12. Params.Clear()
  13. Par.Value = textbox2.text
  14. Params.Add(Par)
  15. Rep.DataDefinition.ParameterFields("@PARAM2").ApplyCurrentValues(Params)
  16.  
  17. Crv_PruebaReportSource = Rep ' Mostrando el Reporte

Este Codigo Puede ir en el Load o primero rellenas las cajas de tu formulario presionas un boton y te mostrara el reporte

a traves de SetDataSource

en el ejemplo anterior q te mostre a traves de parametros opcionales sale correctamente el problema vendria q si pulsare el botona actualizar del crystalreportviewer me pediria de nuevo los parametros para esto usa esta forma

Código vb:
Ver original
  1. Dim Rep As New RepPrueba   ' Sacando el Reporte
  2. Dim Dt as new DataTable       ' Creando el DataTable
  3.  
  4. ' Aqui tu codigo para llenar el datatable es decir ejecutas el procedimiento almacenado
  5. 'enviandole los parametros a dicho procedimiento y con un adaptador rellenas el datatable
  6. ' asi todo el contenido de la consulta se rellena en el datatable y se lo pasa al reporte
  7. ' asi q cuando pongas actualizar en el crustalreportviewer ya no te pediria de nuevo los parametros
  8. 'Ojo q el procedimiento q rellena el datatable debe ser = al del reporte
  9.  
  10. Rep.setDataSource(Dt)
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones