みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
担当者ごとのレコード数を、別レイアウトで数を表示させる方法が分からず、教えてください。
レイアウトは、ホーム画面とレコードが登録されているレイアウトがあり、
担当者と納期とクローズ日と内容とクローズのフィールドがあり、登録しています。
クローズをすると、済を入力をして、
(クローズ日を入力したら、自動で済が入るように、自動化できればベスト)
クローズに済が入ってないものを担当者ごとに表示させ、何件、クローズできてないのかを確認したいと思っています。
そこで、ホーム画面で、担当者 A・B・Cのボタンを作り、Aをクリックすると、
A担当のクローズに済が入ってないものを検索モードで表示させるようにしています。
前提は上記で、やりたいことが以下です。
ホーム画面で、A・B・Cを表示させている右上等に、各担当者ごとに何件かかえてるのか、数字で表示させるようにしたいです。
一回一回クリックして、何件あるかを確認するのではなく、ホーム画面の段階で何件あるかわかるようなものを作りたいと思っています。
全く分からず、ご教授の程よろしくお願いいたします>_<
Offline
こういう場合はSQLでやるのが簡単ではありますが
ExecuteSQL("
SELECT \"担当者\", COUNT(*)
FROM \"tablename\"
WHERE \"クローズ日\" IS NULL
";"";"")
納期を過ぎたものは表示しないとか何か追加の条件があるかな。
ホーム画面に切り替えるスクリプトでフィールド設定するとか、この計算結果を更新するボタンをホーム画面に設置しておくとか
最新の状態を再計算するための方法が必要です。
「別レイアウト」のテーブルが1レコードしかなければ、その計算フィールドで非保存にしてもいいですが
ちょっと別の方法も。
Choose ( Get ( 計算式繰り返し位置番号 ) - 1 ;
担当者[1] = “A” & IsEmpty ( クローズ日[1] ) ;
担当者[1] = “B” & IsEmpty ( クローズ日[1] ) ;
担当者[1] = “C” & IsEmpty ( クローズ日[1] )
)
という繰り返しの計算フィールドと、それを個別に合計する集計フィールドを作っておきます。
自己リレーションを張り、条件をデカルト積(×)にします。
リレーション先の集計フィールドをヘッダーに配置すれば、常に未クローズ数が表示されます。
Offline
ありがとうございます。
ExecuteSQL("
SELECT "担当者", COUNT(*)
FROM "tablename"
WHERE "クローズ日" IS NULL
";"";"")
上記をホーム画面のレイアウトで、「A未クローズ数」のフィールドを新たに作成し、その中に、計算のタイプで、
コピー貼り付けでいれてみましたが、以下のエラーメッセージが出ます。
「レコードがありません。レコードを作成するには、レコードメニューから「新規レコード」を選択してください」
レコードが登録されているレイアウトに対して、ホーム画面上だと指示が届かないのでしょうか。
ド素人な質問で申し訳ございませんが、お助けくださいませ。
Last edited by tokusyuu (2024-01-04 22:15:07)
Offline
追記です。
レコードが登録されているレイアウトで、フィールドを作成し、同じ内容を記入すると、「?」が出ました。
更に追記です。
ExecuteSQL("
SELECT "担当者", COUNT(*)
FROM "tablename"
WHERE "クローズ日" IS NULL
";"";"")
ExecuteSQL("
SELECT "担当者"
FROM "tablename"
WHERE "クローズ日" IS NULL
";"";"")
countを消すと、担当者の名前が、ずらっと一覧として出るようになりました。
例:A A A B A B B C C C のような感じです。
あとは、これを担当者ごとに集計をしたいです。 どのようにすればよいでしょうか。
A 4件
B 3件
C 3件
のようにしたいです。
Last edited by tokusyuu (2024-01-05 00:23:07)
Offline
ああ、すいません、集計の設定を1行書き忘れてました。
ExecuteSQL("
SELECT \"担当者\", COUNT(*)
FROM \"tablename\"
WHERE \"クローズ日\" IS NULL
GROUP BY \"担当者\"
";"";"")
これで大丈夫かな?
>レコードが登録されているレイアウトで、フィールドを作成し
そうすると、すべてのレコードで同じ計算をすることになるので、1レコードだけの専用のテーブルを使うか、スクリプトで計算してグローバルフィールドに設定するとかした方がいいです。
こんな方法も簡単ですよ。リアルタイムで結果が反映されます
https://www.dropbox.com/scl/fi/t1efbabw … ks22a&dl=0
Last edited by Shin (2024-01-05 09:56:59)
Offline
感動レベルでありがとうございます。 無事できました。
こんな方法も簡単ですよを自分のところにうつしたく、いろいろしているのですが、今一度教えてください。
何度も質問申し訳ございません。
フィールドのオプションが自分で入力するのと異なります。
非保存、from テーブル , GetValue ( ValueListItems ( Get ( ファイル名 ) ; "担当一覧" ) ; Get ( 計算式繰り返し位置番号 ) )
fromテーブルがでてこず、自分のところで同じように入力しても、担当A・B・Cが出てこないです。
担当一覧は、担当者のところで値設定で、担当一覧にしました。
実際は、A・B・Cではなく、日本語の名前で記載されているので、でてこないのでしょうか。もしくはfromが入力されてないことで、でてこないのか。
非保存、GetValue ( ValueListItems ( Get ( ファイル名 ) ; "担当一覧" ) ; Get ( 計算式繰り返し位置番号 ) )
お時間あります時にご教授ください。
Offline
担当者の値一覧を作っていますか。
Offline
出来ました。大変丁寧に教えて頂きましてありがとうございました。
Offline
Pages: 1
[ Generated in 0.007 seconds, 12 queries executed - Memory usage: 528.1 KiB (Peak: 549.01 KiB) ]