| | |
| | | ```mermaid |
| | | graph TD |
| | | Start([Start PageEnd]) --> CaseMode{ScanMode?} |
| | | flowchart TD |
| | | Start([開始]) --> ModeCheck{檢查掃描模式} |
| | | |
| | | subgraph smNew_Logic |
| | | CaseMode -- smNew --> GetFormID[獲取 FormID / 導引頁 / 分案頁資訊] |
| | | GetFormID --> IsDiv{偵測到分案條碼?} |
| | | IsDiv -- Yes --> ResetCase[重置計數/清空 View/取得新 ScanCaseno] |
| | | IsDiv -- No --> CheckCaseNo{ScanCaseno 為空?} |
| | | CheckCaseNo -- Yes --> GetNoName[GetNoNameCase] |
| | | CheckCaseNo -- No --> InitPath[建立目錄 Str2Dir] |
| | | |
| | | GetNoName --> InitPath |
| | | InitPath --> DocDir[決定 ScanDocDir<br/>處理分份數邏輯] |
| | | DocDir --> SetDocList[SetDocNoList 更新目錄索引] |
| | | SetDocList --> GenFileName[產生 ScanSaveFilename 序號_FormID] |
| | | GenFileName --> SaveCheck{不存檔條碼?} |
| | | SaveCheck -- No --> SetContext[SetContextList<br/>更新 TreeView UI<br/>設定 PEFileName] |
| | | end |
| | | ModeCheck -- 新案 (smNew) --> NewLogic[取得 FormID 與 DocNo, 處理分案/分份邏輯] |
| | | ModeCheck -- 插入 (smInsert) --> InsertLogic[取得 FormID 並判斷目標文件目錄] |
| | | ModeCheck -- 取代 (smReplace) --> ReplaceLogic[設定替換檔名與路徑] |
| | | ModeCheck -- 範本 (smSample) --> SampleLogic[設定範本儲存路徑] |
| | | |
| | | CaseMode -- smReplace --> DelOld[刪除舊檔] --> SetPE[設定 PEFileName] |
| | | NewLogic --> SubNew{是否偵測到分案頁?} |
| | | SubNew -- 是 --> ResetCase[重置計數並取得新案號, 更新 TreeView] |
| | | SubNew -- 否 --> CalcPath[計算儲存目錄與檔名, 更新 ContextList] |
| | | |
| | | subgraph smInsert_Logic |
| | | CaseMode -- smInsert --> GetFormIDIns[獲取 FormID / DocNo] |
| | | GetFormIDIns --> DocDirIns[尋找最後的 DocDir] |
| | | DocDirIns --> GenFileNameIns[產生 ScanSaveFilename] |
| | | GenFileNameIns --> SetContextIns[SetContextList<br/>設定 PEFileName] |
| | | end |
| | | CalcPath --> SetFileName[設定 PEFileName] |
| | | InsertLogic --> SetFileName |
| | | ReplaceLogic --> SetFileName |
| | | SampleLogic --> SetFileName |
| | | |
| | | CaseMode -- smSample --> SamLogic[刪除舊檔/設定 PEFileName/顯示辨識條碼] |
| | | |
| | | SetContext --> EndPageEnd |
| | | SetPE --> EndPageEnd |
| | | SetContextIns --> EndPageEnd |
| | | SamLogic --> EndPageEnd |
| | | |
| | | EndPageEnd([End]) |
| | | SetFileName --> End([結束]) |
| | | ``` |