| TOP>>ツアー>>チュートリアル(DBアプリ編) | 概略 | <ツアー> | OBAQ | 構成定義 | アプリケーションサーバ | リファレンス | サイトマップ |
|
データベースプログラミングの手順 スキーマの作成 構成定義ファイルの作成 標準DBドキュメントオブジェクトの利用 >標準DBドキュメントオブジェクトののカスタマイズ テストファーストプログラミング カスタムアプリケーションの例 |
標準ドキュメントオブジェクトのカスタマイズ標準ドキュメントオブジェクトは、 データのチェックを行なわず単に画面の内容をデータベースに反映させます。 ですから、エンドユーザに提供するアプリケーションとしては利用できません。 しかし、これは以下に述べる手段でカスタマイズすることができます。 画面の変更画面はHTMLテンプレートファイルから作成されています。 テンプレートファイルの内容を変更することで、 項目の画面上の位置を修正したり、 不要な項目を省いたり、 説明を追加することができます。 テンプレートメソッドの実装標準ドキュメントオブジェクトはプログラミングパターンで言う所の、 「テンプレートメソッド」というパターンで作成されています。 例えば、Masterオブジェクトでは、データを追加する直前にcheck_insertというメソッドを呼びます。 Masterオブジェクト内では、このメソッドは空ですが、これを実装することで、 データ追加の前にデータの正当性チェックを行なうことができます。 テンプレートメソッドを実装するには、構成定義ファイル(index.wal)にメソッド定義を追加します。 MasterMnt tanto
table_name = Tanto
description = <<END
マスターメンテナンスの例です。
END
template_name=master.html
.def_acq check_insert {{
raise "累計金額は負の値を設定できません" if ruikei_kin.to_i < 0
}}カスタムクラスの作成テンプレートメソッドだけで、要求する仕様を満たせない場合や、追加する処理の内容が複雑な場合は、 標準ドキュメントオブジェクトのクラスを継承して、 専用のクラスを作成します。 # クラス定義(mymaster1.rb) class MyTantoMasuter < MasterMnt .... end というソースを作成して、構成定義ファイルを以下のようにします。 #!/usr/bin/walrus
%require walrus/rope.rb
%require walrus/db.rb
%require walrus/dbapp.rb
%require mymaster1.rb # 追加
Site
.load_schema dbtut.wsc
Folder top .
Folder master
source_dir=.
MyTantoMaster tanto # 変更
table_name = Tanto
template_name=master.html |
|---|