|
@@ -1767,7 +1767,7 @@ Public Class 製程配方表
|
1767
|
1767
|
Dim startIndex As Integer
|
1768
|
1768
|
|
1769
|
1769
|
' 讀取 F3 單元格內容,提取日期
|
1770
|
|
- Dim cellF3 As String = CStr(worksheet.Range("F5").Value)
|
|
1770
|
+ Dim cellF3 As String = CStr(worksheet.Range("F3").Value)
|
1771
|
1771
|
startIndex = cellF3.IndexOf("制定日期:") + 5
|
1772
|
1772
|
If startIndex > 4 Then
|
1773
|
1773
|
Dim dateString = cellF3.Substring(startIndex).Trim()
|
|
@@ -1780,28 +1780,40 @@ Public Class 製程配方表
|
1780
|
1780
|
End If
|
1781
|
1781
|
End If
|
1782
|
1782
|
|
1783
|
|
- Dim cellC5 As String = CStr(worksheet.Range("C5").Value)
|
1784
|
|
- startIndex = cellC5.IndexOf("代工產品:") + 5
|
1785
|
|
- If startIndex > 4 Then
|
1786
|
|
- Dim productNumber = cellC5.Substring(startIndex).Trim()
|
1787
|
|
- 讀取代工_tb.Text = If(productNumber = "是", "1", "0")
|
1788
|
|
- Else
|
1789
|
|
- 讀取代工_tb.Text = ""
|
1790
|
|
- End If
|
|
1783
|
+ 'Dim cellC5 As String = CStr(worksheet.Range("C5").Value)
|
|
1784
|
+ 'startIndex = cellC5.IndexOf("代工產品:") + 5
|
|
1785
|
+ 'If startIndex > 4 Then
|
|
1786
|
+ ' Dim productNumber = cellC5.Substring(startIndex).Trim()
|
|
1787
|
+ ' 讀取代工_tb.Text = If(productNumber = "是", "1", "0")
|
|
1788
|
+ 'Else
|
|
1789
|
+ ' 讀取代工_tb.Text = ""
|
|
1790
|
+ 'End If
|
1791
|
1791
|
|
1792
|
1792
|
讀取品名_tb.Text = ExtractCellValue(worksheet, "A2", "品名:", 3)
|
1793
|
1793
|
讀取料號_tb.Text = ExtractCellValue(worksheet, "A3", "料號:", 3)
|
1794
|
|
- 讀取季節_tb.Text = ExtractCellValue(worksheet, "A4", "季節:", 3)
|
1795
|
|
- 讀取版本_tb.Text = ExtractCellValue(worksheet, "A5", "版本:", 3)
|
|
1794
|
+ 讀取季節_tb.Text = ExtractCellValue(worksheet, "E2", "季節:", 3)
|
|
1795
|
+ 讀取版本_tb.Text = ExtractCellValue(worksheet, "F2", "版本:", 3)
|
1796
|
1796
|
讀取油種_tb.Text = ExtractCellValue(worksheet, "C3", "油脂種類:", 5)
|
1797
|
|
- 讀取組別_tb.Text = ExtractCellValue(worksheet, "C4", "組別:", 3)
|
1798
|
|
- 讀取標章_tb.Text = ExtractCellValue(worksheet, "G3", "認證標章:", 5)
|
1799
|
|
-
|
1800
|
|
- 讀取產量_tb.Text = CStr(worksheet.Range("B6").Value)
|
|
1797
|
+ 讀取組別_tb.Text = ExtractCellValue(worksheet, "G2", "組別:", 3)
|
|
1798
|
+ 讀取產量_tb.Text = CStr(worksheet.Range("B4").Value).Trim()
|
|
1799
|
+ 油比規格_tb.Text = ExtractCellValue(worksheet, "F19", "1.", 2)
|
|
1800
|
+ 熟成溫度_tb.Text = ExtractCellValue(worksheet, "F20", "2.熟成溫度:", 7)
|
|
1801
|
+ 熟成時間_tb.Text = ExtractCellValue(worksheet, "G20", "3.熟成時間:", 7)
|
|
1802
|
+ 淨重_tb.Text = ExtractCellValue(worksheet, "F21", "4.淨重:", 5)
|
|
1803
|
+ 包材類型_tb.Text = ExtractCellValue(worksheet, "F22", "6.包材:", 5)
|
|
1804
|
+ 打包帶_tb.Text = ExtractCellValue(worksheet, "G22", "7.打包帶:", 6)
|
|
1805
|
+ 保存條件_tb.Text = ExtractCellValue(worksheet, "F23", "8.保存條件:", 7)
|
|
1806
|
+ 保存期限_tb.Text = ExtractCellValue(worksheet, "F24", "9.保存期限:", 7)
|
|
1807
|
+ 有效日期_tb.Text = ExtractCellValue(worksheet, "F25", "10.有效期限:", 8)
|
|
1808
|
+ 淨重單位_cb.Text = ExtractCellValue(worksheet, "G21", "5.淨重單位:", 7)
|
|
1809
|
+ 認證標章_cb.Text = ExtractCellValue(worksheet, "F26", "11.認證標章:", 8)
|
|
1810
|
+ 備註_tb.Text = Extract備註Value(worksheet, "F27", "12.其他:", 6)
|
|
1811
|
+ 'CStr(worksheet.Range("F27").Value).Trim()
|
|
1812
|
+ 過敏原_tb.Text = ""
|
1801
|
1813
|
|
1802
|
1814
|
' 定義需要搜尋的關鍵字及其初始行號
|
1803
|
1815
|
Dim keywords As New Dictionary(Of String, Integer) From {
|
1804
|
|
- {"乳化劑", -1}, {"香 料", -1}, {"其 他", -1}, {"著色劑", -1}}
|
|
1816
|
+ {"原料油", -1}, {"乳化劑", -1}, {"香 料", -1}, {"其 他", -1}, {"著色劑", -1}}
|
1805
|
1817
|
Dim 規格keywords As New Dictionary(Of String, Integer) From {
|
1806
|
1818
|
{"原 料 油 脂 規 格", -1}, {"產 品 規 格", -1}, {"備 註", -1}}
|
1807
|
1819
|
|
|
@@ -1857,9 +1869,12 @@ Public Class 製程配方表
|
1857
|
1869
|
' 新增途徑: 先查出 最後一筆流水號 方可自動產生流水號
|
1858
|
1870
|
產品流水號_tb.Text = 產生新流水號("PR", "配方控制表", "配方編號")
|
1859
|
1871
|
SQL_配方控制表_新增(產品流水號_tb.Text, 讀取品名_tb.Text, 讀取油種_tb.Text, 讀取季節_tb.Text, "", 讀取日期_tb.Text,
|
1860
|
|
- 讀取產量_tb.Text, 讀取標章_tb.Text, 讀取代工_tb.Text, "", "", "", "", "", 讀取料號_tb.Text, "", 讀取版本_tb.Text, False,
|
1861
|
|
- "", "", "", "", "", "", "", "", "", "", "", 讀取組別_tb.Text)
|
|
1872
|
+ 讀取產量_tb.Text, 讀取標章_tb.Text, False, 備註_tb.Text, "", "", "", "", 讀取料號_tb.Text, "", 讀取版本_tb.Text, False,
|
|
1873
|
+ 油比規格_tb.Text, 熟成溫度_tb.Text, 熟成時間_tb.Text, 包材類型_tb.Text, 打包帶_tb.Text, 淨重_tb.Text, 淨重單位_cb.Text,
|
|
1874
|
+ 保存條件_tb.Text, 保存期限_tb.Text, 有效日期_tb.Text, "", 讀取組別_tb.Text)
|
1862
|
1875
|
|
|
1876
|
+
|
|
1877
|
+ Dim 原料油Value As Integer = keywords("原料油")
|
1863
|
1878
|
Dim 乳化劑Value As Integer = keywords("乳化劑")
|
1864
|
1879
|
Dim 香料Value As Integer = keywords("香 料")
|
1865
|
1880
|
Dim 其他Value As Integer = keywords("其 他")
|
|
@@ -1868,10 +1883,7 @@ Public Class 製程配方表
|
1868
|
1883
|
' 定義一個列表來儲存原料油內容
|
1869
|
1884
|
Dim rawMaterials As New List(Of Dictionary(Of String, String))()
|
1870
|
1885
|
|
1871
|
|
- ' 假設數據從第8行開始,到遇到 "小 計" 或空白行為止
|
1872
|
|
- Dim startRow As Integer = 8
|
1873
|
|
-
|
1874
|
|
- For i As Integer = startRow To 乳化劑Value - 1
|
|
1886
|
+ For i As Integer = 原料油Value + 1 To 乳化劑Value - 1
|
1875
|
1887
|
Dim cellValue As Object = worksheet.Cells(i, "A").Value
|
1876
|
1888
|
If cellValue IsNot Nothing Then
|
1877
|
1889
|
Dim cellText As String = CStr(cellValue).Trim()
|
|
@@ -1970,13 +1982,25 @@ Public Class 製程配方表
|
1970
|
1982
|
GC.Collect()
|
1971
|
1983
|
End Try
|
1972
|
1984
|
End Sub
|
1973
|
|
- Private Function ExtractCellValue(worksheet As Microsoft.Office.Interop.Excel.Worksheet, cellAddress As String, keyword As String, offset As Integer) As String
|
|
1985
|
+ Private Function Extract備註Value(worksheet As Microsoft.Office.Interop.Excel.Worksheet, cellAddress As String, keyword As String, offset As Integer) As String
|
1974
|
1986
|
Dim cellValue As String = CStr(worksheet.Range(cellAddress).Value)
|
1975
|
1987
|
Dim startIndex As Integer = cellValue.IndexOf(keyword) + offset
|
1976
|
1988
|
If startIndex > offset - 1 Then
|
1977
|
1989
|
Return cellValue.Substring(startIndex).Trim()
|
1978
|
1990
|
Else
|
1979
|
|
- Return keyword & "未填"
|
|
1991
|
+ Return ""
|
|
1992
|
+ End If
|
|
1993
|
+ End Function
|
|
1994
|
+ Private Function ExtractCellValue(worksheet As Microsoft.Office.Interop.Excel.Worksheet, cellAddress As String, keyword As String, offset As Integer) As String
|
|
1995
|
+ Dim cellValue As String = CStr(worksheet.Range(cellAddress).Value)
|
|
1996
|
+ Dim startIndex As Integer = cellValue.IndexOf(keyword) + offset
|
|
1997
|
+ If startIndex > offset - 1 Then
|
|
1998
|
+ Dim extractedValue As String = cellValue.Substring(startIndex).Trim()
|
|
1999
|
+ ' 移除 ℃ 和 /hr
|
|
2000
|
+ extractedValue = extractedValue.Replace("℃", "").Replace("/hr", "")
|
|
2001
|
+ Return extractedValue
|
|
2002
|
+ Else
|
|
2003
|
+ Return ""
|
1980
|
2004
|
End If
|
1981
|
2005
|
End Function
|
1982
|
2006
|
Private Sub EXCEL原料細項讀取(worksheet As Microsoft.Office.Interop.Excel.Worksheet, startRow As Integer, endRow As Integer, materialType As String)
|