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

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

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

You are not logged in.

Announcement

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


#1 2016-11-29 05:05:24

cotea920
Member

○○の条件で検索した時、対象のレコードのフィールドの値をコピーする


テーブル:案件管理
フィード1:案件名
フィード2:フラグ(作成中・完成・配信待ちなど)
フィード3:報酬単価
フィード4: 備考


テーブル:配信テンプレート
フィールド1:配信データ

というデータベースがあります。
この①のデータベースの「配信待ち」というフラグのレコードの「報酬単価」「備考」というフィールドの値を
②の配信データというフィールドに入れたいです。

Q1:まず、一つのフォールドに2つ以上のデータをコピーして持ってくることは可能なのでしょうか?

下記のようなフォーマットの中に入れ込みたいのです。

------------------
案件名:○○
報酬単価:○○円
備考:○○
------------------
案件名:○○
報酬単価:○○円
備考:○○
------------------


という風に検索した(配信待ち)レコードの数だけフィードの値を
上記のようなテンプレート(フォーマット)にしたいのです。

Q2:上のようなテンプレートにフィールドの値が当てはまるのであればどんな形でもかまいません!
(理想は、②というテーブルでなく、メモなどが立ち上がりテンプレートと値が入力される)

ExcelではVBAを組んでできておりましたが
ファイルメーカーではうまく出来ずに手こずっています。
大変、お手数おかけしますが、どなたかお力を貸して頂ければ幸いです。

OS:[WIN10]
FileMaker Ver:[15.02]

Offline

#2 2016-11-29 08:57:53

Shin
Member

Re: ○○の条件で検索した時、対象のレコードのフィールドの値をコピーする

"配信待ち" という値を持たせたグローバルフィールドを作り,そこからフラグへリレーションを張ります。それでポータルを表示すれば,該当レコードだけで表示されます。
メモで見せるには,そのリレーション先のデータを List() で取り出して,テキストファイルとして適当なフォルダー(テンポラリーがいいでしょう)へ書き出して,それを開くオプションをつけておけば良いです。

Offline

#3 2016-11-29 12:37:51

旅人
Member

Re: ○○の条件で検索した時、対象のレコードのフィールドの値をコピーする

テーブル1で
"案件名 : " & 案件 & ¶ & "報酬単価 : " & 報酬単価 & 円 & ¶ & "備考 : " & 備考 & ¶ & "------------------"
という連結した計算フィールドを作って
Shinさんのリレーションで配信データフィールドを
List(テーブル1::上の式のフィールド)
でフィールド設定したらそんな形にはなりそう?

Offline

#4 2016-11-29 12:57:24

Moz
Member

Re: ○○の条件で検索した時、対象のレコードのフィールドの値をコピーする

旅人さんの計算フィールドを集計フィールドの一覧タイプで取得すれば
リレーションしなくても "配信待ち" で検索したレコードの値が取れますね。
この場合は検索条件やソート順が自由にできます。

Offline

#5 2016-11-29 14:29:38

旅人
Member

Re: ○○の条件で検索した時、対象のレコードのフィールドの値をコピーする

御意。。。

Offline

#6 2016-11-29 16:26:06

Hiro
Member

Re: ○○の条件で検索した時、対象のレコードのフィールドの値をコピーする

検索やソート結果を反映した一覧リストを生成する場合なら、
わざわざ ②テーブルを作らず、①テーブルに追加した
グローバルフィールドに「計算値で全置換」する生成方法が楽かなぁ...。

その時の式は、

Let([
   $fnc=Quote(
      "案件名 : " & 案件管理::案件名
         & "\¶" &
      "報酬単価 : " & NumToJText(案件管理::報酬単価; 1; 0) & " 円"
         & "\¶" &
      "備考 : " & 案件管理::備考
      );      //フォーマットを関数定義
   $rst=List($rst; Case(案件管理::フラグ="配信待ち"; Evaluate($fnc)))      //フラグ照合レコードなら、リストに追加する
];
   Case(
      Get(レコード番号)=Get(対象レコード数);      //最後のレコードになったら、ループ計算リストアップ結果を返す。
      Let([#bar=Substitute(10^40-1;9;"-")];      //"-"文字40個の区切りバーを生成
         Substitute(#bar & "\¶" & $rst & "\¶" & #bar; ["¶";"\¶" & #bar & "\¶"]; ["\¶";¶]) )
   )
)


後で時間ができたら、サンプルを試作してみますネ。

Last edited by Hiro (2016-11-29 22:20:32)

Offline

#7 2016-11-29 19:02:05

Hiro
Member

Re: ○○の条件で検索した時、対象のレコードのフィールドの値をコピーする

ループスクリプトによる繰越し処理を、グローバルフィールドと全置換とで疑似的に実装する簡便な作例です。
生成内容は、グローバルフィールドへ格納され、それをダイヤログで参照確認できるようにしてあります。
更に必要ならテキストファイルに書き出し(テンポラリホルダーへ)同時参照も選択できます。

●サンプル「カスタムフォーマット整形文.fmp12」 → http://yahoo.jp/box/3O4Ujz

Last edited by Hiro (2016-11-29 19:25:06)

Offline

#8 2016-11-30 23:30:01

cotea920
Member

Re: ○○の条件で検索した時、対象のレコードのフィールドの値をコピーする

>Shin
早急に回答して頂きましてありがとうございます!
グローバルフィールドですね!
実はいうと私、一週間前にFMを初めて導入したばかりでして、
スーパーリファレンスなどを読んで勉強をしているのですが全く知識が足りず
どこのキーワードから調べればいいのかも困惑している状態でした。
頂いた情報で一つ一つ、調べながら理解していこうと思います!

>旅人
早急に回答して頂きましてありがとうございます!
初心者の私にもわかるように例まで作って説明してくださりありがとうございます!
おかげでだいぶイメージがわきました!

>Moz
早急に回答して頂きましてありがとうございます!
補足して頂きましてありがとうございます!
なるほど、そういう考え方もあるんだね。と大変勉強になりました。

>Hiro
早急に回答して頂きましてありがとうございます!
式まで正確に書いて頂き本当に本当にありがとうございます!!
サンプルのFMを開きましたところ、私が求めていたものです!!!
なんて、天才なのですか!こんな優しい方がいらっしゃとは…涙です!

頂いたサンプルを隅々まで参考しながら実際に行ってみようと思います。
また、実際に制作し成功致しましたらご報告させてください。

Offline

#9 2016-12-01 01:29:19

cotea920
Member

Re: ○○の条件で検索した時、対象のレコードのフィールドの値をコピーする

>Hiro
お世話になっております。

頂いたサンプルデータのスクリプトを参考に
作成することができました!
この度は親切に本当にありがとうございました!

FMを開発としてに触れるのも1週間とかでして(;^_^A
実のところ頂いたスクリプトの内容が半分以上理解ができませんでした。
せっかく作って頂いたので自分自身でも概念を理解し作れるように
頂いたスクリプトのコード(Let,fnc=Quoteなど)を一つ一つ勉強していこうと思います!

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 526.31 KiB (Peak: 547.22 KiB) ]