みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
初心者になります。日付ごとに連番をふりたいです。(win10 Ver19)
検索したところ
20171208
まず、これから、
Year ( 日付 ) * 10000 + Month ( 日付 ) * 100 + Day ( 日付 )
分かりやすい様に、計算フィールドを作り、これを求めておきます。
>>これはできました。
日付フィールドで自己リレーションし、
シリアル番号のフィールドの入力値の自動化・計算式で
Case ( not IsValid ( 自己リレーション::日付 ) ; "00" ;
SerialIncrement ( "01" ; Max ( 自己リレーション::シリアル ) ) )
これで日付けごとに、00からシリアル番号が振られます。
というのを見つけたのですがうまくいきません。フィールド結果はすべて0で表示されています。
シリアル番号のフィールドとはどのように設定すればいいのでしょうか?
自動入力は、レコードを新規に作った時に評価されますので、既存のレコードでは何も返しません。
今の仕組みをそのまま使いたいのでしたら、データが空のファイルを作り、データをインポートするといいでしょう。
それができなければ、作成タイムスタンプを使って、同日の自分以前のタイムスタンプのレコードをカウントするように、別のリレーションを作って設定するといいでしょう。
Last edited by Shin (2023-02-09 23:14:26)
Offline
ありがとうございます
新規でレコードを作成しても表示は0になってしまいます。
日付をカウントするという方法もあると思うのですが、どのようにしたらいいのか?わかりません。・・・
テーブル テーブル
日付 = 日付
作成タイムスタンプ ≥ 作成タイムスタンプ
というリレーションを張って,リレーション先のレコード数をカウントすれば良いです。
Offline
既存のレコードには、日付を全置換で書き直せば再計算されます
> 新規でレコードを作成しても表示は0
計算式を
Case ( IsEMmpty ( 日付 ) ; "" ; not IsValid ( 自己リレーション::日付 ) ; "01" ;
SerialIncrement ( "01" ; Max ( 自己リレーション::シリアル ) ) )
とすればいいのでは。
#4の方法は
途中のレコード削除が有ると
入力値の自動化では、
新規レコードに既存の最後と同じ番号が振られ、
計算フィールドでは、それ以降のレコードが書き換えられます。
ご注意を
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 551.45 KiB (Peak: 579.14 KiB) ]