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

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

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

You are not logged in.

Announcement

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


#1 2017-04-13 05:12:50

mako7566
Member

スクリプト、フィールドを名前で設定、フィールド名の繰り返し処理での指定

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

Win10にてPro15 を使用しております。

是非、お知恵をお貸しください。

現在、スクリプトの作成に困っておりまして、

フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_1);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_2);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_3);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_4);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_5);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_6);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_7);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_8);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_9);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_1_C_10);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_2_C_1);  "000" ]
フィールドを名前で設定 [GetFieldName (master::SB_1_2_C_2);  "000" ]
、、、、、、、、

このような連続した内容が、最大、SB_10_10_C_10まで続く可能性のあるスクリプトを作成しなければなりません。

GetFieldNameのフィールド名を指定する部分(master::SB_1_1_C_1の数字部分)、この部分を上手いこと繰り返し処理させて、
スクリプトを短くすることは可能でしょうか。

うまい処理の仕方がわからず、是非お知恵をお借りしたいです。

つたない説明で申し訳ありませんが、宜しくお願い致します。

Offline

#2 2017-04-13 09:37:54

チポ
Member

Re: スクリプト、フィールドを名前で設定、フィールド名の繰り返し処理での指定

> GetFieldName (master::SB_1_1_C_1)
これを
  "master::SB_" & 変数1 & "_" & 変数2 & "_C_" & 変数3
として、
各変数を1〜10まで変えてゆけばいいのでは。
三重のLoopになりますね。


しかし、
10 x 10 x 10 = 1000
ものフィールドが有るのですか?

そのファイル構造から見直すべきだと思いますよ。

Offline

#3 2017-04-13 09:59:37

qb_dp
Member

Re: スクリプト、フィールドを名前で設定、フィールド名の繰り返し処理での指定

以下のようなスクリプトで、文字列を作ることは出来ます。が、そのような名前のフィールドが1,000もあるのは、設計を見直したほうが良いかと思われます。

変数を設定 [$i; 値:1]
変数を設定 [$n; 値:1]
Loop
Exit Loop If [$i>10]
変数を設定 [$val1; 値:"SB_" & $i]
変数を設定 [$j; 値:1]
Loop
Exit Loop If [$j>10]
変数を設定 [$val2; 値:$val1 & "_" & $j]
変数を設定 [$k; 値:1]
Loop
Exit Loop If [$k>10]
変数を設定 [$val3; 値:$val2 & "_C_" & $k]
変数を設定 [$name[$n]; 値:$val3]
変数を設定 [$n; 値:$n+1]
変数を設定 [$k; 値:$k+1]
End Loop
変数を設定 [$j; 値:$j+1]
End Loop
変数を設定 [$i; 値:$i+1]
End Loop

オット! リロードせずに投稿したので チポさんに先をこされてましたね。(^^;)

Last edited by qb_dp (2017-04-13 10:05:48)

Offline

#4 2017-04-13 22:37:58

mako7566
Member

Re: スクリプト、フィールドを名前で設定、フィールド名の繰り返し処理での指定

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

チポ様、qb_dp様、早速のご指摘、有り難うございました!

なるほど、、、こうゆう形で設定できるのですね。
教えて頂いた内容で設定してみようと思います。

お二人に指摘して頂いた、フィールドの数が1000近くになることについて、、、

確かに自分でもこの多さに辟易しておりまして。。。(-_-;)

現在、ファイルメーカー上のデータを用いて、ボタン一つで、それらのデータを組み合わせて、自動でHTMLを組み上げるものを作成しております。
HTML上のブロックごとの文字の装飾やら、背景の色やらの指定をファイルメーカー上で全て指定して自動で、ということをしようとすると
自分の乏しい知識ではこのようなフィールドの数になってしまいまして。。。(余裕を持たせて設定してあるのもあるのですが。。)
業者に頼もうとすると何十万といった見積もりとなってしまいましたので、現在自力で、格闘しているところでございます。。。

また何かお知恵をお借りしたいことが出てくるかとは思いますが、またお力をお借りできれば有り難いです。

この度は、ご返信有り難うございました!(^^)

Offline

#5 2017-04-13 23:36:44

Hiro
Member

Re: スクリプト、フィールドを名前で設定、フィールド名の繰り返し処理での指定

私の過去の数千ページのHTML文生成の経験では、
・サイトのページ毎の定型HTMLフォーマット文や、
・使途グループ毎の定型HTML句や定型CSS句などは、
・目的別に一括格納する繰り返しフィールド(グローバル)数個に集約して、
・整理・簡素化に努めていました。

それにしても、1000種もの定型句があるのは異常でとても使いこなせる数でないと思います。
サイトで使うページHTMLの定型フォーマット化が先決かもしれませんネ。

Offline

#6 2017-04-14 10:09:35

mako7566
Member

Re: スクリプト、フィールドを名前で設定、フィールド名の繰り返し処理での指定

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

Hiro様、ご返信、有り難うございます。
なるほど、、フィールド数を増やすのではなく、定型HTMLフォーマットを増やすようにする、ということを考えないといけないのですね。
参考になります!アドバイス、有り難うございます!



もう一つ、お知恵をお借りしたいのですが!

フィールドを名前で設定 ["master::SB_" & 変数1 & "_" & 変数2 & "_C_" & 変数3 ;  sub::カラム_1 ]

ターゲットフィールド部分は変数を使って繰り返し処理できることは分かったのですが、
計算式部分、sub::カラム_1

この部分なのですが、他のレコードのフィールドから値を引っ張ってくる場合に、

sub::カラム_変数3

といったように変数を使うことは不可なのでしょうか?

このように入力すると、「指定したフィールドが見つかりません」と出てきて指定できないので変数を使うことはできないのかなぁと。


フィールドを名前で設定 ["master::SB_" & 変数1 & "_" & 変数2 & "_C_" & 変数3 ;  sub::カラム_変数3 ]

ターゲットフィールド部分の変数3と、計算式部分、呼び出すフィールド名の変数3が同じ値を使うものなので、
うまいこと記述する方法があれば是非、ご教授頂けないでしょうか。

宜しくお願い致します。

Offline

#7 2017-04-14 10:28:57

チポ
Member

Re: スクリプト、フィールドを名前で設定、フィールド名の繰り返し処理での指定

> sub::カラム_変数3
これは無理でしょう

  GetFIeld ( "sub::カラム_" & 変数3 )
でいけると思いますが。。

検証してみてください -_-

Offline

#8 2017-04-14 19:16:51

mako7566
Member

Re: スクリプト、フィールドを名前で設定、フィールド名の繰り返し処理での指定

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

チポ様、再度のご返信、有り難うございます。

GetFIeld ( "sub::カラム_" & 変数3 )

こちらの記述で、変数を使ったフィールドの指定ができました!
助かりました。<(_ _)>


もっと勉強します(^^;)
この度はご教授、有り難うございました!

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, 9 queries executed - Memory usage: 569.64 KiB (Peak: 586.18 KiB) ]