CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Reportes en vb.net que usen web services
Newtek:
Bueno primero que nada... tienes que haber creado el reporte. Me imagino que ya lo creastes por que tienes la ruta... ahora bien no tienes que poner esto "http: //localhost:1042/WS_Grifo" en lugar de eso... puedes poner solo
--- Citar ---"../WS_Grifo/ReporteMensualFacturaService.asmx"
--- Fin de la cita ---
de esa forma deberia de funcionar.
Por otro lado tienes que crear los paremetro en el Reporte para poder llamarlos luego en el codigo...
Creas los parametros en el reporte en el Menu principal tienes que ir a Crystal Reports-> Field Explorer y luego en el field explorer buscas la opcion Parameter Fields y click derecho y luego new Alli creas el parametro.
Luego en el codigo... haces algo como esto.
--- Código: C# --- ReportDocument cryRpt = new ReportDocument(); cryRpt.Load("PUT CRYSTAL REPORT PATH HERECrystalReport1.rpt"); ParameterFieldDefinitions crParameterFieldDefinitions ; ParameterFieldDefinition crParameterFieldDefinition ; ParameterValues crParameterValues = new ParameterValues(); ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue(); crParameterDiscreteValue.Value = textBox1.Text; crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields; crParameterFieldDefinition = crParameterFieldDefinitions["Customername"]; crParameterValues = crParameterFieldDefinition.CurrentValues; crParameterValues.Clear(); crParameterValues.Add(crParameterDiscreteValue); crParameterFieldDefinition.ApplyCurrentValues(crParameterValues); crystalReportViewer1.ReportSource = cryRpt; crystalReportViewer1.Refresh();
Tienes que usar...
--- Código: C# --- using CrystalDecisions.CrystalReports.Engine;using CrystalDecisions.Shared;
Avisame si eso te ayuda...
Saludos,
Carlos Cor.
Web Hosting, Design, Development & SEO at Crystaltech
blackphoenix:
Ok ese codiogo ya lo tengo en la parte codigo el asmx..
hasta ahi todo bien..
Los parametors ya estaban creados ya que en el reporte al crearlo (en el webservice) , al crear el reporte lo enlaze a datos y sus campos parametros etc,
es por eso que al ejecutar me pide los parametros y logeo.
el codigo que me diste lo puse en el asmx como un public sub.
pero aparte hay otro que trae por deefecto en el asmx:
Public Sub New()
Me.ReportSource = Me.Server.MapPath("ReporteMesFactura.rpt")
End Sub
Segun entiendo ese es el que se encarga de cargar el reporte, entonces dime como reemplazaria eso con el codigo que tu me brindaste, pero eso si con los parametros y en lugar te poner textbox.text como value del parametro le pondria una variable.
Esa variable es la que tengo que recibir de mi aplicacion windows.
por que en mi aplicacion wndows invocare al webservice que contiene dicho reporte.
gracias.
blackphoenix:
Mira ese codigo es el que te digo que lo tengo, es algo parecido al que tu me brindaste..
--- Código: vb.net --- Public Sub CargaReporteFacturas(ByVal parametroF1 As DateTime, ByVal parametroF2 As DateTime) Dim reportPath As String = Me.Server.MapPath("ReporteMesFactura.rpt") Report.Load(reportPath) 'Report.DataSourceConnections[0].SetCo F1.Value = parametroF1 F2.Value = parametroF2 Report.SetParameterValue("@fin", F1) Report.SetParameterValue("@ffi", F2) Report.SetDatabaseLogon("sa", "sa") Me.ReportSource = Report End SubEnd Class
Pero ese codigo se supone que debo cargarlo en este metodo
--- Código: vb.net --- Public Sub New() Me.ReportSource = Me.Server.MapPath("ReporteMesFactura.rpt") 'esta linea esta comentada por que si llamo al metodo y le pongo esos parametros si funciona lo que quiero saber es como mandarle los parametros desde mi aplicacion windows. 'CargaReporteFacturas("01/06/2010", "30/06/2010") End Sub
Newtek:
como pudistes ver... puedes usar esta linea
crParameterDiscreteValue.Value = textBox1.Text;
esa es la clave ... ese texbox puede ser una variable. puedes el dato que extraes de la base de datos... puede ser cualquier cosas que quieras. y luego sigues los otros pasos y lo metes dentro del Reporte. si hay mas de uno entonces lo que tienes que hacer es crear varios y eso es todo.
Carlos Cor.
Web Hosting, Design, Development & SEO at Crystaltech
Navegación
[*] Página Anterior
Ir a la versión completa