みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております。
FileMaker Pro Ver.14(Win)
ポータル内に配置した日付の一部が表示されず困っています。テーブルは3つあります。
データテーブル:それぞれのテーブルにポータル挿入
納品書テーブル:1日1日の売上をポータルに入力する画面
売上帳テーブル:納品書で入力したデータを日付範囲指定で表示・印刷・入金詳細を確認する画面
リレーションは以下のとおりです。
納品書(伝票ID)=データ(伝票ID)
納品書(顧客ID)=顧客名簿(顧客ID)
売上帳(顧客ID)=顧客名簿(顧客ID)
※売上帳とデータをリレーションしようとすると別テーブルを作るようメッセージがでるので断念。
納品書テーブル内では、日付と伝票IDはポータル外にそれぞれ1箇所づつ配置しています。
売上帳テーブルでは、日付と伝票IDはポータル内に配置しています。日付と伝票IDともに「データ」テーブルのフィールドです。
条件はタイプ以外ほぼ一緒だと思いますが、以下のとおり売上帳テーブル内のポータルでは日付だけ一番最初のデータにしか表示されません。
<ポータルフィルタなし>
伝票ID 日付 品名
0001 4/1 ああああ
0001 いいいい
0001 うううう
0002 4/2 かかかか
0003 4/3 ささささ
0003 しししし
<ポータルフィルタをONにすると・・・>
伝票ID 日付 品名
0001 4/1 ああああ
0002 4/2 かかかか
0003 4/3 ささささ
なぜ、日付だけ最初のデータしか表示されないのか原因がわからず困っています。
お手数ですが、ご確認よろしくお願いいたします。
Offline
> 売上帳とデータをリレーションしようとすると別テーブルを作るようメッセージがでるので断念
これが原因でしょう。
売上帳からデータテーブルが直接参照出来ていませんよね。
リレーションでテーブルが、
ループを書く様には出来ません。
リレーションシップグラフで参照される側(関連テーブル側)のテーブルを複製してそれをつなげばいいんです。
今回の場合は、
データテーブルを複製して
データテーブル 2(この名前は自由に変更出来ます)
を作り、
売上帳テーブルとこのテーブルとリレーションします。
ポータルのテーブル、そのフィールドもリレーションシップグラフのテーブル名を指定します。
Offline
多分何かの設定間違いでしょう。
全部のテーブルのフィールド定義と、リレーション条件を全て書き出して見てください。
Offline
チポ様
ご返信ありがとうございます!
やはりリレーションが原因でしたか・・・。
できればデータは1つのテーブルでまとめたかったので、あえてやらないようにしていたのですが、致し方ないかもしれません。
参考にさせていただきます。
ありがとうございました!
Offline
Shin様
ご返信ありがとうございます!
各テーブルのフィールド定義、リレーション条件は以下のとおりです。
【リレーション】
納品書(伝票ID)=データ(伝票ID)・・・両方ともに、レコード作成許可と削除にチェック
納品書(顧客ID)=顧客名簿(顧客ID)・・・顧客名簿側だけレコード作成許可にチェック
売上帳(顧客ID)=顧客名簿(顧客ID)・・・売上帳側にだけレコード作成許可にチェック
【フィールド】
・日付(データテーブル):タイプ「日付」。索引設定済み。ほか初期設定のまま。
・伝票ID(データテーブル):タイプ「テキスト」。索引設定済み。シリアル番号チェック済み。計算値「$$CURRENT_SALES_ID」指定。既存値 おきかえ。
・品名(データーブル):タイプ「テキスト」。索引設定済み。ほか初期設定のまま
・数量(データテーブル):タイプ「数字」。索引設定済み。ほか初期設定のまま
・小計(データテーブル):タイプ「計算」。計算式指定済み。
(いずれもフィールド自体は全テーブル設定していますが、レイアウトで使用しているのはデータテーブルのみです)
・全小計、消費税、合計(納品書テーブルおよび売上帳テーブル):いずれもタイプ「計算」。それぞれの計算式設定済み。
・顧客名(納品書テーブルおよび売上帳テーブル):タイプ「テキスト」。索引設定済み。計算値「顧客名簿::顧客名」指定。既存値 おきかえ。
・顧客ID(全テーブル共通):タイプ「テキスト」。索引設定済み。計算値「$CURRENT_CUSTOMER_ID」指定。既存値おきかえ。(顧客テーブルだけ「$$CURRENT_CUSTOMER_ID」です)
※売上帳テーブルの顧客名を変えると、ポータル内のデータも変わるように設定しています。顧客名と日付の範囲でポータルの内容にフィルタがかかるようにしています。
ほか、こまごまとしたものがありますが、ポータルに関係ありそうなのは以上です。
ご確認よろしくお願いいたします。
Offline
テーブル定義でテーブルを増やすのではないですよ。
リレーションシップグラフで、テーブルを選択して複製します。
ですから、実質のテーブル構成は元のままです。
Offline
チポ様
ご連絡ありがとうございます!
すみません、書き方が悪かったです。テーブルが増えるわけではないのはわかっているのですが、上司に「データが格納されている場所は1箇所だけだ」と言われていたので、できれば1箇所だけにしたかったのです。
初心者なのでそのへんまだよくわかっていないのですが、テーブルを選択して複製=データを収めている場所が増えるわけではないってことでしょうか?
なお、データテーブルを複製し、データ2と売上帳を伝票IDで「=」でリレーションしてみました。売上帳のポータルの内容もすべて「データ2」に変更したところ、「データテーブル」に入力したデータは表示されませんでした。なので、データテーブルに入力したデータがそのままデータ2にも表示されるわけではないのかと思いました。それとも、リレーションがおかしいのでしょうか・・・。
Offline
追記です。
伝票IDと日付フィールドの関連づいているテーブルを変えてためしたところ、以下のとおりとなりました。
<<伝票ID、日付ともに納品書テーブル>>
データテーブル(表形式)・・・いずれも問題なく表示される
売上帳テーブル・・・いずれも同じデータ(IDは0001だけ、全て同じ日付4/1)が表示される
<<伝票ID、日付ともにデータテーブル>>
データテーブル(表形式)・・・伝票IDは問題なし。日付は一部のみ(最初の欄のみ)表示される
売上帳テーブル・・・伝票IDは問題なし。日付は一部のみ(最初の欄のみ)表示される
上記のような状況となります。
どうぞ、よろしくお願いいたします。
Offline
> データが格納されている場所は1箇所だけだ
リレーションシップグラフでテーブルを複製しても、
データは一つだけで変わりません。
> テーブルを選択して複製=データを収めている場所が増えるわけではないってことでしょうか
その通りです。
しかし、
テーブル構成がよく分かりません。
データテーブル
売上げ伝票の明細(納品書の1行を1レコード)
納品書テーブル
納品1回分を1レコード
顧客名簿
顧客1件を1レコードの顧客マスタ
でいいのでしょうか?
売上帳テーブル
???分かりません
Offline
チポ様
ご返信ありがとうございます!
わかりづらくて申し訳ありません。。。。
データテーブル:売上伝票の明細で納品書に挿入しているポータル1行で1レコードであっています。表形式で表示させることもあります。
納品書テーブル:顧客および日付で1レコードです。(例:A会社4/1分で1レコード、B会社4/1分で1レコード、A会社4/2分で1レコード)
顧客名簿:顧客1件を1レコードの顧客マスタであっています。
売上帳テーブル:基本的には顧客名と日付範囲(開始日と終了日)で1レコードですが、顧客名と日付範囲を変更することでポータルの内容も変更できるようにもなっています。
チポ様のおっしゃるとおり、テーブルを選択して複製=データを収めている場所が増えるわけではないってことは、テーブルを複製してもポータルにはちゃんとデータが表示されるますよね。。
私のやり方と理解が間違っていることは間違いなさそうです。
もっといろいろと試してみます。
Offline
> 売上帳テーブル:基本的には顧客名と日付範囲(開始日と終了日)で1レコードですが、
> 顧客名と日付範囲を変更することでポータルの内容も変更できる
期間が、締め月の様に一定のものでしたら、
それごとの1レコードとして、
リレーションの照合で絞り込めば、それごとの合計、消費税、入金等の管理が出来ますね。
リレーションシップグラフのヘルプのリンクです
http://www.filemaker.com/help/14/fmp/ja … html#61510
わかりづらい日本語ですが、
ぜひテーブルオカレンスを理解してください。
Offline
入力用の納品書レイアウトで日付がポータル内にないから、データテーブルでは関連レコードの最初のにしか入ってないのでしょう。
全部同じ日付で入れるなら、日付もリレーションにすればいいのでは。
Offline
チポ様
返信が遅くなり申し訳ありません。
ご連絡ありがとうございます!
まだまだテーブルオカレンスやリレーションについては勉強不足です・・・。
リンクありがとうございます!
もっと勉強しますね。
アドバイスありがとうございました!
Offline
wader様
返信が遅くなり申し訳ありません。
ご連絡ありがとうございます!
日付もリレーションにすると、他の項目が消えたりしてしまうんです・・・。
まだまだリレーションについても勉強不足なので、おそらく設定を間違っているとは思うのですが。
もっと勉強します。
アドバイスありがとうございました!
Offline
いろいろと試し、無事に解決しました。
考え方として、「伝票ID:Aの場合、日付にBを返す」を実践したいと思い試行錯誤した結果、日付フィールドに伝票IDを計算値として入力したところうまくいきました!
そのため、こちらのカテゴリは解決済みにいたします。
チポ様、shin様、wader様、ありがとうございました!
Offline
Pages: 1
[ Generated in 0.014 seconds, 9 queries executed - Memory usage: 568.84 KiB (Peak: 589.75 KiB) ]