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

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

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

You are not logged in.

Announcement

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


#1 2017-12-05 15:44:34

eddie
Member

リレーションの照合フィールドに空白を含みたい

お世話になっております。FMP11 Mac 使用です。

マスタテーブルと台帳テーブルがあり、両者を組み合わせてテキストデータを書き出す、ということをやっています。
具体的には、マスタテーブルには様々な報告書の雛形が入っており、それと台帳のデータ(例えば顧客名)を組み合わせて、「マスタ::報告書本文」というフィールド(グローバル)で文章を作成し、フィールド内容のエクスポートでテキストデータを得る、という仕組みです。

このとき、報告書の雛形には多くの種類があり、マスタと台帳の照合がうまくいかずに困っています。
両テーブルともに「条件1」...「条件10」というフィールドを作成し、すべてを「=」で照合していますが、必ずしもすべての条件が入力されているわけではなく、空白のフィールド同士がある場合にリレーションが機能しません。

過去の投稿を読んだところ、やはり空白のフィールドがあるとダメなようです。が、リレーションを工夫すればなんとかなるというご説明もあり、その方法がわかると大変ありがたいです。

とりあえず力技で、空白のときは「条件なし」などを入力するとか、「条件1_照合用」などのフィールドを作って「If(IsEmpty(条件1);"条件なし";条件1)」などとしてこれら同士を照合するなどで解決はできるのですが、今後雛形が増えると条件も増える可能性が高く、前者は条件が見づらくなり、後者はフィールドが増えて管理しづらくなるというデメリットがあります。もしリレーションの設定で解決できるならそれがありがたいです。

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

Last edited by eddie (2017-12-06 06:19:24)

Offline

#2 2017-12-05 16:01:08

Shin
Member

Re: リレーションの照合フィールドに空白を含みたい

条件フィールドに、あらかじめ "条件なし" というテキストを設定しておくと少しはましになるかも。
具体的な動きがわかりませんので、これ以上思いつきません。
特に、報告書の雛形がレコードで格納してある、というのがイメージできません。

Offline

#3 2017-12-05 16:11:19

eddie
Member

Re: リレーションの照合フィールドに空白を含みたい

Shinさん、ありがとうございます。
マスタ側に「条件なし」を入力するのは構わないのですが、台帳の各データは報告書作成のためだけにあるわけではないので、できれば本来のデータのみで照合したいです。

マスタ側の構成は単純で、「条件1」...「条件10」「報告書雛形」「報告書本文(G)」というフィールドがあるだけです。本文はテキストで得るのでFMで保存する必要がなく、都度グローバルフィールドに上書きしてエクスポートしています。

追記:
より具体的には、雛形中に [顧客名] などの形式で項目を配置しておいて、台帳のデータを使ってSubstituteして報告書本文を得ています。
最終的にHTMLで処理する必要があるため、このような内容のテキストデータを得ています。

Last edited by eddie (2017-12-05 16:16:47)

Offline

#4 2017-12-05 16:16:50

チポ
Member

Re: リレーションの照合フィールドに空白を含みたい

> 条件1」...「条件10」というフィールドを作成し、すべてを「=」で照合しています
and 条件のリレーションですよね?

ならば、
条件1〜10を何らかのセパレータ(改行はダメです)を挟んで全て連結。

このフィールドどうしの照合でいいのでは

Offline

#5 2017-12-05 16:36:01

チポ
Member

Re: リレーションの照合フィールドに空白を含みたい

だめか!

例えば、
            条件1  条件2
マスタ   空白    ABC
台帳     ABC    空白

このような組み合わせがあるとダメですね。

可能性はありますか?

Offline

#6 2017-12-05 16:47:09

チポ
Member

Re: リレーションの照合フィールドに空白を含みたい

連投、ごめんなさい。

計算式が長くなりますが、
空白の場合、他に使われることのない文字(列)を入力とすればいいか。

  Case ( IsEmpty ( 条件1 ) ; "~~~" ; 条件1 ) & "|" &
  Case ( IsEmpty ( 条件2 ) ; "~~~" ; 条件2 ) & "|" & ・・・・・・
                                          ↑                    ↑
                                空白の代わり         セパレータ

これを全ての条件つなげます。

Offline

#7 2017-12-06 07:14:09

eddie
Member

Re: リレーションの照合フィールドに空白を含みたい

チポさん、ありがとうございます!
その方法でうまくいきました。

こうしたリレーションを様々なファイルで使用しているので、この方法が応用できます。
とても助かりました!

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 565.79 KiB (Peak: 586.24 KiB) ]