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

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

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

You are not logged in.

Announcement

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


#1 2021-01-12 23:39:55

kig
Member

ポータル内の値を代入したい

請求書
請求項目
商品データ

のテーブルが有ります。
請求項目は請求書IDで請求書とリレーションされています。
また請求項目の商品IDは、商品データの商品IDとリレーションされており、商品名を商品データからルックアップして代入するようにしています。

やりたいのは請求書ファイルでポータルに表示されている商品データから、希望のものを選択すると、その商品IDが請求項目の商品IDに代入されて、商品を請求書に追加していく機能です。

手動で行うことを説明すると希望の商品データの商品IDをコピーしてそれを請求項目の商品IDにペーストする作業になります。
同じようにスクリプトで

コピー [ 選択; 商品データ::商品ID ]
フィールドへ移動 [ 請求項目::商品ID ]
ポータル内の行へ移動 [ 選択: オン ; 最後の ]
貼り付け [ 選択 ;  請求項目::商品ID ]
レコード/検索条件確定 [ ダイアログあり : オン ]

で実現することができました。
しかし、コピーと貼り付けはレイアウト上にそのフィールドが表示されていないと実行できないことに気づきました。
フィールドが表示されていなくても同様のことを行うことはできるでしょうか?

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

Offline

#2 2021-01-13 06:58:36

himadanee
Guest

Re: ポータル内の値を代入したい

「希望のものを選択する」ためには画面上に表示されてる必要があるんで、コピーでもよさそうですが...
選択すればそのポータル行がアクティブになるので、単にフィールド参照すればその行のデータが取得できるはずでは。
行番号を指定して取得するには、GetNthRecord()が使えます。

貼り付けの方は関数は使えないので、ポータルの最終行でフィールド設定するぐらい?

#3 2021-01-13 08:46:14

チポ
Member

Re: ポータル内の値を代入したい

リレーションの設定で、
請求項目のレコード作成の許可をしていないのでは。

ということではない?

Offline

#4 2021-01-13 08:57:19

Shin
Member

Re: ポータル内の値を代入したい

> フィールドが表示されていなくても同様のことを行うことはできるでしょうか?
その状況がよくわかりませんが。

1請求書ID の中に、同じ商品が含まれていない、という前提で
商品データに、グローバルフィールドを作り、請求項目の請求書IDとリレーションしておきます。さらに、商品ID同士でリレーションしておきます。
商品を検索する時に請求書IDを上のグローバルフィールドへ設定しておきます(グローバルフィールドですので、リレーションに関係なくフィールド設定です)。
商品データのポータルで商品を検索します。その商品IDをリレーションを通して請求項目へフィールド設定します。(数量を設定してもいいです、1手間省けます)
ポータルの更新を行えば、追加されています。

Last edited by Shin (2021-01-13 16:38:21)

Offline

#5 2021-01-13 09:25:05

チポ
Member

Re: ポータル内の値を代入したい

ああ、
商品一覧のポータルで選択
請求項目のポータルの新規行に入力
ということでしょうかね??

それなら(動的?)値一覧が簡単では。

値一覧の第二フィールドを使えば、
商品名を表示して、商品IDを入力
もできます。

Offline

#6 2021-01-13 19:04:57

Shin
Member

Re: ポータル内の値を代入したい

こんな動きが作れます。(3通り実装しています。)
https://www.dropbox.com/s/ghxx33l8xm9iu … 2.zip?dl=0

Last edited by Shin (2021-01-14 16:08:56)

Offline

#7 2021-01-14 10:02:44

kig
Member

Re: ポータル内の値を代入したい

みなさんありがとうございます。
勉強しながらやってみます。

チポさん
>商品一覧のポータルで選択
>請求項目のポータルの新規行に入力
>ということでしょうかね??

はい。やりたいことはそれなんです。
フィールド設定で値が入るかと思ったのですが、希望するポータルの行の値が入りませんでした。
希望としてはポータルで表示されている行(のフィールド)を選択すると、ボタン登録されたスクリプトが動いて、該当する商品IDを明細のポータルに入力することです。

Offline

#8 2021-01-14 10:24:41

Shin
Member

Re: ポータル内の値を代入したい

> 希望としてはポータルで表示されている行(のフィールド)を選択すると、ボタン登録されたスクリプトが動いて、該当する商品IDを明細のポータルに入力することです。
#6のサンプルをみてください。
フィールド設定では、リレーションの最初のレコードを対象としますので、リレーションで既存のレコードを省くような設定が必要です。1発注内に同じ商品がないのでしたら、リレーションで処理するのが簡単です。

サンプルの中の、商品マスターの中で数量を入力していく、という方法も、紙で発注していたときの感覚で、使いやすいですよ。リスト表示ですので、マスターの並び替えや検索も可能で、商品も探しやすくなります。

Last edited by Shin (2021-01-14 10:28:51)

Offline

#9 2021-01-14 19:35:04

kig
Member

Re: ポータル内の値を代入したい

Shinさん皆さんありがとうございます。
頂いたファイルと情報でもう一度勉あ強してみます。
もしわからなかったらまた教えていただけるとうれしいです。
この度は本当にありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 517.99 KiB (Peak: 522.9 KiB) ]