1. Trang chủ
  2. » Công Nghệ Thông Tin

MVC4Seminar lab8

3 425 8

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

ThS. CNTT: Nguyễn Nghiệm – nghiemn@fpt.edu.vn Trang 1 BÀI 8: THỐNG KÊ HÀNG HÓA MỤC TIÊU  Biết cách sử dụng phương thức mở rộng GroupBy() của Linq để thống kê thông tin hàng hóa. MÔ TẢ Trong bài này bạn phải tạo trang thống kê thông tin hàng hóa theo nhà cung cấp và chủng loại. Kết quả thống kê được trình bày như sau: THỰC HIỆN  Bước 1: Tạo lớp chứa thông tin thống kê  Bước 2: Bổ sung Action Report vào ProductController  Bước 3: Tạo View Report.cshtml Bước 1: Tạo lớp chứa thông tin thống kê Bạn cần tạo một lớp Report trong thư mục Models để mô tả thông tin thông kê. Sau đây là mã nguồn của lớp. namespace MVC4Seminar.Models { public class Report { public String Category { get; set; } // tên loại public String Supplier { get; set; } // tên nhà cung cấp public double Total { get; set; } // tổng giá public double Average { get; set; } // giá trung bình public int ItemCount { get; set; } // tổng số lượng public double MinPrice { get; set; } // giá nhỏ nhất public double MaxPrice { get; set; } // giá lớn nhất ThS. CNTT: Nguyễn Nghiệm – nghiemn@fpt.edu.vn Trang 2 } } Bước 2: Bổ sung Action Report vào ProductController Action này có nhiệm vụ thống kê thông tin hàng hóa và chuyển cho view Report.cshtml để trình bày lên giao diện. Trong bài này bạn sẽ nhóm hàng hóa theo loại và nhà cung cấp sau đó tổng hợp thông tin thống kê. Để nhóm theo nhiều thuộc tính, bạn cần nhóm theo một đối tượng chứa các thuộc tính đó. Mã của action này như sau. public ActionResult Report() { var items = db.Products.GroupBy(p => new { p.Category, p.Supplier }) .Select(g => new Report { Category = g.Key.Category.Name, Supplier = g.Key.Supplier.Name, Total = g.Sum(p => p.UnitPrice), ItemCount = g.Count(), MinPrice = g.Min(p => p.UnitPrice), MaxPrice = g.Max(p => p.UnitPrice), Average = g.Average(p => p.UnitPrice) }); return View(items); } Bước 3: Tạo View Report.cshtml Công việc của view thật sự đơn giản, chỉ việc hiển thị thông tin đã được chuyển từ action của controller. Trong bài này, bạn sử dụng String.Format() để định dạng dữ liệu cho đẹp mắt. @model IEnumerable<Report> @{ ViewBag.Title = "Thống Kê Hàng Hóa"; } <table class="gridview"> <tr> <th>Nhà CC</th> <th>Loại</th> <th>Tổng Giá Trị</th> <th>Tổng SL</th> <th>Giá Trị TB</th> <th>Giá Nhỏ Nhất</th> <th>Giá Lớn Nhất</th> </tr> @foreach(var p in Model){ <tr> <td>@p.Supplier</td> <td>@p.Category</td> <td>@String.Format("{0:c}", p.Total)</td> <td>@p.ItemCount</td> <td>@String.Format("{0:c}", p.Average)</td> ThS. CNTT: Nguyễn Nghiệm – nghiemn@fpt.edu.vn Trang 3 <td>@String.Format("{0:c}", p.MinPrice)</td> <td>@String.Format("{0:c}", p.MaxPrice)</td> </tr> } </table> . Models để mô tả thông tin thông kê. Sau đây là mã nguồn của lớp. namespace MVC4Seminar. Models { public class Report { public String Category { get;

Ngày đăng: 17/03/2014, 00:32

Xem thêm: MVC4Seminar lab8

Mục lục

    Bước 1: Tạo lớp chứa thông tin thống kê

    Bước 2: Bổ sung Action Report vào ProductController

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN