みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
tomato様ありがとうございます!
コピーや貼付は使ったことないので、わかりませんが
1:コピーを、変数でA共通IDを取得 に変更
2:貼り付けをフィールド設定:値:変数 に変更でも起こりますか?
変数は、一度使ってみたきりなので自信がないのですが、
・コピー[選択;テーブルA::共通ID]
⇒変数を設定[$共通ID;値:テーブルA::共通ID]
・貼り付け[選択;テーブルB::共通ID] (2か所)
⇒フィールド設定[テーブルB::共通ID;$共通ID]
に変更してみたところ、
Loopでも問題なくスクリプトが完了しました。
スクリプトが完了するまで1分半ほどかかってしまったのですが、
頻繁に使うスクリプトではないので、良しとしようと思います。
このようなスクリプトをあと2、3個使用する必要があるので、
全てで試してみたいと思います。
もしまた不具合が出てきてしまいましたら、また質問させてください。
File Maker Pro 11を使用している者です。
レコード検索のスクリプトをLoopで作成する必要があるのですが、途中で止まってしまい、困っています。
長くなりますが、よろしくお願いいたします。
下記のように、複数のテーブルで共通IDを設定・互いにリレーションし、
それぞれのテーブルに必要な情報を上位のテーブルからルックアップできるファイルを作成しています。
【DBテーブル】共通ID・氏名・住所・電話番号
【テーブルA】共通ID・氏名・住所・履歴
【テーブルB】共通ID・氏名・電話番号・出欠
【DBテーブル】―【テーブルA】―【テーブルB】でリレーションされています。
この状態で下記のスクリプトを作動させると、
最後のレコードまできていないのに、スクリプトのLoopが終了してしまいます。
(Loopを外しても作動しない時がありました。)
”スクリプト一時停止”を挿入して調べたところ、
Loopが終了してしまうのは、下記の←※のタイミングでした。
ーーーーーーー
レコード/検索条件/ページへ移動[最初の]
Loop
コピー[選択;テーブルA::共通ID]
レイアウト切り替え[テーブルB]
検索モードに切り替え[]
貼り付け[選択;テーブルB::共通ID] ←※
エラー処理[オン]
検索実行[]
If[Get(対象レコード数)=0]
新規レコード/検索条件
貼り付け[選択;テーブルB::共通ID] ←※
Else
フィールドの再ルックアップ[ダイアログなし;テーブルB::共通ID]
End If
レイアウト切り替え[テーブルA]
レコード/検索条件/ページへ移動[次の;最後まできたら終了]
End Loop
ーーーーーーー
どうも”貼り付け”が上手くいっていないようなのですが、
考えられる原因や、より良い方法を教えていただけると大変助かります。
どうぞよろしくお願いいたします。
チポ様
原因がわかりました!
「フィールドA」にあたる部分が、「テーブル名::フィールドA」になっていたのが原因でした。
”フィールドへ移動”の指示のときに、上記の表示になっていたので、同じ表記だから~と考えてテーブル名から入力していました。。。
時間がかかりましたが、ようやくスクリプトを完成させることができました。
皆さまお助けいただき本当にありがとうございました!
scripter様
ありがとうございます。
>レコード/検索条件/ページへ移動[最初の]
>Loop
>>フィールドへ移動[選択/再生;フィールドA]
>>Loop
>>>フィールド設定[TextColor ( Get ( アクティブフィールド内容 ) ; RGB ( 0 ; 0 ; 0 ))]
>>>次のフィールドへ移動
>>>Exit Loop If [Get ( アクティブフィールド名 ) = "フィールドA"]
>>End Loop
>>【ログを消すスクリプト実行】
>>レコード/検索条件/ページへ移動[次の;最後まできたら終了]
>End Loop
こういうことですね!
こちらでやってみたのですが、フィールドAに戻ってもやはりLoopから抜けられません(T T)
ログを残していて、それを見る限りフィールドAには戻っており、後はLoopを抜けるだけなのですが。。。
投稿が遅くなりました。
チポ様ありがとうございます。
「Get(アクティブフィールド名)」を使用して、あれから何度か試してみたのですが、
どうしてもLoopから抜けることができません、、、
下記でおかしなところがありますでしょうか?
>レコード/検索条件/ページへ移動[最初の]
>Loop
>>フィールドへ移動[選択/再生;フィールドA]
>>Loop
>>>フィールド設定[TextColor ( Get ( アクティブフィールド内容 ) ; RGB ( 0 ; 0 ; 0 ))]
>>>次のフィールドへ移動
>>>Exit Loop If [Get ( アクティブフィールド名 ) = フィールドA]
>>End Loop
>>【ログを消すスクリプト実行】
>>レコード/検索条件/ページへ移動[次の;最後まできたら終了]
>End Loop
何度もすみません。
よろしくお願いいたします。
チポ様
皆様
お返事遅くなりました。
チポ様、Shin様、ご助言ありがとうございます。
最終的に以下のスクリプトで組むことができました。
>レコード/検索条件/ページへ移動[最初の]
>Loop
>>フィールドへ移動[選択/再生;フィールドA]
>>変数を設定[$変更前;値:フィールドA]
>>Loop
>>>フィールド設定[TextColor ( Get ( アクティブフィールド内容 ) ; RGB ( 0 ; 0 ; 0 ))]
>>>次のフィールドへ移動
>>>Exit Loop If [Get ( アクティブフィールド内容 ) = $変更前]
>>End Loop
>>【ログを消すスクリプト実行】
>>レコード/検索条件/ページへ移動[次の;最後まできたら終了]
>End Loop
「最初のフィールドに戻ったらLoopを抜ける」設定方法がわからず、覚えたての変数を使用してみました。
(たぶん同じ値を入れることはないと思うので、、、)
このスクリプトができたことで、かなり使い勝手のよいシステムになりそうです。
また行き詰ってしまったら質問させてください。
ありがとうございました!
チポ様
皆さま
Loopを抜けるために、目立たない場所に捨てフィールド(”完”)を作成して、
下記で作動するようになりました。
(ログも表示しているので、ついでに消すスクリプトを挿入しました。)
レコード/検索条件/ページへ移動[最初の]
Loop
フィールドへ移動[選択/再生; フィールドA]
Loop
計算結果を挿入[選択; TextColor ( Get ( アクティブフィールド内容 ) ; RGB ( 0 ; 0 ; 0 ))]
次のフィールドへ移動
Exit Loop If [Get ( アクティブフィールド内容 ) = "完"]
End Loop
【ログを消すスクリプト実行】
レコード/検索条件/ページへ移動[次の;最後まできたら終了]
End Loop
いかがでしょうか。。。
それらのフィールド全てにタブ順を振っておいて、
Loopでフィールド一つずつ黒くしていくのはいかがでしょう
チポ様
ありがとうございます。
やはりLoopは候補にあがりますよね。。。
今ざっと数えたところ、80フィールド×50レコードくらいあったのですが、
ひとまずLoopでできるか試してみます。
scripter様
CSVなどにエクスポートして、上書きでインポートすればクリアされます。
ありがとうございます。
試みてみたのですが、MacとWindowsの両方で共有しているからか、文字化けしてしまいました。
ウムラウトなども混ざっているので、できればエクスポートすることなく文字色を変更できたらと思っております。
Shinさま
ありがとうございます。
設定の解除という選択肢があるのですね。
設定は、試行錯誤の末、下記で進めています。
●スクリプトトリガOnObjectEnter
変数を設定[$$入力前 ; Get ( アクティブフィールド内容 )]
●スクリプトトリガOnObjectExit
変数を設定[$変更後 ; 値:Get ( アクティブフィールド内容 )]
If [$$入力前 = $変更後]
現在のスクリプト終了[]
Else
計算結果を挿入[選択;TextColor ( Get ( アクティブフィールド内容 ) ; RGB ( 255 ; 0 ; 0 ) )]
End If
これを、対象フィールドすべてに一つ一つあてがっています。
よろしくお願いいたします。
初めて投稿します。
複数フィールドの入力値の文字色を、一括で変更することはできますでしょうか。
File Maker Pro 11を使用している初心者です。
情報の変更箇所がわかるように、変数などを使って入力値に変更のあったフィールド内の文字色が赤くなるように設定しています(変更なしは黒)。
特定の人物が情報を印刷後、全ての入力値の文字を黒色に戻したいのですが、例えば、ボタン操作で一括変更できるのでしょうか。
かなりの数のフィールド、レコードを対象にしたいため、簡単にできる方法があれば、、と思っております。
どうぞよろしくお願いいたします。
Pages: 1
[ Generated in 0.008 seconds, 6 queries executed - Memory usage: 630.13 KiB (Peak: 651.11 KiB) ]