過去の桐井戸端BBS (桐ver.8)
3690 項目値の更新情報を得る方法は? 大石智章 1999/12/9-22:41
項目値が更新された場合に、
更新年月日も同時に入力しておくことがありますよね。
イベント処理では、行訂正終了等を使って&モードの値を調べるのでしょうが、
一括処理中ではどのようにすればよいですか?
ツールバーの上書き保存アイコンが黒や灰色に変化するのだから、
そういう情報が何らかの方法で取得できるのではないかと思うのですが。
3693 Re:項目値の更新情報を得る方法は? 佐田 守弘 1999/12/9-22:54
記事番号3690へのコメント
大石智章さん
これは、レコード毎にそのレコードを[更新日付]の項目に記入しておきたいという意味でしょうか。
もし一括処理で行うとしたら、行単位の行訂正コマンドで項目値を訂正させた後、
行訂正 [更新日付]=#日時値
の様なコマンドで更新日付の値を書き替えるといった方法はどうでしょうか。

表が更新されたかどうかは、システム内部では状態値を持っていると思いますが、
ユーザーがこれを調べる関数などはなかったと思います。

佐田守弘(KS-00119)

3695 レコードの更新の有無を取得する 悲しげ 1999/12/10-01:11
記事番号3690へのコメント
どもっ、大石さん、

>ツールバーの上書き保存アイコンが黒や灰色に変化するのだから、
>そういう情報が何らかの方法で取得できるのではないかと思うのですが。

あれは、ファイル全体に更新があったことが反映されるものであって、
特定のレコードや項目値の更新状態を示すものではありません。(^^;)

「項目値の更新」と云うと、字義どおりにとれば、各項目値の更新情報
と云うことになり、

  [項目あ][更新情報あ][項目い][更新情報い][項目う]
  [更新情報う][項目え][更新情報え]・・・

のような項目構成になることを意味してしまいますが(^^;)、でも、おっ
しゃりたいことは、更新レコードに更新の有無のフラグ値を持たせたい
と云うことだろうと決めつけて(^^;)以下コメントします。
そして、ここでは、レコードの更新の有無を、フラグではなく、[更新日時]項目の値で代用することとして話を進めます。

行挿入・追加の場合だと、挿入初期値でうまいことできると思いますが、
入力済みのデータを訂正した場合について、一括処理(cmd)で更新の有無
を記入されるのは難しいようです。
この点については、遥か昔に『酒井本』なる幻の名著がありまして、その中で「全項目照合による選択」を
使う方法が書かれていました。
まず、更新前の表Aを別途残しておきます(更新入力用の表Bを新たにコ
ピーするでもよい)。で、入力はB表で行い、保存終了します。
次に、B表をA表で併合します。[更新日時]と一部の項目を除いた全項目
を照合項目として併合選択させると、未更新レコードだけが選択されま
すから、今度は補集合を取ります。これが、新規追加も含む更新された
レコードとなりますから、[更新日時]を任意の値で置換します。あとは
選択解除し、A表も削除して、1件落着。

イベント(kev)を使えば、もう少し簡単にできます。
ちなみに、「ソース値更新」イベントについては、その呼称にすっかりだまされまして、
これは「ソース値が更新された場合に発生するイベント」ではありませんでした(;_;)。
あと「入力前」「入力後」とか、色々なイベントを試しましたが、結局は次のイベントが一番簡単でした、た
った1行で済みますから。(^^)v

  手続き定義開始 t某項目値テキスト::編集文字列変更()
   項目値代入 [更新日時]=#日時値
  手続き定義終了

補足します。
「行訂正」コマンドは表示モードで、訂正・挿入などの更新入力中のモードでは
「項目値代入」コマンドを使う、と以前書いたことがあります。
この場合は、モロに項目値が訂正入力されている現在進行形において判断すべきものですから、
「項目値代入」を使う典型例と云えます。
惜しむらくは、このイベント手続きを必要な全項目テキストobjについて
記述する必要があることです。ファミリーでこの「編集文字列変更」イベントが扱えると楽なんですけどね。
あと、「編集文字列」とは云っても、数値系項目でも使えます。(^^)v

3715 Re:項目値の更新情報を得る方法は? 大石智章 1999/12/12-22:40
記事番号3690へのコメント
佐田先生、悲しげさん有り難う御座いました。
返事が遅れ申し訳ありません。

質問が曖昧でしたが、お二人の解答を読んでいて
当方の目的自体曖昧であることに気がつきました。

当初、私は、佐田先生の言う
  レコード毎にそのレコードを[更新日付]の項目に記入しておきたい
又は、悲しげさんの言う
  更新レコードに更新の有無のフラグ値を持たせたい
のつもりでいましたが、
じつは、悲しげさんの
  [項目あ][更新情報あ][項目い][更新情報い][項目う]
  [更新情報う][項目え][更新情報え]・・・
が一番やるべきことだったようです。

特定の人間が処理する事柄なので、
一括処理にこだわりさえしなければ、
項目が倍増し表が重く大きくなるけれど、
一番現実的でわかりやすい方法のように思えます。
早速明日やってみます。うまくやれそうです。

戻る