初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2020-07-15 05:32:45

ごなや
Guest

走行距離を下3桁だけの入力にするには?

社用車の走行記録をとっているのですが毎回全て入力するのが面倒です
100983などなのですが一日に999kmを超えることは現実的には有りえません
そこで下3桁だけを入力して帳尻をあわせるにはどうしたらいいでしょうか?
000となることもあり単純な足し算では判別できないので無理でしょうか?

#2 2020-07-15 08:26:43

Shin
Member

Re: 走行距離を下3桁だけの入力にするには?

1000以上にならないのなら、
let (
    n = Div ( 前日記録 ; 1000 ) * 1000 + 走行距離 ;
    n + ( n < 前日距離 ) * 1000
)

Last edited by Shin (2020-07-15 08:52:20)

Offline

#3 2020-07-15 08:47:29

チポ
Member

Re: 走行距離を下3桁だけの入力にするには?

リレーションで直前の日付のレコードを参照できる様にして、
計算式は
  Int ( 直前の走行距離 / 1000 ) * 1000 + 3桁 + 1000 * ( Mod ( 直前の走行距離 ; 1000 ) > 3桁 )
でいいでしょう。

これを計算フィールドとして、直前の走行距離が参照フィールだと、
参照の連鎖になりますから、お薦めではありません。

入力値の自動化にするか、
直前の走行距離をルックアップ等で固定値にするか、
どちらかにした方がいいでしょう。

Offline

#4 2020-07-15 09:44:27

qb_dp
Member

Re: 走行距離を下3桁だけの入力にするには?

以下の式は何桁の入力でも対応します。

フィールドオプション 自動入力

Let([
X1=直前の走行距離
;X2=Self
;X1L=Length ( X1)
;X2L=Length ( X2 )
];
Replace ( X1 ; X1L-X2L+1 ; X2L ; X2 )
)

Offline

#5 2020-07-15 10:05:06

qb_dp
Member

Re: 走行距離を下3桁だけの入力にするには?

先の投稿の式では、繰り上がらないので修正。(検証少なめです)


Let([
X1=直前の走行距離
;X2=Self
;X1L=Length ( X1)
;X2L=Length ( X2 )
;XX2=Replace ( X1 ; X1L-X2L+1 ; X2L ; X2 )
];
If ( GetAsNumber (X1) > GetAsNumber (XX2)
; Left ( X1 ; X1L-X2L )+1 & X2
; XX2
)
)

Offline

#6 2020-07-15 12:12:56

koeda
Member

Re: 走行距離を下3桁だけの入力にするには?

距離計の読み取り値をそのまま転記するのではないのですか?

1)前回の走行距離を初期値として表示(リレーションを利用)
2)当該フィールドのOnObjectEnterに下記のスクリプトを設定し、入力時に下3桁が選択された状態にする(100983 → 100983
選択範囲を設定 [ 運転日報::走行距離 ; 開始位置: Length ( 運転日報::走行距離 )-2 ; 終了位置: Length ( 運転日報::走行距離 ) ]


下3桁だけ入力する時はそのまま上書きタイプすれば良いし、
繰り上がりがある時はdeleteキーを2回押下し、下4桁を消してからタイプ入力する
というのはどうでしょうか?

Last edited by koeda (2020-07-15 12:26:08)

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 509.32 KiB (Peak: 516.24 KiB) ]