private void butCF_Click(object sender, RoutedEventArgs e)
{
if (DatagridDatatable != null && DatagridDatatable.Rows.Count > 0)
{
//group by 日期,合同号,部门 having count(记录编号)>0 找出 日期 合同号 部门重复的记录
var query = (from t in DatagridDatatable.AsEnumerable()
group t by new { t1 = t.Field<DateTime>("日期"), t2 = t.Field<Int64>("合同号"), t3 = t.Field<string>("部门") } into m
select new
{
日期 = m.Key.t1,
合同号 = m.Key.t2,
部门 = m.Key.t3,
记录编号=m.First().Field<Decimal>("记录编号"),//这里要写这句话,否则查不出query
rowcount = m.Count()
} into c where c.rowcount>1 select c).ToList();
DataTable dt = new DataTable();
////dt.Columns.Add("序号",System.Type.GetType( "System.Int32"));
dt.Columns.Add("日期", System.Type.GetType("System.DateTime"));
dt.Columns.Add("合同号", System.Type.GetType("System.Int64"));
dt.Columns.Add("部门", System.Type.GetType("System.String"));
dt.Columns.Add("记录编号", System.Type.GetType("System.Decimal"));
dt.Columns.Add("销售金额", System.Type.GetType("System.Decimal"));
foreach (var q in query)
{
DataRow[] dr_finds = DatagridDatatable.Select("日期='" + q.日期 + "' and 合同号=" + q.合同号 + " and 部门='" + q.部门+"'");
foreach (DataRow find in dr_finds)
{
DataRow dr = dt.NewRow();
dr["日期"] = find["日期"];
dr["合同号"] = find["合同号"];
dr["部门"] = find["部门"];
dr["记录编号"] = find["记录编号"];
dr["销售金额"] = find["销售金额"];
dt.Rows.Add(dr);
}
}
if (dt.Rows.Count > 0)
{
fmCFJL win=new fmCFJL(dt);
win.Show();
}
else
{
MessageBox.Show("没有重复记录");
return;
}
}
}