因为数据库中的金额字段不适合表格中显示出来的金额值 ,所以表格中的金额是需要计算的 ,通过单价价格和数量计算出中的金额 ,下面是表格的图片 因为是在测试所以其中的数据有点儿不太认真 ,下面的是表格生成的js代码 ,具体实现的可以参考layui插件
tabWarehouseTransferListSum = layuiTable.render({elem: "#tabWarehouseTransferListSum", url:"/BackStageManagement/IinventoryManagement/selectWarehouseTransferListSum",page: {limit: 5,limits:[3 , 5 , 7 , 9 , 11]},cols: [[{ type: 'radio', fixed: 'left' }{ type: 'numbers', title: '序号' },{ field: 'WarehouseTransferListID', title: 'WarehouseTransferListID', hide: true, align: "center" },{ field: 'WarehouseID', title: 'WarehouseID', hide: true, align: "center" },{ field: 'WarehouseTransferListDate', title: '日期', hide: true, align: "center" },{ field: 'RMNumber', title: '物品编号', align: "center" },{ field: 'WarehouseName', title: '调出仓库', align: "center" },{ field: 'RMName', title: '商品名称', align: "center" },{ field: 'exportNumber', title: '数量', align: "center" },{ field: 'RMCargoUnitPrice', title: '单价', align: "center" },{ field: 'Money', title: '金额', align: "center" },]],});
因为上面表格的数据是多个表中的数据合在一起出来的 ,所以我就在控制器中创建了一个实体类(WarehouseTransferListSumVo),实体类中的字段与js代码中cols里面的field相同 ,下面是控制器中查询的代码
List<WarehouseTransferListSumVo> listWarehouseTransferListSum = (from tbWarehouseTransferList in myModels.WarehouseTransferListjoin tbWarehouse in myModels.Warehouse on tbWarehouseTransferList.WarehouseID equals tbWarehouse.WarehouseIDjoin tbRM in myModels.RM on tbWarehouse.RMID equals tbRM.RMID
select new WarehouseTransferListSumVo WarehouseTransferListID = tbWarehouseTransferList.WarehouseTransferListID, WarehouseID = tbWarehouse.WarehouseID, WarehouseName = tbWarehouse.WarehouseName, RMNumber = tbRM.RMNumber, RMName = tbRM.RMName, RMCargoUnitPrice = tbRM.RMCargoUnitPrice, exportNumber = tbWarehouseTransferList.exportNumber, WarehouseTransferListDate = tbWarehouseTransferList.WarehouseTransferListDate,}).ToList();
查询出所有的子段数据后 ,开始计算金额值 ,这个金额值在数据库中并无此字段 ,它是一个我在控制器中实体类里面添加的一个字段来装载数据 ,因为不能再select里面计算金额值 ,所以我再查询出结果后 ,进行修改字段的值 因为表格中的数据行数是可变的 ,所以这里用循环来给表格数据一一修改 ,在修改之前 ,转换一下数量,金额的类型。转换后将计算出来的值赋值给listWarehouseTransferListSum[i].Money,这样就将金额给计算出来了
for (int i = 0; i < listWarehouseTransferListSum.Count; i++)
{
int Money = Convert.ToInt32(listWarehouseTransferListSum[i].exportNumber) * Convert.ToInt32(listWarehouseTransferListSum[i].RMCargoUnitPrice);
listWarehouseTransferListSum[i].Money = Money;
}