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

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

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

怎么解决这个问题呢。多谢;
...全文
50 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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楼说的做一下,谢谢。
回复
相关推荐
发帖
图表区
创建于2007-09-28

4810

社区成员

.NET技术 图表区
申请成为版主
帖子事件
创建了帖子
2011-06-15 11:52
社区公告
暂无公告