chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore - 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using NPOI.SS.UserModel;
|
||||
using System.IO;
|
||||
using Wellan.Data;
|
||||
using Wellan.Common;
|
||||
|
||||
/// <summary>
|
||||
/// 外勤工作明細表 的摘要描述
|
||||
/// </summary>
|
||||
public class 外勤工作明細表 : ExcelReportBase
|
||||
{
|
||||
public 外勤工作明細表()
|
||||
{
|
||||
}
|
||||
|
||||
protected override void Init()
|
||||
{
|
||||
base.Init();
|
||||
titleStyleCenterNoBorder.SetFont(bodyFont);
|
||||
bodyStyleCenterNoBorder.SetFont(bodyFont);
|
||||
bodyNumberStyleNoBorder.SetFont(bodyFont);
|
||||
bodyStyleLeftNoBorder.SetFont(bodyFont8PT);
|
||||
titleStyleRightNoBorder.SetFont(bodyFont);
|
||||
titleStyleLeftNoBorder.SetFont(bodyFont);
|
||||
}
|
||||
|
||||
public override MemoryStream 產生報表()
|
||||
{
|
||||
#region 報表抬頭
|
||||
|
||||
var row = 0;
|
||||
|
||||
excel.MergeCell(row, 0, row, 7, BorderStyle.None);
|
||||
excel.SetCellValue(row, 0, 公司名稱, headerStyle);
|
||||
excel.SetRowHeight(row, 20);
|
||||
row++;
|
||||
excel.MergeCell(row, 0, row, 7, BorderStyle.None);
|
||||
excel.SetCellValue(row, 0, string.Format("承辦{0}", 客戶名稱), headerStyle);
|
||||
excel.SetRowHeight(row, 20);
|
||||
row++;
|
||||
excel.MergeCell(row, 0, row, 7, BorderStyle.None);
|
||||
excel.SetCellValue(row, 0, string.Format("『{0}』", 專案名稱), headerStyle);
|
||||
excel.SetRowHeight(row, 20);
|
||||
row++;
|
||||
excel.MergeCell(row, 0, row, 7, BorderStyle.None);
|
||||
excel.SetCellValue(row, 0, string.Format("{0}【{1}{2}】", 報表名稱, 年度, 月份), headerStyle);
|
||||
excel.SetRowHeight(row, 20);
|
||||
row++;
|
||||
|
||||
excel.MergeCell(row, 4, row, 5, BorderStyle.None);
|
||||
excel.SetCellValue(row, 4, "差旅費", titleStyleCenterNoBorder);
|
||||
row++;
|
||||
|
||||
excel.SetCellValue(row, 0, "序號", titleStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 1, "站別", titleStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 2, "人員姓名", titleStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 3, "薪資", titleStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 4, "長差", titleStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 5, "短差", titleStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 6, "差旅費", titleStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 7, "備註", titleStyleCenterNoBorder);
|
||||
row++;
|
||||
|
||||
#endregion
|
||||
|
||||
#region 報表資料
|
||||
|
||||
int beginRow = row;
|
||||
int serial = 1;
|
||||
|
||||
foreach (DataRow r in 資料來源.Tables[0].Rows)
|
||||
{
|
||||
var 月薪 = WDAC.GetInt32Value(r["SSP00"]) + WDAC.GetInt32Value(r["SSP02"]);
|
||||
var 差旅費 = WDAC.GetInt32Value(r["SSP09"])
|
||||
+ WDAC.GetInt32Value(r["SSP10"]);
|
||||
|
||||
excel.SetCellValue(row, 0, serial, bodyStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 1, WDAC.GetStringValue(r["SSBRHX"]), bodyStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 2, WDAC.GetStringValue(r["BPNME"]), bodyStyleCenterNoBorder);
|
||||
excel.SetCellValue(row, 3, 月薪, bodyNumberStyleNoBorder);
|
||||
excel.SetCellValue(row, 4, WDAC.GetInt32Value(r["SSP10"]), bodyNumberStyleNoBorder);
|
||||
excel.SetCellValue(row, 5, WDAC.GetInt32Value(r["SSP09"]), bodyNumberStyleNoBorder);
|
||||
excel.SetCellValue(row, 6, 差旅費, bodyNumberStyleNoBorder);
|
||||
excel.SetCellValue(row, 7, WDAC.GetStringValue(r["SSC07"]), bodyStyleLeftNoBorder);
|
||||
|
||||
row++;
|
||||
serial++;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 合計及表尾批示
|
||||
excel.MergeCell(row, 0, row, 1, BorderStyle.None);
|
||||
excel.SetCellValue(row, 0, "合計", titleStyleLeftNoBorder);
|
||||
|
||||
excel.SetCellFormula(row, 4, String.Format("SUM({0}:{1})", excel.RCtoA1(beginRow, 4), excel.RCtoA1(row - 1, 4)), bodyNumberStyleNoBorder);
|
||||
excel.SetCellFormula(row, 5, String.Format("SUM({0}:{1})", excel.RCtoA1(beginRow, 5), excel.RCtoA1(row - 1, 5)), bodyNumberStyleNoBorder);
|
||||
excel.SetCellFormula(row, 6, String.Format("SUM({0}:{1})", excel.RCtoA1(beginRow, 6), excel.RCtoA1(row - 1, 6)), bodyNumberStyleNoBorder);
|
||||
row++;
|
||||
|
||||
excel.MergeCell(row, 0, row, 2, BorderStyle.None);
|
||||
excel.SetCellValue(row, 0, "承辦人:", titleStyleLeftNoBorder);
|
||||
excel.MergeCell(row, 3, row, 5, BorderStyle.None);
|
||||
excel.SetCellValue(row, 3, "業務主管:", titleStyleLeftNoBorder);
|
||||
excel.MergeCell(row, 6, row, 7, BorderStyle.None);
|
||||
excel.SetCellValue(row, 6, "公司章:", titleStyleLeftNoBorder);
|
||||
|
||||
#endregion
|
||||
|
||||
excel.SetColumnWidth(0, 6);
|
||||
excel.SetColumnWidth(1, 10);
|
||||
excel.SetColumnWidth(2, 10);
|
||||
excel.SetColumnWidth(3, 10);
|
||||
excel.SetColumnWidth(4, 10);
|
||||
excel.SetColumnWidth(5, 10);
|
||||
excel.SetColumnWidth(6, 10);
|
||||
excel.SetColumnWidth(7, 80);
|
||||
|
||||
MemoryStream ms = new MemoryStream();
|
||||
workbook.Write(ms);
|
||||
return ms;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user