如何在水晶报表中实现SQL 查询

 我来答
你猜我猜哇擦猜
2016-04-09 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2万
采纳率:0%
帮助的人:6737万
展开全部
给你一个例子 基本可以传递参数 到水晶报表 可以查询 并且可以将参数字段显示为你需要的值
以前采用vb6做的动态传递水晶报表参数字段,存在一个缺陷就是在设计水晶报表的时候没有按照注释的那里写的(直接拖参数字段到预览的界面)就不会出现水晶报表提示要输入离散值的消息框。其实也不完全是这样的,有时我按照这种方式操作仍然有这个输入离散值消息框的提示,具体是什么原因造成的还不是很清楚,估计开发水晶报表的明白内部机制的原因,我只想能顺畅的使用就可以了,可出现不相关的输入提示就直接影响到客户使用程序。

我在做DotNet2005时用的是水晶报表10,在传递参数后。有加入了设置显示报表控件的参数对象集合为传递的参数值【CRViewer91.ParameterFieldInfo = m_Report.ParameterFields 】运行程序就没有这个输入离散值的提示。vb6使用水晶报表9.0不知道加入这个设置是否能解决问题。暂时我还没有条件测试主要是计算机上没有安装水晶报表9,不过也是一种解决这个问题的办法。先在这里保存起来,待有条件了测试下,没有这条语句可能在设计报表rpt文件的时候和程序动态调用可就要来回的测试了 。 哈~~~~~~

Private Sub DisplayReport1()
'' ==========================================================
' 开发人员:段利庆
' 编写时间:2008-09-01
' 过程名称:DisplayReport
' 参数说明:
' 功能说明:动态载入水晶报表文件(*.rpt)显示打印预览
'
' 其他说明:程序采用的是Crystal Reports 9.1版本
' 工程引用:Crystal Reports 9 ActiveX Designer Design and Runtime Library
' 控件:CRViewer91
'
'
'' ==========================================================

'*中央错误处理
On Error GoTo PROC_ERR

Dim m_Application As New CRAXDDRT.Application
Dim m_Report As CRAXDDRT.Report

Dim strSQL As String
strSQL = "SELECT * FROM 视图_收费_计量仪表 "

Dim strRptPath As String
strRptPath = App.Path & "\Crystal_RPT_Para\Sell_Meter.rpt"
Debug.Print "strRptPath:" & strRptPath

Set m_Report = Nothing
Set m_Report = m_Application.OpenReport(strRptPath, 1)
'*防止弹出水晶报表数据库登录对话框
m_Report.Database.Tables.Item(1).TestConnectivity
m_Report.Database.Tables.Item(1).ConnectBufferString = objdata.ConnectionString
m_Report.SQLQueryString = strSQL

'****************************************************
'*参数字段传递参数
'*
'*搞了2天了终于找到原因了 08-09-03
'*1.在新建一个参数字段,一定要直接拖放到预览里面
'* 否则拖到设计里面就要弹出输入离散值的消息框
'*
'*2.GetItemByName("MyParaT") 参数是参数字段的名称
'*
m_Report.DiscardSavedData
m_Report.ParameterFields.GetItemByName("MyParaT").ClearCurrentValueAndRange
m_Report.ParameterFields.GetItemByName("MyParaT").AddCurrentValue (Text1.Text)

m_Report.ParameterFields.GetItemByName("k1").ClearCurrentValueAndRange
m_Report.ParameterFields.GetItemByName("k1").AddCurrentValue (Text1.Text)

m_Report.ParameterFields.GetItemByName("k2").ClearCurrentValueAndRange
m_Report.ParameterFields.GetItemByName("k2").AddCurrentValue (Text1.Text)

'*-----------------------------------------------------
'* 以下这句是否能彻底解决弹出离散值输入框问题
'*是根据vb2005 Crystal Report10 顺畅的处理结果得出的
'*2009-08-26
'CRViewer91.ParameterFieldInfo = m_Report.ParameterFields
'*传递的对象 用下面的语句
'*Set CRViewer91.ParameterFieldInfo = m_Report.ParameterFields
'*-----------------------------------------------------
'****************************************************

CRViewer91.DisplayGroupTree = False
CRViewer91.ReportSource = m_Report
CRViewer91.Zoom 1
CRViewer91.ViewReport

'*结束子程序
PROC_EXIT:
Exit Sub
'*错误处理,显示出错信息
PROC_ERR:

MsgBox " ErrNumber: " & Err.Number & vbCrLf & _
"ErrDescription: " & Err.Description & vbCrLf & _
" Module: " & Me.Caption & vbCrLf & _
" Procedure: " & "DisplayReport"

GoTo PROC_EXIT
End Sub
景联文科技
2024-06-11 广告
一、什么是数据标注?1. 数据标注定义数据标注是对未经处理的语音、图片、文本、视频等数据进行加工处理, 并转换为机器可识别信息的过程。原始数据一般通过数据采集获得, 随后的数据标注相当于对数据进行加工, 然后输送到人工智能算法和模型里完成调... 点击进入详情页
本回答由景联文科技提供
匿名用户
2017-03-06
展开全部
水晶报表的话我不是很清楚,我一般情况下用的都是finereport,但是据说水晶报表在查询的时候,一般不把查询结果直接报表预览出来,查询结果先用gridview等显示,然后绑定就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式