HOME 回資訊服務處首頁 Login
2010年第15期
簡訊
中心同仁獲得殊榮
道歉啟事
院士選舉開計票任務達成
「本院基礎地理圖資共享平台」討論會7/28舉行
健康檢查預約系統7/16上線
更新主機弱點掃描軟體FoundStone
辦理「IBM電腦系統設備維護」
支援「DrupalCamp Taipei 2010」網路服務
資訊應用
製作招標公告經驗談
資訊安全
Web Security 網站安全基礎篇(一)
 
資訊應用 >
上一篇 | 下一篇 | 返回電子報
 
製作招標公告經驗談
 
黃耀輝

前言

 新「政府電子採購網」(http://web.pcc.gov.tw)於今年初開張了,筆者舊有製作招標公告之程式已不管用,所以筆者不得已花費許多心思重新改寫程式碼,心想既然都用數月了,累積心得也不少,不如揮筆寫下個人經驗供有興趣者參考之用。

 就大多數處理行政業務的人員而言,對微軟的EXCEL、ACCESS、WORD及DBF資料庫處理軟體應當不陌生。本文即是使用一套小巧的開放自由軟體AUTOIT(詳http://www.autoitscript.com/autoit3/index.shtml),透過呼叫上述軟體元件之功能來讀取資料源(例如MDB、XLS、DBF等),再帶入參數設定檔(INI)後套印到「政府採購公告」所需之XML檔、招標文件DOC檔以及電子公文模板TEXT檔。

流程說明

 使用者必須先建立資料源檔案,包含案號、標的名稱、預算金額…等必須欄位,格式可用MDB、XLS或DBF,並從「政府電子採購網」-【招標管理】-【新增招標公告】-【匯入公告資料到暫存區】-下載XML匯入檔案範本(tender-sample.xml)及XML匯入檔案格式說明-xsd版(TenderSchema-annotate.xsd)。其中,XML匯入檔案範本也可從招標公告之新增或編輯模式下,點【完整檢視】-【資料匯出】下載tender.xml檔。之後,清除XML檔內之不需要欄位。轉換TenderSchema-annotate.xsd為INI格式,並製成多組模板以供套用。

 接著就是撰寫AUTOIT小程式。將上述多個資料源檔案、INI模板檔內之參數對應XML範本檔逐一置換。到「政府電子採購網」-招標公告-新增招標公告-匯入公告資料到暫存區-XML檔案-瀏覽,打開上述完成的XML檔,再點【預覽】,若資料無誤即會出現預覽視窗。以下簡要地說明AUTOIT程序碼供讀者參考。

XML匯入範本檔案(tender-sample.xml)欄位值清理

 因為下載所得之範本檔內容為範例,欄位值並非符合所需,故需先清除以利後續使用,摘錄以下autoit原始碼提供讀者參考:

XSD檔案格式(TenderSchema-annotate.xsd)轉換為參數配置文件(INI)格式

 因xsd檔案格式之結構過於複雜,其選項不利於使用者操作,故先將其轉換為易讀取之INI格式,提供以下autoit部份原始碼提供讀者參考:

製作各式招標公告模板(INI)

 上述轉換所得之INI檔大部份內容有多種選項,使用者可搭配不同招標型式,組合選填為各式模板。例如,未達公告之財物、未達公告之勞務、未達公告之工程、公告以上之財物、公告以上之勞務、公告以上之工程、……等。INI檔內凡有“;”符號之後文字都會被忽略,刪除“;”即可讓其生效。例如以下說明:

(註:目前發現XML內之『TENDER_PROC_CATE』(標的分類)若填值,例如:「勞務類」、「財物類」或「工程類」就出錯,故建議保留空白值,俟編輯時再人工修正,其餘皆正常)。

XLS 資料源匯出

 為填充招標公告XML檔之關鍵欄位,需要搜尋XSL資料檔並取出符合之該筆資料。摘錄以下autoit原始碼提供讀者參考:

MDB資料源匯出

 搜尋MDB資料檔並取出符合之該筆資料。摘錄以下autoit原始碼提供讀者參考:

DBF資料源匯出

 搜尋DBF資料檔並取出符合之該筆資料。摘錄以下autoit原始碼提供讀者參考:

套印至XML檔

 從資料源(XSL,MDB,DBF)與參數檔(INI)取得必需資訊後,接著以參數檔內的變數為基準,對應範本檔(XML)內變數進行逐一置換。摘錄以下autoit原始碼提供讀者參考:

套印至DOC檔

 類似WORD合併列印功能,可用來製作招標公告所需上傳文件之三用文件、投標須知、契約或各式紀錄(如開標、驗收等),以下為部份原始碼範例:

套印至TEXT檔

 類似上述『套印至DOC檔』,可搭配剪貼簿工具程式貼上電子公文系統,以下為部份原始碼範例:

修改Autoit 剪貼簿工具_ArrayDisplay

 原autoit所附之array.au3檔內有_ArrayDisplay功能函數,但係整列複製,為使其更為實用,筆者修改了_ArrayDisplay部份程式碼,讓程式只複製該列需要的欄位,呼叫_ArrayDisplay($avRET, "Data List", 32, 1, ",") 函數,即可開啟剪貼簿視窗;第二欄位為變數名稱(作為識別用);第三欄位為變數值(只複製本欄位)。以下為需插入之部份原始碼範例:

結語

 由於筆者不是專業程式設計人員,只盼借助電腦業務自動化來減少工作量,多些時間放空自己罷了,無暇深究,疏漏在所難免。

 自製程式雖然開始較費時間,但日後受用無窮,且比WORD合併列印功能靈活許多,不僅不限資料源檔數目,又可執行變數運算(例如押標金、履約保證金、投標截止或開標時間等)。另外,也可將資料套印至WORD檔,來製作招標文件或各式紀錄;或套印至TEXT檔,再搭配剪貼簿工具(例如clipx、ay.exe作者:劉兆全、或Autoit之_ArrayDisplay),將取出之資料直接導向剪貼簿工具,來貼上電子公文或表格。經常性的行政公文或許資料輸入繁複,但若能善用相關小工具程式,工作或許會變得輕鬆很多。(註:本文作者任職於應科中心)




上一篇 | 下一篇 | 返回電子報
 
 本電子報所有文字、圖片版權為中央研究院所有 。 電子報出版系統由中央研究院資訊服務處開發。