みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Windows ver13です。よろしくおねがいします。
タイトルにありますように、いろいろな人がレコードの入力をしております。
1つのレコードの入力が全て終わった後に、フィールド毎にエラーチェックをして問題がなければ登録という形と取りたいと考えています。
通常であれば登録ボタンでチェックが出来ますが、登録を押していない場合でもFileMaker自体が途中で強制終了してしまった場合、
Windowsが落ちてしまった場合など、エラーチェックしていない状態でレコードが登録されてしまいます。
こういったエラーチェックの見逃しを防ぐにはどのようにすればいいでしょうか?
登録ボタンを押して、チェックが入るまで、作成者しか見えない様にアクセス権で制限を加える、というのが良いかも。
FMやOSが落ちた時に、入力済登録前のデータが失われても良いのならば、グローバルフィールドへ入力させて、チェックをしてからテーブルへ登録、というやり方も有りますが。
Offline
登録ボタンを押してその処理中に
>FileMaker自体が途中で強制終了してしまった場合、
>Windowsが落ちてしまった場合
も考えられるわけで、そのような不安定なシステムを改善するのが
先決でしょう。FMもそんな状況は考慮していないですから。
Offline
不安定なシステムというと運用している方法自体を変更すると言うことでしょうか?
私はMacなのでWindowsの現況は分かりませんが
普通に使っていてOSやFMが落ちるなどということは全く無いので
何等かの原因でシステムが不安定なのかなと思った次第です。
Offline
「新規作成/編集/消去」処理専用レイアウトでグローバルフィールドに一時入力して、
内容チェック後に正規登録する、のが良いかな。
なお、編集を含めるのは、チェックは編集結果にも掛けると思うので。
また、入力フィールドが複数あっても、一時入力のグローバルフィールドは
1つの繰り返しグローバルフィールドだけで事足ります。
(項目毎個別処理が必要でも、繰り返しフィールドを任意切分ければ対応できます。)
Offline
お手数おかけします。
FileMaker自体が落ちることはほとんどありませんが、作成者の人がレコードを登録している途中で席を立ち、
レコードを登録していること自体を忘れてしまい、PCでそのあと別の作業を始めてPCが固まってしまい、同時にFileMakerも落ちてしまう。
ということがあるようです。
Hiro様のご提案のグローバルフィールドで対応する方法で進めてみます。
ありがとうございます。
マッスルさん、横レスすいません。
Hiroさんに、教えて頂きたいのですが
処理レイアウトにグローバルフィールドを用意して、処理完了でデータを元データに上書きするというのがわかるのですが
1つの繰返しフィールドでやるという部分が理解できず、お教え頂けないでしょうか?
*実は繰返しフィールドを使ったことがないので、今回の件は多様性がありそうでぜひ覚えてみたく思います。
--テスト--
顧客(テーブル)
・姓名
・ふりがな
・年齢
・性別
・会社名
・役職
・部署
処理(テーブル)
・Global(繰返し7)
という感じでしょうか?そこで以下の流れとすると
1:顧客レイアウト上でデータを表示
2:顧客レイアウト上の編集ボタンを押す。
3:処理レイアウトへ移動(処理テーブル)
4:どのようにして、顧客レイアウトの値をGlobal(繰返し7)に代入するのでしょうか ? *解らない*
5:編集の後、処理レイアウト上の、完了ボタン(引数:ok)、キャンセルボタン(引数:cancel)
6:どのようにして、処理レイアウト:Global(繰返し7)の値を顧客レイアウトへ上書き? *解らない*
質問1:
4・6の繰返しが絡む処理の仕方が解らないんです。。
以下ならわかるのですが、グローバルフィールドが増えて煩雑になるので、繰返しでシンプルに出来るならと思いました。
4:普通に一つ一つ変数を取って、繰返しではなく各フィールド分グローバルフィールドを用意して代入
6:4のものを5のok,cancelで判断して、値をそのまま返してやる
質問2:
仮に元データが数字フィールドや日付フィールド 等であったとしても
一つのグローバルフィールド(テキスト)で問題ないのでしょうか?
以上、横レスで申し訳ないですがお教え頂けますと助かります。
自己レスです。質問1は出来ました。
こういう処理は別処理テーブルよりも同テーブルで1つグローバルフィールドを作ってのほうが取り回し気がよさそうですね。
質問2についてはどうでしょうか?
日付フィールドは、日付フォーマットのフィールドを使うと、入力時に日付としてチェックされますので、別に作った方が良いのでは。
数字はどちらでも良いでしょうが、入力の際に制限をある程度与えておくと、入力者も楽ですし、後のチェックも楽です。
繰り返しフィールドでの入力は、一見楽に見えますが、後のメンテナンスを考えると、却って苦労するかもしれませんよ。
Offline
いっそのことWEBビューアで作ったらどうかな。余分なフィールドは全く不要だから。
Offline
Shinさん、処理で扱うフィールドのタイプや数によって使い分けたほうがよさそうですね。
今後の参考に致します。
waderさん、ってことはPHPでしょうか。。
確かにPost,Getと考えるとそのほうが良いでしょうね。。
ただ構築がハードル高くて・・・。
スレ主様、横レスすいませんでした。
入力チェックのソリューションなのだから、取り合えずデータ入力は一律テキストボックスに入れて貰えば良いはず。
フィールドフォーマットを含めデータの整合性は正規フィールドへ転写する際に精査するのだから。
この考え方は、Webの送信フォーム(<INPUT Type="Text">)でも共通してます。
Offline
Hiro様、ありがとうございます。
テキストデータで入力された値をエラーチェック後、更新する際にそれぞれのデータタイプに変換して返すという認識でしょうか?例えば日付の場合はGetAsDate ( テキスト ),数字の場合はGetAsNumber ( テキスト )等。
PHPでなくfmp:を使ってHTML(javascript)だけでできます。
ここにサンプルがあった。
http://blog.jsfmp.com/post/88307579211/ … cript-demo
試してないけど、変数は使わず全部paramで渡してますね。
Windowsでやってると、<form>でsubmitすると文字化けしてしまいます。IEの動作がなんか変。二重にエンコードしてやるとうまくいくようだけど。
Pages: 1
[ Generated in 0.019 seconds, 9 queries executed - Memory usage: 552.36 KiB (Peak: 573.27 KiB) ]