みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっています。
Win8 FM13使用しています。
前回の続きからで恐縮ですが書かせて頂きます。
年月テーブル(1日1レコード) ここにカレンダーを作成するために週刊テーブルをポータルで表示 カレンダーのほかにポータル3個表示
年
月
週間テーブル
年
月
d1
d2
d3
d4
d5
d6
d7
としております。
カレンダーは問題なく出ています。
聞きたいのは年間テーブルに表示したカレンダーの日付をタップ(クリック)したときにその表示のレコード(年間テーブル)に飛ぶ方法です。
宜しくお願いします。
私のサンプルを見た?
それも実装済みだけど
Offline
Shin様
見させていただきましたが変更不能になっていて詳しいやり方がわかりませんでした・・・
申し訳ありません。
質問に
年月テーブル(1日1レコード)
年間テーブル
とありますが、これらは?
いずれにせよ、
飛びたいテーブルの日付とリレーションして、
スクリプトステップ
関連レコードへ移動
で出来ることでは。
Offline
チポ様
ありがとうございます。
私の方もごっちゃになってました。
年間×
年月⚪︎
です。
1度やってみます。
圧縮してあるので、解凍しないと内部は見えませんよ
レコードを検索する、という考え方の全く無い作り方ですよ。レコード移動が無いので極めて高速で、ファイルサイズも最小限です。
Offline
shin様
解凍してファイルは開けましたがスクリプトの管理やレイアウト変更が出来ない状態でした。
圧縮したフォルダーをダブルクリックして内部ファイルが見えたら、そのファイルをフォルダーの外に出さないと駄目ですが
Offline
Shin様
ありがとうございます。
おかげで見ることができました。
ただ、内容が私には難しいですので出来れば詳しく教えていただけないでしょうか?
週間リストに付いては、チポさんの作り方と同じでしょう。
カレンダーの表示は、最初に作られていた様に、繰り返しフィールドに日付を設定してあるだけです。そのキーは、グローバル変数に持たせています。
そこをクリックすると、OnObjectEnterのトリガーで、ボタンの様な動作をさせています。その内容を取り出して、スクリプトへ送ります。
1日単位の表示でしたら、そのテーブルの日付をその日に設定してしまい、別テーブルの予定をポータルで表示させます。
週単位の表示でも同じです。
月表示は、6レコード用意していあり,それぞれを週表示にしておけば、その月(前月の最終週の)日曜日を各レコードに設定すれば、1月分の予定として表示できます。
トリガーで起動するスクリプトに送り込も引数が味噌です。
この方法ですと、不要な日のレコードは作らず、予定を入れる情報だけが別テーブル側に出来て行き、メインの表示用のテーブルには、最大6レコードしか存在しませんので、ファイルの肥大がおきません。ただし、共有されるファイルには適しませんので,その場合にはもう一工夫必要です。
Offline
Shin様
ありがとうございます。
週間リストに付いては、チポさんの作り方と同じでしょう。
カレンダーの表示は、最初に作られていた様に、繰り返しフィールドに日付を設定してあるだけです。そのキーは、グローバル変数に持たせています。
ファイルを開けるとスクリプト「Init」が実行されて$$YNが決定する。この時スクリプト引数はないと思うので $$YN=Year(Get(日付))*12+Month(Get(日付))-1 となると考えていいでしょうか?
もしいいのでしたらなぜ Year(Get(日付))*12+Month(Get(日付))-1 としているかを教えてください。
$$YNが決定したらカレンダーの日付フィールドの値が変化(決定)する。
$$YN[1]の[1]の意味はどういったものなのでしょうか?
あと、最後のGet(計算式繰り返し位置番号)はなにを表しているのでしょうか?
そこをクリックすると、OnObjectEnterのトリガーで、ボタンの様な動作をさせています。その内容を取り出して、スクリプトへ送ります。
これは日付抽出スクリプトによってその日(アクティブフィールド内容)を検索にかけているということでいいでしょうか?
同じ日付のレコードは作成しないようにするにはどうすればいいのでしょうか?
1日単位の表示でしたら、そのテーブルの日付をその日に設定してしまい、別テーブルの予定をポータルで表示させます。
1レコード1日で別テーブルに入力した予定(3種類)をポータルで表示しています。
そのあとの
週単位の表示でも同じです。
月表示は、6レコード用意していあり,それぞれを週表示にしておけば、その月(前月の最終週の)日曜日を各レコードに設定すれば、1月分の予定として表示できます。
トリガーで起動するスクリプトに送り込も引数が味噌です。この方法ですと、不要な日のレコードは作らず、予定を入れる情報だけが別テーブル側に出来て行き、メインの表示用のテーブルには、最大6レコードしか存在しませんので、ファイルの肥大がおきません。ただし、共有されるファイルには適しませんので,その場合にはもう一工夫必要です。
はポータルで1日分以上の予定を出すならということでしょうか?
稚拙な質問ばかりかと思いますが、どうぞよろしくお願いします。
初期スクリプトで、$$YNにYear(Get(日付))*12+Month(Get(日付))-1を設定しています。これは、西暦0年1月を起点とする通し数です。
$$YN[1]の[1]は繰り返しフィールドから、非繰り返しフィールドを参照する際に、繰り返しフィールドの様に動作させる書き方です。
Get(計算式繰り返し位置番号)は、繰り返し位置nでは、nが帰りますので、1〜42が返る事になります。
後の話は、古いファイルの話の様で。大幅に書き換えてあるので、ダウンロードし直してください。
Offline
Shin様
ありがとうございます。
初期スクリプトで、$$YNにYear(Get(日付))*12+Month(Get(日付))-1を設定しています。これは、西暦0年1月を起点とする通し数です。
これはそのまま覚えた方がよさそうですね。
$$YN[1]の[1]は繰り返しフィールドから、非繰り返しフィールドを参照する際に、繰り返しフィールドの様に動作させる書き方です。
カレンダーフィールド(繰り返しフィールド)から$$YN(非繰り返しフィールド)を参照した際の書き方ということでしょうか?
これはカレンダーフィールドの繰り返し[1]のフィールドから参照するということですか?
Get(計算式繰り返し位置番号)は、繰り返し位置nでは、nが帰りますので、1〜42が返る事になります。
なるほど。
わかりました。
後の話は、古いファイルの話の様で。大幅に書き換えてあるので、ダウンロードし直してください。
名前が一緒だったので上書きされていました。
参照させて頂きます。
$$YNについて、そのままで参照すると、繰り返し位置が1以外では、同じ繰り返し位置の値を参照しようとしますが、$$YNが繰り返しを持たないため、値無しとして処理されます。それを全ての繰り返し位置で強制的に繰り返し1の値を返すために、そのように書きます。関数の Extend() http://www.filemaker.com/help/13/fmp/ja … tml#700181 を使うのとほぼ同じと考えていただいていいでしょう。
Offline
Shin様
ありがとうございます。
Extendと同じようにということでようやくわかってきました。
もっと勉強します。
カレンダーの方も作成することが出来ました。
新しい方も参考にさせていただいたのですが、古い方で作成に当たってしまっていたので古い方のやり方で作成しました。
古い方のやり方と新しい方のやり方での違いとかはあるのでしょうか?
色々作り替えているのですが、古い方は毎日の連続日付を作っておいて、そこから検索抽出するタイプでしょうか。
最新の物は、必要な日付レコードに書き換えて行っていますので、日付レコードは最大6レコードしか存在しません。
Offline
Shin様
ありがとうございます。
古い方だと1日1レコード
新しい方だと最大6レコード(書き換え式)で他テーブルに保存
ということでいいのでしょうか?
他テーブルに保存、というのがわからないけど。
日付用のテーブルに
古い方だと1日1レコードで、10年使えば3600レコード以上存在する
新しい方だと最大6レコード(書き換え式)で、10年後も6レコード。
Offline
書き換え式というと古いレコードは消えるんですよね?
データは消えませんよ。実験してみれば解ります。
Offline
Shin様
やってみます。
いろいろとありがとうございました。
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 563.45 KiB (Peak: 584.35 KiB) ]