みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
最初にレイアウトの使用状況を調べてみるといいのでは。
この先はファイルの複製を作って作業します。
使っているレイアウト上にあるフィールドの名前を変えていけば(頭に"Use"とか入れる)、どこにも使われていないフィールドが分かると思います。
検索条件に「フィールドAが、1か2か3」も入れておけば条件分岐必要なくなると思います。
ごめんなさい、修正前のを上げてしまいました。
6行目の末尾のセミコロンが余分です。
ちゃぶ台返しで申し訳ない。
am5前に出社して、pm10時過ぎに退社するのが抜けていたのを入れるために整理し直しました。
24時間以上については考慮してありませんので、以下がOKなら追加してください。
Let ([
$onTime = GetAsTime ( 出社 );
$offTime = GetAsTime ( 退社 );
$pm10 = Time ( 22 ; 0 ; 0 );
$am5 = Time ( 5 ; 0 ; 0 );
$pm10ts = Timestamp ( GetAsDate ( 出社 ) ; $pm10 );
],
If ( $offTime >= $pm10 or $offTime < $am5 ;
// 退社が深夜帯
Case (
$onTime >= $pm10 ; 退社 - 出社;
$onTime >= $am5 ; 退社 - $pm10ts ;
// 早朝出勤後、深夜帯まで
退社 - 出社 - Time ( 17 ; 0 ; 0 )
);
// 退社が通常ならam5前出社が深夜勤務
If ( $onTime < $am5 ; $am5 - $onTime ; 0 )
)
)
GetAsTime()、GetAsDate()が引数にTimestampを取れるとは知りませんでした。
愚直方のいい所は間違った所を見つけやすいことです。
下の2つは#5に該当しますので書いてあるとおり、#3の下のCaseを
Case (
退社 > $pm10 ; 退社 - $pm10 ;
出社 > $pm10 ; 退社 - 出社 ;
出社 < $am5 ; $am5 - 出社 ;
0
とすれば直ります。
1番目は謎ですね。手元で試す限りでは 2:00 になってます。
どのようにうまく行きませんか?
値が出てこないとか、?で表示されるとか、トンでもない値になるとか。
あと、全部駄目なのか、特定の出社・退社のとき駄目なのか。
24時間超えもあるとは。
24時間を超える場合、24時間ごとに7時間足せばいいかな。
かなりブラック。
やっぱり漏れてた。
深夜0時過ぎに出社しても深夜勤務が0になってしまいます。
二つ目のCaseに
出社 < $am5 ; $am5 - 出社
を追加して下さい。
まだありそうだな(^_^;)
PCだと「レコードインジケータをリスト形式に表示」の有無で少しずれますが、関係ないですかね。
愚直にやるしかないんじゃないかな。
Let ( [
$on = Date ( Month(出社) ; Day(出社) ; Year ( 出社 ) );
$off = Date ( Month(退社) ; Day(退社) ; Year ( 退社 ) );
$pm10 = Timestamp ( $on ; Time ( 22; 0 ; 0 ) );
$am5 = Timestamp ( $off ; Time ( 5; 0 ; 0 ) )
];
If ( $off > $on ;
Case (
退社 > $am5 and 出社 ≥ $pm10 ; $am5 - 出社 ;
退社 > $am5 and 出社 < $pm10 ; $am5 - $pm10 ;
退社 > $pm10 ; 退社 - $pm10 ;
出社 > $pm10 ; 退社 - 出社 ;
0
) ;
Case (
退社 > $pm10 ; 退社 - $pm10 ;
出社 > $pm10 ; 退社 - 出社 ;
0
)
)
)
漏れがあるかもしれません(^_^;)
確かに、色、変わりませんね(Ver.15で確認)。
フィールド設定の代わりに計算結果を挿入を使うと変えられます。
仕様というよりバグ臭いですね。
繰り返しフィールドが空かどうか判定する計算フィールドを作ります。
判定:If ( 繰り返し = "" ; "T" ; "F" ) このとき、すべての参照フィールドが空の時は評価しないのチェックを外す
判定フィールドから"T"の位置を計算するフィールドを作ります。
空欄位置:Position ( Substitute ( List ( 判定 ) ; "¶" ; "" ) ; "T" ; 1 ; 1 )
起動時のスクリプトで Get(ユーザー数) を調べて、2以上だったらファイルを閉じる。
カスタムWebの場合は、FileMaker上のユーザーは1人になりますので、FileMakerのアカウント・アクセス権は無関係になり、自前でユーザーを特定する仕組みを準備することになります。
ユーザー認証にWebブラウザでユーザー名とパスワードを求められるサイトのイメージですね。
端末500台で使用目的が限定的ならカスタムWebを考えてもいいかもしれません。
多少、プログラミングの技量が必要になりますが。
「最大値+1」とは「Max(some_field) + 1」のことだと思いますが、これはレコード数が増えると確実に遅くなります。
入力値のシリアルはレコード作成時に瞬時に決定するので計算時間は取られないと思います。
不整合については、そこまでシビアな環境がないので経験がありませんが、ユニーク値に限定しておけば、番号がダブった時にエラーになるから問題ないと思います。
標準の機能を試してみて、駄目なら対策を考えればいいのではないでしょうか。
入力値の自動化 - シリアル番号でいいのでは。
FileMaker 16では出来るそうなので待ってみれば。
5月ごろらしいです。
Filter()関数の2番目の引数を""で括らないといけません。
でも、半角スペースに変換するのはSubstitute()関数です。
それはWindows版のファイルなのでMacにはインストール出来ないというか動きません。
Mac版をダウンロードして下さい。
>② Bテーブル内に計算フィールドを作成
>※ フィールドの中身 sum( Bテーブル::金額 )
これをAテーブルに作ればいいんじゃないかな。
インストーラと思われるファイルの拡張子はなんですか。
普通は.DMGというファイルで、ダブルクリックするとディスクとしてマウントされ、ディスクを開いた状態で表示されます。
開いたフォルダの中に「FileMaker Server インストーラ.pkg」というような名前のファイルがあって、これがインストーラー、
ダブルクリックでインストールが始まるはずです。
MacOSのセキュリティチェックに引っかかったら、文言をよく見て、その通りにして下さい。
ログを取ることを考えなければFファイルを作らずに起動センターで間に合うような気がします。
アカウントとパスワードについては解釈が間違ってますのでマニュアルを見てください。1つのアカウントに複数のパスワードは設定できません。
それとも、独自アカウントシステムを作ろうとお考えですか?
私もtakaさんのやりたいことが分からないのですが。
現行のファイルでログイン履歴が取れているようですので、そのままサーバーで運用すれば良くて、何か新しいことをする必要はないように見えます。
ページ内へのリンクはidで付けるのが多いでしょう。
<div id="line10">
ラベルの場合
<label for="line10">
になるのかな? 使ったことないので。
id属性は数字で始めてはダメという規則があります。有効なブラウザはあるかもしれませんが、規則ではそうなってます。
[ Generated in 0.005 seconds, 6 queries executed - Memory usage: 633.32 KiB (Peak: 672.36 KiB) ]