水晶报表 Crystal Report 调用存储过程时出错 找不到表 ,解决方法。

用 CrystalReportViewer1 控件在asp.net的网页上显示报表,如果做报表时调用数据表数据的方式调用是可以成功的,但报表是用存储过程获取数据方式会出现以下错误:

找不到表‘RptOpenCheck;1‘ 。 文件 G:\TEMP\FO-OpenCheck {6D191F06-DECF-4A25-88FC-8553E3D435AA}.rpt 内出错: 找不到表。

Error: 未将对象引用设置到对象的实例。

The table ‘RptOpenCheck;1‘ could not be found. Error in File G:\TEMP\FO-OpenCheck {6D191F06-DECF-4A25-88FC-8553E3D435AA}.rpt: The table could not be found.

未能打开该连接。 未能打开该连接。 G:\TEMP\FO-OpenCheck {4E60249E-FC16-4F3D-A610-138FC3297171}.rpt

VS2005 环境,Crsytal Reports 11.5

代码以下:

Dim crtableLogoninfos As New TableLogOnInfos

Dim crtableLogoninfo As New TableLogOnInfo

Dim crConnectionInfo As New ConnectionInfo

Dim crParameterFields As ParameterFields

Dim crParameterField As ParameterField

Dim crParameterValues As ParameterValues

Dim crParameterDefValues As ParameterValues

Dim crParameterValue As ParameterValue

Dim crParameterDiscreteValue As ParameterDiscreteValue

Dim CrTables As Tables

Dim CrTable As Table

Dim ReportName As String

Dim PrintTo As String       ‘ P Printer V Window

Dim ReportPath As String

Dim UserName As String

Dim Password As String

Dim ServerName As String

Dim DatabaseName As String

Dim crReportDocument As New ReportDocument

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load, Me.Load

Dim strParam As String = Request("p")

‘获取用户请求参数

If Right(strParam, 1) = "~" Then

strParam = Mid(strParam, 1, Len(strParam) - 1)

End If

‘参数转换为数组

s = Split(strParam, "~")

‘use odbc connection database

With crConnectionInfo

.AllowCustomConnection = True

.ServerName = ”ODBCName"

‘.DatabaseName = "TempDB"

.UserID = "sa"

.Password = "Microwin"

End With

‘‘use SQL connection database

‘With crConnectionInfo

‘    .AllowCustomConnection = True

‘    .ServerName = "(local)"

‘    .DatabaseName = "TempDB"

‘    .UserID = "sa"

‘    .Password = "Microwin"

‘End With

‘指定报表路径

ReportPath = Server.MapPath(Request.ApplicationPath)

ReportNamePath = ReportPath & "\testing.rpt"

‘check report file exists and Load Report

If System.IO.File.Exists(ReportNamePath) Then

crReportDocument.Load(ReportNamePath)

End If

‘设置报表文档给报表控件

Me.CrystalReportViewer1.ReportSource = crReportDocument

‘设置连接数据库信息给报表文档

CrTables = crReportDocument.Database.Tables

For Each CrTable In CrTables

crtableLogoninfo = CrTable.LogOnInfo

crtableLogoninfo.ConnectionInfo = crConnectionInfo

CrTable.ApplyLogOnInfo(crtableLogoninfo)

‘就是这句没有加,所以会出现以上错误信息,只有报表是调用存储过程取数据时才会出现错误。花了我几天时间,终于解决了。

CrTable.Location = CrTable.Name

Next

‘设置控件显示的属性

With CrystalReportViewer1

.AutoDataBind = True

.ReuseParameterValuesOnRefresh = True

.EnableDatabaseLogonPrompt = False

.EnableParameterPrompt = False

CrystalReportViewer1.DisplayGroupTree = False

CrystalReportViewer1.DisplayPage = True

CrystalReportViewer1.DisplayToolbar = True

CrystalReportViewer1.ReportSource = crReportDocument

End With

If Not IsPostBack Then

‘取用户请求的参数赋值给报表,如果报表需要参数的话,从第三个元素开始为报表参数值。

crParameterFields = Nothing

crParameterFields = CrystalReportViewer1.ParameterFieldInfo

Dim j As Integer = UBound(s, 1)

For i = 0 To crParameterFields.Count - 1

crParameterField = crParameterFields.Item(i)

crParameterValues = crParameterField.CurrentValues

crParameterDefValues = Nothing

crParameterDefValues = New ParameterValues

crParameterDefValues = crParameterField.DefaultValues

crParameterDiscreteValue = Nothing

crParameterDiscreteValue = New ParameterDiscreteValue

If i > (j - 2) Then

Select Case crParameterField.ParameterValueKind

Case ParameterValueKind.BooleanParameter

crParameterDiscreteValue.Value = False

Case ParameterValueKind.CurrencyParameter

crParameterDiscreteValue.Value = Nothing

Case ParameterValueKind.DateParameter

crParameterDiscreteValue.Value = System.DateTime.Now

Case ParameterValueKind.DateTimeParameter

crParameterDiscreteValue.Value = System.DateTime.Now

Case ParameterValueKind.NumberParameter

crParameterDiscreteValue.Value = Nothing

Case ParameterValueKind.StringParameter

crParameterDiscreteValue.Value = " "

Case ParameterValueKind.TimeParameter

crParameterDiscreteValue.Value = System.DateTime.Now

End Select

crParameterValues.Add(crParameterDiscreteValue)

Else

Select Case crParameterField.ParameterValueKind

Case ParameterValueKind.BooleanParameter

crParameterDiscreteValue.Value = IIf(s(i + 2) = "0", False, True)

Case ParameterValueKind.CurrencyParameter

crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

Case ParameterValueKind.DateParameter

crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

Case ParameterValueKind.DateTimeParameter

crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

Case ParameterValueKind.NumberParameter

crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

Case ParameterValueKind.StringParameter

crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", " ", s(i + 2))

Case ParameterValueKind.TimeParameter

crParameterDiscreteValue.Value = IIf(Trim(s(i + 2) & "") = "", Nothing, s(i + 2))

End Select

crParameterValues.Add(crParameterDiscreteValue)

End If

Next

End If

End Sub

水晶报表 Crystal Report 调用存储过程时出错 找不到表 ,解决方法。,布布扣,bubuko.com

时间: 2024-10-27 07:07:35

水晶报表 Crystal Report 调用存储过程时出错 找不到表 ,解决方法。的相关文章

Visual Studio 2012使用水晶报表Crystal Report

原文:Visual Studio 2012使用水晶报表Crystal Report SAP在 2013年1月14日 released SAP Crystal Reports,developer version for Microsoft Visual Studio - 2012 .你可以从下面链接下载:http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_5.exe 下载并安装入你的电脑.安装 完毕,可以看到那些曾经熟

水晶报表(crystal report )中显示CheckBox

1,在crystal report 报表的右边field explorer导航栏里面 新建一个formula field 并命名 2,右键edit刚建好的formula field ,写一个控制checkbox 显示的表达式如下: if {Command.CLAIMANT_SIGNATURE_FLAG} = 'Y' thenchrw(254)elsechrw(168) 如下图操作: 显示完成 水晶报表(crystal report )中显示CheckBox

水晶报表 如何设置水晶报表 crystal reports 的字段自动换行

在做报价系统时候水晶报表做最后报表的产出.由于规格字数较长,用户在预览报表时无法看全规格,规格多出部分会导致重叠现象. 百度文库提供一个解决方案: 1.如何设置水晶报表(crystal reports)的字段自动换行 水晶报表从数据库中读取的数据,当字段内容比较长时,很影响美观,需要设置它为自动换行来显示. 影响美观的没有自动换行的报表图示: OK,看了图示,觉得实在太难看了,好,我们来设置它自动换行吧: 1.打开字段的格式化字段属性,将其公用标签下的可以扩大(CANGROW)属性选上,如图:

(转)创建DB2实例时出错,请大家帮忙解决

创建DB2实例时出错,请大家帮忙解决 原文:http://bbs.chinaunix.net/thread-3601748-1-1.html 运行:$DB2DIR/instance/db2icrt  -u db2fadm1 db2inst1 出现错误:            Program name = db2idbmInstance home dir = /db2inst1,   Sysadm group = db2iadm1Instance type = 1,  Auth type = SE

win7,M?i?n?d?m?a?n?a?g?e?r?2?0?1?2使用模板时弹出Runtime error R6025解决方法

Mindjet.MindManager2012.v10.0在应用个别模板时提示"参数错误",然后自动关闭. 解决办法: 如果是win7系统,可以进入C:\Users\(用户名)\AppData\Local\Mindjet\MindManager\10\Library\ENU\Templates, 可以看到如下模板:Management/Meetings and Events/Personal Productivity/Problem Solving/Project Management

universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法

在listview/gridview中使用UIL来display每个item的图片,当图片数量较多需要滑动滚动时会出现卡顿,而且加载过的图片再次上翻后依然会重复加载(显示设置好的加载中图片) 最近在使用UIL遇到了这个问题,相信这个问题许多使用UIL的人都碰到过 现在把解决方法贴出来给有同样问题的朋友做参考 先看下UIL的工作流程 在已经允许内存,存储卡缓存的前提下,当一个图片被请求display时,首先要判断图片是否缓存在内存中,如果false则尝试从存储卡读取,如果依然不存在最后才从网络地址

安装CentOS、Linux系统时,GPT分区不能引导的解决方法

安装系统:CentOS 5.9_64bit时,分区后, 提示如下错误. 解决方法: 1.按ctrl+alt+F2 进入命令行 2.先查看分区 sh #fdisk -l    以下假设分区是/dev/sda 3.修改标签     (parted) select /dev/sda     (parted) mklabel                 //提示默认是gpt,输入msdos,回车     (parted) print                       //查看到msdos,

MVC.Net:对MVC5部署时出现403.14错误的解决方法

当我们部署MVC5到IIS 7的时候,有时会出现403.14的错误,如下图: 对于这个错误的解决方法就是在应用程序的web.config的system.webServer节点中加入这一句: <modules runAllManagedModulesForAllRequests="true"></modules> 如下例: <system.webServer> <!-- 此行必须有,否则IIS7无法启动 --> <modules ru

Silverlight运行时提示未安装silverlight runtime 解决方法

出现该问题是由于电脑上安装的silverlight不是silverlight developer. 一般来说安装完VS之后是不会出现该问题. 但是一旦更改了silverlight中web service中TestPage的minRuntimeVersion版本,因为默认生成的版本号是silverlight sdk(根据创建项目时选择的是silverlight 4还是5来判断是哪个版本的SDK)的版本号.一旦修改的版本号比电脑安装的sdk版本高,则会在第一次运行时提示需要安装更新版本的silver