程式資訊
- 程式 ID:
BOR - 所屬子系統:A.系統資料
- 狀態:stable
上下位關聯(關係表)¶
功能簡介¶
「上下位關聯」是一張共用的父子(上位/下位)關係主檔,用一張單把某一筆主資料(上位)底下要掛的多筆相關資料(下位)登錄成一份清單。它依類別碼切換為六種不同用途:
- 代理人(員工 → 員工):登錄某員工的代理人,常用於請假/簽核流程改派。
- 下屬(員工 → 員工):登錄某主管的直接下屬,供工作流程與待辦清單判斷簽核對象。
- 部門(部門 → 部門):登錄部門的上下位隸屬。
- 客戶(客戶 → 客戶):登錄客戶的歸屬/集團關係。
- 廠商(廠商 → 廠商):登錄廠商的歸屬/集團關係。
- 工作中心(工作中心 → 工作中心):登錄工作中心的隸屬。
報表抬頭即為「關係表」。系統管理者或人資/生管在維護組織與簽核關係時會用到它;其結果會被工作流程/待辦清單等簽核機制引用(例如以「下屬」「代理人」判斷誰該收到簽核)。
一張單 = 一個上位
每張單只對應一個上位編號,下位則是明細區的多列。換句話說,「A 主管的下屬有哪些」是一張單,下面列出所有下屬。
前置需求¶
- 權限:A.系統資料 →
A-050 上下位關聯的瀏覽權限;列印另需列印權限。 - 必須先維護的主檔:上位/下位編號都是去既有主檔查值,對應主檔沒建好就查不到資料——
| 資料 | 影響什麼 |
|---|---|
| 員工資料(PERDATA) | 類別=代理人/下屬時,上位與下位編號的查值來源 |
| 部門資料(DEPT) | 類別=部門時的查值來源 |
| 客戶資料(CUDATA) | 類別=客戶時的查值來源 |
| 廠商資料(SPDATA) | 類別=廠商時的查值來源 |
| 工作中心(WKCENT) | 類別=工作中心時的查值來源 |
類別碼決定查值來源
上位編號與下位編號的搜尋來源隨類別碼動態切換(見欄位連動與附加功能)。因此一定要先選類別碼,再去查上位/下位編號,否則查到的會是上一個類別的對照表。
操作步驟¶
- 從主選單開啟 A.系統資料 →「上下位關聯」。
- 點工具列
新增。 - 在 類別碼 下拉選取要建立的關係種類(代理人/下屬/部門/客戶/廠商/工作中心)。
- 選定後系統會把 上位編號/下位編號 的查值來源切到對應主檔。
- 在 上位編號 欄按搜尋(放大鏡)選取上位資料;選定後 上位名稱 會自動帶出。
- 視需要在 備註 填寫整張單的說明。
- 在下方明細區逐列輸入下位:
- 在 下位編號 欄查值選取下位資料,下位名稱 自動帶出。
- 視需要填 投入程序、注意事項、生效起始日、生效截止日、自訂欄位1/2。
- 點工具列
儲存。系統會自動把 單號 組成「類別碼+上位編號」後寫入(見欄位連動與附加功能)。
若要修改或刪除:先用工具列查詢出該單,修改 後重選類別碼/上位編號(注意改類別碼會清空上位)或增刪明細列,再 儲存;整張單可用 刪除 移除。
若要列印,點 列印 開啟條件視窗,輸入 上位編號 起訖後出表(見列印)。
欄位說明¶
主檔欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 單號 | 系統產生 | 唯讀。儲存時自動組成「類別碼+上位編號」(例:類別碼 1+上位編號 A001 → 單號 1A001),不可手動輸入。 |
| 類別碼 | ✔ | 下拉選 1~6:1=代理人、2=下屬、3=部門、4=客戶、5=廠商、6=工作中心。決定上位/下位的查值來源。 |
| 上位編號 | ✔ | 父節點編號,依類別碼到對應主檔查值(員工/部門/客戶/廠商/工作中心)。 |
| 上位名稱 | 自動 | 由上位編號查值帶出,唯讀顯示。 |
| 備註 | — | 整張單的文字說明,最長 50 字。 |
明細欄位(下位清單)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 序號 | — | 明細列序號。 |
| 下位編號 | ✔ | 子節點編號,與上位同一套查值來源(依類別碼切換)。留空的列在儲存時會被自動刪除。 |
| 下位名稱 | 自動 | 由下位編號查值帶出,亦可手動修改。 |
| 投入程序 | — | 自由文字(最長 6 字)。 |
| 注意事項 | — | 該下位的備註說明,最長 60 字。 |
| 生效起始日 | — | 此關係生效起日。版面上設為唯讀顯示。 |
| 生效截止日 | — | 此關係失效日。版面上設為唯讀顯示。 |
| 自訂欄位1 | — | 自由文字(最長 30 字)。 |
| 自訂欄位2 | — | 自由文字(最長 30 字)。 |
生效日期欄唯讀
目前版面把 生效起始日/生效截止日 設為唯讀(ForceReadOnly),畫面上無法直接編輯。若需要使用生效區間請洽系統維護者。
欄位連動與附加功能¶
本節整理「輸入某欄位/按某動作後系統會做什麼」,全部來自實際程式碼。
類別碼 → 切換上位/下位查值來源¶
當你選取或變更 類別碼 時,系統會把上位編號與明細下位編號的搜尋設定整組切換到對應主檔:
| 類別碼 | 查值主檔 | 查詢條件欄 | 顯示名稱欄 |
|---|---|---|---|
1 代理人 |
員工資料(PERDATA) | 員工編號 | 員工姓名 |
2 下屬 |
員工資料(PERDATA) | 員工編號 | 員工姓名 |
3 部門 |
部門資料(DEPT) | 部門代號 | 部門簡稱 |
4 客戶 |
客戶資料(CUDATA) | 客戶代號 | 客戶簡稱 |
5 廠商 |
廠商資料(SPDATA) | 廠商代號 | 廠商簡稱 |
6 工作中心 |
工作中心(WKCENT) | 中心代號 | 中心說明 |
變更類別碼 → 清空上位編號/名稱¶
在編輯狀態下變更類別碼時,系統會把已填的 上位編號 與 上位名稱 一併清空,避免沿用上一個類別查到的舊值。所以:
改類別碼會清掉上位
若你在輸入到一半時改了類別碼,已選的上位編號會被清空,必須重新查值。明細列的下位不會被清空,但其查值來源也已切換,請確認下位編號仍與新類別相符。
儲存時 → 單號自動組成「類別碼+上位編號」¶
按 儲存 時,系統在寫入前會把 單號 設為 類別碼 + 上位編號(例:類別碼 1、上位編號 A001 → 單號 1A001)。因此:
- 單號欄畫面唯讀,不需也不能手動輸入。
- 同一類別、同一上位只能有一張單(單號會相同)。要為同一上位再加下位,請查出原單後在明細區追加,而不是另開新單。
儲存時 → 空白下位列自動刪除¶
按 儲存 時,系統會掃描明細區,把 下位編號為空白 的列自動標記為刪除。所以:
- 不必手動清掉沒填的空列,存檔時會自動略過。
- 要刪除某一筆下位,把該列的下位編號清空再存檔即可(等同刪列)。
列印¶
工具列 列印 會開啟 BorPrint 條件視窗:
- 開窗時系統會把目前單據的 上位編號 自動帶入起訖兩欄(起=迄=目前上位編號),等於預設只印當前這一張。
- 你可改成一段 上位編號 區間,列印多張關係表。
- 出表使用報表
A050-1「關係表」(A4、台灣區域)。
列印條件僅有上位編號
BorPrint 目前的條件面板只提供「上位編號」起訖一個篩選條件,沒有類別碼或日期篩選。
審核/工作流程(資料面)¶
主檔資料表保留了 工作流程、審核人員、審核日期、已審核 等欄位,代表此單可被工作流程機制引用;但目前 Bor 維護畫面本身沒有提供簽核按鈕或工作流程操作 UI。
簽核欄位由其他機制使用
上述審核相關欄位在本維護畫面不會直接編輯,主要供工作流程設定等機制讀寫。Bor 畫面以維護上下位清單為主。
常見問題¶
為什麼查上位/下位編號查不到我要的人或部門?
上位/下位的查值來源隨類別碼切換。請先確認 類別碼 選對了:代理人/下屬查的是員工、部門查部門、客戶查客戶、廠商查廠商、工作中心查工作中心。選錯類別會去錯的主檔找,自然查不到。另外對應主檔(如員工、部門)也必須先建好資料。
改了類別碼,上位編號怎麼不見了?
這是設計行為。為避免沿用前一個類別的舊值,在編輯狀態變更類別碼時系統會清空上位編號與上位名稱,請重新查值選取。詳見變更類別碼 → 清空上位編號/名稱。
單號欄是灰的、不能打字?
單號是系統自動產生的,唯讀。儲存時會自動組成「類別碼+上位編號」(例 1A001)。你只要選好類別碼與上位編號,存檔後單號就會出現。
明細區留了空白列,會不會存壞資料?
不會。儲存時系統會把下位編號空白的列自動刪除,不需手動清除。反過來,要刪掉某一筆下位,把該列下位編號清空再存檔即可。
生效起始日/生效截止日為什麼不能改?
目前版面把這兩欄設為唯讀(ForceReadOnly),畫面上無法直接編輯。若流程需要使用生效區間,請洽系統維護者。
同一個主管想分兩張單登錄下屬可以嗎?
不建議。單號=類別碼+上位編號,同一類別同一上位的單號會相同,等於同一張單。要為同一上位再加下位,請查出原單後在明細區追加,而不是另開新單。
相關功能¶
需補截圖清單
以下截圖待 runtime 驗收後補拍(放 docs/A-System/images/):
bor-step1.png— 主畫面全貌(類別碼下拉+上位編號+明細區)bor-step2.png— 類別碼下拉展開(六種類別)bor-step3.png— 上位/下位編號查值視窗(示意依類別切換來源)bor-step4.png— BorPrint 列印條件視窗(上位編號起訖)