找回密码
 立即注册

QQ登录

只需一步,快速开始

shang414418

银牌会员

5

主题

16

帖子

2757

积分

银牌会员

积分
2757

活字格认证

最新发帖
shang414418
银牌会员   /  发表于:2013-2-27 11:07  /   查看:5438  /  回复:3
同一报表设置各用户只能看到自己的数据,如果多用户并发访问同一报表时,用户会看到的是其它人的数据

相关信息:
C1.Web.Wijmo.Controls.3.dll
版本号:3.5.20122.68
模块:C1WijReportViewer

web服务器:win2008  IIS  ASP.NET 2.0.50727
客户端:win7 IE8
代码例子:

protected void Page_Load(object sender, EventArgs e)
    {
        query = "SELECT ....... where uid =....";
        rptpath = HttpContext.Current.Server.MapPath("~/ReportLayout/MostExpensive.xml");
        rptname = "MostExpensive";

        C1ReportViewer1.CollapseToolsPanel = true;
        C1ReportViewer1.FullScreen = true;
        //C1ReportViewer1.PagedView = false;
        C1ReportViewer1.Cache.Enabled = false;
        C1ReportViewer1.Cache.ShareBetweenSessions = false;
        C1ReportViewer1.StatusBarVisible = false;
        C1ReportViewer1.Cache.Expiration = 1;
        C1ReportViewer.RegisterDocument(rptname, MakeDoc);

         C1ReportViewer1.FileName = rptname;
         C1ReportViewer1.ReportName = rptname + DateTime.Now.Ticks;

    }

protected  C1PrintDocument MakeDoc()
    {
        C1Report report = C1ReportViewer.CreateC1Report();
        report.Load(rptpath, rptname);
        report.DataSource.ConnectionString = @&quotrovider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbpath + "ersist Security Info=False";
        report.DataSource.RecordSource = query;
        report.Render();
        return report.C1Document;

    }

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-2-27 17:06:00
沙发
回复 1楼shang414418的帖子

shang414418 你好,
能否详细解释下这个问题?是需要通过用户名限制访问数据的范围吗?在你的代码中没有看到相应代码。
回复 使用道具 举报
shang414418
银牌会员   /  发表于:2013-2-28 11:55:00
板凳
每个用户只能访问相应的数据
在 report.DataSource.RecordSource = query;
中每个用户的query语句where条件是不一样的
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-2-28 17:32:00
地板
回复 3楼shang414418的帖子

请问在并发访问时,查看 query 数据源是否正确?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部