全部分问个问题 ——<水晶报表子报表数据源的问题>

三杨 2013-10-17 02:18:08
主报表中有两个子报表<subrep1>和<subrep2>,有两个SQL语句

string sqlCommand1 = "select 姓名 from 用户名"

string sqlCommand2 = "select 电话 from 用户表"

请问,如何把这两个SQL语句的查询数据集分别给subrep1和subrep2。

给主报PUSH数据我会写,给子报表就不会啦,哈~ 虚心求教

       private void crystalReportViewer1_Load(object sender, EventArgs e)
{

CrystalReport1 cr = new CrystalReport1();

string sqlString = "select 姓名 from 用户名 ";

//GetData()是我写好的方法,尽管用
cr.SetDataSource(GetData(sqlString));

crystalReportViewer1.ReportSource = cr;



}
...全文
260 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
三杨 2013-10-17
  • 打赏
  • 举报
回复
引用 27 楼 happy09li 的回复:
我平常没怎么来过论坛,就只有30分,都奉上
熙风 2013-10-17
  • 打赏
  • 举报
回复
http://blog.csdn.net/happy09li/article/details/6931959 看看这个吧,不行就网上搜搜
三杨 2013-10-17
  • 打赏
  • 举报
回复
引用 27 楼 happy09li 的回复:
我大概明白啥意思了,接下来我自己测试。 斑竹,真心说句,谢谢你。
熙风 2013-10-17
  • 打赏
  • 举报
回复



三杨 2013-10-17
  • 打赏
  • 举报
回复
引用 23 楼 happy09li 的回复:
[quote=引用 22 楼 yangxiaozi 的回复:]
[quote=引用 21 楼 happy09li 的回复:]
把你项目的解决方案截图贴出来,贴报表那个文件夹下面的

[/quote]

你的子报表呢?


这个是主报表,你还差子报表文件啊[/quote]

不是这样插入吗?
熙风 2013-10-17
  • 打赏
  • 举报
回复
引用 22 楼 yangxiaozi 的回复:
[quote=引用 21 楼 happy09li 的回复:]
把你项目的解决方案截图贴出来,贴报表那个文件夹下面的

[/quote]

你的子报表呢?


这个是主报表,你还差子报表文件啊
三杨 2013-10-17
  • 打赏
  • 举报
回复
引用 21 楼 happy09li 的回复:
把你项目的解决方案截图贴出来,贴报表那个文件夹下面的

熙风 2013-10-17
  • 打赏
  • 举报
回复
把你项目的解决方案截图贴出来,贴报表那个文件夹下面的
三杨 2013-10-17
  • 打赏
  • 举报
回复
引用 19 楼 happy09li 的回复:
cr.Subreports["Subreport2.rpt"].SetDataSource(GetData(sql_hj)); 你这个字报表到底叫什么名字啊,你怎么上面3个地方名字都不一样呢?
Name = Subreport2; SubreportName = "付款方式汇总"
熙风 2013-10-17
  • 打赏
  • 举报
回复
cr.Subreports["Subreport2.rpt"].SetDataSource(GetData(sql_hj)); 你这个字报表到底叫什么名字啊,你怎么上面3个地方名字都不一样呢?
三杨 2013-10-17
  • 打赏
  • 举报
回复
引用 17 楼 happy09li 的回复:
[quote=引用 16 楼 yangxiaozi 的回复:] [quote=引用 14 楼 happy09li 的回复:] [quote=引用 12 楼 yangxiaozi 的回复:] [quote=引用 10 楼 happy09li 的回复:] 还有,你主报表上面添加子报表没有??
右击 - 插入 - 子报表 是这样的不[/quote] 是的[/quote] 那我都加过了。 cr.Subreports["subrep2.rpt"].SetDataSource(GetData(sqlCommand2 )); 这一行报错“未将对象引用设置到对象的实例。” 是不是要把子报表先声明一下?[/quote] 把你现在的完整代码贴出来我看看[/quote]
namespace CrystalReportsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //ADO
        private SqlConnection sqlCon = new SqlConnection();
        //SqlCmd
        private SqlCommand sqlCmd = new SqlCommand();

        private void Form1_Load(object sender, EventArgs e)
        {
            if (myConn(Command.sqlConString) == false)
            {
                MessageBox.Show("数据库连接失败,请检查网络!");
            }
            
        }

        //打开数据库连接
        private bool myConn(string ConStr)
        {
            sqlCon.ConnectionString = ConStr;

            sqlCon.Open();

            if (sqlCon.State == ConnectionState.Open)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        //返回数据集
        private DataTable GetData(string sqlString)
        {
            string sqlCommand = sqlString;

            using (SqlConnection conn = new SqlConnection(Command.sqlConString))
            {

                SqlDataAdapter da = new SqlDataAdapter(sqlCommand, Command.sqlConString);

                DataSet ds = new DataSet();

                da.Fill(ds);

                return ds.Tables[0];

            }
        }

        private void crystalReportViewer1_Load(object sender, EventArgs e)
        {
          //合计_付款方式汇总
            string sql_hj = "select 付款方式,sum(实收金额) as 实收金额 from 桑那帐单稽核表 where 收银时间 between '" + Command.get_startTime() + "' and '" + Command.get_endTime() + "' group by 付款方式";

            CrystalReport1 cr = new CrystalReport1();

            cr.Subreports["Subreport2.rpt"].SetDataSource(GetData(sql_hj));

            crystalReportViewer1.ReportSource = cr;    

        }


    }
}
熙风 2013-10-17
  • 打赏
  • 举报
回复
引用 16 楼 yangxiaozi 的回复:
[quote=引用 14 楼 happy09li 的回复:] [quote=引用 12 楼 yangxiaozi 的回复:] [quote=引用 10 楼 happy09li 的回复:] 还有,你主报表上面添加子报表没有??
右击 - 插入 - 子报表 是这样的不[/quote] 是的[/quote] 那我都加过了。 cr.Subreports["subrep2.rpt"].SetDataSource(GetData(sqlCommand2 )); 这一行报错“未将对象引用设置到对象的实例。” 是不是要把子报表先声明一下?[/quote] 把你现在的完整代码贴出来我看看
三杨 2013-10-17
  • 打赏
  • 举报
回复
引用 14 楼 happy09li 的回复:
[quote=引用 12 楼 yangxiaozi 的回复:] [quote=引用 10 楼 happy09li 的回复:] 还有,你主报表上面添加子报表没有??
右击 - 插入 - 子报表 是这样的不[/quote] 是的[/quote] 那我都加过了。 cr.Subreports["subrep2.rpt"].SetDataSource(GetData(sqlCommand2 )); 这一行报错“未将对象引用设置到对象的实例。” 是不是要把子报表先声明一下?
熙风 2013-10-17
  • 打赏
  • 举报
回复
那应该照我上面的写法没问题,运行可以看到数据的
熙风 2013-10-17
  • 打赏
  • 举报
回复
引用 12 楼 yangxiaozi 的回复:
[quote=引用 10 楼 happy09li 的回复:] 还有,你主报表上面添加子报表没有??
右击 - 插入 - 子报表 是这样的不[/quote] 是的
熙风 2013-10-17
  • 打赏
  • 举报
回复
引用 11 楼 yangxiaozi 的回复:
斑竹,这样说有点慢,能Q说不? 怕被打扰的话,解决完这问题,您立马把我删除,行不
Q上不了
三杨 2013-10-17
  • 打赏
  • 举报
回复
引用 10 楼 happy09li 的回复:
还有,你主报表上面添加子报表没有??
右击 - 插入 - 子报表 是这样的不
三杨 2013-10-17
  • 打赏
  • 举报
回复
引用 9 楼 happy09li 的回复:
[quote=引用 8 楼 yangxiaozi 的回复:] [quote=引用 7 楼 happy09li 的回复:] [quote=引用 5 楼 yangxiaozi 的回复:] [quote=引用 3 楼 happy09li 的回复:] [quote=引用 2 楼 yangxiaozi 的回复:] [quote=引用 1 楼 happy09li 的回复:] 你这个根本就用不着用子报表啊 给子报表数据源,你父子报表没关联,不用其他设置
 crystalReportViewer1.Subreports["subrep1.rpt"].SetDataSource(GetData(sqlCommand1 ));
 crystalReportViewer1.Subreports["subrep2.rpt"].SetDataSource(GetData(sqlCommand2 ));
用不用子报表,这个我没特别要求,只要在一张纸上显示多个表就行,怎么更简单? 刚学用水晶报表,多指点一下哈![/quote] 就这样就行了啊[/quote] 错误 1 “CrystalDecisions.Windows.Forms.CrystalReportViewer”不包含“Subreports”的定义,并且找不到可接受类型为“CrystalDecisions.Windows.Forms.CrystalReportViewer”的第一个参数的扩展方法“Subreports”(是否缺少 using 指令或程序集引用?) [/quote] 不好意思,看错了, 用你上面的代码就这样写, cr.Subreports["subrep1.rpt"].SetDataSource(GetData(sqlCommand1 )); cr.Subreports["subrep2.rpt"].SetDataSource(GetData(sqlCommand2 )); 如果还有问题,就把你代码贴出来看看[/quote] 斑竹 上面已贴出,谢谢[/quote] 改一下 ,把crystalReportViewer1 改成cr[/quote] 斑竹,这样说有点慢,能Q说不? 怕被打扰的话,解决完这问题,您立马把我删除,行不
熙风 2013-10-17
  • 打赏
  • 举报
回复
还有,你主报表上面添加子报表没有??
熙风 2013-10-17
  • 打赏
  • 举报
回复
引用 8 楼 yangxiaozi 的回复:
[quote=引用 7 楼 happy09li 的回复:] [quote=引用 5 楼 yangxiaozi 的回复:] [quote=引用 3 楼 happy09li 的回复:] [quote=引用 2 楼 yangxiaozi 的回复:] [quote=引用 1 楼 happy09li 的回复:] 你这个根本就用不着用子报表啊 给子报表数据源,你父子报表没关联,不用其他设置
 crystalReportViewer1.Subreports["subrep1.rpt"].SetDataSource(GetData(sqlCommand1 ));
 crystalReportViewer1.Subreports["subrep2.rpt"].SetDataSource(GetData(sqlCommand2 ));
用不用子报表,这个我没特别要求,只要在一张纸上显示多个表就行,怎么更简单? 刚学用水晶报表,多指点一下哈![/quote] 就这样就行了啊[/quote] 错误 1 “CrystalDecisions.Windows.Forms.CrystalReportViewer”不包含“Subreports”的定义,并且找不到可接受类型为“CrystalDecisions.Windows.Forms.CrystalReportViewer”的第一个参数的扩展方法“Subreports”(是否缺少 using 指令或程序集引用?) [/quote] 不好意思,看错了, 用你上面的代码就这样写, cr.Subreports["subrep1.rpt"].SetDataSource(GetData(sqlCommand1 )); cr.Subreports["subrep2.rpt"].SetDataSource(GetData(sqlCommand2 )); 如果还有问题,就把你代码贴出来看看[/quote] 斑竹 上面已贴出,谢谢[/quote] 改一下 ,把crystalReportViewer1 改成cr
加载更多回复(8)

4,819

社区成员

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

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