みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
提示されたサンプルでは、何方のボタンも同じスクリプトを呼び出していますが????
わざわざ試していただいたありがとうございます。
申し訳ありません!どちらも「メンバー一覧(チームのみ)」ボタンの動作となるスクリプトが設定されていました!
直したところ、問題なく正常に動作しました!
また出直しいたします。
何度もすみません。文字での説明が難しいので、関連レコードに移動のスクリプトステップについてサンプルファイルとスクリプトを作ってみました。
https://bitsend.jp/download/06c453b8a75 … 14426.html
①解凍してメニュー.fmp12を開く
②「テーブルBリスト」のボタンを押す
③各レコードにある「メンバー一覧(チームのみ)」「メンバー一覧(クラブ全体)」のボタンを押す
このボタンにはそれぞれ別々の「関連レコードに移動」のスクリプトステップが設定されています。
④意図としては、「メンバー一覧(チームのみ)」を押したときは、キーが一致するデータセットが抽出されて、
「メンバー一覧(クラブ全体)」を押したときは、コードAが一致するデータセットが抽出されてほしいのですが、
このサンプルでは、どちらもキーが一致するデータセットが抽出されます。
テーブルBリストのレイアウト内に設置したポータルの方は、指定したオカレンスごとに正しく該当データが出ています。
ここで扱っているテーブルA、テーブルB、テーブルCはそれぞれテーブルA.fmp12、テーブルB.fmp12、テーブルC.fmp12にあり、
スクリプト及びリレーションを定義しているメニュー.fmp12とは別ファイルです。
このようなファイル構成で「関連レコードに移動」のスクリプトステップは使えないのでしょうか。
(レイアウトは、そのレイアウトで表示するテーブルがあるファイルに存在しなければいけない、など)
====
サンプルファイルとスクリプトの内容を以下まとめました。
テーブルA.fmp12上にある テーブルA
コードA,数字
クラブ名,テキスト
テーブルB.fmp12上にある テーブルB
コードB,数字
コードA,数字
チーム名,テキスト
キー,テキスト
テーブルC.fmp12上にある テーブルC
キー,テキスト
メンバー名,テキスト
_コードA,テキスト
メニュー.fmp12上にあるリレーションシップ定義
テーブルA(テーブルA::コードA) = テーブルB(テーブルB::コードA)
テーブルB(テーブルB::キー) = テーブルC(テーブルC::キー)
テーブルB(テーブルB::コードA) = テーブルC 2(テーブルC 2::_コードA)
メニュー.fmp12上にある「メンバー一覧(チームのみ)」ボタンの動作
関連レコードへ移動 [ テーブル: 「テーブルC」; 使用するレイアウト: 「メニュー コピー2」 (テーブルC) ] [ 関連レコードのみを表示]
メニュー.fmp12上にある「メンバー一覧(クラブ全体)」ボタンの動作
関連レコードへ移動 [ テーブル: 「テーブルC 2」; 使用するレイアウト: 「メニュー コピー3」 (テーブルC 2) ] [ 関連レコードのみを表示]
>スクリプトとリレーション定義があるファイルと、テーブルBとテーブルCのあるファイルはすべて別々になっています。
レイアウトもスクリプトと同じファイルに作ってますか?
何となく、移動後にテーブルCの(オカレンスでなくベーステーブル)ファイルを見ているような気がする。
ありがとうございます。
この可能性があるので確認します。
スクリプトとリレーション
の部分が理解できません。。
これは、テーブルだけのファイルと、スクリプトとレイアウトだけのファイルを分けて作っているという意味です。
点検して結果をまた書き込みします。
テーブルB::キー = テーブルC::キー
を使った関連レコードへ移動、で、対象レコードから、を選択していませんか。
関連レコードのみを表示にチェックを入れて、
「現在のレコードのみ照合」を選択しています。
上記の質問は、「現在の対象レコード内のすべてのレコードを照合」を選択していないか、ということでしょうか。
もしこちらを選択していた場合、テーブルBは全件表示の状態なので、テーブルCも全件対象になってしまうはずですがそうなっていませんでした。
> 「あ」テーブルB::コード = テーブルC::コード
> 「い」テーブルB::キー = テーブルC::キー
これはあり得ません。例えば、
「い」テーブルB::キー = テーブルC 2::キー
の様に、
リレーション「あ」と「い」のテーブルオカレンスは必ず異なっていなければなりません。
コメントありがとうございます。
himaganee様へのレスに改めて説明させていただきました。
異なるテーブルオカレンスとして定義しています。
まず、「リレーション名」というのは存在しません(FM6までの考え方)
2つのテーブル間に2つのリレーションを定義することはできません。(リレーショングラフでリング=循環=が存在する状態は作れない)正しい「テーブル(オカレンス)名」を元に、現在の状態を考え直してみてください。
コメントありがとうございます。
# FM6のシステムを18に移植中なのです…
説明が間違っておりました。
以下リレーションシップのところで指定しているオカレンス名とリレーションの状態です。
テーブルB
コード
キー
テーブルC
キー
テーブルC②
コード
テーブルB::キー = テーブルC::キー
テーブルB::コード = テーブルC②::コード
のようになっています。
テーブルCもテーブルC②もデータソースはテーブルCです。
テーブルBを使用するレイアウトが選択されている状態で、
関連レコードへ移動のスクリプトステップで関連レコードの取得元を「テーブルC」、レコードの表示に使用するレイアウトのテーブル名が「テーブルC」であっても、
「テーブルC②」のリレーションが使われて、テーブルCの全レコードが対象になってしまうようなのです。
テーブルCのファイルには、以前の古いリレーションが設定されたままになっています。
こちらのオカレンス名は念のため「旧テーブルC」と名前を変えました。
関連レコードへ移動のスクリプトステップでは、スクリプトがあるファイルに定義されているリレーションが使われるという理解で良いでしょうか。
スクリプトとリレーション定義があるファイルと、テーブルBとテーブルCのあるファイルはすべて別々になっています。
テーブルBとテーブルCがあり、この両者に2種類のリレーションを定義しています。
リレーション名を仮に「あ」と「い」とします。
「あ」テーブルB::コード = テーブルC::コード
「い」テーブルB::キー = テーブルC::キー
テーブルB
コード キー チーム名
111 111-1 チーム名1
111 111-2 チーム名2
111 111-3 チーム名3
テーブルC
コード キー メンバー名
111 111-1 メンバー名1
111 111-1 メンバー名2
111 111-1 メンバー名3
111 111-2 メンバー名4
111 111-2 メンバー名5
111 111-3 メンバー名6
「あ」のリレーションでは、テーブルBのどのレコードからも関連レコードはテーブルCのすべてのレコードとなります。
「い」のリレーションでは、関連レコードはテーブルBのキーに対応したそれぞれ3件、2件、1件のレコードとなります。
このようになっているとき、テーブルBのレイアウト上で関連レコードへ移動のスクリプトステップで
関連レコードの取得元を「い」と指定しても、「あ」のリレーションが使われて、テーブルCの全レコードが対象になってしまいます。
どんなことが原因と考えられるでしょうか。ヒントだけでもいただけますと幸いです。
なお、テーブルBのレイアウト上で「い」を使ったポータルを作ると、正しく(「キー」ごとの)関連レコードが表示されます。
ランタイムソリューションのサポートは、終了しているようです。恐らく次のバージョン位では削除される機能です。
エンジンは、バージョン15あたり相当で、メンテナンスはされていませんので、新しい機能は使えませんし、最新のOSへの対応もなく、不具合が出る可能性が高くなってきているようです。業務使用は、お勧め出来ません
バインドキーは読み取れませんので、新たにソリューションを作った方が早くないですか。または、納品したファイルを持ってくると良いでしょう。そのファイルは、そのままFileMakee pro で開いて編集することが可能です。
ランタイムソリューションが廃止予定であることは18をインストールしてから知りました。
バインドキーは1秒ずつずらしては生成してと1時間半くらい格闘していましたが、開けませんでした。疲れました…
客先から更新されているデータファイルを取り寄せてこちらのマスターと差し替えて、再度ソリューションの生成をすることにします。
ありがとうございました。
Windows 10 上でFMPro 18.0.3.317でランタイムソリューションアプリケーションの生成をしました。
これを丸ごと納品して、その後の改修は、修正したファイルの拡張子をfmpurに書き替えて
ランタイムソリューションアプリケーション内の古いファイルと差し替えればよいと思っていましたが、
同じバインドキーでランタイムソリューションアプリケーションとして書き出し直したfmpurファイルである
必要があるようです。しかし、すでに書き出し済のアプリケーションのバインドキーを控えていなかったので
わかりません。
書き出したアプリケーションのバインドキーを調べる方法はありますでしょうか。
もし無理な場合、書き出しただいたいの日時は分かっているので、バインドキーの日時を1秒ずつずらしていって
生成して同じバインドキーをみつけるしかないでしょうか。
よろしくお願いします。
Shimさま
お返事ありがとうございます。
フォント自体を欧文フォントに設定した場合、ということですね。
そういうことですと、FM6のシステムを使い続けるのは難しそうです。
新しいバージョンへの移植を含め検討いたします。
お返事ありがとうございます。
手元の環境はWindows10です。
当然、FMPro6当時にはなかったOSですが…
FileMakerPro 6.0Jv4を使っています。
印刷時に、一部のフィールドの文字が下にずれて印刷されることがあります。
図がないと説明しにくいですが、小計パート内にいくつかのフィールドが同じ高さに横に並んでいて、
その中の1つまたは複数のフィールドの文字がかなり下にずれてしまいます。
ずれた分だけ、その文字の下側が切れてしまい、上から1/4くらいしか表示されません。
プリンタ経由で紙に出力しても、PDFに出力しても同様でした。
データを変更したりすると、このようになるデータは変わります。データに紐付いて起きているわけではなさそうです。
別のPCのファイルメーカー(同じく6.0Jv4)でPDF出力したところ、別の箇所で起きました。
プレビューモードで画面ではずれていません。
このような現象はなにによるものと考えられるでしょうか。
どなたか心当たりがある方がいらっしゃいましたらぜひ教えてください。
よろしくお願いいたします。
Pages: 1
[ Generated in 0.016 seconds, 7 queries executed - Memory usage: 604.82 KiB (Peak: 626.23 KiB) ]