水晶报表的主从表是两个表设置主从关系,假设我有三个表tb_1,tb_2,tb_3
三个表的字段分别有tb_1:fd_seq,fd_id,fd_name  ;  tb_2:fd_seq,fd_id,fd_name    ;
tb_3:fd_seq,fd_tb1_seq,fd_tb2_seq,fd_value 其中表3中的fd_tb1_seq,fd_tb2_seq分别
是表1和表2的外键,由这两个值对应了一个fd_value的值(两个缺一不可)。
我要在报表中显示每条表1中的fd_id和fd_name;表2中的fd_name;表3中与之对应的fd_value字段。
在VS2005下用push模式要怎么做啊??(如果没看懂三个表的关系的话可以把表1看成学生表,表2看成
课程表,表3看成各个学生各个课程的成绩)

解决方案 »

  1.   

    先用SQL语句把查询出来的结果 分别是你的那些字段放到DATASET1中。再去做表
      

  2.   

    要不先用SQL语句做一个视图,把要查询的都取出来,然后当表用
      

  3.   

    刚刚试了下,发现报表中只有表3的fd_value字段的值正确显示出来了,其余要显示的值都空(即没有显示任何值),这是为什么啊??
      

  4.   

    下面是我的关于dataset的代码,大家看看有什么问题没?
    string strProvider = "Server=***;DataBase=****;UID=sa;PWD=***";//数据库连接这块没问题
    SqlConnection MyConn = new SqlConnection(strProvider);
    MyConn.Open();
    string str1 = "SELECT TB_1.FD_ID,TB_1.FD_Name,TB_2.FD_Name,TB_3.FD_Score,TB_3.FD_SEQ FROM TB_3,TB_1,TB_2 
    where TB_3.FD_TB1_SEQ=TB_1.FD_SEQ and TB_3.FD_TB2_SEQ=TB_2.FD_SEQ Order by FD_TB1_SEQ";
    SqlDataAdapter da = new SqlDataAdapter(str1, MyConn);
    DataSet ds = new DataSet();
    da.Fill(ds, "1");
    crystalReportViewer1 crpush = new crystalReportViewer1();
    crpush.SetDataSource(ds.Tables["1"]);
    crystalReportViewer1.ReportSource = crpush;
      

  5.   

    http://www.chinamacro.cn/blog/visit_detail.aspx?blogID=96
      

  6.   

    TO gaofeng2000(高老师):
    我这里是三个有关联的表的情况,估计是SQL语句没写好,要写成SQL JOIN的形式(不过还不太会写。只在报表中显示一个表我知道,实现两个表的主从也知道,但是三个或多个相关联的表要显示就有问题了)。
    我按我5楼的方法写的sql语句,只能在报表中显示TB_3.FD_Score字段来,其他的没显示。不知道是什么原因???