系統整合相關概念

使用最新的系統整合技術,建立各種服務平台的介接方式,以符合最前衛的MVC設計理念。

MIDAS簡易結構分析

Delphi中MIDAS的資料結構可以由2種方式組成,1為XML、2為binary的方式。由於沒有相關技術文件說明,只能以XML的格式為準,用reverse engineer的方式來分析MIDAS的資料結構,以及模擬操控方式。

  • 它是一個XML檔案,所以於一開始是定義<?xml version="1.0" standalone="yes"?>
  • 接下來是資料的根路徑<DATAPACKET Version="2.0">當然在文件結束時要以</DATAPACKET>作為結束
  • <DATAPACKET>內有2組資料集合<METADATA>及<ROWDATA>
  • <METADATA>內是定義每個欄位的區段,由<METADATA>開始,到</METADATA>作為結束
  • <METADATA>內包含了由<FIELDS>開始,到</FIELDS>作為結束的欄位集合
  • <FIELDS>內包含了多組,由<FIELD>開始,到</FIELD>作為結束的欄位定義
  • <FIELD>內則是以屬性的方式來表達,現有attrname為欄位名稱,fieldtype為欄位型態,WIDTH為長度
  • <ROWDATA>代表著由資料庫SELECT出來的集合,當然有可能為0..N筆資料
  • <ROWDATA>裡面則把每筆資料用<ROW>包裝起來,裡面的屬性名稱就是欄位為稱,屬性的值就是欄位的值
  • <PARAMS/>則沒有更深入的研究,應該是key或index的設定

  • 基本上只要符合此一要求,把資料由TClientDataSet裡的loadFromFile或loadFromStream載入之後,均可以在相對DataSource所引用的VCL元件中正確無誤的操作。

    <?xml version="1.0" standalone="yes"?>  
    <DATAPACKET Version="2.0">
    	<METADATA>
    		<FIELDS>
    			<FIELD attrname="SCH_YEAR" fieldtype="string" WIDTH="3"/>
    			<FIELD attrname="SCH_SEMESTER" fieldtype="string" WIDTH="1"/>
    			<FIELD attrname="EVL_TOPIC_SEQ" fieldtype="i4"/>
    			<FIELD attrname="EVL_TOPIC" fieldtype="string" WIDTH="100"/>
    			<FIELD attrname="EVL_EXPLAIN" fieldtype="string" WIDTH="256"/>
    			<FIELD attrname="EVL_QUE_COUNT" fieldtype="i4"/>
    		</FIELDS>
    		<PARAMS/>
    	</METADATA>
    	<ROWDATA>
    		<ROW SCH_YEAR="96" SCH_SEMESTER="2" EVL_TOPIC_SEQ="1" EVL_TOPIC="壹、學生學習狀況" EVL_EXPLAIN="" EVL_QUE_COUNT="5"/>
    		<ROW SCH_YEAR="96" SCH_SEMESTER="2" EVL_TOPIC_SEQ="2" EVL_TOPIC="貳、課程與教學" EVL_EXPLAIN="" EVL_QUE_COUNT="7"/>
    		<ROW SCH_YEAR="96" SCH_SEMESTER="2" EVL_TOPIC_SEQ="3" EVL_TOPIC="參、教師教學評量" EVL_EXPLAIN="各位同學:為改進課程安排與教學品質,我們非常需要您的支持與協助,請針對您上過課的教師的教學狀況在下列評量表中據實點選您的滿意分數。非常滿意5分、滿意4分、普通3分、不滿意2分、非常不滿意1分。" EVL_QUE_COUNT="9"/>
    		<ROW SCH_YEAR="97" SCH_SEMESTER="1" EVL_TOPIC_SEQ="1" EVL_TOPIC="壹、學生學習狀況" EVL_EXPLAIN="" EVL_QUE_COUNT="5"/>
    		<ROW SCH_YEAR="97" SCH_SEMESTER="1" EVL_TOPIC_SEQ="2" EVL_TOPIC="貳、課程與教學" EVL_EXPLAIN="" EVL_QUE_COUNT="7"/>
    		<ROW SCH_YEAR="97" SCH_SEMESTER="1" EVL_TOPIC_SEQ="3" EVL_TOPIC="參、教師教學評量" EVL_EXPLAIN="各位同學:為改進課程安排與教學品質,我們非常需要您的支持與協助,請針對您上過課的教師的教學狀況在下列評量表中據實點選您的滿意分數。非常滿意5分、滿意4分、普通3分、不滿意2分、非常不滿意1分。" EVL_QUE_COUNT="9"/>
    		<ROW SCH_YEAR="97" SCH_SEMESTER="2" EVL_TOPIC_SEQ="1" EVL_TOPIC="壹、學生學習狀況" EVL_EXPLAIN="" EVL_QUE_COUNT="5"/>
    		<ROW SCH_YEAR="97" SCH_SEMESTER="2" EVL_TOPIC_SEQ="2" EVL_TOPIC="貳、課程與教學" EVL_EXPLAIN="" EVL_QUE_COUNT="7"/>
    	</ROWDATA>
    </DATAPACKET>