我希望使用 IQueryable 数据源填充 Telerik RadGrid,但在该网格内包含 5 个 Total 列。当我创建单独的报表时,我为总计构建了单独的函数,但是在将它们迭代到我当前的网格 LINQ 语句中时遇到了一些麻烦。
我当前的 LINQ 语句如下所示:
public static IQueryable GetUnapprovedTimesheets(string Period)
{
DataContext Data = new DataContext();
var Times = (from c in Data.System_Times
where c.Period == Period && c.Status == 1
orderby c.Employee.LName
select c).GroupBy(s => s.EmployeeID).Select(x => x.FirstOrDefault());
return Times;
}
此语句获取输入期间的时间表,并显示状态为 1 的记录,然后按 EmployeeID 分组显示。此语句将所有内容正确拉入网格,但我还想添加常规、加班、旅行和子的总计。
我为动态报告单独构建的函数如下所示:
public static decimal? GetTotalReg(int EmployeeID, string Period)
{
DataContext Data = new DataContext();
var Total = (from c in Data.Times
where c.EmployeeID == EmployeeID && c.Period == Period && c.PayCode == "211"
select c.Hours);
return Total.Sum();
}
有没有办法将第二个声明合并到第一个声明中?(请记住,我不仅要合并一个,还要合并 5 个 Sum 语句)
然后,这一语句将用作我的 RadGrid 的 IQueryable DataSource,由 RadGrid 的 DataField=" " 调用。