超简单问题,,,,,大家来看看

ivt 2003-10-21 10:23:26
现有一表
orders
字段如下
id,client,product,remark

1 guo ffff t
2 chen dff
3 li tttt
4 ou kkkk
……………………
现想根据用户选择一个id来显示报表,
请问该水晶报表该如何设计才能使得
用户选择了就显示相应的值的报表而
不是整个表的值呀
...全文
32 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSTerry 2003-10-21
  • 打赏
  • 举报
回复
reportOrder order=new reportOrder ();
order.SetDataSource(ds1.Tables[0]); //数据源必须为一个表
order.Refresh();
Form PrintForm=new Form();
PrintForm.Width=800;
PrintForm.Height=600;
CrystalDecisions.Windows.Forms.CrystalReportViewer NewReportViewer=new CrystalDecisions.Windows.Forms.CrystalReportViewer();
NewReportViewer.ReportSource=order;
PrintForm.Controls.Add(NewReportViewer);
NewReportViewer.ShowGroupTreeButton=false;
NewReportViewer.DisplayGroupTree=false;
NewReportViewer.ShowRefreshButton=false;
NewReportViewer.Dock=System.Windows.Forms.DockStyle.Fill;
PrintForm.Show ();
ivt 2003-10-21
  • 打赏
  • 举报
回复
OleDbConnection conn=new OleDbConnection (@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\Microsoft Visual Studio .NET 2003\Crystal Reports\Samples\Database\chs\xtreme.mdb;Persist Security Info=False");
string sql="select * from 订单 where ID=1"; OleDbDataAdapter adapter=new OleDbDataAdapter (sql,conn);
Dataset1 ds1=new Dataset1();
adapter.Fill (ds1);

reportOrder order=new reportOrder ();
order.SetDataSource(ds1);
this.crystalReportViewer1.ReportSource =order;
代码如上
水晶报表该如何做呀
在线等待
ivt 2003-10-21
  • 打赏
  • 举报
回复
回复人: CSTerry(Terry) ( ) 信誉:100
不懂你的意思呀,
是不是把水晶报表的数据源指定为ado.net数据集呀
CSTerry 2003-10-21
  • 打赏
  • 举报
回复
把数据选出来放 DataSet 的一个表里面,再把水晶报表的数据源设为该 DataSet 的指定表
haibodotnet 2003-10-21
  • 打赏
  • 举报
回复
使用水晶报表时,如何筛选记录……(作者:海波.NET,更新:2003-10-21)
------------------------------------------------
目录:
一、解决方案一
二、解决方案二
三、解决方案三
------------------------------------------------
一、解决方案一:
1、编程:使用 PUSH 模式,将筛选后记录放入数据集……
2、报表设计:不用考虑记录筛选……
------------------------------------------------
二、解决方案二:
1、编程:用 CrystalReportViewer 的 SelectionFormula 属性
字符串。获取或设置报表的记录选定公式。
2、报表设计:不用考虑记录筛选……
------------------------------------------------
三、解决方案三:
1、报表设计:在“记录选择专家”里使用“参数字段”……
2、编程:传递参数值……
haibodotnet 2003-10-21
  • 打赏
  • 举报
回复
记录选定公式运行时自定义
Web 窗体查看器的 SelectionFormula 属性 | Windows 窗体查看器的 SelectionFormula 属性

可以使用选定公式来筛选要包含在报表中的记录。还可指定对数据进行分组和排序要依据的字段。

下列示例使用户在运行时可以修改报表的选定公式。这可通过“查看器”控件或“报表引擎”实现。有关选择何种方法的信息,请参阅为自定义操作在查看器或报表引擎之间做出决定。

在运行时修改数据

创建一个报表,该报表使用示例数据库 xtreme.mdb 中的“客户”表。
添加一个选定公式,该公式包含以下内容:
{客户.去年销售额} > 11000.00
该公式返回上年度的销售额超过 $11,000.00 的客户记录。

向 Web 窗体中添加 Web 窗体查看器。
将报表绑定到 Web 窗体查看器。
向窗体添加“文本框”和“按钮”控件。
用户在“文本框”中输入一个要显示的最小值(上年度的销售额),并单击“按钮”控件提交。

双击“按钮”控件以指定 Click 事件的代码。根据使用的语言和引擎插入以下示例中的适当代码。
通过查看器控件传递选定公式

[Visual Basic]
Dim SelectFormula As String
SelectFormula = "{客户.去年销售额} > " & textBox1().Text
crystalReportViewer1.SelectionFormula = SelectFormula
[C#]
string selectFormula;
selectFormula = "{客户.去年销售额} > " + textBox1.Text;
crystalReportViewer1.SelectionFormula = selectFormula;
[C++]
String* selectFormula;
selectFormula->Concat
("{客户.去年销售额} > ", textBox1->Text);
crystalReportViewer1->SelectionFormula = selectFormula;
通过报表对象传递选定公式

[Visual Basic]
Dim selectFormula As String
selectFormula = "{客户.去年销售额} > " & textBox1().Text
Report.DataDefinition.RecordSelectionFormula = selectFormula
[C#]
string selectFormula;
selectFormula = "{客户.去年销售额} > " + textBox1.Text;
Report.DataDefinition.RecordSelectionFormula = SelectFormula;
[C++]
String* selectFormula;
selectFormula->Concat
("{客户.去年销售额} > ", textBox1->Text);
Report->DataDefinition->RecordSelectionFormula = selectFormula;
刷新相应的报表,方法是使用以下代码行结束这段代码:
CrystalReportViewer1.RefreshReport()
该公式得以更新,将使用新的最小值(上年度的销售额)。
haibodotnet 2003-10-21
  • 打赏
  • 举报
回复
你用了 PUSH 模式,而且加了记录筛选,所以……
报表设计不用考虑记录筛选……

或者
用 CrystalReportViewer 的 SelectionFormula 字符串。获取或设置报表的记录选定公式。

或者
设计水晶报表时,用“参数字段”配合“选择记录”……
程序里传递参数……

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧