1、团体明细导出数据修改,模板修改

msfy
lsm 7 months ago
parent 582f9ce3e2
commit 19c34aaa17
  1. 3
      PEIS/Entity/EnrollmentPatient.cs
  2. 50
      PEIS/Model/Enrollment/EnrollmentOrgModel.cs
  3. 132
      PEIS/ReportFiles/OrgExcel.frx
  4. 56
      PEIS/View/Enrollment/EnrollmentOrgForm.cs

@ -105,6 +105,9 @@ namespace PEIS.Entity
[RefFlag(true)]
public Int64 RowNumber { get; set; }
[RefFlag(true)]
public String FeeItemName { get; set; }
#endregion Other
}
}

@ -106,24 +106,38 @@ namespace PEIS.Model.Enrollment
public List<EnrollmentPatient> GetExcelList(Int64 oeID)
{
return DAOHelp.GetDataBySQL<EnrollmentPatient>($@"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<EnrollmentPatient>($@"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<EnrollmentPatient>($@"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");
}
}
}

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Report ScriptLanguage="CSharp" ReportInfo.Created="06/26/2023 17:47:58" ReportInfo.Modified="09/12/2024 16:00:01" ReportInfo.CreatorVersion="2022.1.0.0">
<Report ScriptLanguage="CSharp" ReportInfo.Created="06/26/2023 17:47:58" ReportInfo.Modified="10/15/2024 11:04:41" ReportInfo.CreatorVersion="2022.1.0.0">
<ScriptText>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(&quot;O&quot;);
Cell86.Text = rowData[&quot;SignTime&quot;] == null ? &quot;&quot; : Convert.ToDateTime(rowData[&quot;SignTime&quot;]).ToString(&quot;yyyy-MM-dd&quot;);
if(Cell96.Text.Contains(&quot;合计&quot;)){
Cell96.Font = new Font(&quot;微软雅黑&quot;, (float)10, FontStyle.Bold);
}
}
}
}
@ -38,71 +38,83 @@ namespace FastReport
<ColumnHeaderBand Name="ColumnHeader1" Width="718.2" Height="56.7" PrintOn="FirstPage">
<TextObject Name="Text1" Width="718.2" Height="56.7" Text="[OrgName]" AutoShrink="FontWidth" HorzAlign="Center" VertAlign="Center" WordWrap="false" Font="微软雅黑, 26pt, style=Bold"/>
</ColumnHeaderBand>
<DataBand Name="OrgExcel" Top="98.5" Width="718.2" Height="37.8" CanGrow="true" CanShrink="true" AfterDataEvent="PeopleCount_AfterData">
<TableObject Name="Table8" Width="718.19" Height="37.8">
<TableColumn Name="Column57" Width="36.96"/>
<TableColumn Name="Column58" Width="55.86"/>
<TableColumn Name="Column59" Width="55.86"/>
<TableColumn Name="Column60" Width="36.95"/>
<TableColumn Name="Column61" Width="36.96"/>
<TableColumn Name="Column62" Width="46.41"/>
<TableColumn Name="Column63" Width="169.25"/>
<TableColumn Name="Column64" Width="65.31"/>
<TableColumn Name="Column65" Width="74.77"/>
<TableColumn Name="Column66" Width="73.71"/>
<TableColumn Name="Column67"/>
<TableRow Name="Row8" Height="37.8">
<TableCell Name="Cell77" Border.Lines="All" Text="[Row#]" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell78" Border.Lines="All" Text="[O.ID]" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell79" Border.Lines="All" Text="[O.Name]" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell80" Border.Lines="All" Text="[O.Sex]" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell81" Border.Lines="All" Text="[O.Marriage]" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell82" Border.Lines="All" Text="[O.AgeClass]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell83" Border.Lines="All" Text="[O.CardNo]" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell84" Border.Lines="All" Text="[O.Tel1]" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell85" Border.Lines="All" Text="[O.DeptName]" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell86" Border.Lines="All" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell87" Border.Lines="All" Text="[O.Fee]" VertAlign="Center" Font="微软雅黑, 10pt"/>
<GroupHeaderBand Name="GroupHeader1" Top="58.3" Width="718.2" Height="28.35" Condition="[F.GroupID]" SortOrder="None">
<TableObject Name="Table9" Width="718.2" Height="28.35" Border.Lines="All">
<TableColumn Name="Column69" Width="107.1"/>
<TableColumn Name="Column70" Width="494.55"/>
<TableColumn Name="Column71" Width="116.55"/>
<TableRow Name="Row9" Height="28.35">
<TableCell Name="Cell89" Border.Lines="All" Text="套餐名称" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
<TableCell Name="Cell90" Border.Lines="All" Text="体检项目" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
<TableCell Name="Cell91" Border.Lines="All" Text="体检费用" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
</TableRow>
</TableObject>
<DataBand Name="OrgFeeItem" Top="88.25" Width="718.2" Height="28.35" CanGrow="true" CanShrink="true">
<TableObject Name="Table11" Width="718.2" Height="28.35" Border.Lines="All">
<TableColumn Name="Column75" Width="107.1"/>
<TableColumn Name="Column76" Width="494.55"/>
<TableColumn Name="Column77" Width="116.55"/>
<TableRow Name="Row11" MinHeight="28.35" Height="28.35" AutoSize="true">
<TableCell Name="Cell95" Border.Lines="All" Text="[F.PackName]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt" CellDuplicates="Merge"/>
<TableCell Name="Cell96" Border.Lines="All" AfterDataEvent="Cell96_AfterData" Text="[F.FeeItemName]" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell97" Border.Lines="All" Text="[F.Price]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
</TableRow>
</TableObject>
</DataBand>
<GroupFooterBand Name="GroupFooter1" Top="118.2" Width="718.2" Height="28.35"/>
</GroupHeaderBand>
</ReportPage>
<ReportPage Name="Page2" Watermark.Font="宋体, 60pt">
<GroupHeaderBand Name="GroupHeader2" Width="718.2" Height="28.35" StartNewPage="true" Condition="[O.Name]" SortOrder="None">
<TableObject Name="Table12" Width="718.2" Height="28.35" Border.Lines="All">
<TableColumn Name="Column78"/>
<TableColumn Name="Column79" Width="47.25"/>
<TableColumn Name="Column80" Width="47.25"/>
<TableColumn Name="Column81" Width="56.7"/>
<TableColumn Name="Column82" Width="141.75"/>
<TableColumn Name="Column83" Width="302.4"/>
<TableColumn Name="Column90" Width="56.7"/>
<TableRow Name="Row12" Height="28.35">
<TableCell Name="Cell98" Border.Lines="All" Text="姓名" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
<TableCell Name="Cell99" Border.Lines="All" Text="性别" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
<TableCell Name="Cell100" Border.Lines="All" Text="年龄" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
<TableCell Name="Cell101" Border.Lines="All" Text="状态" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
<TableCell Name="Cell102" Border.Lines="All" Text="证件号" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
<TableCell Name="Cell123" Border.Lines="All" Text="体检项目" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
<TableCell Name="Cell130" Text="价格" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt, style=Bold"/>
</TableRow>
</TableObject>
<DataHeaderBand Name="DataHeader1" Top="58.7" Width="718.2" Height="37.8">
<TableObject Name="Table1" Width="718.19" Height="37.8">
<TableColumn Name="Column1" Width="36.96"/>
<TableColumn Name="Column2" Width="55.86"/>
<TableColumn Name="Column3" Width="55.86"/>
<TableColumn Name="Column4" Width="36.95"/>
<TableColumn Name="Column5" Width="36.96"/>
<TableColumn Name="Column6" Width="46.41"/>
<TableColumn Name="Column7" Width="169.25"/>
<TableColumn Name="Column8" Width="65.31"/>
<TableColumn Name="Column9" Width="74.77"/>
<TableColumn Name="Column45" Width="73.71"/>
<TableColumn Name="Column56"/>
<TableRow Name="Row1" Height="37.8">
<TableCell Name="Cell1" Border.Lines="All" Text="序号" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell2" Border.Lines="All" Text="体检号" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell3" Border.Lines="All" Text="姓名" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell4" Border.Lines="All" Text="性别" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell5" Border.Lines="All" Text="婚姻" Padding="0, 0, 0, 0" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell6" Border.Lines="All" Text="年龄" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell7" Border.Lines="All" Text="证件号" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell8" Border.Lines="All" Text="联系方式" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell9" Border.Lines="All" Text="部门" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell65" Border.Lines="All" Text="体检日期" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell76" Border.Lines="All" Text="体检费用" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<DataBand Name="OrgExcel" Top="29.95" Width="718.2" Height="28.35" CanGrow="true" CanShrink="true">
<TableObject Name="Table13" Width="718.2" Height="28.35" Border.Lines="All">
<TableColumn Name="Column84"/>
<TableColumn Name="Column85" Width="47.25"/>
<TableColumn Name="Column86" Width="47.25"/>
<TableColumn Name="Column87" Width="56.7"/>
<TableColumn Name="Column88" Width="141.75"/>
<TableColumn Name="Column89" Width="302.4"/>
<TableColumn Name="Column91" Width="56.7"/>
<TableRow Name="Row13" MinHeight="28.35" Height="28.35" AutoSize="true">
<TableCell Name="Cell124" Border.Lines="All" Text="[O.Name]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell125" Border.Lines="All" Text="[O.Sex]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell126" Border.Lines="All" Text="[O.AgeClass]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell127" Border.Lines="All" Text="[O.Signer]" HorzAlign="Center" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell128" Border.Lines="All" Text="[O.CardNo]" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell129" Border.Lines="All" Text="[O.FeeItemName]" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell131" Text="[O.Price]" VertAlign="Center" Font="微软雅黑, 10pt"/>
</TableRow>
</TableObject>
</DataHeaderBand>
<DataFooterBand Name="DataFooter1" Top="138.3" Width="718.2" Height="28.35">
<DataFooterBand Name="DataFooter1" Top="59.9" Width="718.2" Height="18.9"/>
</DataBand>
<DataFooterBand Name="DataFooter2" Top="80.4" Width="718.2" Height="28.35">
<TableObject Name="Table5" Width="718.2" Height="28.35" Fill.Color="InactiveBorder">
<TableColumn Name="Column35" Width="652.05"/>
<TableColumn Name="Column68"/>
<TableRow Name="Row5" Height="28.35" AutoSize="true">
<TableCell Name="Cell55" Border.Lines="All" Fill.Color="InactiveBorder" Text="-总计-:[TotalCount]人,已体检:[Yes]人,未体检:[No]人" VertAlign="Center" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell88" Border.Lines="All" Text="[TotalFee]" Font="微软雅黑, 10pt"/>
<TableCell Name="Cell55" Border.Lines="All" Fill.Color="InactiveBorder" Text="-总计-:[TotalCount]人,已体检:[Yes]人,未体检:[No]人" VertAlign="Center" Font="微软雅黑, 10pt" ColSpan="2"/>
<TableCell Name="Cell88" Border.Lines="All" Font="微软雅黑, 10pt"/>
</TableRow>
</TableObject>
</DataFooterBand>
</DataBand>
</GroupHeaderBand>
</ReportPage>
</Report>

@ -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<EnrollmentOrgFeeItem>($@"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<EnrollmentOrgFeeItem>($@"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();
}

Loading…
Cancel
Save