みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
ハガキの作成について、
別のレイアウトで、「ペット」テーブルのフィールドとリレーションで繋いだ「施主」テーブルのポータル表示を使ってハガキ画面は作り上げました。
それで、命日を月単位で検索してレコードを絞りこみたいです。
スクリプトを作ろうと思ってますが、検索実行する前のフィールド設定の計算式はどのようにすれば良いでしょうか?
自分は初心者です。自動計算するカレンダーなどは難しいので使わず、1月~12月のボタンを作って、1月なら1月、2月なら2月と、定数でやろうと考えています。
過去トピックスで見たのですが、
"*/” & Month(Get(日付)) & "/" & Day(Get(日付))
を利用して定数で月を検索できませんか?
宜しくお願いいたします。
Hiroさん、ありがとうございました。
おかげさまで、年は抜きで同じ命日を照合する事ができました。
> また、そのやり方を応用すれば、月単位で絞りこむ事も可能でしょうか?
例えば、1月なら1日から31日までが命日のペット全部を絞りこむことも考えています。
と言う事は、月を指定するだけのためにわざわざカレンダーから選択するのですか???
カレンダから何をお求めでしょうか?
月単位で絞り込むなら、その条件を満たすような照合キーを作るまでですが、上の例から考えてみてください。
説明不足だったかもしれません。
誤解を与えいたのなら、すみません。
カレンダーからは、その日付をクリックする事で、その日付が命日だったペットやその施主を割り出し、
その日のスケジュールを割り出す事が目的でした。
今回トピックを作ったタイトルとは違ってくるのかもしれませんが、
それとは別に、レコードに登録した施主やペットの情報を元に、施主に命日をお伝えするハガキを作ろうと考えています。
そのハガキの作成にあたって、命日の月単位でのハガキの作成を考えていました。
その事がありましたので、上記の質問をさせていただきましたが、ハガキを作成するざっくりとした流れを教えていただけませんか?
自分の力の無さを痛感しております。宜しくお願いいたします。
また、そのやり方を応用すれば、月単位で絞りこむ事も可能でしょうか?
例えば、1月なら1日から31日までが命日のペット全部を絞りこむことも考えています。
同じようで違った考え方で作られたものだったのですね。
1つ勉強させていただきました。
Hiroさんにご指摘されたとおり、「施主」レコードにカレンダーを設け、キー日付に代入した日付をもとにポータルで表示させるところまでは出来ました。
ですが、やはり年まで入ってしまいます。
相互のリレーションキーを月日キーに変更してください。
とは、具体的にどのような事でしょうか?
初心者も同然ですので、ご面倒かもしれませんが、宜しくお願いいたします。
ちなみに、以前違うサイトで同じような質問をした際にいただいたサンプルがあります。
ただ自分には、それを解析し自分のものにできる力がありませんでしたし、いただいた方に聞こうにもサイトが閉鎖されたみたいだったので聞けずにいました。
よかったら見ていただけませんか?
自分自身を表すSelf関数が使われていました。Self → キー日付 に替えて貰えばOKです。
Case(Month(キー日付)=Month(開始日);Self)
↓
Case(Month(キー日付)=Month(開始日); キー日付)あとスクリプトは検索ではダメです。あくまでリレーション照合でないと。
ご指摘ありがとうございます。
最初からやり取りを見直していて、一つ言い忘れていた事がありました。
お気づきかもしれませんが。
命日を検索する事について、
例えば、2016年2月13日の日付をクリックしたときに、2015年2月13日や2014年2月13日など、西暦は関係なく月と日のみの検索をしようと思っています。
教えていただいたやり方で検索をする際、西暦関係なく検索できるものでしょうか?
サンプルファイル拝見させていただきました。
カレンダーのデータベースで、
「キー日付」のオプションの計算値ですが、
Case(Month(キー日付)=Month(開始日);<関数が見つかりません><関数が見つかりません>)
となっていました。
これはやはり、バージョンによって使えない関数って事でしょうか?
一度、自分なりに考えてスクリプトを作ってみました。
結果は失敗でした。たぶん、月と日で検索が必要なのに年まで入ってしまった事だと思います。
根底から間違っているのかもしれませんが、ご確認・ご指摘もらえますか?
エラー処理[オン]
レイアウト切り替え[「古ペット」(古ペット)]
検索モードに切り替え[一時停止]
フィールド設定[古ペット::命日; ToDoカレンダー::日付一覧[Get(スクリプト引数)]]
検索実行[]
Hiroさん、お返事とご指摘ありがとうございます。
カレンダーは、カレンダーのみの表示にしておきたかったので、別テーブルに作りました。
ちょっと複雑に考えすぎていました。
「ペット」テーブルに施主の必要な情報だけポータルに表示させるようにして、単純にペットのページを絞り込むことにしました。
このように多少、不格好でも今のバージョンでできる範囲でやっていこうと思っております。
ただ、何が出来て何が出来ないのかが、わかっておりませんので、複雑なことを言ってしまうかもしれません。お許しください。
話を戻しまして、
教えていただいたポイントの部分で、
カレンダー[42]フィールドは、1項づつ42項に分離しましたが、クリックされた日付を間接的に割り出す方法が皆目見当がつきません。
何分、初心者ですので、どのようにすれば良いか教えていただけませんか?
宜しくお願いいたします。
作り直しました。
「施主」テーブル、「ペット」テーブルを別々に作って、施主側で関連レコードとしてペットの情報をポータルに表示させる事ができました。
初めに戻りますが、
別テーブルにカレンダーを作り、日付をクリックすると、その日付が命日の故ペットを検索して施主のページを絞り込もうと思っています。
スクリプトの作成について全く分かっておらず、どのように作ったら良いかわかりません。
スクリプトの作成方法、または例文などを教えていただけないでしょうか?
ちなみに、カレンダーの構成は、
フィールド名、タイプ、オプション/コメント
開始日、日付、グローバル
曜日、計算[7]、グローバル,=Choose(Get(計算式繰り返し位置番号);"";TextColor("日";RGB(255;0;0));"月";"火";"水";"木";"金";"土")
日付、計算[42]、グローバル,=Let([$start=Date(Month(開始日[1]);1;Year(開始日[1]));$date=$start + Get(計算式繰り返し位置番号) - DayOfWeek($start)];$date)];Case(Month(開始日[1])=Month($date); $date))
です。
説明不足がありましたら、ご指摘ください。
宜しくお願いいたします。
環境は、Windows7、FileMaker pro 8です。
Hiroさん、お返事ありがとうございます。
やはり、元からダメだったんですね…
リレーションシップがよくわかっておらず、上記のようなやり方でやってしまっていました。
作り直します。
ちなみに、教えていただいたやり方で、
「施主」テーブルに、施主IDで紐付た「ペット」テーブルの情報を自動的に反映、表示させる方法をお教えください。
こんばんは。
linと申します。
Filemakerは初心者同然です。
よくわかっておりませんので、ご質問させていただきます。
環境は、Windows7、FileMaker pro 8です。
ペット葬儀関係の仕事をしていますので、その施主さんとペットを管理するデータベースを作っています。
1つのテーブルに、施主のページとして、施主の名前や住所、電話番号、故ペットの名前、故ペットの命日などフィールドを設けています。
別テーブルにカレンダーを作り、日付をクリックすると、その日付が命日の故ペットを検索して施主のページを絞り込もうと思っています。
そのスクリプトの作成についての質問です。
施主1人に対して故ペットが複数いる場合もありますので、レコードには1人の施主に対して、
故ペット名1~4、故ペットの命日1~4と故ペットに関してのフィールドを4つずつ設けています。
同テーブル内の4か所のフィールドを検索対象にできるものなのでしょうか?
スクリプトの作成方法、または例文などを教えていただけないでしょうか?
説明不足の部分もあるかもしれませんが、その際はご指摘ください。
宜しくお願いいたします。
ご返事が遅くなりました。
Hiroさん、ありがとうございました。
大変参考になりました。
チボさん、Shinさん、お返事ありがとうございます。
FileMakerのバージョンの記載忘れておりました。
FileMaker pro 8です。
構成は、
フィールド名、タイプ、オプション/コメント
開始日、日付、グローバル
曜日、計算[7]、グローバル,=Choose(Get(計算式繰り返し位置番号);"";TextColor("日";RGB(255;0;0));"月";"火";"水";"木";"金";"土")
日付、計算[42]、グローバル,=Let([$start=Date(Month(開始日[1]);1;Year(開始日[1]));$date=$start + Get(計算式繰り返し位置番号) - DayOfWeek($start)];$date)
です。
またご不明点があったら、ご指摘ください。
はじめまして。
linと申します。
ファイルメーカーは初心者も同然です。
カレンダーの日付について質問させてください。
7×6マスのカレンダーの作成は出来たのですが、当月のカレンダーから、先月と翌月の日付を表示させなくする方法がわかりません。
お教えください。
Pages: 1
[ Generated in 0.012 seconds, 6 queries executed - Memory usage: 646.66 KiB (Peak: 668.06 KiB) ]