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

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

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

You are not logged in.

Announcement

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


#1 Re: 初心者のFileMaker pro Q&A » スタッフ1、スタッフ2の合算について » 2016-05-24 21:39:44

>旅人さま

大変失礼しました。
既にあるAccessで設計されたシステムからFMへの移行のため、そのようなテーブル構造になっております。
二人協力して売り上げが15000円という意味です。
本来はこのようになりますが、説明は省きました。
001 21,500
002 26,000
003 13,000

しかし、ご教示頂いたインポートする方法は早く処理できました。
インポート部のテストだけで、すべての処理を書ききれていませんが、理想の通りの集計ができそうです。
自身のファイルのインポートなら抽出する期間=インポートするデータ範囲を指定(検索)できるので、なおよかったです。
ありがとうございました。

#2 初心者のFileMaker pro Q&A » スタッフ1、スタッフ2の合算について » 2016-05-24 18:00:37

お世話になります。

環境:FM Pro14 Win版64bit
「売上テーブル」にスタッフ1とスタッフ2と売上金額フィールドがあります。
スタッフ1、スタッフ2は、それぞれ「スタッフテーブル」とリンクしています。

スタッフ1に”スタッフA”さん、スタッフ2に”スタッフB”さんが入る時があれば、逆の時もあります。
データとしては、
ID、売上日、スタッフ1、スタッフ2、売上金額
1 05/20 001 002 15,000
2 05/20 002 001 15,000
3 05/21 003 001 13,000
4 05/21 002 NULL 11,000

とあった場合に、
001 43,000
002 41,000
003 13,000
としたいのですが、どのようにすればよろしいでしょうか?

Loopを使い、ウインドウを開いたり閉じたりして1件づつ登録する方法を試しましたが、非常に処理が重く使えませんし、
空データのみが登録される問題もあり断念しました。

ご教示のほど、よろしくお願いいたします。

#3 Re: 初心者のFileMaker pro Q&A » スクリプト:レコード確定の動作について » 2016-05-20 09:09:20

>ハタさま
>チポさま
お二人とも、ご丁寧な回答ありがとうございました。
すごくすっきりしました。

#4 初心者のFileMaker pro Q&A » スクリプト:レコード確定の動作について » 2016-05-19 23:33:21

お世話になります。

環境:FM Pro14 Win版64bit
今回は基本的なことをご教示いただきたいと思います。

目的は1回の新規レコード追加と編集時に、複写ボタンを貼りつけ、任意の数だけレコードを作成したいのです。
変数$iを0で初期化し、Loopで例えば5回まわすのですが、最後のフィールドに値を設定した後、
End Loopの前に、「レコード/検索条件確定」を入れるのと入れないのとでは結果は違うでしょうか?
いらなくても動作するように思うのですが。

例:
Loop
変数を設定[$i; $i+1]
新規レコード/検索条件
フィールド設定[(フィールド名1); $値1]
フィールド設定[(フィールド名2); $値2]



レコード/検索条件の確定
Exit Loop If[$max<=$i]
End Loop

この「レコード確定」は、ドキュメントを読むと下記のことが書かれていますが、「レコードを終了します。」の意味がわかりません。(コミット?)

「このスクリプトステップを実行すると、フィールド内のデータを更新した上でフィールドの選択を解除してレコードまたは検索条件を終了します。」
参照:http://www.filemaker.com/help/12/fmp/jp/html/scripts_ref1.36.66.html

今回のケースでは「レコード確定」がいるのかいらないのか、ご教示のほど、よろしくお願いいたします。

#5 Re: 初心者のFileMaker pro Q&A » 2つのテーブルリレーションにて、片方のテーブルに存在しないデータの抽出方法をご教示ください。 » 2016-05-19 23:13:21

>Hiroさま
ご丁寧なご教示ありがとうございました。
とても参考になります!
ご提示の方法ではありませんが、一応、目的は達成できましたので、解決とさせていただきます。
ありがとうございました。

#6 Re: 初心者のFileMaker pro Q&A » 2つのテーブルリレーションにて、片方のテーブルに存在しないデータの抽出方法をご教示ください。 » 2016-05-19 10:40:47

>Hiroさま
いつも回答ありがとうございます。
夜遅くまでお疲れ様です。

イメージは掴めましたし、こんな方法があるのかと感心しました。
大変申し訳ありませんが、初心者に高度なテクニックは理解しにくいのです。
触ったことのないスクリプトが出てきて分からないので、詳しくご教示いただけないでしょうか?

Get(ファイル名)と使うということは、スタッフテーブルと予約テーブルがあるFMファイルと、空きリストを抽出したいFMファイルとが離れているということでしょうか?
それとも自身を見にいくイメージでしょうか?

こんなことも理解できないのは自分でも残念ですが、あまり時間がないので頼らせてください。
よろしくお願いいたします。

#7 Re: 初心者のFileMaker pro Q&A » 2つのテーブルリレーションにて、片方のテーブルに存在しないデータの抽出方法をご教示ください。 » 2016-05-18 22:15:24

>チポさま
>ゲストユーザーさま

結局、関連レコードへ移動のスクリプトの組み立てが分からず・・・

●リレーション
スタッフIDのみ連結。

●呼び出し元のレイアウトに設置したボタンのスクリプトに、

レイアウト切り替え[テーブルA]
「検索モードに切り替え」にて、
レコードを対象外に、開始日:[>=検索開始日(改行)<=検索終了日]
レコードを対象外に、終了日:[>=検索開始日(改行)<=検索終了日]

を指定してみました。うまく抽出できたように思います。

#8 Re: 初心者のFileMaker pro Q&A » 2つのテーブルリレーションにて、片方のテーブルに存在しないデータの抽出方法をご教示ください。 » 2016-05-18 17:24:22

>チポさま
回答ありがとうございます。
関連レコードがどういうものかもわかっていない初心者ですが、これより取り組んでみます!

>ゲストユーザーさま
回答ありがとうございます。
取り急ぎ、お返事を。
予約5日後としたは固定ではないのです。1日もあれば10日もあるのです。
詳細記述が足らず、申し訳ありませんでした。

#9 初心者のFileMaker pro Q&A » 2つのテーブルリレーションにて、片方のテーブルに存在しないデータの抽出方法をご教示ください。 » 2016-05-18 15:47:40

お世話になります。

環境:FM Pro14 Win版64bit
テーブルA:スタッフマスタ
テーブルB:予約テーブル
2つのテーブルは、スタッフIDでリレーションしています。
予約は1日指定ではなく期間指定で、予約テーブルには、開始日と終了日のフィールドがあります。
この状態で検索条件として、今日から5日後まででAさんに予約が入っているか確認はできるのですが、
今日から5日後までの間に、空いているスタッフの一覧抽出の方法が構築できずに悩んでいます。
ご教示のほど、よろしくお願いいたします。

#11 Re: 初心者のFileMaker pro Q&A » スクリプト「フィールド設定」の扱いについて » 2016-05-18 11:11:31

>scripterさん
ご教示ありがとうございます。
確認ですが、下記のパターンは、これで合っていますでしょうか?
※検索モードに切り替え[]、検索実行[]は省いてます。

1.WHERE句で、フィールドA="あああ" AND フィールドB=”いいい”
  フィールド設定[テーブルA::フィールドA, "あああ"]
  フィールド設定[テーブルA::フィールドB, "いいい"]

2.WHERE句で、フィールドA="あああ" OR フィールドB=”いいい”
  フィールド設定[テーブルA::フィールドA, "あああ"]
  新規レコード/検索条件
  フィールド設定[テーブルA::フィールドB, "いいい"]

3.WHERE句で、フィールドA="あああ" AND (フィールドB=”いいい” OR フィールドB=”ううう”)
  フィールド設定[テーブルA::フィールドA, "あああ"]
  フィールド設定[テーブルA::フィールドB, "いいい"]
  新規レコード/検索条件
  フィールド設定[テーブルA::フィールドA, "あああ"]
  フィールド設定[テーブルA::フィールドB, "ううう"]

よろしくお願いいたします。

#12 初心者のFileMaker pro Q&A » スクリプト「フィールド設定」の扱いについて » 2016-05-18 09:00:29

お世話になります。また皆様のお知恵をお貸し下さい。少々ぞっとしたもので。

環境:FM Pro14 Win版64bit
検索方法とカスタムダイアログの入力フィールドについて、検索キーワード入力用に何の疑いもなく使用しており、
さきほど入力フィールドをIMEモードのコントロールができないのかと調べたところ、ぞっとし不安になったので質問させていただきます。
参照URL:https://www.filemaker.com/help/14/fmp/ja/html/scripts_ref1.35.152.html

1.検索方法について、「検索モードに切り替え」や「検索実行」の「検索条件の指定」ダイアログにて検索条件指定する方法と、
  下記の方法があるようですが、どちらを使うのがいいのでしょうか?
  ※注意点は、フィールド設定の前に「検索モードに切り替え」ておくことと認識しています。

  検索モードに切り替え[]
  フィールド設定[テーブルA::フィールドA, $検索1]
  新規レコード/検索条件
  フィールド設定[テーブルA::フィールドB, $検索2]
  レコードを対象外に
  検索実行[]

2.上記1と関連して、カスタムダイアログの入力フィールドを検索キーワード入力用とした場合、下記のようなことをしていると、
  その入力したデータは、入力フィールドで指定したフィールドに新規レコードとして保存されるということでしょうか?

  カスタムダイアログを表示["タイトル"; "検索キーワードを入力して"; テーブルA::フィールドA]
  検索モードに切り替え[]
  検索実行[]

以上、ご教示をよろしくお願いいたします。

#13 Re: 初心者のFileMaker pro Q&A » タイムスタンプフィールドの書式が設定できない » 2016-05-16 00:42:28

>Hiroさん

いつも回答、大変ありがとうございます!
同じフィールドに対して、日付と時刻とを書式設定するとは気が付きませんでした。無事に設定できました!

#14 初心者のFileMaker pro Q&A » タイムスタンプフィールドの書式が設定できない » 2016-05-15 22:08:09

毎度お世話になります。

環境:FM Pro14 Win版64bit
早速ですが、タイムスタンプフィールドをレイアウト編集モードにて設置、選択し、
インスペクタ「データの書式設定」にて時計アイコンを押し、書式=時分、24時間制、記号=:とするのですが、
レイアウト編集を終了させブラウザモードで確認すると、日付と時刻表示のままとなり、期待するHH:MMの表示をすることができません。
また、レイアウト編集モードに戻り確認すると、時計アイコンに設定したはずが、「.01」アイコンの選択状態になります。
どこに原因、設定ミスがあるか、ご教示をよろしくお願いいたします。

#15 Re: 初心者のFileMaker pro Q&A » フィールドの値が空の場合の判定方法について » 2016-05-14 20:01:51

>Hiroさん
毎度お世話になります!
2、3時間も悩みましたが、無事解決することができました。
今後はFMのヘルプは少々読みづらく理解しにくいですが、すぐヘルプをみるようにします。
ご丁寧な回答、誠にありがとうございました。
また確認、返事が遅れ申し訳ありませんでした。

今後とも、よろしくお願いいたします。

#16 初心者のFileMaker pro Q&A » フィールドの値が空の場合の判定方法について » 2016-05-14 03:01:01

お世話になっております。

環境:FM Pro14 Win版64bit
フィールド名:flag:数字
フィールド名:日の情報:計算[31](テキスト)で、非保存、=Case(flag=0;"A";lag=1;"B";lag=2;"C";"-")

とした場合、flagに0以上の値が入っている場合は、ABCのいずれかを表示できるのですが、
空の値が入っている場合、"-"の表示を期待するのですが表示しません。空白表示となります。
flag="" や IsEmty(flag)=1の式を入れてもダメです。
使用箇所はカレンダーレイアウトです。下記に関連します。
https://fm-aid.com/bbs2/viewtopic.php?id=4557

なぜ、Case文のデフォルト値を表示しないのでしょうか。
どのようにすればよいか、ご教示のほど、よろしくお願いいたします。

#17 Re: 初心者のFileMaker pro Q&A » カレンダー構築について » 2016-05-12 16:24:33

>Hiroさん
ご丁寧な解説ありがとうございます。本当に助かりました。
初心者に荷が思いですが頑張ります!

#18 Re: 初心者のFileMaker pro Q&A » カレンダー構築について » 2016-05-12 10:55:26

>Hiroさん!!!!
できました!
こちらで定義ミスがありました。落ち着いてサンプルを見直し、改めてフィールド名をサンプルのまま改変せずとし定義し直したら、希望通りの表示をするようになりました!
本当にありがとうございました!

#19 Re: 初心者のFileMaker pro Q&A » カレンダー構築について » 2016-05-12 10:33:08

>Hiroさん
重ね重ねご丁寧に回答いただき、ありがとうございます。
ご提示いただいた、サンプルを改良したりして希望通りの動きができないか、ただいま検証中です。
現在、日付クリックで"勤"た"○"をいれるのではなく、別レイアウトで編集された情報表示用にカレンダーが必要だったわけです。
サンプルを改良しました。

シフトログに、シフトログ::作業内容のフィールドを作り、シフトログ::出勤フラグ配列には、=作業内容[1] としました。
シフトログのレイアウトを表形式で開き、任意の文字列を登録後、従業員マスタレイアウトをみると、希望通りの表示をしています。

しかし同じテクニックを開発中のものに適用すると、社員Aの右横列が、すべて同じ内容になってしまいます。
Accessからインポートした作業内容データに問題があるのか、リレーションに問題があるのか分かりません。
インポート時に、作業内容フィールドは計算させて生成しました。
実は作業内容テーブルにはもう一つ社員IDがあり、社員ID2としています。補佐って意味です。リレーションで社員名を引っ張るのに、
作業内容テーブル::社員ID=社員マスタ::ID、作業内容テーブル::社員マスタID2=社員マスタ::ID としています。
サンプルのシフトログに作業員ID2を作り、同様にしてみましたが、こちらは問題がありません。

なにかお気づきな点があれば、ご教示ください。

#20 Re: 初心者のFileMaker pro Q&A » カレンダー構築について » 2016-05-12 01:39:09

>Hiroさん
ご指南誠にありがとうございます。
サンプルを確認後、結果を後日お知らせします。

あと・・・厚かましくも、いくつか質問をさせてください。
1.スクリプトで検索する際の条件式で、日付や数値を範囲指定する際、フィールド設定で、日付A & ".." & 日付B または 0 & ".." & 9 でよろしかったでしょうか?
2.開発したシステムをサーバーで共有して運用する場合、グローバルフィールドは排他処理されるのでしょうか?
3.リレーションを貼る際、左側に置いたテーブルと右側に置いたテーブルとの位置関係はあるのでしょうか?
4.ファイルメーカーは、プロジェクト内(レイアウト内のオブジェクトやテーブル定義、スクリプト内)に対して、任意の文字列で検索することは可能でしょうか?
  不要なスクリプトやフィールドを削除する前に、使用箇所がないか調べたいのです。

私にとってファイルメーカーは非常に混乱しやすいです。
どうぞ、よろしくお願いいたします。

#21 Re: 初心者のFileMaker pro Q&A » カレンダー構築について » 2016-05-11 20:42:58

>Hiroさま
ご回答ありがとうございます。
申し遅れましたが、私はファイルメーカーを触り始めて1か月弱の初心者です。

社員マスタテーブルの方に、繰り返しフィールドを作成し下記のとおり設定しましたが、

計算[31] 計算式:If(Extend(作業内容テーブル::作業日)=Date(Extend(g月);Get(計算式繰り返し位置番号);Extend(g年));Extend(作業内容テーブル::作業ID);"◇")

作業IDがまったく表示されず◇表示だけの表が作成されました。
社員の行方向については全件表示するようになりましたが、日付も滅茶苦茶です。

思うのですが、このカレンダーを表示するレイアウト元から「カレンダー」に切り替えた場合、
テーブルとレイアウトが一対であるので、正しく作業内容テーブルから抽出できないのが原因のように思います。

【テーブル構成】
メイン:メインテーブル(メニューボタン設置用)
カレンダー:社員マスタテーブル
作業内容:作業内容テーブル

【リレーション】
作業内容テーブル::社員ID=社員マスタテーブル::ID

メインレイアウトにボタンを貼り、下記のスクリプトでカレンダーに切り替えています。

エラー処理[オン]
レイアウト切り替え[「作業内容」(作業内容テーブル)]
検索モードに切り替え[]
フィールド設定[作業内容テーブル::作業日; date(month(get(日付));1;year(get(日付))) & ".." & date(month(get(日付))+1;0;year(get(日付)))]
検索実行[]
レイアウト切り替え[「カレンダー」(社員マスタテーブル)]

まず、1日から末日までの日付範囲指定の記述方法は合っていますでしょうか?
抽出したいデータがある作業内容テーブルから、社員マスタテーブルを縦軸としたレイアウトと関連性を持たせることができていないように思います。
あと、リレーションを貼る際、左側に置いたテーブルと右側に置いたテーブルとの位置関係はあるのでしょうか?(SQLでいうLEFT JOINやRIGHT JOINです。)

以上、よろしくお願いいたします。

#22 初心者のFileMaker pro Q&A » カレンダー構築について » 2016-05-11 11:11:11

はじめまして、どうぞよろしくお願いいたします。
過去ログを検索し、それをヒントに開発を進めてまいりましたが、解決できないため質問させていただきます。

環境:FM Pro14 Win版64bit
クロス集計タイプのカレンダー構築について質問があります。
カレンダーは月間カレンダーですが一般的なカレンダーではなく、1から31まで横方向へ並べたカレンダーです。
縦方向には社員名を並べたいと思っています。こんな感じです。
------------------------------
5月 |1|2|3|・・・|31
------------------------------
社員A|◇|◇|●|・・・|◇
社員B|◇|◇|◇|・・・|●



社員Z|◇|◇|◇|・・・|◇
------------------------------
※●=作業ID
※◇=作業内容テーブルにデータなし

社員マスタテーブルと作業内容テーブルがあり、それぞれを社員IDでリレーションしています。
作業内容テーブルには日ラベル[31]、作業日[31]があり、これを元にカレンダーを構築すると下記の二つの問題が発生します。

問題1.作業内容テーブルにデータがない社員Zの行が出てこない。
問題2.例えば社員Aに、3、4、5日の作業内容がある場合は下記のようになってしまいます。
--------------------------
5月 |1|2|3|4|5
--------------------------
社員A|◇|◇|●|◇|◇
社員A|◇|◇|◇|●|◇
社員A|◇|◇|◇|◇|●
社員B|◇|◇|◇|◇|◇
--------------------------

◎理想形
--------------------------------------
5月 |1|2|3|4|5|・・・|31
--------------------------------------
社員A|◇|◇|●|●|●|・・・|◇
社員B|◇|◇|◇|◇|◇|・・・|●



社員Z|◇|◇|◇|◇|◇|・・・|◇
---------------------------------------

このような形にするには、どうすればよろしいでしょうか?

【社員マスタテーブル構造】
・社員ID
・社員名
・TEL

【作業内容テーブル】
・作業ID
・社員ID
・日ラベル(日付を振るため)
計算[31] 計算式:Month(Date(Month(Extend(作業日));Get(計算式繰り返し位置番号);Year(Extend(作業日))))&"/"&Day(Date(Month(Extend(作業日));Get(計算式繰り返し位置番号);Year(Extend(作業日))))&"("&Left(DayNameJ(Day(Date(Month(Extend(作業日));Get(計算式繰り返し位置番号);Year(Extend(作業日)))));1)&")"
・作業日[31]
計算[31] 計算式:If(Extend(作業日)=Date(Extend(g月);Get(計算式繰り返し位置番号);Extend(g年));Extend(作業ID);"◇")
・作業内容
g年(グローバル:カレンダー抽出用)
g月(グローバル:カレンダー抽出用)

以上となります。よろしくお願いいたします。

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 6 queries executed - Memory usage: 686.87 KiB (Peak: 724.4 KiB) ]