みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Fm13adv 初心者
フィールド「年」に、2008年から現在の年を値一覧として計算させて表示させたいのですが、
どのようにすればよいか見当が付きません。
値一覧のテキスト編集をすればよいのでしょうが。。。
ご教授くださいますようお願いします。
最も原始的な方法
別テーブルに数字フィールドのみを用意し、2008から連続数を設定しておく。
値一覧を置くテーブルにグローバルフィールドを用意し、現在の年を設定しておく。(ファイルの開始スクリプトで設定しておけば良い)そのフィールドで上の数字をリレーションし、現在の年以下を得る。
昔は、この方法で行なっていましたが。
Offline
値一覧を、自テーブル内設定だけで年替り自動更新する方法。
グローバルフィールドを2つ作り、その動的値一覧を設定します。
●Gタイムスタンプフィールド「g修正日時」を作り、「修正日時を自動入力」のオプション設定をします。
●Gテキストフィールド「g年一覧」を作り、「計算値を自動入力+既存値書き換え」のオプション設定をします。
・目的の年一覧を得る式は、
Evaluate(Substitute(10^(Year(g修正日時)-2007)-1; 9; "Let([$y=Case(IsEmpty($y);2008;$y+1)];$y)&\¶&")&"\"\"&Let($y=\"\";\"\")")
・これで、「g修正日時」の自動更新をトリガーに受けて、「g年一覧」も式の再評価・再計算が実行され、目的の年一覧が自動代入されます。
●この「g年一覧」で値一覧を作ればお仕舞いなのですが、問題は索引の採れないグローバルフィールドでは値一覧が組めない事です。
・その問題を多少トリッキーな裏技的手法で解決します。
・リカルド積[X]リレーションを組み、それを介した動的値一覧にするとグローバルフィールドであっても値一覧が組めます。
(設定中に無効というFMアラートがでますが、無視して設定すれば動作しますのでご安心を!)
タイプミス訂正します。
・リカルド積 → デカルト積
Last edited by Hiro (2016-02-28 04:54:26)
Offline
リカルド積?
いわゆる、×リレーション
Offline
皆さまありがとうございます。
Hiro様「g修正日時」の自動更新をトリガーに受けて。。。というのが理解できません。
ファイルを開いても「g修正日時」が自動更新されない状況です。
修正日時の自動入力化というのは、何れかのフィールドで修正が有った時にその修正日時を自動記録するものです。
ファイルを開いたからと言って、更新されるものではありません。
Offline
Shinさんありがとうございます。
修正の件、理解致しました。
・リカルド積[X]リレーションを組み、それを介した動的値一覧にするとグローバルフィールドであっても値一覧が組めます。
(設定中に無効というFMアラートがでますが、無視して設定すれば動作しますのでご安心を!)
リレーションでXとしました。
その後の「それを介した動的値一覧」がよくわかりません。
ご教授くださいますようお願いします。
Shinさんありがとうございます。
修正の件、理解致しました。
・リカルド積[X]リレーションを組み、それを介した動的値一覧にするとグローバルフィールドであっても値一覧が組めます。
(設定中に無効というFMアラートがでますが、無視して設定すれば動作しますのでご安心を!)
リレーションでXとしました。
その後の「それを介した動的値一覧」がよくわかりません。
ご教授くださいますようお願いします。
出来ました。
御教授くださった方々に感謝いたします。
サンプルを試作してる間に解決されたようですが、念のため、
設定確認の意味でアップしておきます。
サンプル「経過年値一覧.fmp12」→ http://yahoo.jp/box/NSM3V8
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 518.28 KiB (Peak: 523.19 KiB) ]