過去の桐井戸端BBS (桐ver.8)
2837 任意の項目を入力不可とかに出来ますか 郷司 1999/10/6-00:15
いつも参考にさせていただいています。
V8での質問です。

任意のレコードの項目を入力不可とかに出来ますでしょうか?
あるレコードの項目に「*」などを入力すると、そのレコードで
の指定した項目は訂正や削除が出来なくなるようにロックをかける
といったようなことですが....
2845 Re: 幅田 1999/10/6-19:32
記事番号2837へのコメント
表定義の画面でその項目で属性→項目属性を開き、
編集の中の「更新禁止」にチェックをつけると
その項目に一度入力したデータを訂正することができなくなります。
ただし、任意のレコードという訳にはいきません。
2847 レコード単位での項目値更新禁止設定 佐田 守弘 1999/10/6-23:21
記事番号2845へのコメント
郷司さん
表の項目の編集禁止については、幅田さんが書かれております様に、表定義にて「更新禁止」を
設定することによって、その項目列全体に対して、値の更新を禁止できます。
これを設定すると、新規に追加した行について、行追加時の値の入力は行えますが、その後の値の
更新ができなくなります。
しかしながらこの設定は項目列全体に対する設定ですから、任意のレコードだけを
更新禁止にする事はできません。また桐にはその様な機能がありません。

●フォームでオブジェクト属性を変更する方法
入力にフォームを使うのであれば、そのオブジェクトにフォーカスを移動できなく
すれば、編集ができなくなります。これはイベントを使って実現できます。
@フォームにレコード移動イベントを設定する
 レコードが移動した時に「*」を入力する項目値を調べます。
A「*」を入力する項目に入力後イベントを設定します。

そしてどちらのイベントについても、「*」の値を調べ、「*」であったら、「オブジェ
クト操作」コマンドで、目的のオブジェクトをフォーカス禁止に設定し、そうでな
ければ「自動」に戻してフォーカスできる様にします。

●レコード単位で更新禁止にする目的は
 この目的は何なのでしょうか。目的次第では、他の方法で実現する方法も考えら
れます。
例えば、普段は値の更新を禁止しておき、必要な時だけ更新する場合もあるという
のであれば、通常は更新禁止を設定しておき、この属性を変更する一括処理を動か
して、その時だけ更新禁止を解除するといった方法も考えられます。

佐田守弘(KS-00119)
2854 Re: 郷司 1999/10/7-14:30
記事番号2847へのコメント
幅田さん、佐田さん ありがとうございました。

>●レコード単位で更新禁止にする目的は
> この目的は何なのでしょうか。目的次第では、他の方法で実現する方法も考えら
>れます。

1.会計データの表で月締めの処理をしています。
2.月締めをした場合、先月以前のデータは変更させたくない訳で、
 しかし、どんな内容だったかなと再度見たい時もあります。
3.従って、取引相手による絞り込みを月締め済みのものと未済み
 のものとを一緒にして行ないたいのです。

といったような目的です。

月締め済みのデータは別ファイルにしておき、再度見たいときに
月締め未済みのデータに追加読み込みして取引相手による絞り込み
を行ない、それが済めば破棄終了すればいいかなとも思いましたが
読み込みの時間をかけないためにはひとつのファイルのままでなん
とかなれば と思ったわけです。
2859 Re: 宮城 1999/10/7-22:06
記事番号2854へのコメント
郷司さん、こんばんは。

そういうニーズでしたら、[月締め済マーク]という項目を設け、月締め時、今回月締
めするレコードを絞り込んで"済"で置換し、通常の編集時は表を開いた直後に[月締
め済マーク]が""(<>"済"でもよい)のものだけに絞り込んでしまうほうがよろし
いかと思います。新設しなくてもきっとそういう項目があるはずですよね。

ただ、締めデータは別表にするやりかたのほうが私は好きですが。

さらに解析項目が限定できるならば、更新都度解析用ミニファイルを作ってしまう手も
考えられます。時間のかかることはまとめてやってしまえとするものです。

本番ファイル

[年月][売り上げ金額]・・他の項目・・

月締め済ファイル

[年月][売り上げ金額]・・他の項目・・

売り上げ推移ファイル

[年月][売り上げ金額]
199910 xxxxxxx ← 日々最新値で更新
199909 yyyyyyy
199908 zzzzzzz
 ・      ・
 ・      ・
 ・      ・
2860 Re: 佐田 守弘 1999/10/8-00:55
記事番号2859へのコメント
郷司さん。
私も宮城さんと同意見です。
月締めを行ったデータは、月別に分けて別の表に書き出しておくのが宜しいでしょう。
ただし、ここで言う月締めは、決算と言う意味での締めではなく、中間締めの様なもので、
後から修正が入る事があるのであれば、本来の決算期間で締める方が良いでしょう。
このあたりの考え方はいろいろありますね。入力中の表は臨時のジャーナルファイルであり、
月締めを行ってデータの確認が済んだら、確定したデータとみなしてマスタファイルに登録すると
いった考え方もできます。
「これでなければならない」といった規則はありません。どのような運用をするかを見極めて設計する
必要があります。
それぞれの表にどのような意味を持たせるのか、どのような使い方をするのかが、システム設計の
腕の見せどころです。

1つのファイルで置いておく場合ですが、宮城さんが書かれている様に、締め済みのチェック項目を作るの
が良いでしょう。月で判断するのも1つの方法かと思いましたが、月末に確実に締めが行えるとも限らない
ので、別項目を持つ方が良いと思います。

基本的には宮城さんが書かれている通り、変更を許す締め前のデータのみを絞りこんで編集します。
そして過去のデータも参照するときには、更新禁止のモードで開き、データの変更を許可しない
の通いでしょう。
もし自分がオペレータであればその様な制限を行わず、単に締め済みのデータは色を変えて表示し、
更新してはいけない旨を表示するのも1つの方法です。

佐田守弘(KS-00119)
2864 Re: 郷司 1999/10/8-07:43
記事番号2860へのコメント
宮城さん 佐田さん おはようございます。 そして、どうもありがとうございます。

>「これでなければならない」といった規則はありません。どのような運用をするかを見極めて
>設計する必要があります。
>それぞれの表にどのような意味を持たせるのか、どのような使い方をするのかが、システム設

そうですね、大変参考になるみなさまの意見を拝聴できまして私としてもとてもうれしいです。
処理が簡潔に早くて済む方法を、意見を取り込みながらやってみたいと思います。
どうもありがとうございました。

戻る