如何控制水晶报表某一字段等于某些值的记录不显示出来的代码

时间:2021-07-19 11:01:28
    不是在设计水晶报表时过滤数据,这样不灵活。我想在自己程序中控制,例如我可以选择不需显示的值放到列表中,按【确定】就OK。

6 个解决方案

#1


楼主能清楚点吗?简单的说下你要求

#2


不好意思,我重新说一下:

   程序运行时,在水晶报表显示之前,出现一个窗体,在该窗体中可以设置水晶报表将要显示的记录,例如把数据库中字段A等于某些值的记录过滤掉,剩下的显示出来。

#3


你是用PULL模式还是PUSH模式呢

PUSH模式的话,只要把Datatable里数据过去重新传给报表就行了。

#4


用push模式去做吧

#5


引用你另一个贴的代码:
Dim MyCn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Application.StartupPath & "\MyAccess.mdb") 
    Dim MyCommand As OleDbCommand 
    Dim MyDataAdapter As OleDbDataAdapter 
    Dim MyDataSet As New DataSet() 
    Dim oRpt As New CrystalReport1() 

MyCommand=New OleDbCommand("Select 表1.a,表1.b,表2.c,表2.d From 表1,表2 Where 表1.ID=表2.ID",MyCn) 
MyDataAdapter =New oleDbDataAdapter(MyCommand) 
MyDataAdapter.fill(MyDataSet,"TableName") 

oRpt.SetDataSource(MyDataSet.Tables(0)) 
CrystalReportViewer1.ReportSource = oRpt 
-------------
将你以上代码稍改一下:
将代码:MyCommand=New OleDbCommand("Select 表1.a,表1.b,表2.c,表2.d From 表1,表2 Where 表1.ID=表2.ID",MyCn) 
改为:  MyCommand=New OleDbCommand("Select 表1.a,表1.b,表2.c,表2.d From 表1,表2 Where 表1.ID=表2.ID  and 表1.姓名='ABC'",MyCn) 

以上加了  and 表1.姓名='ABC' 就会按条件选择表1中姓名是abc的数据了,当然这是举例,你可以按实际的要求去做。
你后来好像用到了视图,那么你的以上语句应该是改为查询视图。

#6


你可以用一个临时表存储从数据库中取得的数据,然后再对这个临时表操作(过滤)即可,最后把
CrystalReportViewer1.ReportSource =Tbltemp

#1


楼主能清楚点吗?简单的说下你要求

#2


不好意思,我重新说一下:

   程序运行时,在水晶报表显示之前,出现一个窗体,在该窗体中可以设置水晶报表将要显示的记录,例如把数据库中字段A等于某些值的记录过滤掉,剩下的显示出来。

#3


你是用PULL模式还是PUSH模式呢

PUSH模式的话,只要把Datatable里数据过去重新传给报表就行了。

#4


用push模式去做吧

#5


引用你另一个贴的代码:
Dim MyCn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Application.StartupPath & "\MyAccess.mdb") 
    Dim MyCommand As OleDbCommand 
    Dim MyDataAdapter As OleDbDataAdapter 
    Dim MyDataSet As New DataSet() 
    Dim oRpt As New CrystalReport1() 

MyCommand=New OleDbCommand("Select 表1.a,表1.b,表2.c,表2.d From 表1,表2 Where 表1.ID=表2.ID",MyCn) 
MyDataAdapter =New oleDbDataAdapter(MyCommand) 
MyDataAdapter.fill(MyDataSet,"TableName") 

oRpt.SetDataSource(MyDataSet.Tables(0)) 
CrystalReportViewer1.ReportSource = oRpt 
-------------
将你以上代码稍改一下:
将代码:MyCommand=New OleDbCommand("Select 表1.a,表1.b,表2.c,表2.d From 表1,表2 Where 表1.ID=表2.ID",MyCn) 
改为:  MyCommand=New OleDbCommand("Select 表1.a,表1.b,表2.c,表2.d From 表1,表2 Where 表1.ID=表2.ID  and 表1.姓名='ABC'",MyCn) 

以上加了  and 表1.姓名='ABC' 就会按条件选择表1中姓名是abc的数据了,当然这是举例,你可以按实际的要求去做。
你后来好像用到了视图,那么你的以上语句应该是改为查询视图。

#6


你可以用一个临时表存储从数据库中取得的数据,然后再对这个临时表操作(过滤)即可,最后把
CrystalReportViewer1.ReportSource =Tbltemp