asp.net(c#)水晶報表push模式下怎樣用代碼傳遞參數?

zhoujianfan 2007-07-25 05:52:46
asp.net(c#)水晶報表push模式下怎樣用代碼傳遞參數?

試了幾次,開始顯示正常,但一刷新就出現 參數丟失 錯誤
...全文
279 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
godgreat 2007-07-26
  • 打赏
  • 举报
回复
晕,帮你顶
zhoujianfan 2007-07-26
  • 打赏
  • 举报
回复
終於搞清楚了

在 ReportDataBind(TxtHDate1.Text, TxtHDate2.Text);裡
CrystalReportViewer1.ParameterFieldInfo = paramFields;
要放在
CrystalReportViewer1.DataBind();
後面

但為什么第一次正常呢?
zhoujianfan 2007-07-26
  • 打赏
  • 举报
回复
暈,還是搞不定
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TxtHDate1.Attributes.Add("onfocus", "calendar()");
TxtHDate2.Attributes.Add("onfocus", "calendar()");

TxtHDate1.Text = DateTime.Now.ToShortDateString();
TxtHDate2.Text = DateTime.Now.ToShortDateString();
//TxtHDate2.Text = DateTime.Now.AddMonths(+1).ToShortDateString();//後1個月

CrystalReportViewer1.DisplayGroupTree = false;
CrystalReportViewer1.EnableDatabaseLogonPrompt = false;
CrystalReportViewer1.EnableParameterPrompt = false;
CrystalReportViewer1.HasCrystalLogo = false;
CrystalReportViewer1.HasDrillUpButton = false;
CrystalReportViewer1.HasToggleGroupTreeButton = false;
CrystalReportViewer1.HasViewList = false;
CrystalReportViewer1.EnableDrillDown = false;
CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX;
oCR.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4;
oCR.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape;

ReportDataBind(TxtHDate1.Text, TxtHDate2.Text);
}
else
{
oCR = (ReportDocument)Session["runCrystal"];
paramFields = (ParameterFields)Session["paramFields"];
CrystalReportViewer1.ReportSource = oCR;
CrystalReportViewer1.ParameterFieldInfo = paramFields;
}

}

在IsPostBack狀態時,CrystalReportViewer1.ParameterFieldInfo = paramFields; 都執行成功了,CrystalReportViewer1.ParameterFieldInfo.Count=1呀,怎么還是參數丟失呢?
zhoujianfan 2007-07-26
  • 打赏
  • 举报
回复
還真要用到 cookie session 啊,真麻煩

不想只為一個變量而填到DataSet裡

用TextObject的話,不能識別換行符
用FieldObject的話,不能設置DataSource
lr2651 2007-07-25
  • 打赏
  • 举报
回复
用cookie session都可以解决
ttg520 2007-07-25
  • 打赏
  • 举报
回复
ParameterFields paramFields = new ParameterFields();

ParameterField paramUnitField = new ParameterField();
ParameterDiscreteValue unitDiscreteVal = new ParameterDiscreteValue();
paramUnitField.ParameterFieldName = "PanaUnit";
if (Session["unit"] == null)
{
Session["unit"] = 1;
}
unitDiscreteVal.Value = int.Parse(Session["unit"].ToString());
paramUnitField.CurrentValues.Add(unitDiscreteVal);
paramFields.Add(paramUnitField);

ParameterField paramStartField = new ParameterField();
ParameterDiscreteValue startDateDiscreteVal = new ParameterDiscreteValue();
paramStartField.ParameterFieldName = "startDate";
string startDate = getStartDate(Session["unit"].ToString());
startDateDiscreteVal.Value = startDate;
paramStartField.CurrentValues.Add(startDateDiscreteVal);
paramFields.Add(paramStartField);

ParameterField paramEndField = new ParameterField();
ParameterDiscreteValue endDateDiscreteVal = new ParameterDiscreteValue();
paramEndField.ParameterFieldName = "endDate";
string endDate = getEndDate(Session["unit"].ToString());
endDateDiscreteVal.Value = endDate;
paramEndField.CurrentValues.Add(endDateDiscreteVal);
paramFields.Add(paramEndField);

crView.ParameterFieldInfo = paramFields;

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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