水晶报告 - 创建报告不等于列

时间:2017-01-04 06:20:34

标签: crystal-reports crystal-reports-2008 crystal-reports-2010

我有两张桌子学生和出勤,他们有一个共同的字段SID,他们链接

学生

SID |名称|等级|年龄|

01 | A1 | B1 | 8 |

02 | A2 | B2 | 9 |

03 | A3 | B1 | 8 |

04 | A4 | B4 | 10 |

05 | A5 | B1 | 8 |

06 | A6 | B1 | 8 |

考勤

AID | SID |礼物|日期|

001 | 01 |是的| 12-12-16 |

002 | 01 |是的| 13-12-16 |

003 | 02 |是的| 12-12-16 |

004 | 02 |是的| 13-12-16 |

我想在水晶报告中创建一份报告,该报告将给予缺席的学生, 使用考勤表

I.E出席率.SiD<> Student.SID

1 个答案:

答案 0 :(得分:-1)

首先使用数据库中的以下查询创建视图:

select * from Students where SID NOT IN (Select DISTINCT(SID) from Attendance);
  • 创建新表单
  • 在新表单上拖动N Drop Crested Report组件
  • 在右上方选择从上述查询创建的视图。
  • 使用标签和数据库字段设计表单
  • 那是它。

或者,如果你不能创建视图,请按以下步骤操作:

  • 创建新表单
  • 在新表单上拖动N Drop Crested Report组件
  • 选择学生表进行查询
  • 使用标签和数据库字段设计表单
  • 在表单加载时使用以下代码



SqlConnection cnn;
          string connectionString = null;
          string sql = null;
          connectionString = "connectring to sql server";
          cnn = new SqlConnection(connectionString);
          cnn.Open();
          sql = "select * from Students where SID NOT IN (Select DISTINCT(SID) from Attendance)";
          SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
          DataSet ds = new DataSet();
          dscmd.Fill(ds, "data");
          objRpt.SetDataSource(ds.Tables[0]);
          crystalReportViewer1.ReportSource = objRpt;
          crystalReportViewer1.Refresh();




只需手动分配连接表查询。