跳轉到

程式資訊

  • 程式 IDATTACHMENT
  • 所屬子系統:Other
  • 狀態:stable

附件管理

功能簡介

「附件管理」是一個跨單據共用的彈出視窗,讓你把外部檔案(報價單掃描、合約 PDF、圖片、Excel 等)掛在某一張已存檔的單據上。它不是主選單裡的獨立程式,而是各單據右側「支援面板」上的附件頁籤所開啟的子視窗,因此採購、銷售、應收應付、傳票等只要有附件頁籤的單據,掛附件的操作都長得一模一樣。

附件實體檔不存在資料庫,而是複製到公司的數位圖書館(檔案伺服器)保存;資料庫只記錄檔名、標籤與存放路徑。掛好之後,回到單據的附件頁籤即可看到清單,點 顯示 就能用系統預設程式直接開檔。

這是系統共用功能,不是某一張單據

ATTACHMENT 在程式內被標記為「系統保留」的共用 ProgramClass,沒有自己的主選單入口、也沒有獨立權限。它永遠是從某一張單據的附件頁籤開出來的,掛上去的附件會綁定到「那張單據」。

前置需求

  • 權限:本功能沒有獨立權限,沿用你開啟的那張來源單據的權限。能編輯該單據(看得到附件頁籤)就能掛附件。
  • 能連到檔案伺服器:附件實體檔會複製到數位圖書館,開窗前系統會先檢查連線。
  • 單據必須先存檔:只有已經有 Pkid(單據主鍵)的單據才能掛附件。新增中、尚未存檔的單據附件頁籤無法作用。
資料/前置 影響什麼
來源單據已存檔(有主鍵) 沒存檔(Pkid = 0)時按 附件 不會有反應
數位圖書館(檔案伺服器)連線正常 連不上時開窗前就會被擋下並提示「連不上附件伺服器」
來源單據的標籤欄位(依單據別設定) 自動串成附件的標籤,並把客戶/廠商/部門/使用者代號分別寫入對應欄位,方便日後依關鍵字找檔

操作步驟

附件管理視窗從各單據的附件頁籤進入,標題為「新增附件視窗」,視窗大小固定 1000 × 600。

  1. 在單據上先存檔,確定該單據已有主鍵。
  2. 切到單據右側支援面板的附件頁籤,按 新增附件(或頁籤上的新增鈕)開啟附件管理視窗。
    • 此時系統會先檢查能否連上檔案伺服器,連不上會直接提示並中止,不會開窗。
  3. 在附件清單裡掛檔,有兩種方式:
    • 逐列掛:在某一列按 新增(載入鈕),跳出檔案選取對話框,選一個檔,檔名會填進該列的 附件 欄。
    • 一次掛多個:按視窗左下角的 多選,在對話框裡用 Ctrl/Shift 複選多個檔,系統會自動往下逐列填入。
  4. 視需要在 標籤 欄補上方便搜尋的關鍵字(例如「2026 報價」)。系統已依該單據別的標籤欄位設定自動帶入一串關鍵字。
  5. 想先確認掛對檔,按該列的 顯示(開啟鈕)用系統預設程式開檔預覽。
  6. 確認無誤後按 儲存。系統會把每個檔複製到數位圖書館、寫回資料庫,並重新整理單據資料。
  7. 不掛了就按 離開,不會留下任何變更。

這個視窗只負責「新增」附件

本視窗沒有刪除鈕,且 附件 欄唯讀、無法直接清空,因此已掛上的附件無法在這個視窗內移除。儲存邏輯上雖會把「附件欄為空」的列當成刪除處理,但本視窗沒有提供把既有附件清空的操作。被設為「禁止刪除」(禁止刪除 = Y,系統流程產生)的附件則永遠唯讀,不可編輯。

欄位說明

開窗時系統會先載入此單據既有的附件,再往下補 50 列空白列供你新增。

欄位 必填 說明/格式/預設
序號 自動 三位數流水號(001002…),接在既有附件之後自動編,唯讀
新增(鈕) 點下開啟檔案選取,把選到的檔填進本列 附件
標籤 自由文字,供日後搜尋。預設依該單據別的標籤欄位設定串入一串關鍵字(以逗號分隔),可手動增刪
附件 要掛的檔案路徑/檔名,唯讀(不能直接打字編輯)。只能透過該列 新增 鈕或左下角 多選 填入。儲存後顯示為伺服器上的新檔名
載入 自動 Y 表示此檔已複製到數位圖書館(已上傳)。唯讀;空白表示是這次新掛、尚未上傳
顯示(鈕) 用系統預設程式開啟本列附件。已上傳的檔會先抓回本機暫存再開

標籤的自動帶值來源

開窗時系統依該單據別設定的附件標籤欄位清單GetAttachmentFields),逐一抓出來源單據上對應欄位的值,串成標籤帶進每一列(多個值以逗號分隔;值本身的逗號會先換成空白)。實際串哪些欄位由單據別設定決定,不固定。另外,客戶代號/廠商代號/部門代號/使用者帳號會分別寫進各自的欄位(取自單據的工作流程欄位設定)。標籤只影響日後搜尋,不影響檔案本身。

欄位連動與附加功能

這一節把「按了什麼、輸入了什麼,系統會怎麼反應」逐條列出,全部對應實際程式行為。

開窗時(從附件頁籤按下新增)

  1. 先擋連線:附件頁籤在開窗前會先用 IsPathAvailable(含 ping 與 2 秒逾時)檢查數位圖書館。連不上時跳出「連不上附件伺服器(路徑),請檢查網路連線或洽系統管理員」並中止——目的是避免你選完檔、按存檔時才失敗。
  2. 取得單據主鍵:系統從來源單據抓出主鍵 Pkid 與單號等關鍵欄位,作為附件的歸屬。Pkid = 0(單據未存檔)時附件頁籤的新增不會有反應。
  3. 載入既有附件:以單據別+主鍵查出此單據已掛的附件填入清單;既有附件的 載入 欄會是 Y
  4. 補空白列:在既有附件之後自動補 50 列空白列,序號接續編號(D3 三位數),並把來源單據帶出的客戶/廠商/部門/使用者代號與自動串好的標籤預先填到每一列(透過 SetAttachmentProperty)。

逐列按 新增(載入鈕)

當你在某列按 新增,系統會:

  1. 跳出標準檔案選取對話框(單選)。
  2. 把你選到的檔案完整路徑填進該列的 附件 欄。此時 載入 仍為空白,代表尚未上傳,要按 儲存 才會真正複製到伺服器。

多選(左下角)

  1. 跳出檔案選取對話框並允許複選多個檔。
  2. 從目前既有附件後的第一個空白列起,把選到的每個檔依序填入 附件 欄;空白列不夠時自動再往清單尾端新增列。

按某列的 顯示(開啟鈕)

  1. 若該列 載入Y(已上傳),系統先把伺服器上的檔複製回本機暫存目錄,再用 系統預設程式(依副檔名)開啟。
  2. 載入 為空白(尚未上傳的新檔),直接用本機原始路徑以系統預設程式開啟。
  3. 開啟後,若主螢幕解析度大於 1920×1080,系統會嘗試把開啟的程式視窗移到 1920 以右的區域擺放(純體驗優化,不影響檔案內容)。

儲存

按下 儲存 時,系統對清單裡每一列做下列處理:

  1. 判斷增刪附件 欄空白的列(含你沒掛檔的那些空白列)標記為刪除(D),不會寫進資料庫;附件 有值的列才保留。
  2. 複製檔案到數位圖書館:尚未上傳(載入 不是 Y)且 附件 有值的列,把實體檔複製到數位圖書館,路徑為「數位圖書館\年月\」,並產生不重名的新檔名;複製成功後把 附件 改為新檔名、路徑 記為伺服器完整路徑、載入 設為 Y。任一檔複製失敗就整批中止並回報。
  3. 補稽核欄位:每列回填單據別、其他單據 id、單號、建檔日期(今日 YYYYMMDD)、建檔人員(目前登入者)。
  4. 寫回資料庫:原本就有附件時以「修改」上傳、原本沒有時以「新增」上傳。
  5. 成功後:跳出「儲存成功」訊息、釋放單據編輯鎖,並自動重新整理來源單據的資料,讓附件頁籤即時看到最新清單。
  6. 失敗時:跳出系統錯誤訊息,不寫入。

離開

  1. 釋放這次開窗占用的單據編輯鎖(放行碼),不寫入任何變更後關閉視窗。

附件存的是「複本」

儲存 是把你選的檔複製一份到伺服器,之後刪除或修改你電腦上的原始檔,都不影響已掛上的附件。反過來,掛附件前若原始檔還沒存好最終版本,請先把原始檔改好再掛。

常見問題

按了附件頁籤的新增鈕沒有任何反應?

多半是單據還沒存檔(主鍵 Pkid 仍為 0)。請先把單據存檔,有了主鍵才能掛附件。另一個可能是連不上檔案伺服器——那種情況會跳出「連不上附件伺服器」提示而非完全沒反應。

出現「連不上附件伺服器」怎麼辦?

附件實體檔存在公司的數位圖書館(檔案伺服器)。系統在開窗前會先 ping 該路徑(2 秒逾時),連不上就擋下。請檢查網路/VPN 連線,或洽系統管理員確認檔案伺服器是否正常。

想刪掉一個已經掛上的附件,找不到刪除鈕?

這個「新增附件視窗」只負責新增:沒有刪除鈕,而且 附件 欄唯讀、無法清空,所以已掛上的附件無法在這個視窗裡移除。若確實需要拿掉某個附件,請洽系統管理員或循其他維護管道處理。

顯示 開不了檔,或開出來是亂的?

顯示 是交給 Windows 用副檔名對應的預設程式開檔。請確認本機有安裝能開該類型檔案的程式(例如 PDF 閱讀器、Office)。若是已上傳的附件,系統會先把檔從伺服器抓回本機暫存再開,伺服器連線異常時也會開檔失敗。

儲存後序號跳號、或新掛的檔名跟我選的不一樣?

序號是接在既有附件之後自動編的三位數流水號,屬正常。檔名變動是因為複製到伺服器時為了避免重名,系統會自動產生不重複的新檔名並寫回資料庫,原始檔不受影響。

相關功能


需補截圖清單

以下截圖待 runtime 驗收後補拍(放 docs/Other/images/):

  1. attachment-step1.png — 從單據附件頁籤按下新增、開啟「新增附件視窗」的全貌
  2. attachment-step2.png — 附件清單列(含「新增/標籤/附件/載入/顯示」欄與序號)
  3. attachment-step3.png — 按 多選 後一次掛入多個檔的結果