みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
所属テーブルに、所属1 & 所属2 というフィールドを作っておき、所属ID を第1フィールド、計算フィールドを第2フィールドとする値一覧を作ります。それで 所属ID を選択させるのが簡単なのでは。
所属名は、ルックアップで設定すればいいです。
>Shinさん
お返事が遅くなり、申し訳ありません。Shinさんのおっしゃっていた方法も試してみました。
今後の管理面も含めてShinさんのご提示くださった方法で運用していくことになりました。
ご助言いただきありがとうございます!
<通りすがりさん
分かりやすいサンプルデータをありがとうございました。
学ぶことが多く、大変助かりました。
<チポさん
分かりやすく教えていただきありがとうございます。
タイプ入力ではなく、値一覧からドロップダウンすることでミス回避できることまでお教えいただき、ありがとうございます!
無事にやりたかったことができました。
お二人とも、ありがとうございました。
部テーブル、課テーブルを作らない理由は特にありません。
いただいたサンプルデータを拝見いたしました。
名簿テーブルにあと1つ表示したいのが、所属IDです。
これは名簿テーブルにあるIDとは別のものです。
名簿レイアウトで、部を入力し、それに紐付く課を入力し、所属IDを表示させたいです。
所属IDは課まで入力されると1つしか該当しないので、それが表示されると思ったとおりの動作になります。
名簿テーブル:ID、氏名、アドレス、所属1、所属2、所属ID がフィールドです。
所属テーブル:所属1、所属2、所属ID がフィールドです。
所属テーブルの所属1は部で、所属2はその部に含まれる課が、所属IDはその課に個別に振られるIDです。
例)レコード1 所属1:営業部 所属2:営業第一課 所属ID:0001
レコード2 所属1:営業部 所属2:営業第二課 所属ID:0002
レコード3 所属1:営業部 所属2:営業第三課 所属ID:0003
レコード4 所属1:業務部 所属2:管理課 所属ID:0004
レコード5 所属1:業務部 所属2:総務課 所属ID:0005 …など
やりたいこと
① 所属1に部を入力(例:営業部)
② 所属2に選択肢として課が表示される(例:営業第一課、営業第二課、営業第三課)
③ 課を選択(例:営業第二課)
④ 所属IDが表示される(例:0002)
以上のテーブル、レコードでやりたいことをするためにはどのような設定をよいでしょうか?
ご教授ください。
集計フィールドをポータル内に配置し、そのポータルをフィルターしておくと、フィルターされた関連レコードの集計が可能です。
ファイル全体の構造が想像できないのですが、その予算を、他のテーブルに置き、リレーションで呼び出してみればいかがでしょう。
Shinさんの仰った通りに、集計フィールドをポータル内に配置してフィルタリングし、
集計フィールドと予算(数字フィールド)を別のテーブルに置いたら全てのレコードでうまく動作しました!
ありがとうございました!!
前にも質問した内容と少し被るのですが、
以前
集計フィールド(売上見込み) - 数字フィールド(予算) = 計算フィールド(差額)
で、集計フィールドはある特定の条件に一致するレコードのみ集計してほしいので、ポータル上に載せてフィルタリングしました。
しかし、集計フィールドをそのまま計算式に入れることができず、困っていたら数字フィールドをグローバルにすると上手くいくと教わりました。
それで計算は上手くいったのですが、グローバルフィールドだと全てのレコードに共通した1つのデータしか格納できず、その問題を解決するために、
現在
計算フィールド(GetSummary(売上見込み;売上見込み)) - 数字フィールド(予算) = 計算フィールド(差額)
としました。
集計関数の区分けフィールドを上手く使えばポータルのフィルタリングと同じようにある特定の条件に一致するレコードを集計してくれるのかもしれませんが、
上手くいかず、ソートはしていません。
teteさんのコメント「ポータルフィルタリングは集計フィールドや統計関数の結果には影響を与えません」というところで、どうすれば
ポータルのフィルタリングのような機能を使って計算結果に影響を与えることができるでしょうか?
テーブル レイアウト 詳細
【拠点マスター】 拠点 :スタッフが所属している拠点のマスター
【スタッフマスター】 スタッフ :人情報
【スタッフ見込み・実績】スタッフ見込み・実績:スタッフの見込売上と実績
【拠点マスター】 拠点見込み・実績 :拠点に所属しているスタッフの見込売上と実績をポータルで表示 セグメントごと月ごとに2重のタブで表示している
リレーション
拠点マスター(拠点コード) = スタッフマスター(拠点コード)
スタッフマスター(スタッフID) = スタッフ見込み・実績(スタッフID)
スタッフマスター(スタッフID) = スタッフマスター3(スタッフID)
スタッフマスター2(スタッフID)= スタッフ見込み・実績2(スタッフID)
スタッフ見込み・実績(スタッフID)= スタッフ見込み・実績2(スタッフID)
大体こんな感じです。
ポータルのフィルタリングは スタッフマスター2テーブル::セグメント=”A” としています。
セグメントは”A”~”E”まであります。
月ごと、セグメントごとの集計をしたいのです。
例えば、あいう拠点のセグメントBのスタッフの10月の売上見込みはいくらか、そこから予算を引いた差額はいくらか、という計算をしたいのです。
長文となりましたが以上、よろしくお願いします。
Win 10
FileMaker Pro 12 Advanced
拠点が複数あり、その拠点に複数のスタッフが所属しています。
スタッフの見込売上を拠点テーブルにポータルで表示しています。
その拠点に所属しているスタッフの見込売上が一覧(ポータル)で見れるようになっています。
その拠点全体の見込売上を見るために見込売上の集計(合計)フィールドを作成しました。
また、拠点に割り当てられた予算を入力する数字フィールドがあります。
見込売上-予算で差額を計算したいと思います。
見込売上は集計フィールドなので、計算式は、
差額=GetSummary(見込売上;見込売上)- 予算 としています。
ある拠点(レコード)では上手く動作するのに、別の拠点(レコード)では動作しません。
スタッフのセグメントごとに小計も出しているのでポータルのフィルタリングもしています。
全レコードで共通して計算が上手くできないのはわかりますが、レコードによっては正常に計算されない原因が分かりません。
お力をお貸しください。
よろしくお願いします。
お返事遅くなりました。
申し訳ありません。
Hiroさんの仰るとおりやってみたら、できました。
助かりました。ありがとうございました。
Win 10
FileMaker Pro 12 Advanced
FileMaker初心者です。
ポータル上の集計フィールドから任意の数字を入力する数字フィールドを引く計算がうまく動作しません。
集計フィールド-数字フィールド=計算フィールド
ポータル上の集計フィールドにはフィルタリングがされています。
数字フィールドは何の設定もしていないただの数字フィールドです。
集計フィールドから数字フィールドを引く計算フィールドがあるのですが、集計フィールドの数字がそのまま表示されます。
例)集計フィールド:\22,222
数字フィールド:\11,111
計算フィールド:\22,222
こうしたい)集計フィールド:\22,222
数字フィールド:\11,111
計算フィールド:\11,111
計算フィールドも別ポータル上に乗せて集計フィールドと同じフィルタリングをしてみたりしましたが、うまくいきません。
集計フィールドを計算フィールドの引数にするのはだめなのでしょうか?
代替方法などあれば詳しく手順を教えてください。
よろしくお願いします。
Win 10
FileMaker Pro 12 Advanced
FileMaker初心者です。
従業員の月ごとの出勤日数を管理するテーブルがあります。
フィールドは「従業員ID」「月」「出勤日数」の3つです。
トップ画面からこのレイアウトに移動するボタンでAスクリプトを実行します。
新規レコード作成時にデータの重複を防ぐためにBスクリプトを実行します。
このレイアウトでは常に月(昇順)にレコードを作成するとは限らないので、月でソートしていたいですが、スクリプト実行時などにそのソートが崩れてしまいます。
ですが、都度ソートしていると現在入力したいレコードから最初のレコードに移動してしまいます。
常にソートが掛かった状態で入力中レコードから他のレコードに移動しない方法はありますか?
できれば、ポータルは作りたくないです。
Aスクリプト
レイアウトの切り替え[「出勤日数」(出勤日数)]
全レコードを表示 ←検索結果が残っていると困るので一応
検索モードに切り替え[]
Bスクリプト
変数を設定[$従業員ID;出勤日数::従業員ID]
変数を設定[$月;出勤日数::月]
検索モードに切り替え[]
フィールド設定[出勤日数::従業員ID;$従業員ID]
フィールド設定[出勤日数::月;$月]
検索実行[]
If[Get(対象レコード)=1]
次のフィールドへ移動 ←ある従業員に同月のレコードがなければそのまま進んで出勤日数フィールドへ移動
Else If[Get(対象レコード)>1]
カスタムダイアログを表示[”エラー”;”既にこのスタッフの今期指定月の出勤日数は登録済みです。"]
フィールドへ移動[出勤日数::月] ←月の再入力を促したい
End If
検索モードに切り替え[]
フィールド設定[出勤日数::従業員ID;$従業員ID]
検索実行[]
以上です。
ご教示ください。
Hiroさん、Shinさん、ありがとうございました!
どちらの式も希望通りの計算結果を表示してくれました。
とても助かりました。
本当にありがとうございます。
Hiroさん、ありがとうございます。
もし、できれば式の意味(どこから92という数字が出てきたのか)も教えてください。
Win 10
FileMaker Pro 12 Advanced
FileMaker初心者です。
Get(日付)で求めた日付から1年ごとの期を求めたいのですが、式が分かりません。
例えば、2017/10/01~2018/09/30が1期だとします。
Get(日付)で求めた日付が2018/10/01だった場合、2期となります。
その場合、どういう式で期が求められるか教えてください。
よろしくお願いします。
Win7
FileMaker Pro 12 Advanced
FileMaker初心者です。
構成としては、
人の基本情報の「人マスター」テーブルがあります。
更にその人が所属しているグループの基本情報の「グループマスター」テーブルがあります。
人が何月に何日働いてどれだけ売上があるかの「人実績」テーブルがあります。
そのグループに所属している人の月ごとのレコードをポータルに表示させたいのですが、月でレコードを絞ることができません。
現状、グループマスターテーブルの別レイアウトにポータル(関連レコードは人マスター)を配置して、そのグループに所属している人の実績は表示できているのですが、
月ごとに絞ることができていません。
人実績に月を入れるフィールドがあるので、そのフィールドでフィルタリングか検索でレコードを絞って、グループ毎に実績をポータルに表示させるにはどうリレーションを組んで、どのような設定をすれば動作するか教えてください。
よろしくお願いします。
皆様、ありがとうございました。
やりたいことができました!
Windows 7
FileMaker Pro 12 Advanced
材料リスト(50レコード)と材料に含まれている物質リスト(800レコード)がそれぞれあります。
材料名などで検索すると、ポータルで材料に含まれている複数の物質(名前と物質の区分など簡易情報)を表示させたいのですが、そこに、その材料に含まれている物質の含有量も併せて表示させたいのです。
材料によって含まれている物質は異なりますし、含有量も異なります。
材料リストに繰り返しフィールドで物質Noを入力し、材料に含まれている物質が分かるようになっています。
また、材料リストの物質IDの近くに含有量を同じく繰り返しフィールドで表示しています。
リレーションで照合フィールドは物質IDになっています。
ポータルには物質IDとそのほか簡易情報は上手く表示させることができたのですが、含有量をどうのようして
表示させたらいいのか分かりません。
お知恵をお貸し下さい。
よろしくお願いします。
Windows 7
FileMaker Pro 10
FileMaker Goでの運用を考えています。
図面や家の見取り図などの画像上をタップすると、小さめな赤丸などで印が付き、そこから線が延びてその先に番号が順番に振られるような動作は可能でしょうか?
ご回答をお願いします。
スクリプトで希望通りの動作を全て行うのは現状では、無理そうですね。。
皆さん、一緒に考えてくださってありがとうございました!
また、ユーザーによって、またはそれぞれのデバイスによってパスが変わってくる場合は、そのパスはどうやったら取得できるのですか?
iCloud へのファイルパス(絶対パス)はどこで見れるのですか?
常識的基礎知識がありません。
申し訳ありませんが、ご教授ください。
FileMaker Pro 12 Advanced
Windws 10
iPhoneやiPadでFileMaker Goを使用時、手動でメニューからCSVファイルをiCloudに出力できるのですが、
それをスクリプトでやりたいです。
やってはみたのですが、
「エラー ファイルを出力できませんでした。ファイル名を変更するかデバイスの空き容量を確保してください。」
とエラーメッセージが表示されたり、
スクリプトの設定してあるボタンをタップしても、何も起こらない場合があります。
デバイスの空き容量は手動で出力できている時点で問題ないと思います。
以下の設定でスクリプトでCSVデータを出力するにはどんなスクリプトを組めばよいか、教えてください。
ファイル名:Month(Get(日付)) & "月" & Day(Get(日付)) & "日" & "データ管理記録" & ".csv"
出力形式 :CSV
文字コード:Shift_JIS (日本語)
その他 :ダイアログなし
以上です。
よろしくお願いします。
Windows 7
FileMaker Pro 10
人員データとそれに紐付いた複数テストの受験日、結果を管理するDBを作成しました。
テスト結果は人員データのIDを照合フィールドとしてポータルで人員データのレイアウトに表示させています。
DBは普段サーバーに保存されていて、一度PCにコピペしてからデータ変更などの操作を行ない、再びサーバーに上書きするようにしています。
人員データを変更する際に、以下のようなスクリプトを実行していますが、スクリプト通りに実行されるときと、うまく実行されないときがあります。
うまく実行されたか、されていないかエラーメッセージ等が出ないので判別が困難です。
スクリプトの中に変則的にうまくいったりいかなかったりする要素があれば、組み直したいと思います。
スクリプト自体に問題がなく、変則的にうまくいったりいかなかったりする原因をご存知の方は対処策も併せて教えて頂きたいです。
お知恵をお貸しください。よろしくお願いします。
● DBの構造(全て別テーブル)
・人員データマスター(人員データの基本情報が記載)+A、B、Cのテスト情報をポータルで表示
・テストAマスター(受験日、結果等が記載)
・テストBマスター(受験日、結果等が記載)
・テストCマスター(受験日、結果等が記載)
・人員データの変更レイアウト
・テストAの変更用レイアウト
・テストBの変更用レイアウト
・テストCの変更用レイアウト
● スクリプトA(マスターの内容を変更用レイアウトにコピペ)
人員マスターのIDをコピー
人員変更レイアウトに切替
新規レコード作成
ID貼り付け
ーー変更内容を入力ーー
人員変更レイアウトのIDをコピー
テストAマスターに切替
検索モード
IDに貼り付け
エラー処理ON
検索実行
If ( Get ( 最終エラー)=401)
スクリプト実行(テストB検索)※1
Else
スクリプト実行(テストAコピペ)※2
スクリプト実行(テストB検索)
※1
人員変更レイアウトのIDをコピー
テストBマスターに切替
検索モード
IDに貼り付け
エラー処理ON
検索実行
If ( Get ( 最終エラー)=401)
スクリプト実行(テストC検索)
Else
スクリプト実行(テストBコピペ)
スクリプト実行(テストC検索)
※2
レコード移動(最初の)
Loop
変数を設定
テストA変更用レイアウトへ切替
新規レコード作成
フィールド設定
テストAマスターへ切替
レコード移動(次の;最後まできたら終了)
End Loop
● スクリプトB(変更レイアウトの内容をマスターに新規作成)
変数を設定
社員IDをコピー
人員マスターに切替
検索モード
IDを貼り付け
検索実行
対象レコード削除(ダイアログなし)
新規レコード作成
フィールド設定
スクリプト実行(テストA)※3
〃 (テストB)
〃 (テストC)
人員変更用レイアウトに切替
対象レコード削除(ダイアログなし)
人員マスターに切替
全レコードを表示
※3
スクリプト実行(テストA~C)
テストA変更用レイアウトへ切替
If ( Not IsEmpty ( 変更 テストA :: ID)
レコード移動(最初の)
Loop
変数を設定
テストAマスターに切替
新規レコード作成
フィールド設定
テストA変更用レイアウトに切替
レコード移動(次の;最後まできたら終了)
End Loop
全レコードを表示
対象レコード削除(ダイアログなし)
End If
できました!!
実際には表示しなくても、ソート用のフィールドを作ってそれでソートするのですね!
お早い回答をありがとうございます!
環境
Windows 10
FileMakerr Pro 10
誰にいつ、どのテストを送ってその結果がどうだったかを管理しています。
それをポータルで「テスト名」「発送日」「評価」で表示させています。
「テスト名」:値一覧で「初級」「中級」「上級」などが、
「発送日」 :任意の日付を、
「評価」 :値一覧で「〇」「△」「期限切れ」「×」などを入力します。
「テスト名」「発送日」は、テストを発送した時点でデータが入力されますが、「評価」は結果が発表され次第入力されます。
つまり「テスト名」「発送日」が入力されていて、「評価」が空欄の場合があります。
その時に、「評価」が空欄のレコードを一番上に表示させたいのです。
発送日でソートすることも考えましたが、発送日が早くても評価が出るのが遅くなったりします。
例)発送日:3/1 評価:〇
発送日:2/1 評価:
発送日:1/1 評価:△
この時、一番上に表示したいのは、発送日が2/1のレコードです。そして、評価が出ているレコードは日付順でソートしたいです。
例)発送日:2/1 評価:
発送日:3/1 評価:〇
発送日:1/1 評価:△ と、したい。
なにか、方法はあるでしょうか?
お知恵をお貸しください。
Pages: 1
[ Generated in 0.009 seconds, 8 queries executed - Memory usage: 711.41 KiB (Peak: 764.7 KiB) ]