private void ShowReport(string reportMode) { CriteriaOperator criteria = ((fmCRHUnpayedRequest)View.CurrentObject).GetCriteria(); // Определяем тип объектов отчёта Type dsType = typeof(fmCRHUnpayedRequestContractLine); // Получаем название файла (без расширения, которое всегда .repx) разметки отчёта string reportFileName = "fmCRHUnpayedRequestLine"; // Создаём для отчёта отдельный ObjectSpace IObjectSpace objectSpace = Application.CreateObjectSpace(); // Создаём объект, чтобы вызвать в нём метод фомирования коллекции fmCRHUnpayedRequest obj = View.CurrentObject as fmCRHUnpayedRequest; if (obj == null) { return; } // Находим сессию Session ssn = ((ObjectSpace)objectSpace).Session; string fname = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; FileInfo fi = new FileInfo(fname); string checkDir = fi.Directory.FullName + "\\Reports\\"; // http://www.devexpress.com/Support/Center/p/Q135993.aspx //XafExtReport rep = new XafExtReport(); XafReport rep = new XafReport(); rep.LoadLayout(checkDir + reportFileName + ".repx"); if (reportMode == "Short") { for (int i = 0; i < rep.Bands.Count; i++) { if (rep.Bands[i].Name == "detailBand1") { rep.Bands[i].Visible = false; } } } rep.DataSource = obj.CreateReportListSource(ssn, criteria); //rep.ShowDesignerDialog(); rep.ShowPreview(); }
private void ShowReport(string reportMode) { fmCRHPayedRequestReportParameters current = View.CurrentObject as fmCRHPayedRequestReportParameters; if (current == null) { return; } // Создаём для отчёта отдельный ObjectSpace IObjectSpace objectSpace = ObjectSpace; //ObjectSpace; // Application.CreateObjectSpace(); /* * // Определяем тип объектов отчёта * Type dsType = typeof(fmCRHPayedRequestNonPersistent); * * // Получаем название файла (без расширения, которое всегда .repx) разметки отчёта * string reportFileName = "fmCRHPayedRequestReport"; * * string fname = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName; * FileInfo fi = new FileInfo(fname); * * string checkDir = fi.Directory.FullName + "\\Reports\\"; * * // http://www.devexpress.com/Support/Center/p/Q135993.aspx * //XafExtReport rep = new XafExtReport(); * XafReport rep = new XafReport(); * rep.LoadLayout(checkDir + reportFileName + ".repx"); */ /* * if (reportMode == "Short") { * for (int i = 0; i < rep.Bands.Count; i++) { * if (rep.Bands[i].Name == "detailBand1") { * rep.Bands[i].Visible = false; * } * } * } */ //IReportData reportData = ObjectSpace.FindObject<ReportData>(new BinaryOperator("Name", "fmCRHPayedRequestReport")); IReportData reportData = ObjectSpace.FindObject <ReportData>(new BinaryOperator("Name", "Список оплаченных счетов")); XafReport rep = reportData.LoadXtraReport(objectSpace); rep.DataSource = current.GenerateReportContent(); //rep.ShowDesignerDialog(); rep.ShowPreview(); }
//private void BookRegister_Execute(object sender, SimpleActionExecuteEventArgs e) //{ // double numcredits = 0; // Decimal sumTuitionFee = 0; // ListEditor listEditor = ((ListView)View).Editor as ListEditor; // PopUpMessage ms; // DialogController dc; // ObjectSpace objectSpace = Application.CreateObjectSpace(); // if (listEditor != null) // { // if (SecuritySystem.CurrentUser is Student) // { // //kiem tra rang buoc so tin chi min // foreach (RegisterDetail regDetail in ((ListView)View).SelectedObjects) // { // numcredits += regDetail.Lesson.Subject.Credit; // } // ConstrainstParameter cparam = objectSpace.FindObject<ConstrainstParameter>( // new BinaryOperator("Code", "MINCREDITS")); // if (cparam != null && numcredits < Convert.ToDouble(cparam.Value)) // { // ms = objectSpace.CreateObject<PopUpMessage>(); // ms.Title = "Lỗi đăng ký"; // ms.Message = string.Format("Không đăng ký ít hơn {0} tín chỉ!", cparam.Value); // e.ShowViewParameters.CreatedView = Application.CreateDetailView( // objectSpace, ms); // e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; // e.ShowViewParameters.CreatedView.Caption = "Thông báo"; // dc = Application.CreateController<DialogController>(); // dc.AcceptAction.Active.SetItemValue("object", false); // dc.CancelAction.Caption = "Đóng"; // dc.SaveOnAccept = false; // e.ShowViewParameters.Controllers.Add(dc); // return; // } // //kiem tra rang buoc so tin chi max // cparam = View.ObjectSpace.FindObject<ConstrainstParameter>( // new BinaryOperator("Code", "MAXCREDITS")); // if (cparam != null && numcredits > Convert.ToDouble(cparam.Value)) // { // ms = objectSpace.CreateObject<PopUpMessage>(); // ms.Title = "Lỗi đăng ký"; // ms.Message = string.Format("Không đăng ký nhiều hơn {0} tín chỉ!", cparam.Value); // e.ShowViewParameters.CreatedView = Application.CreateDetailView( // objectSpace, ms); // e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; // e.ShowViewParameters.CreatedView.Caption = "Thông báo"; // dc = Application.CreateController<DialogController>(); // dc.AcceptAction.Active.SetItemValue("object", false); // dc.CancelAction.Caption = "Đóng"; // dc.SaveOnAccept = false; // e.ShowViewParameters.Controllers.Add(dc); // return; // } // numcredits = 0; // sumTuitionFee = 0; // string lessonCodelist = ""; // foreach (RegisterDetail regDetail in ((ListView)View).SelectedObjects) // { // if (regDetail.RegisterState.Code == "SELECTED") // { // numcredits += regDetail.Lesson.Subject.Credit; // sumTuitionFee += regDetail.Lesson.TuitionFee; // View.ObjectSpace.SetModified(regDetail); // View.ObjectSpace.SetModified(regDetail.Lesson); // regDetail.RegisterState = View.ObjectSpace.FindObject<RegisterState>( // new BinaryOperator ("Code","BOOKED")); // regDetail.CheckState = View.ObjectSpace.FindObject<RegisterState>( // new BinaryOperator("Code", "NOTCHECKED")); // regDetail.Lesson.NumRegistration++; // lessonCodelist += (String.Format("{0}({1})-", regDetail.Lesson.LessonName, regDetail.Lesson.Subject.SubjectCode)); // } // } // lessonCodelist = lessonCodelist.TrimEnd('-'); // //create Account transaction // AccountTransaction act = View.ObjectSpace.CreateObject<AccountTransaction>(); // Student stud = View.ObjectSpace.FindObject<Student>( // new BinaryOperator("Oid", SecuritySystem.CurrentUserId)); // act.Student = stud; // act.MoneyAmount = -sumTuitionFee; // act.TransactingDate = DateTime.Now; // act.Description = string.Format("Học phí [{0}] phải đóng cho {1} tín chỉ đăng ký: [{2}], do [{3}] thực hiện đăng ký", stud.StudentCode, numcredits, lessonCodelist, stud.FullName); // act.Save(); // View.ObjectSpace.CommitChanges(); // ms = objectSpace.CreateObject<PopUpMessage>(); // ms.Title = "Thực hiện đăng ký thành công"; // ms.Message = string.Format("Bạn đã chọn đăng ký {0} nhóm lớp môn học, với số tiền {1}", numcredits, sumTuitionFee); // ms.Message += "\r\n Vui lòng xem kết quả giao dịch học phí!!!"; // e.ShowViewParameters.CreatedView = Application.CreateDetailView( // objectSpace, ms); // e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; // e.ShowViewParameters.CreatedView.Caption = "Thông báo"; // dc = Application.CreateController<DialogController>(); // dc.AcceptAction.Active.SetItemValue("object", false); // dc.CancelAction.Caption = "Đóng"; // dc.SaveOnAccept = false; // e.ShowViewParameters.Controllers.Add(dc); // } // else // { // Dictionary<string, double> studentnumcredits = new Dictionary<string, double>(); // Dictionary<string, decimal> studentFee = new Dictionary<string, decimal>(); // Dictionary<string, string> studentLessonCodeList = new Dictionary<string, string>(); // Dictionary<string, string> lessonCannotReg = new Dictionary<string, string>(); // foreach (RegisterDetail regDetail in View.SelectedObjects) // { // if (!studentnumcredits.ContainsKey(regDetail.Student.StudentCode)) // { // studentnumcredits.Add(regDetail.Student.StudentCode, 0); // } // if (!studentFee.ContainsKey(regDetail.Student.StudentCode)) // { // studentFee.Add(regDetail.Student.StudentCode, 0); // } // if (!studentLessonCodeList.ContainsKey(regDetail.Student.StudentCode)) // { // studentLessonCodeList.Add(regDetail.Student.StudentCode, ""); // } // View.ObjectSpace.SetModified(regDetail); // View.ObjectSpace.SetModified(regDetail.Lesson); // if (regDetail.RegisterState.Code == "SELECTED") // { // if (regDetail.Lesson.NumRegistration >= regDetail.Lesson.NumExpectation) // { // if (!lessonCannotReg.ContainsKey(regDetail.Lesson.LessonName)) // { // lessonCannotReg.Add(regDetail.Lesson.LessonName, ""); // } // lessonCannotReg[regDetail.Lesson.LessonName] += string.Format("[{0}]-", regDetail.Student.StudentCode); // regDetail.Note = "Over Sized"; // } // else // { // studentnumcredits[regDetail.Student.StudentCode] += regDetail.Lesson.Subject.Credit; // studentFee[regDetail.Student.StudentCode] += regDetail.Lesson.TuitionFee; // studentLessonCodeList[regDetail.Student.StudentCode] += (String.Format("{0}({1})-", regDetail.Lesson.LessonName, regDetail.Lesson.Subject.SubjectCode)); // regDetail.RegisterState = View.ObjectSpace.FindObject<RegisterState>( // new BinaryOperator("Code", "BOOKED")); // regDetail.Lesson.NumRegistration++; // } // } // } // int numstudent = 0; // double credit = 0; // decimal sumfee = 0; // foreach (string studCode in studentLessonCodeList.Keys) // { // if (studentnumcredits[studCode] > 0) // { // numstudent++; // credit += studentnumcredits[studCode]; // sumfee += studentFee[studCode]; // //create Account transaction // AccountTransaction act = View.ObjectSpace.CreateObject<AccountTransaction>(); // Student studnew = View.ObjectSpace.FindObject<Student>( // new BinaryOperator("StudentCode", studCode)); // act.Student = studnew; // act.MoneyAmount = -studentFee[studCode]; // act.TransactingDate = DateTime.Now; // act.Description = string.Format("Học phí sinh viên [{0}] phải đóng cho {1} tín chỉ đăng ký là {2:0,0},\r\n bao gồm: [{3}],\r\n [{4}] thực hiện đăng ký", // studnew.StudentCode, studentnumcredits[studCode], studentFee[studCode], studentLessonCodeList[studCode].TrimEnd('-'), SecuritySystem.CurrentUserName); // act.Save(); // } // } // View.ObjectSpace.CommitChanges(); // ms = objectSpace.CreateObject<PopUpMessage>(); // ms.Title = "Thực hiện đăng ký (Booked) thành công"; // ms.Message = string.Format("Bạn đã chọn đăng ký cho {0} sinh viên, với số tiền {1:0,0} cho tổng số {2:0,0} tín chỉ học", // numstudent, sumfee, credit); // ms.Message += "\r\n Vui lòng xem kết quả giao dịch học phí!!!"; // if (lessonCannotReg.Count > 0) // { // string strmessage = ""; // foreach (KeyValuePair<string, string> keypair in lessonCannotReg) // { // strmessage += string.Format("Nhóm lớp MH:[{0}], sinh viên [{1}] \r\n", keypair.Key, keypair.Value.TrimEnd('-')); // } // ms.Message += "\r\nKhông đăng ký được do quá sĩ số:\r\n" + strmessage; // } // e.ShowViewParameters.CreatedView = Application.CreateDetailView( // objectSpace, ms); // e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; // e.ShowViewParameters.CreatedView.Caption = "Thông báo"; // dc = Application.CreateController<DialogController>(); // e.ShowViewParameters.Controllers.Add(dc); // dc.AcceptAction.Active.SetItemValue("object", false); // dc.CancelAction.Caption = "Đóng"; // dc.SaveOnAccept = false; // } // } //} //private void ConfirmRegister_Execute(object sender, SimpleActionExecuteEventArgs e) //{ // ListEditor listEditor = ((ListView)View).Editor as ListEditor; // if (listEditor != null) // { // int i = 0; // string messsage = ""; // ObjectSpace objectSpace = Application.CreateObjectSpace(); // PopUpMessage ms = objectSpace.CreateObject<PopUpMessage>(); // ms.Message = messsage; // DialogController dc = Application.CreateController<DialogController>(); // if (View.SelectedObjects.Count > 0) // { // foreach (RegisterDetail regDetail in ((ListView)View).SelectedObjects) // { // regDetail.RegisterState = View.ObjectSpace.FindObject<RegisterState>( // new BinaryOperator("Code", "PRINTED")); // if (regDetail.CheckState.Code == "CHECKED") // { // View.ObjectSpace.SetModified(regDetail); // regDetail.CheckState = View.ObjectSpace.FindObject<RegisterState>( // new BinaryOperator("Code", "CONFIRMED")); // i++; // } // } // View.ObjectSpace.CommitChanges(); // messsage = string.Format("Đã xác nhận kết quả cho \"{0}\" Nhóm MH, \r\n Nhấn OK để in kết quả!", i); // ms.Title = "Kết quả xác nhận!"; // dc.Accepting += dc_Accepting_Report; // dc.SaveOnAccept = false; // } // else // { // messsage = "Vui lòng chọn tất cả các môn đã kiểm tra"; // ms.Title = "Chưa chọn môn xác nhận!"; // } // e.ShowViewParameters.CreatedView = Application.CreateDetailView( // objectSpace, ms); // e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow; // e.ShowViewParameters.CreatedView.Caption = "Thông báo"; // e.ShowViewParameters.Controllers.Add(dc); // } //} #endregion void dc_Accepting_Report(object sender, DialogControllerAcceptingEventArgs e) { Controller controller = sender as Controller; ObjectSpace objectSpace = Application.CreateObjectSpace(); ReportData rd = objectSpace.FindObject <ReportData>( new BinaryOperator("Name", "Kết quả ĐK 1 SV")); if (rd != null) { XafReport report = rd.LoadXtraReport(objectSpace); CriteriaOperator criteriaOperator = CriteriaOperator.TryParse( String.Format("[Student.Oid] = '{0}'", SecuritySystem.CurrentUserId)); Student student = objectSpace.FindObject <Student>(criteriaOperator); report.Filtering.Filter = criteriaOperator.ToString(); MemoryStream stream = new MemoryStream(); report.ExportToPdf(stream); if (HttpContext.Current != null) { byte[] buffer = stream.GetBuffer(); string contentType = "application/pdf"; string contentDisposition = "attachment; filename=" + student.StudentCode + ".pdf"; HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = false; HttpContext.Current.Response.AppendHeader("Content-Type", contentType); HttpContext.Current.Response.AppendHeader("Content-Transfer-Encoding", "binary"); HttpContext.Current.Response.AppendHeader("Content-Disposition", contentDisposition); HttpContext.Current.Response.BinaryWrite(buffer); HttpContext.Current.Response.End(); } else { report.ShowPreview(); } controller.Dispose(); } }