みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
度々の質問で失礼します。
飲食店のお会計の伝票が使用目的です。
卓番ごとに1レコードです。入店時間、退店時間、人数、オーダー、合計金額などのフィールドがあります。
オーダーは別のテーブル(フィールドはタイムスタンプ、卓番、オーダー、単価)でまとめて入力して、卓番でリレーションしポータルで伝票のテーブルに表示させています。
会計が終わるごとに、また同じ卓番が繰り返し使われることになるのですが。
例えば会計を終了すると、2回転目同じ卓番を使用しても、オーダーが2回転目の新しい伝票に反映させる方法はないでしょうか?
説明が上手くできず、すみません、、、
スクリプトが必要でしょうか?…
リレーションを、卓番に加えて伝票IDでも照合させるとか。
Offline
返信ありがとうございます。
シリアル番号のようなものをつけるということでしょうか?
ただ、常にインカムで飛んできたすべての卓のオーダーを一人打ってる状況なので。例えば、新規レコードで入店時間から退店時間の間のオーダーが反映されるようなスクリプトの設定は難しいでしょうか?
初心者の安易な考えですみません。
リレーションを、卓番に加えて伝票IDでも照合させるとか。
シリアル番号はフィールド値の自動入力設定で伝票レコード作成時に自動的に代入できます。
オーダーテーブル側へのシリアル番号と卓番の転記も、ポータルから何か注文を入力して新規関連レコード作成すれば自動的に挿入されるため、入力者の負担にはなりません。
Offline
入店時間<タイムスタンプ
退店時間>タイムスタンプ
をリレーションに追加、では。
教えていただいた方法で出来ました。本当にありがとうございます!!
ちなみに、日付フィールド(タイムスタンプ)が次の日のam10:00以降になると、シリアル番号がリセットされて1から始まるようなスクリプトを組むことは可能でしょうか?
シリアル番号はフィールド値の自動入力設定で伝票レコード作成時に自動的に代入できます。
オーダーテーブル側へのシリアル番号と卓番の転記も、ポータルから何か注文を入力して新規関連レコード作成すれば自動的に挿入されるため、入力者の負担にはなりません。
> シリアル番号がリセットされて1から始まるような
単にこうすると、ユニークではなくなるのでやめた方がいいですよ。
例えば、
10:00AMから翌日の9:59AM
までを同一日付にして、
それごとにシリアルを振り
130912-001
この様な値を作ったらいかがでしょう。
Offline
なるほど!いつもありがとうございます。
やってみます。
> シリアル番号がリセットされて1から始まるような
単にこうすると、ユニークではなくなるのでやめた方がいいですよ。例えば、
10:00AMから翌日の9:59AM
までを同一日付にして、
それごとにシリアルを振り
130912-001
この様な値を作ったらいかがでしょう。
これは何か関数をいれる必要がありますか?
日付のフィールドは作成時のタイムスタンプです。
> シリアル番号がリセットされて1から始まるような
単にこうすると、ユニークではなくなるのでやめた方がいいですよ。例えば、
10:00AMから翌日の9:59AM
までを同一日付にして、
それごとにシリアルを振り
130912-001
この様な値を作ったらいかがでしょう。
例えば、
Year ( 日付 ) * 10000 + Month ( 日付 ) * 100 + Day ( 日付 )
で
20130913
の様な値が得られます。
桁を減らすのなら
Right ( 上記の式 ; 6 )
で
130913
とできますね。
Last edited by チポ (2013-09-13 12:59:33)
Offline
ありがとうございます。この式を伝票noのフィールドにいれて、-001、-002...の番号は手入力していけば良いのでしょうか?
それと、9/13PM10:00-翌日AM10:00までを9/13で同一日付にする方法は、日付のフィールドを手入力で9/13で入力した方が良いでしょうか。
例えば、
Year ( 日付 ) * 10000 + Month ( 日付 ) * 100 + Day ( 日付 )
で
20130913
の様な値が得られます。桁を減らすのなら
Right ( 上記の式 ; 6 )
で
130913
とできますね。
前記の式の日付は
GetAsDate ( タイムスタンプ ) - ( GetAsTime ( タイムスタンプ ) < Time ( 10:0:0 ) )
計算結果は日付
これで10時までを前日とできます。
日付ごとの追番は、
日付で自己リレーションして
入力値の自動化・計算式で
Max ( 自己リレーション::追番 ) + 1
既存値置き換え、
「式内の全フィールド値が空欄の時、計算しない」のチェックを外す
で日付ごとの追番が得られますから、
それを加工してお望みの形にすればいいですね。
Offline
返信遅くなり申し訳ありません。
やってみます!何から何まで本当にありがとうございます。お陰様でだいぶ完成に近づいてまいりました。
前記の式の日付は
GetAsDate ( タイムスタンプ ) - ( GetAsTime ( タイムスタンプ ) < Time ( 10:0:0 ) )
計算結果は日付これで10時までを前日とできます。
日付ごとの追番は、
日付で自己リレーションして入力値の自動化・計算式で
Max ( 自己リレーション::追番 ) + 1
既存値置き換え、
「式内の全フィールド値が空欄の時、計算しない」のチェックを外すで日付ごとの追番が得られますから、
それを加工してお望みの形にすればいいですね。
Pages: 1
[ Generated in 0.011 seconds, 9 queries executed - Memory usage: 529.89 KiB (Peak: 550.43 KiB) ]