SDIについて

皆さん、こんにちは。Dr.テトランです。
前回のエントリからすっかり間が空いてしまいましたが、暑さも和らいだことですし、また、Tetra21について述べてみたいと思います。

 

前々回のエントリ(MDIについて)で、Tetra21はMDIアプリケーションであると述べましたが、Single Document Interfaceも備えています。但し、Windowsでは、メインフレームウィンドウは一つという協約(守っていないアプリも時々見受けます)がありますので、SDIフレームウィンドウは先のメインフレームウィンドウをオーナーにしています(注意:子ウィンドウではありません)。こうすることで、前回のエントリ(帳票MDIのしくみ)の「フレームウィンドウ一つで全体を云々」が覆ることはありません。

このSDIフレームは「表一括編集」を受け持っています。クラス構成は三階層4クラスになっています。基本クラスから掛率拡張クラスを派生し、それから仮想合計付クラスと複数行編集クラスを派生しています。(次回エントリ予定の「ドック&ビューアーキテクチャ」も参照してください)

では、何故MDIにしなかったのでしょうか?
一番の理由は、「行プロパティシート」に対して、前作のDACE-Ⅲの様な全体編集のUIを持ち込みたかったからです。当初はモーダルにする予定でしたが、行数が多いことからモードレスの方が有用であると判断し、唯一のフレームに制限しつつそのように実装しました。また、MDI同士は対等のイメージが有りますが、「表一括編集」はあくまでも一時的な編集のためのUIと言うイメージです。実は、前節の帳票ウィンドウも同じような立場にあったのですが、複数の帳票を平行して扱う必要性からMDI子ウィンドウにしておきました。(仕組みは違うが、表一括編集SDIは主目的が編集、帳票MDIは表示が主目的と言える)「表一括編集」SDIクラスは、種々のデータを統一したUIで操作する目的で導入しました。

現時点では、基礎データの「表一括編集」を基底クラスに、見積書用の「表一括編集」クラスを派生し、更に金額検討表用の「表一括編集」クラスと「見積書二行編集」クラスを派生しています。将来の方向としては、接続するドキュメントに合わせた派生クラスを利用することで、編集機能をよりマッチしたものに向上させるよう、計画しています。

 

Comments are closed.