Hola Grupo:
He estado solucionando un problema para Exportar un Archivo de Crystal
Report a Excel. Esta aplicación funciona correctamente. Pero al momento de
Trabajarlo en una pagina ASP.NET se queda cogado. Les proporciono la sintaxis
que estoy aplicando en una Función que fue hecha en Visual Basic 6.0:
Const m_modName As String = "ADMON_EXP_DLL_CIFRAS_EDOCTA"
Public Function Exporta(ByVal vli_CveGrupo As Integer, _
ByVal vli_CvePtoVta As Integer, _
ByVal vls_Periodo As String, _
ByVal vli_CveRamo As Integer, _
ByVal vls_Usuario As String, _
ByVal vls_ReportName As String, _
ByVal vls_Origen As String, _
ByVal vls_Destino As String)
Dim fs, ParamValue, Param1, Param2, Param3, Param4, Param5
Dim crystalApplication As CRAXDRT.Application
Dim crystalReport As CRAXDRT.Report
Dim crystalExportOptions As CRAXDRT.ExportOptions
'********
On Error GoTo ErrorHandler
Set crystalApplication = CreateObject("CrystalRunTime.Application")
Set crystalReport = crystalApplication.OpenReport(vls_ReportName)
'Crea una variable para la coleccion de parametros
Set Param1 = crystalReport.ParameterFields.Item(1)
ParamValue = vli_CveGrupo
Call Param1.SetCurrentValue(CInt(ParamValue), 7)
Set Param2 = crystalReport.ParameterFields.Item(2)
ParamValue = vli_CvePtoVta
Call Param2.SetCurrentValue(CInt(ParamValue), 7)
Set Param3 = crystalReport.ParameterFields.Item(3)
ParamValue = vls_Periodo
Call Param3.SetCurrentValue(CStr(ParamValue), 12)
Set Param4 = crystalReport.ParameterFields.Item(4)
ParamValue = vli_CveRamo
Call Param4.SetCurrentValue(CInt(ParamValue), 7)
Set Param5 = crystalReport.ParameterFields.Item(5)
ParamValue = vls_Usuario
Call Param5.SetCurrentValue(CStr(ParamValue), 12)
' 'and then we do it by setting the export options
Set crystalExportOptions = crystalReport.ExportOptions
crystalExportOptions.DiskFileName = vls_Origen
crystalExportOptions.UseReportDateFormat = True
crystalExportOptions.FormatType = crEFTExcel80
' ' 0=no format, 1=crystal report, 2=data interchange,
' ' 3=html, 4=richtext, ... 14=word for windows, and lots of others
' ' look for CRExportFormatType in the Object Browser
'
crystalExportOptions.UseReportNumberFormat = True
crystalExportOptions.DestinationType = 1
' 0=no destination,1=diskfile,2=mapi,3=mailVIM,4=MicrosoftExchange
' found under CRExportDestinationType in the Object Browser
Call crystalReport.Export(False)
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile vls_Origen, vls_Destino
' GetObjectContext.SetComplete
Exit Function
ErrorHandler:
'GetObjectContext.SetAbort
RaiseError m_modName, "Archivo GE Capital Batch"
End Function
Dicha función la guardo como DLL y lo doy de alta en COM+
aqui llamo la función en ASP.NET
sNombreDll = "ADMON_EXP_DLL_CIFRAS_EDOCTA.DataAccess"
sNombreArchivo = "cifras_25092006.xls"
sReportname = "Rpt_Reporte_Cifras_Ctrl_Desarrollo.rpt"
sUrl = "../../ReportesExcel/" & sNombreArchivo
sPathReportname = "C:\ResportesEmisor2006\ADMON\" & sReportname
sPathOrigen = "C:\ReportesExcel\" & sNombreArchivo
sPathDestino = "C:\boanetxml\ReportesExcel\"
componente = CreateObject(sNombreDll)
componente.Exporta(7, 0, "200609", 2, "ADMIN", sPathReportname, sPathOrigen,
sPathDestino)
Al momento de debugear la linea componente.Exporta( es en esa
linea donde se queda colgado.
Ojala y alguien tenga una idea de lo que pueda estar pasando
Salu2 Cordiales
¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°
Leer las respuestas