AppML 案例模型
此案例研究示範如何建立一個完整的 <AppML> 互聯網應用程序,具有針對資料庫中的若干表進行資訊列舉、編輯和搜尋的功能。
應用程式模型
在本章中,我們將為資料庫中的 Customers 資料表建立一個完整的應用程式模型。
<AppML> 過濾器
如需允許過濾<AppML> 數據,只需簡單地向模型添加一個<filters> 元素:
實例:
<filters>
<query>
<field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</query>
<order>
<field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</order>
</filters>
<query>
<field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</query>
<order>
<field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</order>
</filters>
如需全面了解,請參閱 <AppML> 參考手冊。
<AppML> 更新
如需允許更新<AppML> 數據,只需簡單地在模型中新增一個<update> 元素:
實例:
<update>
<item><name>LastName</name></item>
<item><name>FirstName</name></item>
<item><name>BirthDate</name></item>
<item><name>Photo</name></item>
<item><name>Notes</name></item>
<Notes</name></item>
</ <item><name>LastName</name></item>
<item><name>FirstName</name></item>
<item><name>BirthDate</name></item>
<item><name>Photo</name></item>
<item><name>Notes</name></item>
<Notes</name></item>
並且在<database> 元素中加入一個<maintable> 和<keyfield> 元素:
實例:
#<maintable>Customers</ maintable>
<keyfield>CustomerID</keyfield>
<keyfield>CustomerID</keyfield>
如需全面了解,請參閱 <AppML> 參考手冊。
<AppML> 安全性
您可以透過在 <AppML> 標籤上新增 security 屬性來輕鬆地為 <AppML> 模型新增安全性。
範例:
<appml
security="admin">
#在上面的實例中,只有使用者登入成為使用者群組"admin" 的會員才能存取模型。
如需為 <update> 元素設定安全,只需簡單地向 <update> 元素新增一個 security 屬性:
實例:
<update
security="admin">
<item><name>LastName</name></item>
<item><name>FirstName</name></item>
<item><name>BirthDate</name></item>
<item><name>Photo</name></item>
<item><name>Notes</name></item>
# </update>
<item><name>LastName</name></item>
<item><name>FirstName</name></item>
<item><name>BirthDate</name></item>
<item><name>Photo</name></item>
<item><name>Notes</name></item>
# </update>
完整的 Customers 模型
在本章中,我們將為資料庫中的每個表設立一個應用程式模型。
建立一個名為 Models 的新資料夾。在 Models 資料夾中,為每個應用程式建立一個模型。
模式:Customers.xml
<appml security="">
<datasource>
<database>
<connection>Demo</connection>
<maintable>Customers</maintable>
<keyfield>CustomerID</keyfield>
<sql>SELECT * FROM Customers<
;
##' <orderby>CustomerName,City,Country</orderby>
</database>
</datasource>
<filters>
< ;field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</query>
<order>
<field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</order>
</filters>
<update security="admin">
<item>< name>CustomerName</name></item><datasource>
<database>
<connection>Demo</connection>
<maintable>Customers</maintable>
<keyfield>CustomerID</keyfield>
<sql>SELECT * FROM Customers<
;
##' <orderby>CustomerName,City,Country</orderby>
</database>
</datasource>
<filters>
< ;field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</query>
<order>
<field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</order>
</filters>
<update security="admin">
<item><name>ContactName</name></item>
# <item><name>PostalCode</name></item>
<item><name>City</name></item>
<item><name>Country</name></item>
</update></appml>實例视图:Demo_Model.htm <h1>Customers</h1> <div id="List01"></div> <script src="appml.js"></script> <script> customers=new AppML("appml.htmlx","Models/Customers"); customers.run("List01"); </script>
運行實例»
點擊"運行實例"按鈕查看線上實例###現在把所有的合併在一起#### ##然後,透過少量JavaScript 編碼,為所有模型建立一個測試頁面:#########實例######
執行實例 »
Demo_Model_Views.htm <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="appml.css" /> </head> <body> <h1>Demo Applications</h1> <button onclick='myOpen("Customers")'>Customers</button> <button onclick='myOpen("Products")'>Products</button> <button onclick='myOpen("Suppliers")'>Suppliers</button> <button onclick='myOpen("Shippers")'>Shippers</button> <button onclick='myOpen("Categories")'>Categories</button> <button onclick='myOpen("Employees")'>Employees</button> <button onclick='myOpen("Orders")'>Orders</button> <button onclick='myOpen("OrderDetails")'>OrderDetails</button> <br><br> <div id="Place01"></div> <script src="appml.js"></script> <script> function myOpen(pname) { var app_obj app_obj=new AppML("appml.php","Models/" + pname); app_obj.run("Place01"); } </script> </body> </html>###
執行實例 »
點擊 "執行實例" 按鈕查看線上實例