private void btn_print_khach_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { var db = new cobacEntities(); // Modify to suit your machine: string fileName = @"C:\Cadobongda\" + _masotaikhoan + "(khach).doc"; // Create a document in memory: var doc = DocX.Create(fileName); var lngay = db.view_thongtinchung.Where(p => p.id_quanlyTK_idTK == ID_Taikhoan).Select(p => new { p.ngay }).Distinct().ToList(); foreach (var ingay in lngay) { //var SoTranTrongNgay = (from q in db.thongtinchung // where q.ngay == (DateTime)ingay.ngay // select new // { // DoiBong = q.doibong1 + q.doibong2 // } // ).ToList(); var ngay3 = String.Format("{0:dd/MM/yyyy}", ingay.ngay); //doc.InsertParagraph("Kế quả cho ngày:" + ngay3+"\n\n"); //danh sách các trận đấu tương ứng với số kèo trong 1 ngày var lkeo = (from t in db.view_thongtinchung join tk in db.view_quanlytk on t.id_quanlyTK_idTK equals tk.idTK where t.ngay == (DateTime)ingay.ngay && t.id_quanlyTK_idTK == this.ID_Taikhoan select new { doi = t.doibong1 + t.doibong2 }).ToList(); var lkeokeo = (from t in lkeo group t by t.doi into th select new { doi = th.Key, so = th.Count() }).ToList(); //thông tin chi tiết từng trận đấu trong ngày var l = (from t in db.view_thongtinchung join tk in db.view_quanlytk on t.id_quanlyTK_idTK equals tk.idTK where t.ngay == (DateTime)ingay.ngay && t.id_quanlyTK_idTK == this.ID_Taikhoan select new { tk.GiaUSDTK, tk.TenTkDayDU, tk.TenTk, tk.NguoiCaDoCung, t.ngay, t.doibong1, t.doibong2, t.tengiaidau, t.trangthai, t.hinhthuccado, t.hiepcado, t.tylechap, t.tylecuoc, t.cuacado, t.tiencuoc, doimoi = t.doibong1 + t.doibong2, t.com, t.gio, t.ketqua_trongkeo, chonkeocado = t.cuacado == "under" ? "Xỉu" : t.cuacado == "over" ? "Tài" : t.cuacado, //tên đội chưa có t.cachthuccado, tienthangthua = t.tienthang_thua < 0 ? t.tienthang_thua * -1 : t.tienthang_thua, tuongungtienVNDthangthua = t.tienthang_thua < 0 ? t.tienthang_thua * tk.GiaUSDTK * -1 : t.tienthang_thua * tk.GiaUSDTK, tiencuocvnd = t.tiencuoc * tk.GiaUSDTK }).OrderBy(p => p.doimoi).ToList(); //đếm số trận đấu trong ngày var sotran = lkeokeo.Count; //forrmat ngày var ngay1 = String.Format("{0:dd/MM/yyyy}", ingay.ngay); //hiện tiêu đề doc.InsertParagraph("Trong ngày " + ngay1 + " tôi có cá độ: " + sotran + " trận đấu gồm: ").Bold(); //sử dụng để đếm số kèo trong cùng 1 trận trong ngày, bắt đầu từ 1 var keothu = 1; var hettran = false; //số thứ tự var tt = 1; //bắt đầu hiện thị chi tiết trận đấu trong mỗi ngày foreach (var i in l) { if (keothu == 1) { doc.InsertParagraph().Append(tt.ToString() + ".").Bold().Append(" Trận đấu giữa hai đội " + i.doibong1 + " và " + i.doibong2 + " thuộc giải bóng đá: " + i.tengiaidau); } //doc.InsertParagraph(" Trận đấu giữa hai đội " + i.doibong1 + " và " + i.doibong2 + " thuộc giải bóng đá: " + i.tengiaidau); //sử dụng để lưu số kèo trong 1 trận, mặc đinh ban đầu là 1 trận 1 kèo var keomax = 1; foreach (var j in lkeokeo) { if (i.doibong1 + i.doibong2 == j.doi) { if (keothu == 1) { doc.InsertParagraph(" - Số kèo đấu đặt cá độ: " + j.so + " kèo."); } keomax = j.so; } } if (keomax > 1) { doc.InsertParagraph(" + Kèo thứ " + keothu); } if (keomax > keothu) { keothu++; } else { hettran = true; keothu = 1; } var ngay = string.Format("{0:dd/MM/yyyy}", i.ngay); doc.InsertParagraph(" - Thời gian đặt kèo (thời gian nhập lệnh) cá độ: " + i.gio + " ngày " + ngay); if (i.trangthai == "Từ chối") { doc.InsertParagraph(" - Tình trạng kèo cá độ: Từ chối."); } else { doc.InsertParagraph(" - Tình trạng kèo cá độ: Chấp nhận và hoàn thành."); } if (i.hinhthuccado == "Tài - Xỉu") { string str1 = i.cachthuccado; // tài xỉu phạt góc if (str1.EndsWith("Corner") || str1.EndsWith("Corners")) { // hiệp 1 if (i.hiepcado == "1h") { doc.InsertParagraph(" - Cá độ dưới hình thức: Tài - Xỉu phạt góc hiệp 1"); // tổng số quả phạt góc if (i.cachthuccado == "No. of Corners") { doc.InsertParagraph(" - Chọn kèo cá độ và tỷ lệ chấp: " + i.chonkeocado + ", tỷ lệ thắng thua: " + i.tylecuoc); } // quả phạt góc thứ n else { // tính quả phạt góc thứ N string solanphatgoc = i.cachthuccado.Remove(1); doc.InsertParagraph(" - Chọn kèo cá độ: Dự đoán đội được hưởng lần phạt góc và tỷ lệ chấp " + i.cuacado + ", tỷ lệ thắng thua: " + i.tylecuoc); } } // cả trận else { doc.InsertParagraph(" - Cá độ dưới hình thức: Tài - Xỉu phạt góc cả trận"); if (i.cachthuccado == "No. of Corners") { doc.InsertParagraph(" - Chọn kèo cá độ và tỷ lệ chấp: " + i.chonkeocado + ", tỷ lệ thắng thua: " + i.tylecuoc); } } } // tài xỉu tổng số bàn thắng else { //hiệp 1 if (i.hiepcado == "1h") { doc.InsertParagraph(" - Cá độ dưới hình thức: Tài - Xỉu hiệp 1"); } // thắng thua cả trận if (i.hiepcado == "15 mins") { doc.InsertParagraph(" - Cá độ dưới hình thức: Tài - Xỉu 15 phút"); } if (i.hiepcado == "") { doc.InsertParagraph(" - Cá độ dưới hình thức: Tài - Xỉu cả trận"); } doc.InsertParagraph(" - Chọn kèo cá độ và tỷ lệ chấp: " + i.chonkeocado + ", tỷ lệ thắng thua: " + i.tylecuoc); } } /////////////////////////////////hết tài xỉu - chuyển sang kèo // cá độ kèo if (i.hinhthuccado == "Kèo") { string str = i.cachthuccado; if (str.EndsWith("Corner") || str.EndsWith("Corners")) { if (i.cachthuccado != "No. of Corners") { if (i.hiepcado == "1h") { doc.InsertParagraph(" - Cá độ dưới hình thức: Kèo phạt góc hiệp 1"); } else { doc.InsertParagraph(" - Cá độ dưới hình thức: Kèo phạt góc cả trận"); } string solanphatgoc = i.cachthuccado.Remove(1); doc.InsertParagraph(" - Chọn kèo cá độ: Dự đoán đội được hưởng số lần phạt góc và tỷ lệ chấp " + i.cuacado + ", tỷ lệ thắng thua: " + i.tylecuoc); } } // kèo thắng thua else { if (i.hiepcado == "1h") { doc.InsertParagraph(" - Cá độ dưới hình thức: Kèo chọn đội thắng hiệp 1"); } else { doc.InsertParagraph(" - Cá độ dưới hình thức: Kèo chọn đội thắng cả trận"); } doc.InsertParagraph(" - Chọn kèo cá độ: Chọn đội thắng và tỷ lệ chấp " + i.cuacado + ", tỷ lệ thắng thua: " + i.tylecuoc); } } if (i.hinhthuccado == "Kết quả chính xác") { // kèo thắng thua doc.InsertParagraph(" - Cá độ dưới hình thức: Kèo dự đoán kết quả chính xác"); doc.InsertParagraph(" - Chọn kèo cá độ: Dự đoán kết quả " + i.cuacado + ", tỷ lệ thắng thua: " + i.tylecuoc); } // doc.InsertParagraph(" - Cá độ dưới hình thức:" + i.hinhthuccado); // doc.InsertParagraph(" - Chọn kèo cá độ: " + i.chonkeocado+", tỷ lệ chấp: " + i.tylechap + " " + "(" + i.cachthuccado + " " + i.tylechap + ")" + ", tỷ lệ thắng thua: " + i.tylecuoc); var tiencuocVND = String.Format("{0:N}", i.tiencuocvnd); doc.InsertParagraph(" - Số tiền tham gia cá độ: " + i.tiencuoc + "$ " + "(Tương ứng với số tiền: " + tiencuocVND + "đ)."); if (i.trangthai == "Từ chối") { } else { doc.InsertParagraph(" - Số COM: " + i.com); var tienthangthuaVND = String.Format("{0:N}", i.tuongungtienVNDthangthua); if (i.trangthai == "Hòa") { doc.InsertParagraph(" - Kết quả: " + i.trangthai); } else { string vietthuong = i.trangthai.ToLower(); doc.InsertParagraph(" - Kết quả: " + i.trangthai + ", số tiền " + vietthuong + " cá độ: " + i.tienthangthua + "$ (tương ứng với số tiền: " + tienthangthuaVND + "đ)"); } var tiencuoctrongkeoVND = String.Format("{0:N}", i.ketqua_trongkeo * i.GiaUSDTK); if (keomax != 1) { doc.InsertParagraph("Như vậy trong kèo cá độ này số tiền tôi(" + i.TenTk + ") đánh bạc là: (" + i.ketqua_trongkeo + "$) tương ứng với số tiền (" + tiencuoctrongkeoVND + "đ)\n"); } } if (hettran == true) { var tien = l.Where(p => p.doibong1 == i.doibong1 && p.doibong2 == i.doibong2).Where(a => a.trangthai != "Từ chối").Sum(p => p.ketqua_trongkeo); var tiencuoctrongtranVND = String.Format("{0:N}", tien * i.GiaUSDTK); doc.InsertParagraph("Như vậy trong trận này tổng số tiền tôi(" + i.TenTk + ") đánh bạc là: (" + tien + "$) tương ứng với số tiền (" + tiencuoctrongtranVND + "đ)\n"); tt++; hettran = false; } } //kêt quả trong ngày của 1 tài khoản var ketquatrongngay = l.Where(a => a.trangthai != "Từ chối").Sum(p => p.ketqua_trongkeo); var tiencuoctrongngayVND = String.Format("{0:N}", ketquatrongngay * l.First().GiaUSDTK); doc.InsertParagraph("Vậy, trong ngày: " + ngay3 + " tổng số tiền mà tôi(" + l.First().TenTk + ") đánh bạc là: (" + ketquatrongngay + ") tương ứng với số tiền (" + tiencuoctrongngayVND + "đ)\n"); } // Save to the output directory: doc.Save(); Process.Start("WINWORD.EXE", fileName); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }