平成23年 7月 4日(月):初稿 |
○久しぶりに桐の話題です。 文書作りは一般にワープロソフトで行われていますが、ワープロソフトによる文書は原則として,一文書一ファイルとなり、文書の数が増える毎にファイルが増えて、後で検索するのが大変で,且つ、増えたファイルが煩わしくて仕方なく、これを何とかしたいと思って始めたので、一文書1レコードで作成するデータベースソフト桐での文書作りでした。平成5,6年頃ですから、最初にデータベースソフト桐による文書作りを始めてから10数年になります。 ○当初は,通知書、案内書等短い文章をデータベースソフト桐で作り始めましたが,ひとたび、桐を利用すると、ワープロソフトにはない便利さを次々と発見し、各種文書を次々とワープロソフト作成から桐での作成に切り(桐)変えてゆき、平成13年から、裁判所文書も、ようやく、A4横書きが実現すると同時に、訴状、準備書面等長文文書も全て桐に切り(桐)変え、事務所で作成する文書の99%を桐で作成するようになり、正に、もう、これっ桐になってしまいました(^^)。 ○一文書1ファイルから一文書1レコードへの切り替えで便利なことは、単に検索・複写等が簡単なだけではなく、文書作りでの大幅省力実現であり、そのキーポイントは、複数ファイルのリレーショナル化にあります。データベースソフトでのリレーショナル化の正しい使い方は、「リレーショナルデータベースの正規化」であり、「表(テーブル)の関連性を失う事なく、中にあるデータの冗長性やムダを少なくし、項目同士の更新が効率よく行えるよう、表(テーブル)を分解する事」で、桐では、結合表で実現するのが普通です。 ○しかし、この結合表、私にはなかなか難しくて、実務利用は殆どしておらず、簡単に複数ファイルのリレーショナル化を実現する方法として、表引き関数を利用しています。この表引き関数でのリレーショナル化は、一時作成した桐ファイルに入力したデータを簡単に取り出して、別な桐ファイルのデータとして入力するもので、「データの冗長性やムダを少なくし、項目同士の更新が効率よく行える」との厳密な意味でのリレーショナル化ではありません。しかし、私は、この表引き関数の多用で、一度入力したデータは二度と入力しないで済ませる、データベースの便利さを実現しています。 ○先日、仙台桐研MLに久しぶりの質問投稿がありました。 依頼者ファイルと、実費事件ファイルの2つのファイルがあるところ、依頼者ファイルに、新たに「事件終了」の項目を作り、ここに「1」を入れるかどうかで終了か否かを区別し、同様に「実費管理」ファイルにも「事件終了」の項目を作り、この項目は「依頼者」ファイルの「事件終了」項目の値を表引き機能を利用して,自動入力したいが、うまくいかないというものです。 ○これも理想的には、実費事件ファイルと依頼者ファイルを結合表で結合して、必要なデータを取り出す方法が宜しかろうと思いますが、私自身結合表を利用していないので説明できません。私が手慣れた方法としては、 #表引き( val , op , file , item1 , item2 【 | , str 【 | , f 】 】 ) と言う表引き関数を利用しています。 ○実費事件ファイルにも、依頼者ファイルにも「事件終了」と言う項目を作ります。 まず依頼者ファイルの「事件終了」項目に終了事件レコードでは”1”を入力します。 次に実費事件ファイルにも「事件終了」項目を作り、項目計算式として、 #表引き([依頼者名],=,"依頼者.tbl",[依頼者名],[事件終了]) と入力します。 これは”実費管理.tbl”の項目[依頼者名]と"依頼者.tbl"の項目[依頼者名]のデータが、一致する即ち「=」のレコードの"依頼者.tbl"の項目[事件終了]のデータを取り出して”実費管理.tbl”の項目[事件終了]に入れると言う関数式です。 ○これによって、実費事件ファイルの「事件終了」項目には自動的に依頼者ファイルの「事件終了」項目データが、新規挿入データは計算式結果が自動的に入力され、既存レコードについては、置換→再計算で全レコード一括入力されます。 但し、上記は比較するデータを「依頼者名」で行っていますが、この比較は余り好ましくありません。依頼者には同姓同名の方が居ますし、また、依頼者が顧問会社の場合、複数の事件を依頼されることもあり、この場合、最初のレコードだけが入力され正確性が保てません。比較するデータは、重複値がない、例えば依頼者ファイルの事件ID、実費事件ファイルの事件IDというような項目を作り、重複値が出ないようにして、比較する方が正確です。 以上:1,911文字
|