The code is the next:
Sub LanzarInforme(Informe,ClausulaWhere,ClausulaORDERBY, Nombre)
'Informe="../inf/edinfpub.rpt"
'ClausulaWhere = ""
'ClausulaORDERBY = ""
'ClausulaORDERBY = "EEFINCAS|{EEFINCAS.CEFINCA}|ASC,EEFINCAS|{EEFINCAS.CESUBFIN}|ASC"
InformeGen=Informe
InformeGen=Left(InformeGen,InStr(InformeGen,".rpt"

-1)
Informe = Application("DirInf"

& Informe
If Not IsObject (Session("oApp"

) Then
Set Session("oApp"

= Server.CreateObject("Crystal.CRPE.Application"

End If
If IsObject (Session("oRpt"

) Then
Set Session("oRpt"

= Nothing
End If
Set session("oRpt"

= session("oApp"

.OpenReport(Informe, 1)
'--------------------------SUBREPORTS-----------------------------------
Set session("sections"

= session("oRpt"

.Sections
Dim sectionCnt
sectionCnt = session("sections"

.Count
For i = 1 to sectionCnt
Set section = session("sections"

.Item(CInt(i))
Set sectionObjects = section.ReportObjects
Dim objectCnt
objectCnt = sectionObjects.Count
For j = 1 to objectCnt
If sectionObjects.Item(CInt(j)).Kind = 5 then
Set CRSubreports = session("oRpt"

.OpenSubreport(sectionObjects.Item(CInt(j)).Name)
For k = 1 to CRSubreports.Database.Tables.Count
set crtablesub = CRSubreports.Database.Tables.Item(CInt(k))
crtablesub.SetLogonInfo "srvjext","carga","sa",""
crtablesub.Location="carga.dbo."&crtablesub.Name
Next
End if
Next
Next
'-----------------------------------------------------------------------
'session("oRpt"

.MorePrintEngineErrorMessages = True
'session("oRpt"

.EnableParameterPrompting = True
Set Database = session("oRpt"

.Database
Set Tables = Database.Tables
'-----------------------------SORTBY------------------------------------
Temp = split (ClausulaORDERBY,","
For i=0 to UBound (Temp)
Temp2 = split (Temp(i),"|"
Tabla = Temp2(0)
Campo = Temp2(1)
For j = 1 to Tables.Count
result = strcomp(Tables.Item(cint(j)).Name,cstr(Tabla))
If cint(result) = 0 Then
Set SortTable = Tables.Item(cint(j))
End if
Next
Set Fields = SortTable.Fields
For j = 1 to Fields.Count
result = strcomp(Fields.Item(cint(j)).Name,cstr(Campo))
If cint(result) = 0 Then
Set SortField = Fields.Item(cint(j))
End if
Next
Select Case Temp2(2)
case "DESC"
Orden = 1
case else
Orden = 0
End Select
session("oRpt"

.RecordSortFields.Add SortField,cInt(Orden)
Next
'-----------------------------------------------------------------------
session("oRpt"

.DiscardSavedData
for i=1 to Tables.Count
set crtable = Tables.Item(cint(i))
crtable.SetLogonInfo "serleg", "carga", "sa", ""
crtable.Location="carga.dbo."&crtable.Name
'Response.Write("carga.dbo."&crtable.Name)
next
session("oRpt"

.ReadRecords
On Error Resume Next
If Err.Number <> 0 Then
Response.Write "An Error has occured on the server in attempting to access the data source"
Else
If IsObject(session("oPageEngine"

) Then
set session("oPageEngine"

= nothing
set session("oPageEngine"

= session("oRpt"

.PageEngine
End If
If ClausulaWhere <> "" then
session("oRpt"

.RecordSelectionFormula = cstr(ClausulaWhere)
End if
Set session("oPageEngine"

= session("oRpt"

.PageEngine
hoy=Date()
fediaact=CStr(Day(hoy)) & "-" & CStr(Month(hoy)) & "-" & CStr(Year(hoy))
Session("oRpt"

.ExportOptions.DiskFileName = Application("DirInfGen"

&InformeGen&"_"&Nombre&"_"&fediaact&".rpt"
Session("oRpt"

.ExportOptions.FormatType = 1
Session("oRpt"

.ExportOptions.DestinationType = 1
Session("oRpt"

.Export False
End If
End Sub