<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>

詳細については、<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>
</update>

また、<database> 要素に <maintable> 要素と <keyfield> 要素を追加します。

インスタンス:

<maintable>Customers</maintable>
<keyfield>CustomerID</keyfield>

詳細については、<AppML> リファレンスマニュアルを参照してください。リファレンスマニュアル。


<AppML> セキュリティ

<AppML> モデルにセキュリティを追加するには、<AppML> タグに security 属性を追加するだけです。

インスタンス:

<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>


完全な Customers モデル

この章では、データベース内の各テーブルに対してアプリケーションモデルを作成します。

Models という名前の新しいフォルダーを作成します。Models フォルダー内に、各アプリケーションのモデルを作成します。

モデル: Customers.xml

<appml security="">

<datasource>
<database>
<connection>Demo</connection>
<maintable>Customers</maintable>
<keyfield>CustomerID</keyfield>
<sql>SELECT * FROM Customers</sql>
<orderby>CustomerName,City,Country</orderby>
</database>
</datasource>

<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>

<update security="admin">
<item><name>CustomerName</name></item>
<item><name>ContactName</name></item>
<item><name>Address</name></item>
<item><name>PostalCode</name></item>
<item><name>City</name></item>
<item><name>Country</name></item>
</update>

</appml>



モデルビュー

モデルビューを作成し、Demo_Model.html として保存して、試してみましょう:

ビュー: Demo_Model.htm

<h1>Customers</h1>
<div id="List01"></div>

<script src="appml.js.html"></script>
<script>
customers=new AppML("appml.htmlx","Models/Customers");
customers.run("List01");
</script>

試してみる »


すべてを1つにまとめる

次に、少しの JavaScript コードを使用して、すべてのモデル用のテストページを作成します:

Demo_Model_Views.htm

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="appml.css.html" />
</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.html"></script>
<script>
function myOpen(pname)
{
var app_obj
app_obj=new AppML("appml.php","Models/" + pname);
app_obj.run("Place01");
}
</script>

</body>
</html>

結果を表示 »


その他の拡張