水晶报表多人同时打印,内容串了;

lxh_csdn 2011-06-15 11:52:31
我用asp.net + 水晶报表开发的一个功能;比如说出库单打印,张三和李四都在操作,张三点击打印单据A,系统出来单据A的预览页面;然后李四点击单据B,系统出来单据B的预览页面;然后张三继续点击打印或导出为PDF,问题来了,打出来或pdf出来的居然是李四的B单据!!

水晶报表文件rpt链接的数据源是数据库表prt_form;

怎么解决这个问题呢。多谢;
...全文
79 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxh_csdn 2011-06-15
  • 打赏
  • 举报
回复
别的都没有问题,问题是多人同时打印的时候,如果大家在打印预览停留了一段时间,期间其它人也打印了,你在你的预览界面点打印或导出,看到的是其它人的内容了;

咋整哦;

阿泰 2011-06-15
  • 打赏
  • 举报
回复
代码上看没什么问题。
你在在界面把Session["login"].ToString() 写出来看看,是不是串了?
是不是session在哪里变化了?
lxh_csdn 2011-06-15
  • 打赏
  • 举报
回复
prt_in.rpt文件,我是在设计时将数据库表prt_data上的字段拖入;

数据库表prt_data,我是用来存储打印数据;用户在页面点击打印时,将要打印的内容insert到这个表;
lxh_csdn 2011-06-15
  • 打赏
  • 举报
回复

public partial class Prt_in : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void CryView_Init(object sender, EventArgs e)
{
ForCrystalReport();
}

protected void ForCrystalReport()
{
ReportDocument doc = new ReportDocument();
doc.Load(Server.MapPath("prt_in.rpt"));

string sql = "select * from prt_data where prt_user = '" + Session["login"].ToString() + "'";
string DBConfig_sql = @"Data Source=aaa;Initial Catalog=bbb;User ID=ccc;Password=ddd";
DataSet ds = new DataSet();
SqlConnection sqlCon = new SqlConnection(DBConfig_sql);
SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
SqlDataAdapter sqlAd = new SqlDataAdapter();
sqlAd.SelectCommand = sqlCmd;
sqlAd.Fill(ds, "sql");

doc.SetDataSource(ds.Tables["sql"]);

this.CryView.ReportSource = doc;
}
}
阿泰 2011-06-15
  • 打赏
  • 举报
回复
应该是报表对象或数据层面的缓存处理不当导致的
贴代码出来看看
阿泰 2011-06-15
  • 打赏
  • 举报
回复
按我4楼说的做一下,谢谢。

4,819

社区成员

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

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