Vs2008下水晶报表无法自动刷新的问题求解

tw9902 2009-08-19 10:55:24
VS2008、水晶报表10,Web程序,现在有一个问题,我在某一页面输入需要打印的数据,然后点击按钮后打开水晶报表并显示输入的数据,然而第一次打开后如需重新修改数据内容再打印时,默认显示最初加载的数据,需要刷新报表后才能更改过来,并且第二次以后都不执行报表查看器页面的page_load事件,即没有在服务器端执行。
也看了很多网上这类问题的解决办法,但是都没有用。
...全文
136 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tw9902 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 llsen 的回复:]
这里面好像只看到给sql赋值,但是没看到执行的语句啊
string str="insert into test Values (" + iRecordNo + ",convert(char(6),getdate(),12),'" + sSummary + "'";
[/Quote]

这个是写漏了,呵呵
tw9902 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 llsen 的回复:]
模式窗口每刷新,是不是缓存问题
在 模式窗口子窗口里面加
[/Quote]
-------------------
找了半天原因原来是模式窗口的问题啊 把你的这段代码加进去就可以了,真是太感谢了,一直以为是水晶报表缓存的问题
llsen 2009-08-19
  • 打赏
  • 举报
回复
   protected void btnBookPrint_Click(object sender, EventArgs e)
{
string str="insert into test Values (" + iRecordNo + ",convert(char(6),getdate(),12),'" + sSummary + "'";
string TemStr = "<Script Language = 'javascript'> var RetVal = window.showModalDialog('DrawBuyPrtDlg.aspx'"
+ ",\"\",\"dialogWidth=800px;dialogHeight=600px;help:no\");";
TemStr = TemStr + " if(RetVal==1) __doPostBack(\"lnk_ok\",\"\") </Script>";
Page.RegisterStartupScript("", TemStr);
}


这里面好像只看到给sql赋值,但是没看到执行的语句啊

string str="insert into test Values (" + iRecordNo + ",convert(char(6),getdate(),12),'" + sSummary + "'";
tw9902 2009-08-19
  • 打赏
  • 举报
回复
就是那么多了,第一个是按钮事件,写了test表然后打开第二个页面,查询出test里的数据来以后进行显示、打印。
tw9902 2009-08-19
  • 打赏
  • 举报
回复
加在报表查看器页面的page_load里吗?
llsen 2009-08-19
  • 打赏
  • 举报
回复
另外你把你相关页面的代码全部贴出来看看 就是加载报表的 load里面 按钮点击这些...
llsen 2009-08-19
  • 打赏
  • 举报
回复
模式窗口每刷新,是不是缓存问题
在 模式窗口子窗口里面加

 //页面不被缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");
tw9902 2009-08-19
  • 打赏
  • 举报
回复
哦 第一段代码加少了sql执行代码,不过应该没关系吧
tw9902 2009-08-19
  • 打赏
  • 举报
回复
one:这是数据查询页面代码

protected void btnBookPrint_Click(object sender, EventArgs e)
{
string str="insert into test Values (" + iRecordNo + ",convert(char(6),getdate(),12),'" + sSummary + "'";
string TemStr = "<Script Language = 'javascript'> var RetVal = window.showModalDialog('DrawBuyPrtDlg.aspx'"
+ ",\"\",\"dialogWidth=800px;dialogHeight=600px;help:no\");";
TemStr = TemStr + " if(RetVal==1) __doPostBack(\"lnk_ok\",\"\") </Script>";
Page.RegisterStartupScript("", TemStr);
}


two:这是报表查看器页面代码

protected void Page_Load(object sender, EventArgs e)
{
string str = "Select RecordNo,SellDate,Summary From test ";
DataSet ds = fdv.dsSqlSelectDate(str, "dtrpttest");
ReportDocument myReport = new ReportDocument();
string reportPath = Server.MapPath("crttest.rpt");
myReport.Load(reportPath);
myReport.SetDataSource(ds);
CrystalReportViewer1.ReportSource = myReport;
}
tw9902 2009-08-19
  • 打赏
  • 举报
回复
也就是更改了查询数据再次绑定报表时显示的还是上次的内容。
阿泰 2009-08-19
  • 打赏
  • 举报
回复
直接上代码吧,这个页面上的全部代码
llsen 2009-08-19
  • 打赏
  • 举报
回复
看了好久还不是很明白

直接上代码吧
tw9902 2009-08-19
  • 打赏
  • 举报
回复
麻烦各位大哥踊跃解难啊。。

4,816

社区成员

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

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