From 19c34aaa17267b319c0e32f2c35329f500dddb0d Mon Sep 17 00:00:00 2001 From: lsm Date: Tue, 15 Oct 2024 15:13:18 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=9B=A2=E4=BD=93=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=95=B0=E6=8D=AE=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PEIS/Entity/EnrollmentPatient.cs | 3 + PEIS/Model/Enrollment/EnrollmentOrgModel.cs | 50 +++++--- PEIS/ReportFiles/OrgExcel.frx | 132 +++++++++++--------- PEIS/View/Enrollment/EnrollmentOrgForm.cs | 56 ++++++++- 4 files changed, 157 insertions(+), 84 deletions(-) diff --git a/PEIS/Entity/EnrollmentPatient.cs b/PEIS/Entity/EnrollmentPatient.cs index 3a5fbf0..6a13dda 100644 --- a/PEIS/Entity/EnrollmentPatient.cs +++ b/PEIS/Entity/EnrollmentPatient.cs @@ -105,6 +105,9 @@ namespace PEIS.Entity [RefFlag(true)] public Int64 RowNumber { get; set; } + [RefFlag(true)] + public String FeeItemName { get; set; } + #endregion Other } } \ No newline at end of file diff --git a/PEIS/Model/Enrollment/EnrollmentOrgModel.cs b/PEIS/Model/Enrollment/EnrollmentOrgModel.cs index a83144f..83074c7 100644 --- a/PEIS/Model/Enrollment/EnrollmentOrgModel.cs +++ b/PEIS/Model/Enrollment/EnrollmentOrgModel.cs @@ -106,24 +106,38 @@ namespace PEIS.Model.Enrollment public List GetExcelList(Int64 oeID) { - return DAOHelp.GetDataBySQL($@"SELECT - a.ID, - a.Name, - CASE WHEN a.Sex = 1 THEN '男' ELSE '女' END AS 'Sex', - b.Marriage, - CONVERT ( VARCHAR, a.Age ) + a.AgeClass AS 'AgeClass', - a.CardNo, - a.Tel1, - c.DeptName, - a.SignTime, - (SELECT SUM(Fee) FROM Enrollment_CheckCost WHERE a.ID = EID AND a.OEID = OEID AND DeleteTime IS NULL) AS Fee - FROM - Enrollment_Patient a - LEFT JOIN Base_Patient b ON a.PID = b.ID - LEFT JOIN Base_OrgPatient c ON c.OID = a.OID AND c.PID = b.ID - LEFT JOIN Enrollment_CheckCost d ON a.ID = d.EID AND a.OEID = d.OEID - WHERE - a.OEID = {oeID} ORDER BY a.SignTime"); + //return DAOHelp.GetDataBySQL($@"SELECT + // a.ID, + // a.Name, + // CASE WHEN a.Sex = 1 THEN '男' ELSE '女' END AS 'Sex', + // b.Marriage, + // CONVERT ( VARCHAR, a.Age ) + a.AgeClass AS 'AgeClass', + // a.CardNo, + // a.Tel1, + // c.DeptName, + // a.SignTime, + // (SELECT SUM(Fee) FROM Enrollment_CheckCost WHERE a.ID = EID AND a.OEID = OEID AND DeleteTime IS NULL) AS Fee + // FROM + // Enrollment_Patient a + // LEFT JOIN Base_Patient b ON a.PID = b.ID + // LEFT JOIN Base_OrgPatient c ON c.OID = a.OID AND c.PID = b.ID + // LEFT JOIN Enrollment_CheckCost d ON a.ID = d.EID AND a.OEID = d.OEID + // WHERE + // a.OEID = {oeID} ORDER BY a.SignTime"); + + return DAOHelp.GetDataBySQL($@"SELECT + a.Name, + CASE a.Sex WHEN 1 THEN '男' ELSE '女'END AS Sex, + CAST(a.Age AS VARCHAR) + a.AgeClass AS AgeClass, + a.CardNo, + b.FeeItemName, + b.Price, + a.SignTime, + CASE WHEN a.SignTime IS NULL THEN '未发送' ELSE '已发送' END AS Signer + FROM Enrollment_Patient a + LEFT JOIN Enrollment_FeeItem b ON a.ID = b.EID + WHERE a.OEID = {oeID} + ORDER BY Name,SignTime"); } } } \ No newline at end of file diff --git a/PEIS/ReportFiles/OrgExcel.frx b/PEIS/ReportFiles/OrgExcel.frx index b9cdd03..ba6f526 100644 --- a/PEIS/ReportFiles/OrgExcel.frx +++ b/PEIS/ReportFiles/OrgExcel.frx @@ -1,5 +1,5 @@  - + using System; using System.Collections; using System.Collections.Generic; @@ -18,11 +18,11 @@ namespace FastReport { public class ReportScript { - - private void PeopleCount_AfterData(object sender, EventArgs e) + private void Cell96_AfterData(object sender, EventArgs e) { - DataSourceBase rowData = Report.GetDataSource("O"); - Cell86.Text = rowData["SignTime"] == null ? "" : Convert.ToDateTime(rowData["SignTime"]).ToString("yyyy-MM-dd"); + if(Cell96.Text.Contains("合计")){ + Cell96.Font = new Font("微软雅黑", (float)10, FontStyle.Bold); + } } } } @@ -38,71 +38,83 @@ namespace FastReport - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + + - - + + - + diff --git a/PEIS/View/Enrollment/EnrollmentOrgForm.cs b/PEIS/View/Enrollment/EnrollmentOrgForm.cs index 6a1dc24..fab9068 100644 --- a/PEIS/View/Enrollment/EnrollmentOrgForm.cs +++ b/PEIS/View/Enrollment/EnrollmentOrgForm.cs @@ -867,9 +867,9 @@ namespace PEIS.View.Enrollment var reportFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ReportFiles", "OrgExcel.frx"); rpt.Load(reportFile); - rpt.SetParameterValue("TotalCount", _lstExcelEPatient.Count()); - rpt.SetParameterValue("No", _lstExcelEPatient.Where(w => w.SignTime == null).ToList().Count()); - rpt.SetParameterValue("Yes", _lstExcelEPatient.Where(w => w.SignTime != null).ToList().Count()); + rpt.SetParameterValue("TotalCount", _lstExcelEPatient.GroupBy(g => g.Name).Count()); + rpt.SetParameterValue("No", _lstExcelEPatient.Where(w => w.SignTime == null).GroupBy(g => g.Name).Count()); + rpt.SetParameterValue("Yes", _lstExcelEPatient.Where(w => w.SignTime != null).GroupBy(g => g.Name).Count()); rpt.SetParameterValue("OrgName", DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "Name").ToString()); rpt.SetParameterValue("TotalFee", _lstExcelEPatient.Sum(s => s.Fee)); @@ -879,6 +879,28 @@ namespace PEIS.View.Enrollment checkCost.DataSource = rpt.Report.GetDataSource("O"); rpt.GetDataSource("O").Enabled = true; + // 收费项目 + var oeID = Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()); + var groupFeeItem = DAOHelp.GetDataBySQL($@"SELECT PackName,FeeItemName,Price,GroupID FROM Enrollment_OrgFeeItem WHERE OEID = {oeID} ORDER BY GroupID, DeptName").ToList(); + + var grouped = groupFeeItem.GroupBy(item => item.GroupID) + .Select(grp => new EnrollmentOrgFeeItem + { + GroupID = grp.Key, + Price = grp.Sum(item => item.Price), + PackName = grp.Where(item => item.PackName != null).ToList()[0].PackName + }); + + foreach (var group in grouped) + { + groupFeeItem.Add(new EnrollmentOrgFeeItem { GroupID = group.GroupID, PackName = group.PackName, FeeItemName = "合计", Price = group.Price }); + } + + rpt.RegisterData(groupFeeItem.OrderBy(o => o.GroupID).ThenBy(t => t.Price).ToList(), "F"); + DataBand feeItem = rpt.Report.FindObject("OrgFeeItem") as DataBand; + feeItem.DataSource = rpt.Report.GetDataSource("F"); + rpt.GetDataSource("F").Enabled = true; + rpt.Prepare(); rpt.Show(); } @@ -933,9 +955,9 @@ namespace PEIS.View.Enrollment var list = _lstExcelEPatient.Where(w => w.SignTime > begTime.Value.Date && w.SignTime < endTime.Value.AddDays(1).Date); - rpt.SetParameterValue("TotalCount", list.Count()); - rpt.SetParameterValue("No", list.Where(w => w.SignTime == null).ToList().Count()); - rpt.SetParameterValue("Yes", list.Where(w => w.SignTime != null).ToList().Count()); + rpt.SetParameterValue("TotalCount", list.GroupBy(g => g.Name).Count()); + rpt.SetParameterValue("No", list.Where(w => w.SignTime == null).GroupBy(g => g.Name).Count()); + rpt.SetParameterValue("Yes", list.Where(w => w.SignTime != null).GroupBy(g => g.Name).Count()); rpt.SetParameterValue("OrgName", DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "Name").ToString()); rpt.SetParameterValue("TotalFee", list.Sum(s => s.Fee)); @@ -945,6 +967,28 @@ namespace PEIS.View.Enrollment checkCost.DataSource = rpt.Report.GetDataSource("O"); rpt.GetDataSource("O").Enabled = true; + // 收费项目 + var oeID = Convert.ToInt64(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "ID").ToString()); + var groupFeeItem = DAOHelp.GetDataBySQL($@"SELECT PackName,FeeItemName,Price,GroupID FROM Enrollment_OrgFeeItem WHERE OEID = {oeID} ORDER BY GroupID, DeptName").ToList(); + + var grouped = groupFeeItem.GroupBy(item => item.GroupID) + .Select(grp => new EnrollmentOrgFeeItem + { + GroupID = grp.Key, + Price = grp.Sum(item => item.Price), + PackName = grp.Where(item => item.PackName != null).ToList()[0].PackName + }); + + foreach (var group in grouped) + { + groupFeeItem.Add(new EnrollmentOrgFeeItem { GroupID = group.GroupID, PackName = group.PackName, FeeItemName = "合计", Price = group.Price }); + } + + rpt.RegisterData(groupFeeItem.OrderBy(o => o.GroupID).ThenBy(t => t.Price).ToList(), "F"); + DataBand feeItem = rpt.Report.FindObject("OrgFeeItem") as DataBand; + feeItem.DataSource = rpt.Report.GetDataSource("F"); + rpt.GetDataSource("F").Enabled = true; + rpt.Prepare(); rpt.Show(); }