求救报表传递参数问题

kouming 2004-12-17 11:08:17
Dim paramFields As New CrystalDecisions.Shared.ParameterFields
Dim paramField As New CrystalDecisions.Shared.ParameterField
Dim discreteVal As New CrystalDecisions.Shared.ParameterDiscreteValue
paramField.ParameterFieldName = "@开始时间"
discreteVal.Value = "2002/12/12"
paramField.CurrentValues.Add(discreteVal)
paramFields.Add(paramField)
CrystalReportViewer1.ParameterFieldInfo = paramFields

CrystalReportViewer1.ReportSource = "D:\\柱状图.rpt"
加栽之后为什么没有变化呢。。还是那个默认的时间参数。
请各位多帮忙阿
...全文
215 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinzhe 2004-12-27
  • 打赏
  • 举报
回复
在报表里面添加文本Text1

ReportDocument crReportDocument = new CrystalReport1();
this.CrystalReportViewer1.ReportSource = crReportDocument;
TextObject to ;
to = (TextObject)crReportDocument.ReportDefinition.ReportObjects["Text1"];
to.Text = "我是最棒的!";
lyvvvv 2004-12-22
  • 打赏
  • 举报
回复
看看下面得代码有没有用
private bool bPrint=false;
private string sReportname="";
private string[] sParametername;
private object[] sParametervalue;
private DataSet dsReport;
private void frmReport_Load(object sender, System.EventArgs e)
{
if(bPrint)this.Opacity =0;
else this.WindowState =System.Windows.Forms.FormWindowState.Maximized;

CrystalDecisions.CrystalReports.Engine.ReportDocument doc=new CrystalDecisions.CrystalReports.Engine.ReportDocument();
doc.Load(SysInfo.sReportPath+sReportname);
if(dsReport != null)doc.SetDataSource(dsReport.Tables[0]);
if(sReportname.StartsWith("CaseReport"))
{
doc.OpenSubreport("CaseSubReport1").SetDataSource(dsReport.Tables["procsk"]);
doc.OpenSubreport("CaseSubReport2").SetDataSource(dsReport.Tables["pathdrug"]);
}

if(sParametername!=null)
{
for(int i=0;i<sParametername.Length;i++)
{
try
{
doc.SetParameterValue(sParametername[i],sParametervalue[i]);
}
catch(Exception ee)
{
MessageBox.Show("字段名称:"+sParametername[i]+"。"+ee.Message);
}
}
}
this.crystalReportViewer1.ReportSource=doc;
this.crystalReportViewer1.RefreshReport();
if(bPrint)
{
this.crystalReportViewer1.PrintReport();
this.Close();
}
}
kouming1018 2004-12-22
  • 打赏
  • 举报
回复
这个问题原来我们做项目的时候也遇到过,后来简单的处理为,用这个参数去得到dataset,然后重新去绑定报表。
jrjj 2004-12-21
  • 打赏
  • 举报
回复
直接调用水晶报表对象的方法,报表实例.SetParameterValue("参数名", Value),
刚刚在另一页看来的,我也才搞定这个问题
kouming 2004-12-21
  • 打赏
  • 举报
回复
不是吧。。大家快帮我想想办法阿。。急死了~
jrjj 2004-12-21
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3609/3609047.xml?temp=.4148218
kouming 2004-12-21
  • 打赏
  • 举报
回复
回 jrjj(渐入佳境) :你在哪看见的?网址能发过来吗?谢谢~
kouming 2004-12-20
  • 打赏
  • 举报
回复
回 goody9807() :我就是按照你的这个方法传的,可是报表的结果还是水晶报表开发环境中的结果.参数根本没传进去阿
goody9807 2004-12-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/goody9807/articles/163666.aspx
kouming 2004-12-20
  • 打赏
  • 举报
回复
各位帮忙顶顶阿。。谢~
kouming1018 2004-12-20
  • 打赏
  • 举报
回复
关注ing
wangxt 2004-12-17
  • 打赏
  • 举报
回复
帮你顶
sean168 2004-12-17
  • 打赏
  • 举报
回复
//传送参数
ParameterValues paramValues=new ParameterValues();
//定义参数
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
discreteVal.Value=toyear;
paramValues.Add(discreteVal);

discreteVal = new ParameterDiscreteValue();
discreteVal.Value=fromyear;
paramValues.Add(discreteVal);



//将参数
discreteVal.Kind =DiscreteOrRangeKind.DiscreteValue;
ParameterValues paramValue=new ParameterValues();
for(int i=0;i<=paramValues.Count-1;i++)
{
paramValue.Clear();
paramValue.Add(paramValues[i]);
rptyi.DataDefinition.ParameterFields[i].ApplyCurrentValues(paramValue);
shaodeli 2004-12-17
  • 打赏
  • 举报
回复
不清楚。帮忙看看
kouming 2004-12-17
  • 打赏
  • 举报
回复
没人顶,我自己顶一下。。。。
kouming 2004-12-17
  • 打赏
  • 举报
回复
我现在很想知道,水晶报表的参数字段在筛选使用的到底是不是currentValue的值!还有是不是每次改变后都必须用ApplyCurrentValue来吧CurrentValue应用???
如果有VB的代码,能否贴一下呢?我是个初学者,C#还不是很熟悉。谢谢!

4,820

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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