# E07 ###### tags: `問題單待處理` ## 問題敘述 區處反映: 管線搶修器材數量明細表中,現有庫存金額(19,243,120.00)、核定儲備金額(8,365,936.00)及實際儲備金額(6,807,724.00)各項所列之合計金額(如附件,例如三區),與另外計算各項每筆細項合計之金額不一致,原因為何? ## 雲端連接 https://drive.google.com/drive/folders/1hm78TGu_J-jnQooIP7oONgK-qdFR5MCS?usp=sharing ## 解析 路徑 ![](https://i.imgur.com/ZWdzbgX.png) ![](https://i.imgur.com/lry5Nj6.png) 20220531 計算結果確實不一致。 黃色為細項分別加總(我們自己算的值),紅色為表單上系統給出的值。 ![](https://i.imgur.com/siaNd6c.png) 嘗試列印表單,表單好像都沒有出現,僅顯示列印成功,多案幾次然後就會跳500error... ![](https://i.imgur.com/g8XfAqY.png) 測試機更慘案列印會直接跳錯誤,後來等很久才跳出來(如果要載新資料可能要多點耐心) ![](https://i.imgur.com/QuMBWQA.png) ![](https://i.imgur.com/1SMyzc7.png) 20220616 這題用excel去找數據應該沒有辦法找出問題點了,無法從excel表單找出可能缺少的值。可能要直接去看程式碼原先的公式是什麼? excel的檔案都在桌面資料夾110年度問題單裡面。 ### 程式呼叫順序 - mr40106_sel.jsp https://10.100.50.20:9080/mr/mr40106_sel.jsp?s_YY=111&s_YM=11106&s_YY_SYS=111&s_YM_SYS=11106 - mr40106_prt.jsp wherestring[0] (年度) wherestring[1] (單位名稱) wherestring[2] (0, 全公司彙總, 其他為各單位代號) wherestring[3] (材料編號區間(開始)) wherestring[4] (材料編號區間(結束)) wherestring[5] (彙總下轄單位資料(勾選方塊)) wherestring[6] (轄屬單位區間(開始)) wherestring[7] (轄屬單位區間(結束)) wherestring[8] (材料別統計) wherestring[9] (庫存量) wherestring[10] (系統年度) wherestring[11] (系統年月) wherestring[12] (年份) - MR40106.java (outXLS) 值陣列位置如下 ![](https://i.imgur.com/cniDShm.png) 加總的時機如下 ![](https://i.imgur.com/nOrBzaa.png) sql 執行如下 ``` DEBUG: [20220630] exec SQL: SELECT ANO,SUBSTR(MNO_MNO,1,1) AS KEPST3_MNO,SUM(C1) C1,SUM(C2) C2,SUM(C3) AS C3,SUM(C4) AS C4,SUM(C5) AS C5,SUM(C6) AS C6,SUM(C7) AS C7 FROM MR40106_RPT2 WHERE USERID = 'jhj00' GROUP BY ANO,SUBSTR(MNO_MNO,1,1) ORDER BY ANO,SUBSTR(MNO_MNO,1,1) DEBUG: [20220630] begin while ============= DEBUG: [20220630] rds[i][8] 1947673 DEBUG: [20220630] single:8250303.0,1947673.0,1834773.0 DEBUG: [20220630] accu :8250303.0,1947673.0,1834773.0 DEBUG: [20220630] begin while ============= DEBUG: [20220630] rds[i][8] 2570215 DEBUG: [20220630] single:1.1704749E7,4517888.0,4240878.0 DEBUG: [20220630] accu :1.1704749E7,4517888.0,4240878.0 DEBUG: [20220630] begin while ============= DEBUG: [20220630] rds[i][8] 537949 DEBUG: [20220630] single:1.5007987E7,5055837.0,4774181.0 DEBUG: [20220630] accu :1.5007987E7,5055837.0,4774181.0 DEBUG: [20220630] begin while ============= DEBUG: [20220630] rds[i][8] 555003 DEBUG: [20220630] single:1.6680266E7,5610840.0,5234735.0 DEBUG: [20220630] accu :1.6680266E7,5610840.0,5234735.0 DEBUG: [20220630] begin while ============= DEBUG: [20220630] rds[i][8] 2451110 DEBUG: [20220630] single:2.145533E7,8061950.0,7399229.0 DEBUG: [20220630] accu :2.145533E7,8061950.0,7399229.0 DEBUG: [20220630] single:2.145533E7,8061950.0,7399229.0 ``` 這是從 MR40106_RPT2 做計算,因此誤差應該是來自於 MR40106_RPT2 和單筆加總的誤差,應釐清 MR40106_RPT2 產生的方式。 sql執行結果為 ![](https://i.imgur.com/e149ysx.png) ## 問題單內容 * 原始程式碼位置 * 目的程式碼位置 * 問題解析 * 處理方法 * 變更後測試執行結果