CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  图表区

水晶报表入门问题?在线等

楼主youhaodeyi(友好的翼)2006-03-09 14:15:35 在 .NET技术 / 图表区 提问

我在程序中手写了一个DataSet,怎么和水晶报表连接起来?我看了看网上的教程,上面说要用向导创建一个DataSet,然后在和水晶报表连接,可是我的DataSet包括有很多表,我该怎么办?谢谢 问题点数:20、回复次数:4Top

1 楼youhaodeyi(友好的翼)回复于 2006-03-09 16:23:22 得分 0

我在作水晶报表的时候,为什么总提示登陆失败,我用服务器控件做的DataSet登陆没问题,为什么水晶报表就有问题?Top

2 楼Pek_zfs()回复于 2006-03-10 11:58:31 得分 15

希望对你有帮助,我在asp.net上用的。  
   
  Imports   CrystalDecisions.CrystalReports.Engine  
  Imports   CrystalDecisions.Web  
   
  Public   Class   WFrmNotReigningInfo  
          Inherits   System.Web.UI.Page  
          Dim   oRptd   As   ReportDocument   =   New   ReportDocument  
          Private   Flag   As   String  
   
  #Region   "   Web   窗体设计器生成的代码   "  
   
          '该调用是   Web   窗体设计器所必需的。  
          <System.Diagnostics.DebuggerStepThrough()>   Private   Sub   InitializeComponent()  
   
          End   Sub  
          Protected   WithEvents   CrystalReportViewer1   As   CrystalDecisions.Web.CrystalReportViewer  
   
          '注意:   以下占位符声明是   Web   窗体设计器所必需的。  
          '不要删除或移动它。  
          Private   designerPlaceholderDeclaration   As   System.Object  
   
          Private   Sub   Page_Init(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Init  
                  'CODEGEN:   此方法调用是   Web   窗体设计器所必需的  
                  '不要使用代码编辑器修改它。  
                  InitializeComponent()  
          End   Sub  
   
  #End   Region  
   
          Private   Sub   Page_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                  '在此处放置初始化页的用户代码  
                  '根据登陆信息取得当前操作类型  
                  Flag   =   Session("ModuleType").ToString  
   
                  Dim   ds   As   New   DsNotReigningInfo  
                  Dim   ds2   As   New   DsNotReigningInfo  
   
                  Dim   strCon   As   String  
   
                  '自行填充数据集ds()  
                  strCon   =   System.Configuration.ConfigurationSettings.AppSettings.Get("CMPSDBConnection")  
                  Dim   CN   As   New   Data.OracleClient.OracleConnection(strCon)  
                  '打开数据连接  
                  CN.Open()  
   
                  Dim   da   As   New   Data.OracleClient.OracleDataAdapter("SELECT   a.LEAVE_ID,b.C_NAME   as   P_CODE,a.BEGIN_DATE,a.END_DATE,a.OP_DATE,"   &   _  
                                                                                  "   c.C_NAME   as   OPERATOR,d.CLASS_NAME   as   CAUSATION,e.C_NAME   as   IMPOWER_P"   &   _  
                                                                                  "   FROM   CM_T6016   a,(SELECT   *   FROM   CM_T1002)   b,(SELECT   *   FROM   CM_T1002)   c,"   &   _  
                                                                                  "   (SELECT   *   FROM   CM_T8001)   d,(SELECT   *   FROM   CM_T1002)   e"   &   _  
                                                                                  "   WHERE   (a.P_CODE=b.P_CODE)   AND   (a.OPERATOR=c.P_CODE)   AND   (a.CAUSATION=d.CLASS_CODE)"   &   _  
                                                                                  "   AND   (a.IMPOWER_P=e.P_CODE)   AND   exists(SELECT   *   FROM   CM_T1002   WHERE   P_CODE=a.IMPOWER_P)"   &   _  
                                                                                  "   AND   MODULE_FLAG='"   &   Flag   &   "'",   CN)  
   
                  da.Fill(ds,   "CM_T6016")  
   
                  Dim   da2   As   New   Data.OracleClient.OracleDataAdapter("SELECT   a.LEAVE_ID,b.C_NAME   as   P_CODE,a.BEGIN_DATE,a.END_DATE,a.OP_DATE,"   &   _  
                                                                                  "   c.C_NAME   as   OPERATOR,d.CLASS_NAME   as   CAUSATION,a.IMPOWER_P"   &   _  
                                                                                  "   FROM   CM_T6016   a,(SELECT   *   FROM   CM_T1002)   b,(SELECT   *   FROM   CM_T1002)   c,(SELECT   *   FROM   CM_T8001)   d"   &   _  
                                                                                  "   WHERE   (a.P_CODE=b.P_CODE)   AND   (a.OPERATOR=c.P_CODE)   AND   (a.CAUSATION=d.CLASS_CODE)"   &   _  
                                                                                  "   AND   not   exists(SELECT   *   FROM   CM_T1002   WHERE   P_CODE=a.IMPOWER_P)"   &   _  
                                                                                  "   AND   MODULE_FLAG='"   &   Flag   &   "'",   CN)  
                  da2.Fill(ds2,   "CM_T6016")  
   
                  ds.Merge(ds2)  
   
                  oRptd.Load("D:\CMPS-CrystalReport\CMPSCrystalReport\Report\RptNotReigningInfo.rpt")  
                  oRptd.Refresh()  
   
                  oRptd.SetDataSource(ds)  
   
                  CrystalReportViewer1.ReportSource   =   oRptd  
          End   Sub  
   
  End   Class  
  Top

3 楼youhaodeyi(友好的翼)回复于 2006-03-11 09:18:40 得分 0

能解释一下这些代码是干什么用的吗?谢谢Top

4 楼xwdd129(高手就是:不出手)回复于 2006-03-13 09:12:27 得分 5

不是在向导里创建DataSet,而是选择对应的DataSet,然后把里面的字段拖到报表上进行设计,显示的时候用代码把多个表数据填充到DataSet即可Top

相关问题

  • 水晶报表问题(急!在线等)
  • 水晶报表问题,在线等!!!
  • 在线 求 水晶报表注册码
  • 水晶报表的问题,在线等
  • 超级水晶报表入门问题
  • 关于水晶报表的问题在于在线等
  • 何谓水晶报表?(简单,在线等待)
  • 如何向水晶报表中传入参数(在线等待)
  • 水晶报表的用法?在线等待......
  • 水晶报表如何实现分列显示?在线等待。

关键词

  • 水晶报表
  • 代码
  • 数据
  • 连接
  • ds
  • code
  • date
  • t1002
  • impower
  • strcon

得分解答快速导航

  • 帖主:youhaodeyi
  • Pek_zfs
  • xwdd129

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo