過去の桐井戸端BBS (桐ver.8)
2747 項目計算式を入れた項目にデータ入力をしたい なべ 1999/9/22-02:05
いつも拝見勉強になっています。

項目計算式を入れた項目にデータ入力は、
やはり入れらないのでしょうかね。

条件選択で値を入れてるのですが
更に追加みたいな、データを入力したいと
思っています
遠回りしてる設定法なのかも知れませんが
(詳しい説明なく、すみません)

厚いマニュアル一応見ました。
もう一度チャント見なさい・・・
と言われそうですけど。
すみません。
2748 Re: 宮城 1999/9/22-02:26
記事番号2747へのコメント
なべさん、グーテンモルゲン。
項目初期値をお使い下さい。こちらでしたら挿入・編集ありますが、上書き可
能です。編集がいいかな。

あのマニュアルでしたら、読み込みが足らないと文句言う人あんまりいないと
思いますよ。さっさと質問したが勝ちです。
2756 Re: なべ 1999/9/25-00:00
記事番号2748へのコメント
宮城さん ありがとうございました。

今まで、使えなかった項目に
この設定で、バンバン、システム改良しています。
恥ずかしながら始めは内容理解(項目初期値)
無いままで設定しましたが、何と無く解かったようで
いいわけになりますが、この事でご返事遅れました
大変申し訳ございませんでした。
ありがとうございました。
2757 Re:スピードについて 関口喜人 1999/9/25-00:33
記事番号2756へのコメント
>今まで、使えなかった項目に
>この設定で、バンバン、システム改良しています。
>
>恥ずかしながら始めは内容理解(項目初期値)
>無いままで設定しましたが、何と無く解かったようで
>
自分もこの使い方は、知りませんでした(^^;
ところで、表引き設定の場合のスピードは、項目計算式を設定したときと同じぐら
いなんでしょうか?
データが多くなると、表引き設定を、項目属性でやるのと、計算式でやるのとだい
ぶちがってきますよね?
2758 Re: はまだ 1999/9/25-09:04
記事番号2757へのコメント
>ところで、表引き設定の場合のスピードは、項目計算式を設定したときと同じぐら
>いなんでしょうか?
>データが多くなると、表引き設定を、項目属性でやるのと、計算式でやるのとだい
>ぶちがってきますよね?

データ量の多い表で項目計算式を設定すると表を開く時点で表引きの作業が大量に
発生します。編集初期値に編集{#表引き...}の設定をしますと、1レコード
追加時、編集時のみ表引きをし、値として格納してしまいます。大きな表の場合、
スピード的には値として表に保持している方が当然有利です。ただこの場合データ
の整合性の保持については注意がより必要となってきます。
2759 項目初期値と項目計算式での表引きは目的が違います 佐田 守弘 1999/9/25-16:07
記事番号2756へのコメント
このコメントツリーの最初の目的に戻る話になるのですが、
表引きの設定にはいくつかの方法があります。まとめておきますと、
(1)項目属性で表引きの設定する方法
  値集合と同じく、一覧から選択入力する方法です。
(2)表引き関数を使う方法
 @項目計算式に設定する方法
  関数による値が項目値になり、編集はできません。
 A項目初期値に設定する方法
  編集時の初期値を与えます。値の変更が可能です。
つまり表引きでどの方法を使うかは、目的によって選びます。
値を表引き先の値に一致させて変更を許さないなら項目計算式にしますし、表
引きした値を元に編集するなら項目初期値で表引き関数を使います。また、一
覧から選択入力する時には、項目属性の表引きを設定して下さい。

●速度について
 項目計算式に表引き関数を設定した場合でも、項目値として表引きした値を
保持しております。項目計算式が再計算されるのは、表定義をやりなおしたと
き、および置換メニューで再計算を行ったときに限られます。
単に表を開いただけでは、保持されている値が表示され、表引き関数は実行さ
れません。ですから項目計算式で表引きを設定しても、初期値に設定しても、
表を開くときの速度は変わりません。

●表引きが実行されるタイミング
 項目初期値で表引きを設定した場合には、設定した表引き関数が実行される
のは、行挿入ないし未定義値の編集の時だけです。その後は設定してある表引
き関数は実行されません。

 項目計算式の場合には、再計算を行えば表引きのやり直しが行われますが、
それ以外は表引きのやり直しは行われません。ですから表引き項目を変更して
も、それだけでは表引き値は変わりません。

●表引き値の整合性
 上記の理由の通りで、いずれの方法でもつねに表引き値の整合性が取れてい
るわけではありません。整合性を取るには次の様にします。
・項目計算式の場合:再計算を行います。
・項目初期値の場合:項目置換で計算式の欄に表引き関数を設定して置換を行
います。

佐田守弘(KS-00119)
2760 Re:項目初期値と項目計算式でのファイルサイズ 関口喜人 1999/9/25-16:59
記事番号2759へのコメント
今回の表引きの設定の場合、ファイルサイズ的にも、どのケースもいっしょなので
しょうか?
今までの経験では、項目計算式への設定が、一番ファイルサイズが小さかったような
気がしています。
2762 ファイルサイズは基本的に同じはずです 佐田 守弘 1999/9/26-01:57
記事番号2760へのコメント
関口喜人さん
 きちんと確認したわけではないのですが、表の仕組みから考えて、項目初期値で設定
しても、項目計算式で設定しても、ファイルサイズは基本的に同じはずです。おそらく
、ファイルサイズに違いがあるのでは、との考えは、Excelなどの表計算ソフトの発想
から来ていると思います。
 そこで表計算ソフトとデータベースの違いも含めて、データの持ち方の説明をします


●Excelなどの表計算
 表計算ソフトは、それぞれのセルが全て独立ですから、同じ列であっても自由な形式
のデータが書きこめますし、セルの書式も自由に設定できます。これを裏返せば、セル
ごとにセル値、セルの計算式、様々なセル書式のデータを持つ必要があるわけです。た
だし、隣り合うセルに同じ値や計算式などが設定されている時、何らかの形で「同上」
「同左」で表す方法があるかも知れませんが、そうなっているかは知りません。
 Excelでは確認してませんが、前身であるマルチプランでSYLK形式のデータを書き出
すと、セルごとにセル値、計算式、書式のデータが書き出されます。

●データベースソフト
 データベースは、項目ごとにデータ型、表示形式が決まっていますし、設定した項目
計算式もその項目列全体に適用されます。つまり、表計算の様にセル単位にこれらの情
報を持つ必要はないわけです。
 桐の場合(他のRDBでもほとんど同じでしょう)で言えば、TBLの先頭には表の定義情報
のページがあり、その後に各種の条件(一覧表印刷や絞り込みなど)のページ、索引のペ
ージなどがあります。そしてその後ろにデータのページが続きます。
 データのページは、タブ区切り形式のデータと考えて下さい。文字型項目はJISコー
ド(シフトJISではありません)で、数値項目などはバイナリ形式で並んでいます。この
データレコードのページには、項目初期値や項目計算式などは記述されていません。な
ぜなら記述する必要がないからです。
 項目初期値や計算式などの項目属性が記述されているのは、表定義情報の中です。こ
こには、定義画面のデータが並んでいると考えて下さい。
 項目初期値であっても項目計算式であっても、表定義情報の1ヵ所に記述されている
だけなので、表のファイルサイズに影響しません。
 もし表のファイルサイズに違いがあるとすれば、原因は別にあるのではないかと考え
ます。例えば、どこかのページがたまたま1ページに収まらずに2ページにまたがった
ために1ページ分多くなったとか、索引の関係でファイルサイズが増えた、削除行が残
っていたなどが考えられます。

佐田守弘(KS-00119)
2764 Re:レコードと項目のデリミタは不明です 佐田 守弘 1999/9/26-10:24
記事番号2762へのコメント
前述の書き込みへの補足と一部訂正です。
確認のために、表ファイルの中身をちょっと調べてみました。
●桐の表ファイル
 概ね前述の通りで、表定義部分には定義画面で見える内容と同じ記述が並んでいます。
データレコード部分には計算式は入っておりません。
なお、データ項目間はタブなどで区切っていると思ったのですが、デリミタ(区切り符号
)は見られず、単に項目値がベタで並んでいるだけでした。可変長計式なのにどうやって
項目の区切りを判別しているのかは、分かりませんでした。

佐田守弘(KS-00119)
2765 Re: 関口喜人 1999/9/26-20:12
記事番号2762へのコメント
> もし表のファイルサイズに違いがあるとすれば、原因は別にあるのではないかと考え
>ます。例えば、どこかのページがたまたま1ページに収まらずに2ページにまたがった
>ために1ページ分多くなったとか、索引の関係でファイルサイズが増えた、削除行が残
>っていたなどが考えられます。

いろいろご親切にありがとうございました。
自分でも、もっと勉強してみます。

関口喜人

戻る