水晶报表主从表问题

wcfboy1 2010-12-21 10:33:22
我用的dataset.xsd作为数据源
报销设计用到主从表 出库和出库明细 浏览时候报
登录失败。详细资料: crdb_adoplus : 未将对象引用设置到对象的实例。文件 C:\DOCUME~1\wang\LOCALS~1\Temp\UplowReport {518B3CFD-9F92-490A-8950-3E2B6FAF111E}.rpt

但是我把自表数据源和报表字段全部删掉 只留主表就没问题

我后台代码如下

string uplowid = "55";

string sql = string.Format(@"SELECT SerialID, BillId, DepotClass, CreateTime,CheckTime,TotalNum, TotalWeight, Memo, CreatePerson, CheckPerson, State, YSerialID, Flag FROM tblUpLow where serialid={0};", uplowid);
string sql1= string.Format(@"SELECT tblUPLowDetail.DetailID, tblUPLowDetail.MainID, tblUPLowDetail.ProductID,
tblUPLowDetail.LocationID, tblUPLowDetail.Num, tblUPLowDetail.Level,
tblUPLowDetail.Batch, tblUPLowDetail.Weight, tblUPLowDetail.LocationCode,
tblUPLowDetail.DepotID, tblDLocation.LocationName, tblDepot.DepotName,
tblProduct.ProductCode, tblProduct.ProductName
FROM tblUPLowDetail INNER JOIN
tblProduct ON tblUPLowDetail.ProductID = tblProduct.ProductId INNER JOIN
tblDepot ON tblUPLowDetail.DepotID = tblDepot.DepotID INNER JOIN
tblDLocation ON tblUPLowDetail.LocationID = tblDLocation.LocationID where mainid={0};", uplowid);

DataTable dt = ACO.DBUtility.DbHelperSQL.ExecuteDataTable(sql, "tblUpLow");
DataTable dt1 = ACO.DBUtility.DbHelperSQL.ExecuteDataTable(sql1, "tblUpLowDetail");
CrystalReportSource1.ReportDocument.Load(Server.MapPath("~/cryreport/UplowReport.rpt"));
CrystalReportSource1.ReportDocument.SetDataSource(dt);
CrystalReportSource1.ReportDocument.SetDataSource(dt1);
CrystalReportSource1.DataBind();
CrystalReportViewer1.ReportSource = CrystalReportSource1;
CrystalReportViewer1.DataBind();


请问是怎么回事
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcfboy1 2010-12-27
  • 打赏
  • 举报
回复
谢谢上面两位,问题解决
东莞寻香苑 2010-12-21
  • 打赏
  • 举报
回复
不好意思,我在上贴做的和你一样了.
设你的水晶报表中存在这两个表tblUpLow,tblUpLowDetail

DataTable dt = ACO.DBUtility.DbHelperSQL.ExecuteDataTable(sql, "tblUpLow");
DataTable dt1 = ACO.DBUtility.DbHelperSQL.ExecuteDataTable(sql1, "tblUpLowDetail");
ReportDocument oCR = new ReportDocument();
oCR.Load(Server.MapPath("~/cryreport/UplowReport.rpt"));
oCR.Database.Tables["tblUpLow"].SetDataSource(dt);
oCR.Database.Tables["tblUpLowDetail"].SetDataSource(dt1);
CrystalReportViewer1.ReportSource = oCR;


当DataSet中有多个表时(或有子报表时),尽可能用这种方式赋值:http://blog.csdn.net/csui2008/archive/2010/06/18/5678281.aspx
省得出错



东莞寻香苑 2010-12-21
  • 打赏
  • 举报
回复
DataTable dt = ACO.DBUtility.DbHelperSQL.ExecuteDataTable(sql, "tblUpLow");
DataTable dt1 = ACO.DBUtility.DbHelperSQL.ExecuteDataTable(sql1, "tblUpLowDetail");
ReportDocument oCR = new ReportDocument();
oCR.Load(Server.MapPath("~/cryreport/UplowReport.rpt"));
oCR.SetDataSource(dt);
oCR.SetDataSource(dt1);
CrystalReportViewer1.ReportSource = oCR;


阿泰 2010-12-21
  • 打赏
  • 举报
回复
CrystalReportSource1.ReportDocument.SetDataSource(dt);
CrystalReportSource1.ReportDocument.SetDataSource(dt1);

第2句代码覆盖掉了第1句代码的效果,达不到一次性传递两个表给报表的目的。
先把两个表放到一个dataset中,然后把ds传递给报表试试

DataSet ds1 = new DataSet();
ds1.Tables.Add(dt);
ds1.Tables.Add(dt1);
CrystalReportSource1.ReportDocument.SetDataSource(ds);
第1章 登录验证模块 1 1.1 开发站点前的配置 1 1.1.1 创建Web站点 1 1.1.2 使用站点安全工具配置身份验证模式 2 1.1.3 配置站点的数据存储方式 4 1.1.4 定制自己的数据存储方式 4 1.2 最普通的登录方式 6 1.2.1 用户注册功能 6 1.2.2 用户的登录功能 7 1.2.3 修改密码功能 8 1.2.4 在登录页面中添加注册导航功能 8 1.2.5 显示登录用户名和用户状态功能 8 1.2.6 根据用户登录身份显示不同效果页功能 9 1.3 基于角色的登录方式 10 1.3.1 在应用程序中启用角色 10 1.3.2 创建角色 10 1.3.3 创建角色访问规则 11 1.3.4 赋予用户角色权限 11 1.3.5 验证角色的登录 12 1.4 匿名用户的授权管理 12 1.5 小结 13 第2章 缓存管理模块 14 2.1 数据库缓存依赖的优点 14 2.2 开始使用缓存 15 2.2.1 开启应用程序的缓存功能 15 2.2.2 配置缓存依赖的数据库 15 2.2.3 为SQL Server启用缓存通知 16 2.3 控件级数据缓存功能 16 2.3.1 添加时间戳和数据 16 2.3.2 观察缓存数据的变化 18 2.4 页面级数据缓存依赖功能 18 2.4.1 配置页面的缓存属性 18 2.4.2 完善模块中两个功能的导航 19 2.5 小结 20 第3章 个性化设置模块 21 3.1 简单类型的个性化设置功能 21 3.1.1 设置个性化的项目 21 3.1.2 配置个性化信息 22 3.1.3 个性化用户登录站点 22 3.1.4 保存个性化设置 22 3.1.5 显示个性化设置 23 3.2 复杂类型的个性化设置功能 23 3.2.1 设计复杂个性化的项目 24 3.2.2 配置复杂项目 25 3.2.3 保存复杂项目的设置 25 3.2.4 获取复杂项目的设置并显示 26 3.3 匿名用户的个性化设置功能 27 3.3.1 启用匿名用户的个人配置属性 28 3.3.2 设计匿名用户的登录功能 28 3.3.3 将匿名用户的个性化设置移植到已验证用户 30 3.4 完善系统对3个功能的导航 31 3.5 小结 31 第4章 投票模块 32 4.1 一个简单的投票系统 32 4.1.1 设计投票功能的数据存储方式 32 4.1.2 投票项目管理功能 33 4.1.3 投票功能 37 4.1.4 图形化显示投票结果功能 38 4.2 防止重复投票技术 40 4.2.1 利用Session对象 40 4.2.2 利用Cookies对象 41 4.2.3 验证IP和登录时间 41 4.2.4 小范围调查 42 4.3 一个完整的投票系统 42 4.3.1 投票系统的功能模块 42 4.3.2 投票系统的数据库架构 43 4.3.3 数据库中数据之间的关系 43 4.3.4 投票主题管理 44 4.3.5 投票项目管理 52 4.3.6 投票功能管理 54 4.3.7 投票系统后台权限管理 59 4.4 小结 60 第5章 RSS模块 61 5.1 RSS的定义 61 5.2 RSS的作用 61 5.3 RSS的订阅原理 62 5.3.1 RSS的工作原理 62 5.3.2 RSS订阅工具的使用 63 5.4 在网站内加入RSS功能 65 5.4.1 使用Microsoft提供的RSS工具包 65 5.4.2 一个简单的RSS阅读器 66 5.4.3 一个复杂的RSS阅读器 67 5.4.4 让站点提供订阅功能 69 5.5 小结 70 第6章 在线编辑模块 71 6.1 在线编辑的原理 71 6.2 编辑器的界面 71 6.3 一个简单的在线编辑器 72 6.3.1 在线编辑窗口的界面设计 72 6.3.2 在线编辑的功能实现 73 6.3.3 在线编辑的运行效果 74 6.4 多功能在线编辑器的介绍 74 6.4.1 FreeTextBox编辑器 74 6.4.2 FCKEditor在线编辑器 76 6.5 小结 79 第7章 在线支付模块 80 7.1 在线支付介绍 80 7.1.1 在线支付的安全保障 80 7.1.2 在线支付的优点 80 7.2 在线支付的流程 81 7.3 使用支付宝实现在线支付 81 7.3.1 支付宝接口概述 81 7.3.2 支付宝接口服务下载 81 7.4 使用支付宝实现在线支付的实例 82 7.4.1 在项目中加入支付宝程序 82 7.4.2 设计订单提交功能 82 7.4.3 获取支付成功后的返回信息 84 7.4.4 设置支付过程中的通知 88 7.4.5 实现订单到支付宝的提交 90 7.5 小结 92 第8章 电子邮件模块 93

4,820

社区成员

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

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