No se puede enviar la solicitud para procesamiento
Publicado por LoZaN (1 intervención) el 12/08/2007 23:37:24
Hola compañeros, tengo una duda bastante grande y ya no se qué hacer. Utilizo vb.net (de visual studio 2005 professional edition) con el Crystal Report para visual studio 2005.
El tema es que tengo en el report varios campos de los cuales uno es tipo system.byte[] que se muestra correctamente, el modo para mostrarlos es desde un form de vb llengando los datos de un dataset y mostrarlos en un crystalreportviewer. Todo funciona correctamente, el problema viene al intentar cambiar de página o, si inserto alguna fórmula en el report que me muestra el siguiente error: "Error en el archivo c:\docu\....\temp\temp3a...{134CB....}.rpt: No se puede enviar la solicitud para procesamiento de fondo "
o en inglés "The request could not be submitted for background processing".
No tengo muchos datos que mostrar, son unos 20 o 30 registros cada uno con una imagen. A ver si podeis ayudarme porque estoy un poco desesperado, la verdad, aquí os pongo el código por si sirve de ayuda...
Option Explicit On
Option Strict On
Option Compare Text
Imports MySql.Data.MySqlClient
Imports System.IO
Imports System.Data
Public Class frmPrintTest
Private Sub frmPrintTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim DBCon As MySqlConnection
Dim sql As New MySqlCommand
Dim myAdapter As New MySqlDataAdapter
Dim tb1 As New DataTable
Dim MiDataset As New DataSet2
Dim myReport As New frmImpTest
Dim i As Integer
Dim foto As String
Dim imagen As System.Drawing.Image
Dim linea As DataRow
Dim oStream As New System.IO.MemoryStream
DBCon = New MySqlConnection
DBCon.ConnectionString = "server=localhost;" + _
"user id=root;password=root;database=test"
Try
'Abrimos la conexión y comprobamos que no hay error
DBCon.Open()
Try
sql.Connection = DBCon
sql.CommandText = "SELECT * " + "FROM preguntas " + _
"WHERE numtest =1111"
myAdapter.SelectCommand = sql
MiDataset.Clear()
myAdapter.Fill(tb1)
'Llenamos el dataset con los datos de la consulta
For i = 0 To tb1.Rows.Count - 1
oStream = New System.IO.MemoryStream
linea = MiDataset.preguntas.NewRow()
linea(0) = tb1.Rows(i).Item(0)
linea(1) = tb1.Rows(i).Item(1)
linea(2) = tb1.Rows(i).Item(2)
linea(3) = tb1.Rows(i).Item(3)
linea(4) = tb1.Rows(i).Item(4)
linea(5) = tb1.Rows(i).Item(5)
linea(6) = tb1.Rows(i).Item(6)
linea(7) = tb1.Rows(i).Item(7)
'pasamos la ruta de la imagen a un array de bytes y lo insertamos
foto = tb1.Rows(i).Item(8).ToString.Replace("#", "\")
imagen = System.Drawing.Image.FromFile(foto)
imagen.Save(oStream, System.Drawing.Imaging.ImageFormat.Jpeg)
linea(8) = oStream.ToArray()
MiDataset.preguntas.Rows.Add(linea)
oStream.Close()
Next
'cargamos el dataset en el formulario
myReport.Load("frmimptest.rpt")
myReport.SetDataSource(MiDataset)
CRVImpTest.ReportSource = myReport
Catch myerror As MySqlException
MsgBox("No se puede leer la base de datos: " + myerror.Message)
DBCon.Close()
DBCon.Dispose()
Application.Exit()
End Try
Catch myerror As MySqlException
MsgBox("No se puede conectar a la base de datos: " + myerror.Message)
DBCon.Close()
DBCon.Dispose()
Application.Exit()
End Try
DBCon.Close()
DBCon.Dispose()
End Sub
End Class
El tema es que tengo en el report varios campos de los cuales uno es tipo system.byte[] que se muestra correctamente, el modo para mostrarlos es desde un form de vb llengando los datos de un dataset y mostrarlos en un crystalreportviewer. Todo funciona correctamente, el problema viene al intentar cambiar de página o, si inserto alguna fórmula en el report que me muestra el siguiente error: "Error en el archivo c:\docu\....\temp\temp3a...{134CB....}.rpt: No se puede enviar la solicitud para procesamiento de fondo "
o en inglés "The request could not be submitted for background processing".
No tengo muchos datos que mostrar, son unos 20 o 30 registros cada uno con una imagen. A ver si podeis ayudarme porque estoy un poco desesperado, la verdad, aquí os pongo el código por si sirve de ayuda...
Option Explicit On
Option Strict On
Option Compare Text
Imports MySql.Data.MySqlClient
Imports System.IO
Imports System.Data
Public Class frmPrintTest
Private Sub frmPrintTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim DBCon As MySqlConnection
Dim sql As New MySqlCommand
Dim myAdapter As New MySqlDataAdapter
Dim tb1 As New DataTable
Dim MiDataset As New DataSet2
Dim myReport As New frmImpTest
Dim i As Integer
Dim foto As String
Dim imagen As System.Drawing.Image
Dim linea As DataRow
Dim oStream As New System.IO.MemoryStream
DBCon = New MySqlConnection
DBCon.ConnectionString = "server=localhost;" + _
"user id=root;password=root;database=test"
Try
'Abrimos la conexión y comprobamos que no hay error
DBCon.Open()
Try
sql.Connection = DBCon
sql.CommandText = "SELECT * " + "FROM preguntas " + _
"WHERE numtest =1111"
myAdapter.SelectCommand = sql
MiDataset.Clear()
myAdapter.Fill(tb1)
'Llenamos el dataset con los datos de la consulta
For i = 0 To tb1.Rows.Count - 1
oStream = New System.IO.MemoryStream
linea = MiDataset.preguntas.NewRow()
linea(0) = tb1.Rows(i).Item(0)
linea(1) = tb1.Rows(i).Item(1)
linea(2) = tb1.Rows(i).Item(2)
linea(3) = tb1.Rows(i).Item(3)
linea(4) = tb1.Rows(i).Item(4)
linea(5) = tb1.Rows(i).Item(5)
linea(6) = tb1.Rows(i).Item(6)
linea(7) = tb1.Rows(i).Item(7)
'pasamos la ruta de la imagen a un array de bytes y lo insertamos
foto = tb1.Rows(i).Item(8).ToString.Replace("#", "\")
imagen = System.Drawing.Image.FromFile(foto)
imagen.Save(oStream, System.Drawing.Imaging.ImageFormat.Jpeg)
linea(8) = oStream.ToArray()
MiDataset.preguntas.Rows.Add(linea)
oStream.Close()
Next
'cargamos el dataset en el formulario
myReport.Load("frmimptest.rpt")
myReport.SetDataSource(MiDataset)
CRVImpTest.ReportSource = myReport
Catch myerror As MySqlException
MsgBox("No se puede leer la base de datos: " + myerror.Message)
DBCon.Close()
DBCon.Dispose()
Application.Exit()
End Try
Catch myerror As MySqlException
MsgBox("No se puede conectar a la base de datos: " + myerror.Message)
DBCon.Close()
DBCon.Dispose()
Application.Exit()
End Try
DBCon.Close()
DBCon.Dispose()
End Sub
End Class
Valora esta pregunta


0