Vilarino
June 4th, 2007, 01:48 PM
Hi,
I am with a problem when executing a report in the ASP, does not appear value in this report.
Somebody knows to say what this happening.
Crystal Reports 10
Crystal Enterprise 10
ASP
It follows the code:
Página que chama o relatório.
<%@ LANGUAGE="VBSCRIPT" %>
<!--#include file="../Include/clsCE.asp"-->
dim tPrograma
Dim cd_programa
cd_programa = Split(Request.item("cd_programa"), "|", 2, 1)
tPrograma = cd_programa(0)
reportname = "relatorio"
'####################### Crystal Enterprise 10 ##################
Dim objCE
Set objCE = New clsCE2
With objCE
If .LogonCrystal() = True Then
If .getreport("pasta", reportname) = True Then
Call .ConfigurarBD()
Call .PassarParametros("P_TPROGRAMA", tPrograma)
Call .PassarParametrosSub("Atividades", "P_TPROGRAMA", tPrograma)
Call .PassarParametrosSub("Orcamentos", "P_TPROGRAMA", tPrograma)
Call .callsReport()
End If
End If
End With
Set objCE = Nothing
Session.CodePage=1252
Stretches of Classe clsCE.asp
Class clsCE2
Private objSessionMgr
Private objSessionCE
Private objInfoStore
Private objInfoObject
Private objReportAppFactory
Private objReportDocument
Private m_IdRelatorio
Public g_ServerBD
public g_Banco
Public g_UserBD
Public g_PwdBD
Public g_DataSource
Public gstrParametros
Public gParamsSub
Private gCntParam
private gstrFormula
Sub callsReport()
'Declara ReportAppFactory e ReportDocument
Dim rptFactory
Dim rptDoc
Set rptFactory = objSessionCE.Service("", "RASReportFactory")
Set rptDoc = rptFactory.OpenDocument(CLng(m_IdRelatorio))
On Error Resume Next
Dim oDBInfo
Dim pbLevel1
Dim pbLevel2
Set oDBInfo = rptDoc.DatabaseController.GetConnectionInfos().Item(0)
Set pbLevel1 = oDBInfo.Attributes
pbLevel1.Item("QE_ServerDescription") = g_ServerBD
Set pbLevel2 = pbLevel1.item("QE_LogonProperties")
With pbLevel2
.Item("Data Source") = g_ServerBD
.Item("Initial Catalog") = g_Banco
End With
Response.Write g_ServerBD & "<br>"
Response.Write g_Banco & "<br>"
pbLevel1.Item("QE_LogonProperties") = pbLevel2
oDBInfo.Attributes = pbLevel1
oDBInfo.UserName = g_UserBD
oDBInfo.Password = g_PwdBD
Response.Write g_UserBD & "<br>"
Response.Write g_PwdBD & "<br>"
' CHANGING THE MAIN REPORT DATABASE INFO
Dim Tables
Dim newTable
Set Tables = rptDoc.DataDefController.Database.Tables
For Each table in Tables
Set newTable = Table.Clone
newTable.ConnectionInfo = oDBInfo
newTable.QualifiedName = Table.Name
rptDoc.DatabaseController.SetTableLocation table, newTable
Next
' CHANGING THE DATABASE FOR ALL SUBREPORTS
Set subReportNames = rptDoc.SubReportController.QuerySubreportNames
For each subName in subReportnames
Set subTables = rptDoc.SubReportController.GetSubreportDatabase(subName).Tables
For each subTable in subTables
Set newSubTable = subTable.Clone
newSubTable.ConnectionInfo = oDBInfo
newSubTable.QualifiedName = subTable.Name
rptDoc.SubReportController.SetTableLocation subName, subTable, newSubTable
Next
Next
If Trim(gstrParametros) <> "" Then
strValor = Mid(gstrParametros,1, Len(gstrParametros) - 1)
arr_Parametros = Split(strValor, "|")
gstrParametros = Mid(gstrParametros,1, Len(gstrParametros) - 1)
Dim strNome
Dim i, j
For i = 0 to UBound(arr_Parametros)
strNome = arr_Parametros(i)
j = i + 1
strValor = arr_Parametros(j)
i = j
rptDoc.DataDefController.ParameterFieldController.SetCurrentValue "", strNome, strValor
Next
End If
If gParamsSub.Count > 0 Then
Dim vItem
Dim ind
Dim vNomeSub
Dim vNomeParam
Dim vValorParam
Dim bSetar
Dim arr_ParametrosSub
For Each vItem in gParamsSub
arr_ParametrosSub = Split(gParamsSub.Item(vItem), "|")
vNomeSub = arr_ParametrosSub(0)
For ind = 1 to Ubound(arr_ParametrosSub)
If ind mod 2 = 1 Then
vNomeParam = arr_ParametrosSub(ind)
End If
If ind mod 2 = 0 Then
vValorParam = arr_ParametrosSub(ind)
End If
Next
rptDoc.DataDefController.ParameterFieldController.SetCurrentValue vNomeSub, vNomeParam, vValorParam
Next
End If
If gstrFormula <> "" Then
rptDoc.DataDefinition.RecordFilter = gstrFormula
End If
Response.ExpiresAbsolute = Now() - 1
Response.ContentType = "text/html"
Response.CharSet = "UTF-8"
Session.CodePage = 65001
Dim CrViewer1
Set CrViewer1 = CreateObject("CrystalReports.CrystalReportInteractiveViewer")
Dim BooleanSearchControl
Set BooleanSearchControl = CreateObject("CrystalReports.BooleanSearchControl")
BooleanSearchControl.ReportDocument = rptDoc
With CrViewer1
.Name = "Crystal Reports Interactive Viewer"
.IsOwnForm = True
.IsOwnPage = True
.IsDisplayGroupTree = False
.HasToggleGroupTreeButton = True
.BooleanSearchControl = BooleanSearchControl
.ReportSource = rptDoc.ReportSource
.EnterpriseLogon = Session("es")
.ProcessHttpRequest Request, Response, null
End With
End Sub
I am with a problem when executing a report in the ASP, does not appear value in this report.
Somebody knows to say what this happening.
Crystal Reports 10
Crystal Enterprise 10
ASP
It follows the code:
Página que chama o relatório.
<%@ LANGUAGE="VBSCRIPT" %>
<!--#include file="../Include/clsCE.asp"-->
dim tPrograma
Dim cd_programa
cd_programa = Split(Request.item("cd_programa"), "|", 2, 1)
tPrograma = cd_programa(0)
reportname = "relatorio"
'####################### Crystal Enterprise 10 ##################
Dim objCE
Set objCE = New clsCE2
With objCE
If .LogonCrystal() = True Then
If .getreport("pasta", reportname) = True Then
Call .ConfigurarBD()
Call .PassarParametros("P_TPROGRAMA", tPrograma)
Call .PassarParametrosSub("Atividades", "P_TPROGRAMA", tPrograma)
Call .PassarParametrosSub("Orcamentos", "P_TPROGRAMA", tPrograma)
Call .callsReport()
End If
End If
End With
Set objCE = Nothing
Session.CodePage=1252
Stretches of Classe clsCE.asp
Class clsCE2
Private objSessionMgr
Private objSessionCE
Private objInfoStore
Private objInfoObject
Private objReportAppFactory
Private objReportDocument
Private m_IdRelatorio
Public g_ServerBD
public g_Banco
Public g_UserBD
Public g_PwdBD
Public g_DataSource
Public gstrParametros
Public gParamsSub
Private gCntParam
private gstrFormula
Sub callsReport()
'Declara ReportAppFactory e ReportDocument
Dim rptFactory
Dim rptDoc
Set rptFactory = objSessionCE.Service("", "RASReportFactory")
Set rptDoc = rptFactory.OpenDocument(CLng(m_IdRelatorio))
On Error Resume Next
Dim oDBInfo
Dim pbLevel1
Dim pbLevel2
Set oDBInfo = rptDoc.DatabaseController.GetConnectionInfos().Item(0)
Set pbLevel1 = oDBInfo.Attributes
pbLevel1.Item("QE_ServerDescription") = g_ServerBD
Set pbLevel2 = pbLevel1.item("QE_LogonProperties")
With pbLevel2
.Item("Data Source") = g_ServerBD
.Item("Initial Catalog") = g_Banco
End With
Response.Write g_ServerBD & "<br>"
Response.Write g_Banco & "<br>"
pbLevel1.Item("QE_LogonProperties") = pbLevel2
oDBInfo.Attributes = pbLevel1
oDBInfo.UserName = g_UserBD
oDBInfo.Password = g_PwdBD
Response.Write g_UserBD & "<br>"
Response.Write g_PwdBD & "<br>"
' CHANGING THE MAIN REPORT DATABASE INFO
Dim Tables
Dim newTable
Set Tables = rptDoc.DataDefController.Database.Tables
For Each table in Tables
Set newTable = Table.Clone
newTable.ConnectionInfo = oDBInfo
newTable.QualifiedName = Table.Name
rptDoc.DatabaseController.SetTableLocation table, newTable
Next
' CHANGING THE DATABASE FOR ALL SUBREPORTS
Set subReportNames = rptDoc.SubReportController.QuerySubreportNames
For each subName in subReportnames
Set subTables = rptDoc.SubReportController.GetSubreportDatabase(subName).Tables
For each subTable in subTables
Set newSubTable = subTable.Clone
newSubTable.ConnectionInfo = oDBInfo
newSubTable.QualifiedName = subTable.Name
rptDoc.SubReportController.SetTableLocation subName, subTable, newSubTable
Next
Next
If Trim(gstrParametros) <> "" Then
strValor = Mid(gstrParametros,1, Len(gstrParametros) - 1)
arr_Parametros = Split(strValor, "|")
gstrParametros = Mid(gstrParametros,1, Len(gstrParametros) - 1)
Dim strNome
Dim i, j
For i = 0 to UBound(arr_Parametros)
strNome = arr_Parametros(i)
j = i + 1
strValor = arr_Parametros(j)
i = j
rptDoc.DataDefController.ParameterFieldController.SetCurrentValue "", strNome, strValor
Next
End If
If gParamsSub.Count > 0 Then
Dim vItem
Dim ind
Dim vNomeSub
Dim vNomeParam
Dim vValorParam
Dim bSetar
Dim arr_ParametrosSub
For Each vItem in gParamsSub
arr_ParametrosSub = Split(gParamsSub.Item(vItem), "|")
vNomeSub = arr_ParametrosSub(0)
For ind = 1 to Ubound(arr_ParametrosSub)
If ind mod 2 = 1 Then
vNomeParam = arr_ParametrosSub(ind)
End If
If ind mod 2 = 0 Then
vValorParam = arr_ParametrosSub(ind)
End If
Next
rptDoc.DataDefController.ParameterFieldController.SetCurrentValue vNomeSub, vNomeParam, vValorParam
Next
End If
If gstrFormula <> "" Then
rptDoc.DataDefinition.RecordFilter = gstrFormula
End If
Response.ExpiresAbsolute = Now() - 1
Response.ContentType = "text/html"
Response.CharSet = "UTF-8"
Session.CodePage = 65001
Dim CrViewer1
Set CrViewer1 = CreateObject("CrystalReports.CrystalReportInteractiveViewer")
Dim BooleanSearchControl
Set BooleanSearchControl = CreateObject("CrystalReports.BooleanSearchControl")
BooleanSearchControl.ReportDocument = rptDoc
With CrViewer1
.Name = "Crystal Reports Interactive Viewer"
.IsOwnForm = True
.IsOwnPage = True
.IsDisplayGroupTree = False
.HasToggleGroupTreeButton = True
.BooleanSearchControl = BooleanSearchControl
.ReportSource = rptDoc.ReportSource
.EnterpriseLogon = Session("es")
.ProcessHttpRequest Request, Response, null
End With
End Sub