發表文章

目前顯示的是 2月, 2024的文章

Excel VBA @ PCCES契約項目後處理

圖片
開發動機: [ 有需要的人可以寫信給我或用LINE官方帳號聯繫 ] PCCES為公共工程在製作預算書時常見的工具,匯出資料格式有"Excel"檔或"XML"檔。 輸出的預算書Excel上會有以下工作表,在製作監造報表、施工日誌、工程結算書、變更預算書等 後處理 時會需要針對下列內容進行使用: 預算總表 預算詳細表 預算單價分析表 預算資源統計表(較少使用) 但因為Excel本身儲存格欄寬的緣故,在較長的工作項目會有 切割到下一列 的情況,將工作項目 騰寫到其他後處理工具時會有一些困擾 ,包含複製貼上時會有缺少文字而必須從下一列再進行補齊(圖一)。 此外在Excel上的呈現如果沒有在PCCES上選取"組合編號"進行編號,也較 難理解其工作項目之間的層次 ,在小計與總計的計算過程會有諸多不便,導致工程結算書或變更設計預算書在對應各層之總和後處理容易發生錯誤。(圖二)。 圖一、落落長的工作項目(如壹.五.2.b) 圖二、未按照階層關係進行編號的預算書XLS。 解決方案: 一、針對PCCES所匯出之XLS格式進行內容拼貼,階層關係仍然需要手動處理,比較需要Case By Case,較難一併通用,以往的專案都以此方法進行後處理。 二、 針對PCCES所匯出之XML格式進行內容擷取 ,此為本篇文章主要說明內容,為了更容易的擷取工作項目及自動處理階層關係,特此撰寫針對XML格式之後處理小工作。 三、後續可以將彙整出的工作項目導入至"監造報表VBA"或者是"施工日誌VBA"以便進行每日在填報報表時的契約項目,未來在輸出"工程結算書"或"變更設計預算書"時也能夠與原設計項目階層相符(包含項次、工作項目、小計內容)。 圖三、PCCES所匯出之XML格式 關於XML格式有幾點需要注意的內容: 1.每一個階層都用標記"<...>"為開始,標記</...>為結束,這部分類似HTML的標籤樣式,XML本身也屬於一種半結構化的資料格式。 2.詳細價目表位於"DetailList",該階層內的"PayItem"則為所屬項目。 3.關於itemKind的分類有他的對應關係,mai