みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
shinさんありがとうございます。
専用のフィールドを作ってやってみます。
またわからないことがあったら質問してみます。
shinsさん
ご返事ありがとうございます。
表現のしかたを誤りました!
売上仕入ではなく全て費用の考え方です。
↓
部門 科目 金額
ーーーーーーーーーーーーーーー
製造 0000 ← 部門の小計パート
備品費 0000 ← 分類の小計パート
雑費 0000 ← 分類の小計パート
営業 0000 ← 部門の小計パート
備品費 0000 ← 分類の小計パート
雑費 0000 ← 分類の小計パート
ーーーーーーーーーーーーーーー
合計 0000 ← ???
備品費 0000 ← ???
雑費 0000 ← ???
単体レコードでは、
部門フィールドに、製造or営業
科目フィールドに、備品費や雑費等
金額フィールドに、かかった金額
となっています。
科目ごとに総合計をだしたいのです。
当方、WIN10、FM17、です。
こんなことがしたい(帳票イメージ)
↓
部門 分類 金額
ーーーーーーーーーーーーーーー
製造 0000 ← 部門の小計パート
売上 0000 ← 分類の小計パート
仕入 0000 ← 分類の小計パート
営業 0000 ← 部門の小計パート
売上 0000 ← 分類の小計パート
仕入 0000 ← 分類の小計パート
ーーーーーーーーーーーーーーー
合計 0000 ← ???
売上 0000 ← ???
仕入 0000 ← ???
元となるデータは日別にたくさん存在します。
小計パートに集計フィールドを置くまではうまくいきました。
フッタor後部総計に同じ集計フィールドを置き全体の合計も取れました。
最後の部門を合計した分類別の合計がとれません。
なんか簡単にできそうだったのですが、皆さんに聞いたほう早いと思い投稿しました。
よろしくおねがいします。
Floor ( タイムスタンプ / 60 ) * 60
でいいんじゃないかな。。
チポさんの方法でうまくいきました。
ありがとうございます。
HiroさんのLet関数も挑戦してみます。
WIN10、FM17の環境です。
テキストデータからタイムスタンプをフィールドに格納していますが、そのときに計算式で秒の部分を”00”に置換したいのですが、
スマートな関数の組み合わせで、簡単にできないでしょうか?
現在の状況
フィールド:LOG
"2018/11/07 8:22:06 7001"
フィールド:TSの計算式
LeftWords ( LOG ; 2 )
結果:2018/11/07 8:22:06
このときに
結果:2018/11/07 8:22:00
にしたい!
みなさん知恵をかしてください。
'2018/06/04 00:00:00'←ここの部分はグローバルフィールドのタイムスタンプに代用できますか?
こんな感じで。
変数を設定 [$command; 値:
Let([
PS="Get-EventLog -LogName System |where-object{$_.EventID -in (6005, 6006,7001,7002) -And ($_.TimeWritten -ge [DateTime]'{Start_time_stamp}')-And ($_.TimeWritten -le [DateTime]'{End_time_stamp}')}|select TimeWritten,EventID -First 10 |clip"
];
Substitute ( PS ;
["{Start_time_stamp}" ; GLOBAL::Start_time_stamp]
; ["{End_time_stamp}" ; GLOBAL::End_time_stamp] )
)
]
Event を送信 [「aevt」; 「odoc」; "powershell -windowstyle hidden -Command " & Quote ( $command )]
qb_dp様
また壁にぶつかってしまいました。。。
ログを取得する際、どのPCで取得したかの記録を保持しないといけないと気づきました。
当社ではクライアントPCに固有の名前をつけているのですが、それも同時に取得できますか?
また、Windows7での取得ができていません。なにか問題あるでしょうか?
ご連絡遅くなりました。
方法はあるようですが、ちょっと難しそうですね。。。
グローバルフィールドの件は検討します。
ところで、
Windows10の環境ではうまくいったのですが、
Windows7だとクリップボードにうまくはりつきません。
なにか記述の変更が必要でしょうか?
-And ($_.TimeWritten -ge [DateTime](Get-Date).AddDays(-1))
上記の箇所を以下のようにすると、期間を指定してログを取得することができます。
-And ($_.TimeWritten -ge [DateTime]'2018/06/04 00:00:00')-And ($_.TimeWritten -le [DateTime]'2018/06/04 23:59:59')スクリプトの最後に -First 10 で件数を指定しています。 10位上のログを取得したい場合は、数字を変更するか、 -First 10 を削除します。
プラグインは、FileMakerに機能を追加するモノです。以下を使用すると、実行したPowerShellの戻り値をクリップボードでなく、直接、変数やフィールドに取得できます。
ScriptMakerPS | FileMaker Plugin for Windows :
https://sites.google.com/site/scriptmak … n/smps_exe
度々ありがとうございます。
-And ($_.TimeWritten -ge [DateTime]'2018/06/04 00:00:00')-And ($_.TimeWritten -le [DateTime]'2018/06/04 23:59:59')
をコピペしてみましたがうまくいきませんでした。
'2018/06/04 00:00:00'←ここの部分はグローバルフィールドのタイムスタンプに代用できますか?
とりあえずプラグインは諦めました。
qb_dpさんありがとうございます。
見事にクリップボードに張り付きました。
感激です!
この取得したログは、直前の2件だけ表示されるようになっているのでしょうか?
グローバルフィールドでいつからいつまで取得するとか指定できたりできますか?
また、取得後のプラグインから変数に設定とありますが、プラグインが勉強不足でわかりません。
もしよかったら教えてもらえますか?
「Event を送信」の計算に以下を設定します。
"powershell -windowstyle hidden -Command " & Quote ( "Get-EventLog -LogName System |where-object{$_.EventID -in (6005, 6006,7001,7002) -And ($_.TimeWritten -ge [DateTime](Get-Date).AddDays(-1))}|select TimeWritten,EventID -First 10 |clip"
何度もすいません。
()の数が合っていないと蹴られてしまいます。
Event を送信 [「aevt」; 「odoc」;
"powershell -windowstyle hidden -Command " & Quote ( "Get-EventLog -LogName System |where-object{$_.EventID -in (6005, 6006,7001,7002) -And ($_.TimeWritten -ge [DateTime](Get-Date).AddDays(-1))}|select TimeWritten,EventID -First 10 |clip" )
]Event を送信 で上記のように実行すると、前日以降の 起動・終了,ログイン・ログアウト のログ(下記)がクリップボードに入ります。
TimeWritten EventID
----------- -------
2018/06/04 8:46:00 7001
2018/06/04 8:45:59 6005プラグインを使うと変数に直接戻り値の取得が出来ます。
変数を設定 [$Result; 値:SMPS_Exe("Get-EventLog -LogName System |where-object{$_.EventID -in (6005, 6006,7001,7002) -And ($_.TimeWritten -ge [DateTime](Get-Date).AddDays(-1))}|select TimeWritten,EventID -First 10")
SMPS_Exe - ScriptMakerPS | FileMaker Plugin for Windows :
https://sites.google.com/site/scriptmak … n/smps_exe
色々アドバイスいただきありがとうございます。
Eventを送信のスクリプトを実行したことがないのでとりあえず、コピペして実行してみましたが、エラーになりました。
ファイル「[「aevt」:]」が見つからないため処理がを完了できませんと出てしまいます。
なにか記述に間違いがあるのでしょうか?
取れないことはないでしょうが。
システムログを取得していくと、職員の動きを監視する事になります。就業中は、職務への専念義務がありますので、強いて言えば監視されても仕方ないのですが、それに寄って反感を受ける可能性もあります。
また、自動起動・終了されたり、強制終了、また、アップデートによる自動終了、時間のかかる処理をやらせておいて帰宅、などへの対応ができませんね。
私は、PCの電源は、休日前にしか切らない主義なので、休日明けには自動起動させています。
shin様アドバイスありがとうございます。
運用にあたっては当然社内のルールを決めて対応しないといけませんね。
PC電源はよほどのことがないかぎり自動起動等の対応はしません。(また、自動起動のログが残るのでは?)
日々の電源も節電のため、必ず切っております。
小生は管理職のため、課員の勤怠管理が必須です。
ログインアカウントとユーザー権限により、課員個人のレコードアクセス権を設定し課員同士のレコードは検索できないようにするところまでは成功しております。
今は、課員がシステムログを開き、起動とシャットダウンの時間を検索し勤務表(紙)に記入しております。
これを何とかFileMakerで管理できないものかと思案中です。
PCの監視問題があるためここに記載できないのであれば諦めます。
みなさんこんにちは、お世話になります。
当方win10とwin7の環境で、FM16とFMServerの環境です。
クライアントは6台です。
FileMakerで勤怠管理を行いたいと考えております。
そこで、FileMakerはクライアントPCのシステムログを取得できるのでしょうか?
PCの起動・シャットダウンのログを取得できれば、出勤・退勤のタイムスタンプにして、
勤務表として活用できないかなと考えております。
詳しい方がおりましたらよろしくおねがいします。
Mozさん、チポさんありがとうございます。
ちょっと感動しました。
こんなに簡単にできるとは!
これならいくつ増えても楽勝ですね。
ありがとうございました。
Mozさん、チポさんありがとうございます。
チポさんの言うとおり、1行目の不等号は逆でした。
( IsEmpty ( g_A ) or g_A = フィールドA ) and
( IsEmpty ( g_B ) or g_B = フィールドB ) and
( IsEmpty ( g_C ) or g_C = フィールドC )
この式だけでいけますか?
グローバルフィールドはフィルタリングの条件を入力するものです。
グローバルフィールドが全てnullなら、フィルタなし。
3つのグローバルフィールドに条件を入れ、nullか入力値の組合せによってフィルタリングするというものです。
言葉足らずですません。
最初は計算式に、
Case(
g_A="" and g_B="" and g_C="";1; ←全て表示
g_A≠"" and g_B≠"" and g_C≠"";
g_A=フィールドA and g_B=フィールドB and g_C=フィールドC; ←全てに一致する内容を表示
g_A="" and g_B="" and g_C≠"";
g_A=フィールドA and g_B=フィールドB; ←g_Aとg_Bの条件に一致するものを表示
(以降パターンを繰り返す)
上記のようにいれていたのですが、Let関数のほうが全ての組合せを簡単にできるのかなと思いまして。
書き忘れましたが、検証するフィールドは、フィールドA、フィールドB、フィールドCです。
みなさんこんにちは
当方は、Win10、Pro16の環境です。
タイトルのとおりフィルタリングの計算式で教えて頂きたいです。
フィルタをかける際、3つのグローバルフィールド、g_A、g_B、g_C、の値を基に全ての組合せの計算式を
Let関数を使って簡単にできないか悩んでいます。
3つのフィールドはnullもありえます。
Case関数でもできるのですが、ステップ数が長くなるので、どなたか教えてください。
こんいちは
Win10、Pro16の環境でタイトルの件で悩んでおります。
やりたいこと、
10,000件程度レコードがあるテーブルで、あるレイアウトでこのうち5,000のレコードのみ操作したいのですが、
なにか良い方法はありますか?
ちなみに、OnRecordLoadトリガでレコードの除外を入れてみましたが処理が重くなり話になりませんでした。
OnLayoutEnterだと最初だけなので、レイアウトでフィルタみたいなのがかけられればよのですが、
どなたか教えてください。
Shin様ありがとうございます。
先ずは、10文字目までの中に全角が何文字あるか拾いました。
そこから、全て半角の場合は10文字、あとは10文字から全角の文字数を差し引き対応できました。
”かきくけこ”の方は、上記の文字数からMiddleの先頭文字位置を計算し、拾う文字数も上記の内容を繰り返して対応できました。
FM16Pro Win10です。
タイトルのとおり、
Middle関数で全角半角混在のテキストデータから、取得する文字数と開始文字位置を検出する計算式で困っています。
<文字列>
あいうえおかきくけこ
あいう12341234くけこ
12345678901234567890
<フィールド1>
あいうえお
あいう1234
1234567890
<フィールド2>
かきくけこ
1234くけこ
1234567890
できればカスタム関数は使用したくなく、表現する最終的な関数はMiddle関数で行いたいです。
そのためには、Middle ( テキスト ; 先頭文字位置 ; 文字数 )の先頭文字位置と文字数を検出し、これを組み合わせて実現したいと考えています。
前はMiddleb関数を使用していましたがいまは無いため皆さんご教授願います。
shinさんチポさんどうもありがとうございます。
両方ともうまくいきました。
使い勝手と処理速度を検討し、作り込んでみたいと思います。
ありがとうございました。
こんにちは、お世話になります。
当方の環境は、Win10 Advance16です。
タイトルのとおり、フィルタの計算式で悩んでいます。
内容は、
トラックのマスタ(TRマスタ)があって、別にトラック稼働テーブル(稼働TB)にレコードのが複数あります。
このマスタとテーブルはid_車番でリーレーションしています。
TRマスタ
id_車番 担当者
1000 山田
2000 田中
3000 村田
稼働TB
id_車番 稼働日
1000 4/1
1000 4/5
2000 4/2
2000 4/3
3000 7/1
3000 8/4
(やりたいこと)
TRマスタ
id_車番 担当者 最新稼働日(ポータル)
2000 田中 4/3
1000 山田 4/5
3000 村田 8/4
このように、TRマスタからそのトラックが最後に動いた日だけリスト表示し、
さらに、マスタを最新稼働日で昇順にソートさせたいのですが、うまくいきません。
どなたか教えてください。
Pages: 1
[ Generated in 0.007 seconds, 6 queries executed - Memory usage: 708.14 KiB (Peak: 745.8 KiB) ]