如题,请各位给一些水晶报表的一些示例,贴一些代码参考以下,小弟对水晶报表不是很熟悉。 对于push模式下建立数据集,然后将数据集绑定到水晶报表,最后再将水晶报表赋值给水晶报表查看器,这个过程我是比较清楚的,也找到了一些例子。 希望各位能提供一些比较深入的例子,比如在一个报表里,我要生成一个合格率,这个合格率,在数据库中,有些字段是使用求平均的方法实现,有些字段时通过单独计算的方法得出。并且这个报表的生成是有多张表(3张以上)联合查询出来的。 对于某一系列的项目可能要加一个合计栏,有些系列不需要加合计栏。像我这样的功能水晶报表可以实现吗?谢谢高手指教

解决方案 »

  1.   

    http://babyt.cnblogs.com/
    阿泰的blog
    http://blog.csdn.net/WeekZero/archive/2006/03/31/645858.aspx
    winform下制作第一张水晶报表
      

  2.   

    关于例子,WeekZero(星期零)已经推荐的了阿泰的blog,是很好的入门教程你的报表是可以实现的,在使用DataSet的项目中,多表与单表一样操作。对于合格率,如果在数据库中就直接取出来,不在的话可以使用公式计算得到
      

  3.   

    xwdd129(因为有你^_^) ( ) 信誉:104  2006-05-15 13:16:00  得分: 0  
     
     
       关于例子,WeekZero(星期零)已经推荐的了阿泰的blog,是很好的入门教程你的报表是可以实现的,在使用DataSet的项目中,多表与单表一样操作。对于合格率,如果在数据库中就直接取出来,不在的话可以使用公式计算得到
      
     
    ---------------------------------------
    对于合格率,如果在数据库中就直接取出来,不在的话可以使用公式计算得到这种情况就应该用程序控制了吧,请问这样的控制应该怎样做到呢,因为水晶报表一般都是直接设置格式自段等,然后再绑定一下就可以了,至于怎样用代码控制报表的显示,可以参考的资料不实很多,能不能多些指点?
      

  4.   

    可以在dataset中直接取,也可以在报表专家里自己设置
      

  5.   

    你要控制哪些显示? 应该说,.net里面的水晶报表只提供了很少的可控属性用于代码控制
      

  6.   

    我的那种形式只能通过控制sql语句来实现吧
      

  7.   

    先显示6列,再显示后6列是可以的,数据集里的数据是你用代码选出来的,也就是说是你自己控制的,每次填充好数据重新加载以便即可。
    ----------------------
    先显示6列,再显示6列这样真的可以吗?
    第一次绑定和第二次绑定报表的sql语句是不一样的。第二次绑定是会把第一次绑定的数据给冲掉的吧?
      

  8.   

    嗯,关于数据集的问题我有些思路了
    只要在数据集中根据需要写不同的sql语句,然后生成绑定前6列的字段,之后再写绑定后6列的sql语句。但这样有一个问题,就是,因为我的前6列数据和后6列数据都是从同一个表中读出然后绑定的,这样的话,前6列和后6列就不能区分了(解决办法就是用列名来区分,前6列和后6列的列名不能一样)。此外由此还会有另外一个问题,就是在建立数据集的时候,因该托放2个盖数据库的表才能实现前后6列显示的情况?不好意思,前面可能没有说清楚
    我先按照上面的思路试试看。
    还请继续指教
      

  9.   

    有个问题
    用这样的报表 都有人家的版权标志
    给客户用 可以吗?
    如果自己开发 NET可以做吗
    哪位有关这方面的例子
      

  10.   

    如果非要区分两个表,可以根据这个表做个视图,相当于换个名字!报表设计时放入DataSet的表只是提供结构和字段来源,填入的数据是你用代码控制的~
      

  11.   

    不知道你到底想控制什么---大小?颜色?这里举两个小例子://编程更改图片大小,但不能改变图片来源
    PictureObject picture1 = oRpt.ReportDefinition.ReportObjects["Picture5"] as PictureObject;picture1.Left = 0;
    if(picture1.Height < 3000)
    {
    picture1.Height = (int)(picture1.Height*1.2);
    picture1.Width = (int)(picture1.Width*1.2);
    }
    picture1.Border.HasDropShadow = true;
    picture1.Border.BottomLineStyle = LineStyle.DoubleLine;//刷新报表显示
    crystalReportViewer1.RefreshReport();//更改TextObject的值
    TextObject text = oRpt.ReportDefinition.ReportObjects["Text6"] as TextObject;
    text.Text = "Test 1"+"Test 2";
      

  12.   

    多谢,知道一点就可以了,要不然不知从何入手辛苦xwdd129(因为有你^_^)