Foros del Web » Programando para Internet » ASPX (.net) »

Pasar imagen de una página a un crystal report como parametro o como sea pero pasarla

Estas en el tema de Pasar imagen de una página a un crystal report como parametro o como sea pero pasarla en el foro de ASPX (.net) en Foros del Web. Buen día a todos!... Necesito mucho de su ayuda, quisiera poder pasar una imagen que tengo en una página aspx a un crystal report, esta ...
  #1 (permalink)  
Antiguo 25/07/2012, 14:07
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Información Pasar imagen de una página a un crystal report como parametro o como sea pero pasarla

Buen día a todos!...

Necesito mucho de su ayuda, quisiera poder pasar una imagen que tengo en una página aspx a un crystal report, esta imagen no la tengo en ninguna base de datos, hago referencia a ella por su url... Así es como tomo su ruta para pasarlo a mi crystal:

Código ASP:
Ver original
  1. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.         If Not Page.PreviousPage Is Nothing Then
  3. Dim SourceImage1 As Image
  4.             SourceImage1 = CType(PreviousPage.FindControl("ImageFunc1"), _
  5.                 Image)
  6. If Not SourceImage1 Is Nothing Then
  7.                 Image1 = SourceImage1
  8.             End If
  9.         End If
  10. Dim rep As ReportDocument = New ReportDocument
  11.         rep.Load(Server.MapPath("ReporteText.rpt"))
  12. Dim Firma As ParameterDiscreteValue = New ParameterDiscreteValue
  13.         Firma.Value = Image1.ImageUrl
  14. rep.ParameterFields(35).CurrentValues.Add(Firma)
  15.         Me.CRVReemplazos.ReportSource = rep
  16.         Me.CRVReemplazos.DataBind()
  17.     End Sub
  #2 (permalink)  
Antiguo 25/07/2012, 19:02
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Pasar imagen de una página a un crystal report como parametro o como sea p

Eh visto que lo hacen con data set, pero el problema es que la imagen no la estoy tomando de ninguna base de datos, ¿hay alguna manera de pasarla como parámetro de una imágen de otra página? Lo he intentado mediante su url, tengo una página donde tengo una imágen:

Código ASP:
Ver original
  1. <asp:Image ID="Image1" runat="server" ImageUrl="~/ver.jpg" />

En otra página la recibo en el evento load de la página de esta manera (junto con otro parametro de textbox, pero solo para ver que si los pase):

Código vb:
Ver original
  1. Imports CrystalDecisions.Web
  2. Imports CrystalDecisions.CrystalReports.Engine
  3. Imports CrystalDecisions.Shared
  4. Partial Class Imagen
  5.     Inherits System.Web.UI.Page
  6.     Public Function StringAsUtf8Bytes(ByVal strData As String) As Byte()
  7.  
  8.         Dim bytes() As Byte
  9.  
  10.         ' get unicode string as bytes
  11.        bytes = Encoding.UTF8.GetBytes(strData)
  12.  
  13.         ' return byte data
  14.        Return bytes
  15.  
  16.     End Function
  17.     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  18.         If Not Page.PreviousPage Is Nothing Then
  19.             Dim SourceTextBox As TextBox
  20.             SourceTextBox = CType(PreviousPage.FindControl("TextBox1"),  _
  21.                 TextBox)
  22.             Dim SourceImage As Image
  23.             SourceImage = CType(PreviousPage.FindControl("Image1"),  _
  24.                 Image)
  25.             If Not SourceTextBox Is Nothing Then
  26.                 TextBox1.Text = SourceTextBox.Text
  27.             End If
  28.             If Not SourceImage Is Nothing Then
  29.                 Image1 = SourceImage
  30.             End If
  31.  
  32.         End If
  33.         Dim rep As ReportDocument = New ReportDocument
  34.         rep.Load(Server.MapPath("VerImagen.rpt"))
  35.         Dim ParamAnio As ParameterDiscreteValue = New ParameterDiscreteValue
  36.         ParamAnio.Value = TextBox1.Text
  37.         Dim Imagen As ParameterDiscreteValue = New ParameterDiscreteValue
  38.         Imagen.Value = Image1.ImageUrl
  39.         Dim hola = StringAsUtf8Bytes(Imagen.Value.GetString)
  40.         rep.ParameterFields(0).CurrentValues.Add(ParamAnio)
  41.         rep.ParameterFields(1).CurrentValues.Add(hola.ToString)
  42.         Me.CRVReemplazos.ReportSource = rep
  43.         Me.CRVReemplazos.DataBind()
  44.     End Sub
  45. End Class

Y bueno si puedo mostrar la URL en el parámetro que puse en mi Crystal Report, pero a la hora de querer mostrar la imagen en base a esta URL, pues no me la muestra y me manda este error:

No se encuentra el miembro público 'GetString' en el tipo 'String'.

La verdad no se si sea la manera correcta, pero relacionando lo que he leído eh llegado a esto.

¿Es correcto que ponga un parámetro y en este muestre la imagen?, es decir, no hay parametros dde tipo Image ¿cierto?

Pues espero y me puedan ayudar por que nada más no me sale ... Gracias de antemano =)...
  #3 (permalink)  
Antiguo 25/07/2012, 20:02
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Pasar imagen de una página a un crystal report como parametro o como sea p

Tal vez no me explique bien, Me gustaría pasar una imagen de una página a un crystal report no la tengo en ninguna base de datos, ya que lo que he leído siempre lo hacen con un dataset, esto lo hago por que las imágenes que tengo en la página que tiene la imagen las mando de acuerdo al nombre de una persona (ese nombre si lo tengo en la base de datos), es por eso que la imagen de mi página varía de acuerdo al nombre que extraigo de mi base de datos, esto es lo que he estado haciendo.

A manera de ejemplo, quiero pasar por lo pronto una imagen que tenga en mi pagina al crystal report.

Esta es la imagen que mando:

Código vb:
Ver original
  1. Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.         TextBox1.Text = Image1.ImageUrl
  3.         Response.Redirect("Imagen.aspx?maimagen=" + TextBox1.Text)
  4.     End Sub
  5.  
  6.     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  7.         Image1.ImageUrl = ("~/cfe2.jpg")
  8.     End Sub

Aquí recibo la URL y lo intento mandar a un parámetro, tengo otro parámetro pero con ese no hay problema solo recibe el contenido de un textbox:

Código vb:
Ver original
  1. Imports System.Drawing
  2. Imports System.IO
  3. Imports CrystalDecisions.Web
  4. Imports CrystalDecisions.CrystalReports.Engine
  5. Imports CrystalDecisions.Shared
  6. Partial Class Imagen
  7.     Inherits System.Web.UI.Page
  8.     Public Function ImageToByte(ByVal pImagen As Image) As Byte()
  9.         Dim mImage() As Byte
  10.         Try
  11.             If Not IsNothing(pImagen) Then
  12.                 Dim ms As New System.IO.MemoryStream
  13.                 pImagen.Save(ms, pImagen.RawFormat)
  14.                 mImage = ms.GetBuffer
  15.                 ms.Close()
  16.                 Return mImage
  17.             End If
  18.         Catch
  19.         End Try
  20.     End Function
  21.     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  22.         TextBox1.Text = Request.QueryString("maimagen")
  23.         Dim Imagen2 As String = TextBox1.Text
  24.         Dim pathImage As String = Server.MapPath(Imagen2)
  25.         Dim Imagen3 = ImageToByte(Image.FromFile(pathImage))
  26.         If Not Page.PreviousPage Is Nothing Then
  27.             Dim SourceTextBox As TextBox
  28.             SourceTextBox = CType(PreviousPage.FindControl("TextBox1"),  _
  29.                 TextBox)
  30.             If Not SourceTextBox Is Nothing Then
  31.                 TextBox1.Text = SourceTextBox.Text
  32.             End If
  33.  
  34.  
  35.         End If
  36.  
  37.         Dim rep As ReportDocument = New ReportDocument
  38.         rep.Load(Server.MapPath("VerImagen.rpt"))
  39.         Dim ParamAnio As ParameterDiscreteValue = New ParameterDiscreteValue
  40.         ParamAnio.Value = TextBox1.Text
  41.         Dim Imagen As ParameterDiscreteValue = New ParameterDiscreteValue
  42.         Imagen.Value = Imagen3
  43.         rep.ParameterFields(0).CurrentValues.Add(ParamAnio)
  44.         rep.ParameterFields(1).CurrentValues.Add(Imagen)
  45.         Me.CRVReemplazos.ReportSource = rep
  46.         Me.CRVReemplazos.DataBind()
  47.     End Sub
  48. End Class

Pero pues me arroja este error:

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.IO.FileNotFoundException: C:\Users\Deivid\Documents\Visual Studio 2010\WebSites\ImagenCrystal


Espero y me puedan ayuda, saludos!...

Etiquetas: crystalreport, image, visualbasic, aspx
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 23:02.