之前有寫過點擊不同的統計類型重載layui表格,所以我這次要分享的內容是建立在上次的基礎上寫的,首先這裏也是要渲染出layui表格,然後寫上重載表格的方法,實現點擊對應的內容再重載表格,這些代碼之前有寫過,所以在這裏就不重複了?
這次要分享的代碼如下:
首先是在頁面上給單選框附上value值,因爲代碼都是一樣的,所以這裏只寫了兩個來示例
<div class="col-lg-5 col-md-5 ">
<div class="layui-form-item align-left">
<div class="layui-input-block ml-0 ">
<input type="radio" name="style" value="1">
<img src="~/Content/img/112.JPG" />
<b>按 [品牌] 統計 </b>
</div>
</div>
</div>
<div class="col-lg-5 col-md-5 ">
<div class="layui-form-item align-left">
<div class="layui-input-block ml-0 ">
<input type="radio" name="style" value="2">
<img src="~/Content/img/10000024.JPG" /> 
;<b>按 [供應商] 統計 </b>
</div>
</div>
</div>
下面是在控制器的代碼:
因爲這裏要根據不同的時間段統計出對應的數據,所以begindate在這裏是代表開始時間, enddate代表結束時間, Type代表統計類型,這些都是頁面上傳遞過來的值
public ActionResult EnterSellSave(LayuiTablePage layuiTablePage, string begindate, string enddate, short Type)
{
List<JXCStatistics> StatisticsType = new List<JXCStatistics>();//實例化封裝好的實體類
//根據獲取的ID查詢出哪張表
if (Type == 1)
{
//品牌
StatisticsType = (from tbBrand in MyModel.D_Brand
select new JXCStatistics
{
ID = tbBrand.BrandID,
Name = tbBrand.BrandName
}).ToList();
}
else if (Type == 2)
{
//供應商
StatisticsType = (from tbSupplier in MyModel.D_Supplier
select new JXCStatistics
{
ID = tbSupplier.SupplierID,
Name = tbSupplier.SupplierName
}).ToList();
}
var Statistics = (from tbCommodity in MyModel.B_Commodity//商品表
join tbCommodityDetail in MyModel.B_CommodityDetail on tbCommodity.CommodityID equals tbCommodityDetail.CommodityID//商品明細表
join tbStockDetail in MyModel.B_StockDetail on tbCommodityDetail.CommodityDetailID equals tbStockDetail.CommodityDetailID//進貨明細表
join tbStock in MyModel.B_Stock on tbStockDetail.StockID equals tbStock.StockID//進貨表
join tbSellDetail in MyModel.B_SellDetail on tbCommodityDetail.CommodityDetailID equals tbSellDetail.CommodityDetailID//銷售明細表
join tbSell in MyModel.B_Sell on tbSellDetail.SellID equals tbSell.SellID//銷售表
join tbInventory in MyModel.D_Inventory on tbCommodityDetail.CommodityDetailID equals tbInventory.CommodityDetailID//庫存表
select new JXCStatistics
{
BrandID = tbCommodity.BrandID,//品牌ID
SupplierID = tbCommodity.SupplierID,//供應商ID
CommodityTypeID = tbCommodity.CommodityTypeID,//商品類別ID
ColorID = tbCommodityDetail.ColorID,//顏色ID
SeasonID = tbCommodity.SeasonID,//季節ID
SizeID = tbCommodityDetail.SizeID,//尺碼ID
StockAmount = tbStockDetail.StockAmount,//進貨數量
SellAmount = tbSellDetail.SellAmount,//銷售數量
Amount = tbInventory.Amount,//庫存數量
StockDate = tbStock.StockDate,//進貨日期
SellDate = tbSell.SellDate,//銷售日期
}).ToList();
if (!string.IsNullOrEmpty(begindate) && !string.IsNullOrEmpty(enddate))
{
DateTime begin = Convert.ToDateTime(begindate);//開始時間
DateTime end = Convert.ToDateTime(enddate);//結束時間
Statistics = Statistics.Where(m => m.StockDate >= Convert.ToDateTime(begindate) && m.StockDate <= Convert.ToDateTime(enddate)).ToList();//篩選進貨日期的數據
Statistics = Statistics.Where(m => m.SellDate >= Convert.ToDateTime(begindate) && m.SellDate <= Convert.ToDateTime(enddate)).ToList();//篩選銷售日期的數據
}
#region 數據處理,循環統計
int? ID = 0; //記錄單表數據的每條數據的唯一ID
for (int i = 0; i < StatisticsType.Count(); i++)
{
StatisticsType[i].StockAmount = 0;//進貨數量
StatisticsType[i].SellAmount = 0;//銷售數量
StatisticsType[i].Amount = 0;//庫存數量
for (int a = 0; a < Statistics.Count(); a++)
{
if (Type == 1)
{
ID = Statistics[a].BrandID;//品牌ID
}
if (Type == 2)
{
ID = Statistics[a].SupplierID;//供應商ID
}
if (StatisticsType[i].ID == ID)
{
StatisticsType[i].sfstatistics = true;//是否統計
StatisticsType[i].begindate = begindate;//開始時間
StatisticsType[i].enddate = enddate;//結束時間
StatisticsType[i].Type = Type;//統計類型
StatisticsType[i].StockAmount += Statistics[a].StockAmount;//進貨數量
StatisticsType[i].SellAmount += Statistics[a].SellAmount;//銷售數量
StatisticsType[i].Amount += Statistics[a].Amount;//庫存數量
}
}
}
//過濾統計狀態爲false也就是沒有參與統計的數據的,沒有參與統計的數據是不需要的
StatisticsType = StatisticsType.Where(m => m.sfstatistics != false).ToList();
LayuiTableData<JXCStatistics> JXCDetaildata = new LayuiTableData<JXCStatistics>();
JXCDetaildata.count = StatisticsType.Count();
StatisticsType = StatisticsType
.Skip(layuiTablePage.GetStartIndex())
.Take(layuiTablePage.limit).ToList();
JXCDetaildata.data = StatisticsType;
#endregion
return Json(JXCDetaildata, JsonRequestBehavior.AllowGet);
}
這樣就可以實現點擊對應的統計類型進行數據統計分析啦