From ae97356a9d0e190ad39513e913ed20eae306e28f Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 31 七月 2024 17:16:01 +0800
Subject: [PATCH] 库存报表支持动态多单位,优化,样式调整
---
service/inventory_report_forms.go | 84 ++++++++++++++----------------------------
1 files changed, 28 insertions(+), 56 deletions(-)
diff --git a/service/inventory_report_forms.go b/service/inventory_report_forms.go
index 5775cc8..eac7252 100644
--- a/service/inventory_report_forms.go
+++ b/service/inventory_report_forms.go
@@ -215,81 +215,53 @@
unitData, unitIndexMap := GetAllUnits()
// 鑷畾涔夎〃澶�
- headers := []string{"浜у搧", "浜у搧绫诲埆", "鍗曚綅鎴愭湰", "鎬讳环鍊�", "鍦ㄥ簱", "鍙敤搴撳瓨", "鍏ュ簱", "鍑哄簱"}
+ headers := []interface{}{"浜у搧", "浜у搧绫诲埆", "鍗曚綅鎴愭湰", "鎬讳环鍊�",
+ map[string][]string{"鍦ㄥ簱": unitData},
+ map[string][]string{"鍙敤搴撳瓨": unitData},
+ map[string][]string{"鍏ュ簱": unitData},
+ map[string][]string{"鍑哄簱": unitData}}
+
// 璁剧疆琛ㄥご
- for i, header := range headers {
- cell := getColumnAlphabet(i) + "1"
- f.SetCellValue("Sheet1", cell, header)
- }
-
- f.SetCellValue("Sheet1", getColumnAlphabet(1)+"1", "浜у搧")
- f.SetCellValue("Sheet1", getColumnAlphabet(2)+"1", "浜у搧绫诲埆")
- f.SetCellValue("Sheet1", getColumnAlphabet(3)+"1", "鍗曚綅鎴愭湰")
- f.SetCellValue("Sheet1", getColumnAlphabet(4)+"1", "鎬讳环鍊�")
- f.SetCellValue("Sheet1", getColumnAlphabet(5)+"1", "鍦ㄥ簱")
- f.MergeCell("Sheet1", getColumnAlphabet(5)+"1", getColumnAlphabet(7)+"1") // 鍚堝苟鍗曞厓鏍�
- f.SetCellValue("Sheet1", getColumnAlphabet(8)+"1", "鍙敤搴撳瓨")
- f.MergeCell("Sheet1", getColumnAlphabet(8)+"1", getColumnAlphabet(11)+"1") // 鍚堝苟鍗曞厓鏍�
- f.SetCellValue("Sheet1", getColumnAlphabet(12)+"1", "鍏ュ簱")
- f.MergeCell("Sheet1", getColumnAlphabet(12)+"1", getColumnAlphabet(15)+"1") // 鍚堝苟鍗曞厓鏍�
- f.SetCellValue("Sheet1", getColumnAlphabet(16)+"1", "鍑哄簱")
- f.MergeCell("Sheet1", getColumnAlphabet(16)+"1", getColumnAlphabet(19)+"1") // 鍚堝苟鍗曞厓鏍�
-
- for i, header := range unitData {
- f.SetCellValue("Sheet1", getColumnAlphabet(i+4)+"2", header)
- f.SetCellValue("Sheet1", getColumnAlphabet(i+8)+"2", header)
- f.SetCellValue("Sheet1", getColumnAlphabet(i+12)+"2", header)
- f.SetCellValue("Sheet1", getColumnAlphabet(i+16)+"2", header)
- }
-
- // 璁剧疆琛ㄥご鏍峰紡
- style := &excelize.Style{
- Border: nil,
- Fill: excelize.Fill{
- Type: "pattern",
- Pattern: 1,
- Shading: 0,
- },
- Font: &excelize.Font{
- Bold: true,
- },
- Alignment: &excelize.Alignment{
- Horizontal: "center",
- },
- }
- titleStyle, err := f.NewStyle(style)
+ lastColumnNumber, err := SetExcelHeaders(headers, f)
if err != nil {
return
}
- lastColumn := getColumnAlphabet(19)
+ titleStyle, err := SetHeaderStyle(f)
+ if err != nil {
+ return
+ }
+
+ lastColumn := getColumnAlphabet(lastColumnNumber)
f.SetCellStyle("Sheet1", "A1", lastColumn+"2", titleStyle)
// 璁剧疆鍒楀
f.SetColWidth("Sheet1", "A", "D", 30)
f.SetColWidth("Sheet1", "E", lastColumn, 15)
+ for i := 1; i <= 4; i++ {
+ column := getColumnAlphabet(i)
+ f.MergeCell("Sheet1", column+"1", column+"2") // 鍚堝苟鍗曞厓鏍�
+ }
+
for i, v := range dataList {
- column := strconv.Itoa(i + 3)
- f.SetCellValue("Sheet1", getColumnAlphabet(0)+column, v.ProductName)
- f.SetCellValue("Sheet1", getColumnAlphabet(1)+column, v.ProductType)
- f.SetCellValue("Sheet1", getColumnAlphabet(2)+column, v.Cost)
- f.SetCellValue("Sheet1", getColumnAlphabet(3)+column, v.Value)
+ rowNumber := i + 3
+ column := strconv.Itoa(rowNumber)
+ f.SetCellValue("Sheet1", getColumnAlphabet(1)+column, v.ProductName)
+ f.SetCellValue("Sheet1", getColumnAlphabet(2)+column, v.ProductType)
+ f.SetCellValue("Sheet1", getColumnAlphabet(3)+column, v.Cost)
+ f.SetCellValue("Sheet1", getColumnAlphabet(4)+column, v.Value)
- f.SetCellValue("Sheet1", getColumnAlphabet(4)+column, v.Amount)
v.AmountMoreUnits = append(v.AmountMoreUnits, models.UnitItems{Amount: v.Amount, Unit: v.Unit})
- FillMoreUnitToExcel(v.AmountMoreUnits, 5, i+3, unitIndexMap, f)
+ FillMoreUnitToExcel(v.AmountMoreUnits, 5, rowNumber, unitIndexMap, f)
- f.SetCellValue("Sheet1", getColumnAlphabet(8)+column, v.AvailableNumber)
v.AvailableNumberMoreUnits = append(v.AvailableNumberMoreUnits, models.UnitItems{Amount: v.AvailableNumber, Unit: v.Unit})
- FillMoreUnitToExcel(v.AvailableNumberMoreUnits, 9, i+3, unitIndexMap, f)
+ FillMoreUnitToExcel(v.AvailableNumberMoreUnits, 5+len(unitData), rowNumber, unitIndexMap, f)
- f.SetCellValue("Sheet1", getColumnAlphabet(12)+column, v.In)
v.InMoreUnits = append(v.InMoreUnits, models.UnitItems{Amount: v.In, Unit: v.Unit})
- FillMoreUnitToExcel(v.InMoreUnits, 13, i+3, unitIndexMap, f)
+ FillMoreUnitToExcel(v.InMoreUnits, 5+len(unitData)*2, rowNumber, unitIndexMap, f)
- f.SetCellValue("Sheet1", getColumnAlphabet(16)+column, v.Out)
v.OutMoreUnits = append(v.OutMoreUnits, models.UnitItems{Amount: v.Out, Unit: v.Unit})
- FillMoreUnitToExcel(v.OutMoreUnits, 17, i+3, unitIndexMap, f)
+ FillMoreUnitToExcel(v.OutMoreUnits, 5+len(unitData)*3, rowNumber, unitIndexMap, f)
}
fileName = fmt.Sprintf("搴撳瓨鎶ヨ〃%s.xlsx", time.Now().Format("2006-01-02-1504"))
--
Gitblit v1.8.0