跳轉到

程式資訊

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

批次修改項目編號

功能簡介

「批次修改項目編號」是一支輔助工具,用來把已過帳傳票明細上的 項目編號(會計項目/工令代號)一次補上或改掉。它不會出現在主選單,而是從別的單據以延伸功能叫出的小視窗:

  • 總帳傳票輸入SLIY)按延伸功能開啟,補登/更正某科目所有傳票的項目編號。
  • 應收票據CHECKREC)按延伸功能開啟,同樣用來整批維護傳票的項目編號。

實務情境:某個會計科目當初登傳票時漏填或填錯項目編號,事後要逐張改太慢。本工具讓你指定一個科目代號+一段傳票日期區間,把符合的傳票明細全部撈出來,輸入一次目標項目編號後,逐列或整批套用,最後一次存回資料庫(走轉單/回寫機制)。

這是修改工具,不是查詢報表

本頁雖然工具列只有一顆 查詢 鈕,但它的目的是改資料。查出來的傳票明細格線本身是唯讀的,要修改的項目編號是靠每列前面的 更新 按鈕、把上方條件列的項目編號套進該列;按 儲存 才把變更回寫到傳票檔。請確認你有該科目傳票的維護權限再操作。

前置需求

  • 權限:透過上層單據的延伸功能開啟,需具備總帳傳票輸入應收票據的使用權,以及傳票回寫(轉單)權限。
  • 基礎資料
資料 影響
會計科目(accl,含「輸入傳票」「控制方式4」設定) 決定科目能不能查、能不能輸入項目編號
會計項目主檔(項目編號/項目名稱) 項目編號 條件與每列項目名稱的來源
已過帳傳票(sliym/sliy) 查詢的資料來源;明細要存在於指定科目與日期區間內才撈得到

操作步驟

整個操作集中在視窗上方的條件列與下方的兩個頁籤:

  1. 科目代號 欄輸入或用放大鏡選一個會計科目,按 Tab 離開欄位。
    • 搜尋控件會自動帶出右側唯讀的科目名稱
    • 系統同時用科目去字典查 控制方式4,判斷此科目是否允許輸入項目編號(見欄位連動與附加功能)。
  2. 設定 起始日期 ~ 截止日期(比對傳票日期),預設都是今天,請依需要往前調整成要處理的傳票區間。
  3. 項目編號 欄輸入這次要套用的目標項目編號(同樣可用放大鏡查詢)。
    • 若此科目不允許輸入項目編號,系統會跳出提示且不接受輸入
  4. 查詢。符合「科目代號=指定值,且傳票日期落在區間內」的傳票明細會載入下方 Data 頁籤。
    • 若有傳票正被其他人編輯而鎖住,它們會被分流到 鎖住資料 頁籤(頁籤標題會顯示筆數)。
  5. 套用項目編號到要修改的列——Data 頁籤的格線是唯讀的,無法直接在儲存格鍵入:
    • 在 Data 頁籤該列最前面按 更新 按鈕,系統會把上方條件列的 項目編號 寫進這一列。
    • 要套用相同值時,逐列按 更新 即可;本工具沒有「全部套用」一鍵按鈕。
  6. 確認 Data 頁籤各列項目編號無誤後,按視窗右下角的 儲存 將變更回寫到傳票。
    • 存檔成功會跳出成功訊息;依系統參數設定,視窗可能會在存檔後自動關閉。
  7. 若要放棄這次修改,按 取消;要關閉視窗按 離開

批次修改項目編號主畫面

小技巧

本工具的設計是「整批同值、逐列確認」:先在條件列填好 項目編號,再對每一列按 更新 把該值套進去。格線不開放直接編輯,所以不同列要套不同值時,請改用上方條件列換值後再對那些列按 更新

欄位說明

查詢條件列

欄位 必填 說明/格式/預設
科目代號 要處理的會計科目;離開欄位自動帶科目名稱並判斷可否輸入項目編號
起始日期 / 截止日期 比對傳票日期的區間,預設皆為今天,可改
項目編號 本次要批次套用的目標項目編號;輸入受科目「控制方式4」管制

Data/鎖住資料 頁籤主要欄位

兩個頁籤欄位結構相同,差別在資料來源(可轉單 vs. 被鎖住)。

格線唯讀,靠按鈕改值

Data 頁籤格線整體設為唯讀(IsReadOnly),所有儲存格都不能直接鍵入;下表「修改方式」欄說明此格線中唯一會被改動的 項目編號 是怎麼變的。

欄位 修改方式 說明
更新(按鈕,僅 Data 頁籤) 按下後把上方條件列的項目編號程式化寫進該列(走 JobCodeBinding
鎖定使用者(僅鎖住資料頁籤,綁定 修改人員 正在編輯/鎖住該傳票的使用者
項目編號 更新 按鈕 本工具的修改目標欄位;格線唯讀,不可直接鍵入
傳票號碼 / 傳票日期 / 序號 傳票來源識別
科目代號 / 科目名稱 該明細的會計科目
幣別 / 原借方金額 / 原貸方金額 / 匯率 原幣金額與匯率
本借方金額 / 本貸方金額 本位幣金額(唯讀)
功能幣匯率 / 借方金額 / 貸方金額 功能幣金額
集團幣匯率 / 集借方金額 / 集貸方金額 集團幣金額
部門代號 / 部門簡稱 維度:部門
分類索引1~4 維度:自訂分類索引
客廠代號 / 客廠部簡稱 維度:客戶/廠商
員工編號 / 姓名 維度:員工
項目名稱 依項目編號帶出的名稱
單別1~3 / 單號1~3 來源單據勾稽
產品群組 / 品號 / 數量 / 單位 / 單價 / 折扣 / 金額 數量金額維度
財務單id / 財務明細id 傳票回寫的對應鍵(唯讀)
到期日 票據/應收付到期日

金額欄位只是參考

本工具的目的是維護項目編號這個維度,金額、匯率、借貸方等欄位是讓你辨識傳票用的;不要把它當成改金額的地方。

欄位連動與附加功能

本節整理「輸入某欄位/按某按鈕後系統會做什麼」,全部依程式實際邏輯:

科目代號 → 帶名稱、判斷可否輸入項目編號

當你離開 科目代號 欄(UpdateSourceTrigger=LostFocus)時:

  1. 右側唯讀的科目名稱由科目搜尋控件(AcclSearch)自己解析帶出(綁定該控件的 Description)。
  2. 同時 ViewModel 用科目代號去會計科目字典GetAcclDic)查資料,檢查該科目的 控制方式4(項目編號控制旗標):
    • 若控制方式4 = N(不使用項目編號),系統把內部的「可輸入」(canInput)旗標關掉。
    • 若這個科目代號在字典中找不到,也會把「可輸入」旗標關掉。
    • 其他情況則開放輸入。

科目沒設定就不能改項目編號

上面這個旗標會直接擋住下一步——只有「控制方式4 不是 N」且「科目存在」的科目,才允許在本工具輸入/套用項目編號。

項目編號 → 受「可輸入」旗標管制

當你在條件列輸入 項目編號 時:

  • 若目前選的科目不允許輸入(見上一條),系統會跳出提示 「此科目代號無法輸入項目編號」拒絕寫入該值,欄位維持原樣。
  • 允許時才接受輸入,這個值會成為後續逐列 更新 要套用的來源。

查詢 → 撈傳票並分流鎖住資料

查詢 時:

  1. 系統以條件「該科目代號 + 傳票日期介於起訖區間」呼叫傳票轉單查詢(後端 SP DARB_TUR_SLIY,來源表 sliym)。
  2. 查得的傳票明細分成兩類:
    • 可轉單/可編輯的進 Data 頁籤(傳票Source)。
    • 被其他使用者鎖住的進 鎖住資料 頁籤(傳票無法轉單Source),並在頁籤標題以醒目色顯示鎖住筆數
  3. 若整批都沒有資料,系統會提示「無資料」;若資料正被特定人員鎖定,會提示鎖定者名稱。

鎖住資料只能看不能改

鎖住資料頁籤列出的傳票正由別人編輯中,本工具不會把它們納入存檔範圍。請等對方結束編輯後再重新查詢。

每列 更新 按鈕 → 套用條件列的項目編號

Data 頁籤每列最前面的 更新 按鈕(UpdateCommand更新項目),按下後系統把條件列目前的項目編號寫進該列的項目編號欄(透過 JobCodeBinding setter,內部設定 項目編號 並通知更新)。由於格線本身唯讀,這顆按鈕是把值套進列的唯一途徑——沒有它就無法在格線改項目編號。

儲存 → 把修改回寫傳票

按右下角 儲存SqlEditTurn 工具列)時:

  1. 系統把 Data 頁籤所有列複製成上傳用的 Twork_acc_vw_sliySource、逐筆標記為修改(增刪修=E),透過 ItemsBindingManager(註冊 sliy 表)寫回傳票。
  2. 存檔成功跳出成功訊息;是否自動關閉視窗由使用者參數 24第 1 個值決定(Y=關閉,預設 Y)。
  3. 存檔或取消後,兩個頁籤的清單會被清空,回到可重新查詢的初始狀態。

取消 / 離開

  • 取消:放棄目前查詢結果與未存的修改,清空清單;是否同時關閉視窗由使用者參數 24第 2 個值決定(Y=關閉,預設 N=留在原視窗)。
  • 離開:直接關閉本視窗(不存檔)。

本工具沒有新增/刪除/列印

本視窗只做「查詢既有傳票 → 改項目編號 → 存回」。它沒有新增傳票、刪除傳票、列印或轉傳票等動作;要做這些請回總帳傳票輸入主畫面。

常見問題

輸入科目代號後,項目編號欄打不進去、一直跳「此科目代號無法輸入項目編號」?

這代表該會計科目的 控制方式4 設成 N(不使用項目編號),或這個科目代號在會計科目主檔中找不到。請先到會計科目維護確認該科目有開放「項目編號」這個控制維度,再回來操作。

按了查詢卻沒有任何資料?

請檢查三件事:(1) 科目代號是否正確;(2) 起訖日期是否涵蓋目標傳票的傳票日期(兩個日期預設都是今天,常見是忘了把起始日期往前調);(3) 該科目在此區間內是否真的有傳票明細。若系統提示鎖定者名稱,表示資料正被該人員編輯。

查出來的資料跑到「鎖住資料」頁籤,改不動?

鎖住資料頁籤列出的傳票正被「鎖定使用者」欄顯示的人編輯中,本工具不會回寫它們。請等對方存檔/離開後再重新查詢,資料就會回到可編輯的 Data 頁籤。

格線的項目編號欄打不進去?

這是正常的。Data 頁籤格線整體設為唯讀,不能直接在儲存格鍵入項目編號。要改值請先在上方條件列填好項目編號,再按各列前面的 更新 按鈕套用。

按了每列的「更新」按鈕,項目編號卻沒變?

更新 是把條件列目前的項目編號複製到該列。若條件列的項目編號是空的(或因科目限制沒輸入成功),複製過去自然也是空的。請先在條件列填好有效的項目編號,再按各列的 更新

存檔後視窗自動關閉了,是正常的嗎?

是。存檔後是否關閉視窗由使用者參數 24 的第 1 個值控制(預設 Y=存檔後關閉);按 取消 是否關閉視窗則看第 2 個值(預設 N=不關)。若要連續處理多個科目而不想每次重開,可請系統管理員調整該參數。

相關功能


需補截圖清單

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

  1. sliy1-step1.png — 主畫面:上方條件列(科目代號/日期/項目編號)+ 下方 Data/鎖住資料兩頁籤+右下角儲存/取消/離開工具列