我有一个库存使用页面,其中填充了我在某段时间内使用的项目列表(像一个月左右)。有一个很好的项目是重复的,我试图基本上把一个按钮的视图页面(一个IELTS列表)这将填充一个pdf的项目列表和他们的总数。我不知道的是如何通过项目列表循环,如果有任何重复,获取“AmtTaken”值并将它们相加,然后删除重复项,其中每个项只显示一次,但“AmtTaken”总数将相加在一起。我现在没有太多代码可以执行,因为我被卡住了,正在试图找出执行此操作的最佳方法。它来自一个名为“Inventory Usage”的数据库表。
这是我的模型:
public partial class InventoryUsage
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[Display(Name = "Item Code")]
public string Item_Code { get; set; }
[Display(Name = "Amt Taken")]
public string Amt_Taken { get; set; }
[Display(Name = "Submitted?")]
public Nullable<bool> Submitted { get; set; }
}
字符串
因此,我正在寻找的重复项是任何具有相同Item_Code的项,然后如果有重复项,则对所有Item_Taken值进行求和。我还希望它列出所有没有重复项的项。我目前如何设置它是针对“Submitted”== false的所有项。因此,使用此模型,如果有复制品的话,身份证就不一样了,所以这是另一件让我困惑的事情。
这是我的视图页面:
@model IEnumerable<MyApp.Models.InventoryUsage>
<div class="wrapper">
<table class="table">
<tr>
<th>
Item/RM Code
</th>
<th>
Amt Taken
</th>
<th>
Submitted? (Y/N)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Item_RM_Code)
</td>
<td>
@Html.DisplayFor(modelItem => item.Amt_Taken)
</td>
<td>
@if (item.Submitted_ == true)
{
<label class="lbl-yes">Yes</label>
}
else
{
<label class="lbl-no">No</label>
}
</td>
<td>
@Html.ActionLink("Generate List", "GetTotals", new { not sure what to put here yet }) |
@Html.ActionLink("Edit", "Edit", new { id = item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id = item.ID })
</td>
</tr>
}
</table>
</div>
型
而对于我的控制器,是我没有太多的代码,因为我完全难倒了。
public ActionResult Index()
{
var usage = from u in db.InventoryUsage
select u;
return View(usage.Where(u => u.Submitted_ == false).ToList());
}
public ActionResult GetTotals()
{
var list = db.InventoryUsage.Where(x => x.Submitted == false).ToList();
//Stuck on this part//
}
型
任何建议或指导将不胜感激!
2条答案
按热度按时间jckbn6z71#
使用
GroupBy
并对结果求和:字符串
您没有指定如何处理相同
Item_Code
的Submitted
值中的不匹配。如果您希望按物料代码和已提交/未提交值汇总金额,则可以将GroupBy
键的这一部分设置为:型
然后投影这些属性:
型
uklbhaso2#
我终于能让这个工作了。@dbc和@Moho,非常感谢你们俩!你给我指出了正确的方向,在研究了更多关于分组方法的东西之后,我最终只是对你的建议做了一些小的调整。出于某种原因,它不允许我对我的数据库实体模型这样做,因为它使用了一个通用的列表,所以我创建了另一个名为UsageTotalsModel的模型类,并添加了来自Inventory Usage Model的相关字段。我猜,由于这不是一个数据库实体模型,它可以使用此函数使用的通用列表。以下是我添加的新模型:
字符串
所以在我的控制器中,我只是从Inventory Usage中提取数据并将其添加到UsageTotalsModel中。这修复了我一直收到的错误消息。
型
现在我唯一的问题是,与小数点的项目,是自动四舍五入到最近的十分之一,所以在一些金额的地方,它是0.02磅,它是显示为0.但这是一个不同的问题,如果我卡住了,我会发布另一个问题,但我应该能够弄清楚.无论如何,谢谢你的帮助!我从来没有想过要做分组和选择方法。我在网上找到的东西似乎令人困惑,不确定它是否适用于我,但感谢你们所有人,你们让它变得有意义!