报表中显示多个表的字段

水晶报表使用经验--在报表中显示多个表的字段(通过表关联)
举个简单的例子:
员工表(员工编号? 员工姓名? 部门编号)
部门表(部门编号 部门名称)

要求是: select 员工表.员工姓名,部门表.部门姓名 from 员工表,部门表 where 员工表.部门编号=部门表.部门编号

操作步骤(列举几个比较重要 也是自己当时操作比较容易困惑的地方)
1.建xsd文件 直接拖入员工表和部门表? 不要做任何字段关联
2.建rpt文件 选择员工表和部门表后 建立链接 员工表的部门编号---〉部门表的部门编号
3.建.aspx文件 拖入报表控件
4.在.aspx.cs中建立一个DataSet,里面是两张表,名称分别是员工表、部门表(和拖入XSD的名称保持 一致)
sql语句分别为:
 select * from 员工表
 select * from 部门表

示例代码
try
   {
    
    CrystalReport1 crReportDocument;
    crReportDocument = new CrystalReport1();            
    SqlConnection conn = new SqlConnection("server=it003;database=pubs;uid=sa;pwd=");
    conn.Open(); 
    DataSet ds=new DataSet();
    SqlDataAdapter ada= new SqlDataAdapter("select * from authors where au_id like '%"+32+"%'",conn);
    ada.Fill(ds,"authors");//Fill表名要与DataSet.xsd里的表名保持一致;
    SqlDataAdapter ada1 = new SqlDataAdapter("select * from titleauthor",conn);
    ada1.Fill(ds,"titleauthor");
    conn.Close();
    crReportDocument.SetDataSource(ds);
    crystalReportViewer1.ReportSource = crReportDocument;    
    TextObject GetTextObject = crReportDocument.ReportDefinition.ReportObjects["Text3"] as TextObject;//程序修改文体对象
    GetTextObject.Text = textBox1.Text.Trim();
    crystalReportViewer1.RefreshReport();
    //GetTextObject.ObjectFormat.EnableSuppress = true; 隐藏文本对象
   }
   catch (Exception ex)
   {
    MessageBox.Show(ex.Message,"系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
    
   }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值