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

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

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

You are not logged in.

Announcement

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


#1 2014-06-24 09:18:44

なりなり
Guest

i-Padでの動作を速くする

スクリプトトリガで下記のようなスクリプトでバックアップデータを取るように
したところ、現場からi-Padの動きが遅くなるとのクレームが出ました。
速くする方法はありませんか?
「A工程入力」(工程) のレイアウトで検査結果を入力するとバックアップデータを
とるようにしています。


よろしくお願いします。

変数を設定 [ $code ;値:工程::IDNo ]
If [ $code = "" ]
      カスタムダイアログを表示 [ タイトル: "IDNoなし" ; メッセージ: "IDNoを入力してください。" ;
  デフォルトボタン 「OK」 , 確定 ; 「はい」]
      現在のスクリプト終了
Else
      フィールド設定  [  値:工程::IDNo ; $code ] 
      全レコードを表示
  レコードを対象外
  対象外のみを表示
  レイアウト切り替え [ 「A工程(バックアップ)」(A工程)]
  レコードのインポート [ ソース: 「file:工程」;ターゲット: 「A工程(バックアップ)」;方法: 追加: 文字セット:
      「シフトJIS」; ・・・・・・
  レイアウト切り替え [ 「A工程入力」(工程)]
End If

#2 2014-06-24 09:48:48

とおりすがり
Guest

Re: i-Padでの動作を速くする

毎回バックアップする必要あるの?
iPadのローカルのファイルだったら、バックアップもやっぱりローカルだろうから、あんまり意味ないような気がするし、ServerのファイルをiPadで開いているのであれば、iPadでわざわざバックアップ(というかデータのコピー)させることないし…

#3 2014-06-24 11:42:10

なりなり
Guest

Re: i-Padでの動作を速くする

とおりすがりさん

ありがとうございます。参考にさせてもらいます。

#4 2014-06-24 12:27:46

tim
Guest

Re: i-Padでの動作を速くする

全レコードを表示しないで、ユニークキーで関連レコードへ移動にする。

#5 2014-06-25 09:34:10

なりなり
Guest

Re: i-Padでの動作を速くする

timさん

ありがとうございます。Tryしてみます。

#6 2014-06-25 11:46:58

なりなり
Guest

Re: i-Padでの動作を速くする

timさん

スクリプトを下記のように変更して試してみました。できるようになりました。ありがとうございました。

前回のスクリプトでは「工程」と「A工程」のIDNoをリレーションしていなくてもバックアップできましたが
今回はリレーションをしていないと「ターゲットが関連テーブルの一部ではないため、この処理は完了できません。」
というメッセージが出て出来ませんでした。
リレーションをすると出来るようになりました。


変数を設定 [ $code ;値:工程::IDNo ]
変数を設定 [ $ind ;値:Get ( 対象レコード数 ) ]
If [ $ind > 1]
      カスタムダイアログを表示 [ タイトル: "対象レコード過多" ; メッセージ: "対象レコード数が多すぎます。
  バックアップを中止します。" ; デフォルトボタン 「OK」 , 確定 ; 「はい」]
      現在のスクリプト終了
Else
      フィールド設定  [  値:工程::IDNo ; $code ] 
  関連レコードへ移動 [ テーブル: 「A工程」; 使用するレイアウト「A工程(バックアップ)」(A工程)]
  レコードのインポート [ ソース: 「file:工程」;ターゲット: 「A工程(バックアップ)」;方法: 追加: 文字セット:
      「シフトJIS」; ・・・・・・
  レイアウト切り替え [ 「A工程入力」(工程)]
End If

#7 2014-06-25 12:36:59

tim
Guest

Re: i-Padでの動作を速くする

ん?ほんとにできてますか?
工程の現在のレコードだけをA工程にバックアップするんですよね。
リレーションは工程の自己リレーションです。バックアップ先は関係ありません。

#8 2014-06-26 08:15:05

なりなり
Guest

Re: i-Padでの動作を速くする

timさん

ありがとうございます。リレーションを組むとバックアップに書き込むことができました。
どこに問題があるのかよくわかりません。

ダイアログメッセージ 「ターゲットが関連テーブルの一部ではないため、この処理は完了できません。」
の「関連テーブルの一部ではない」ということが気になります。

「関連テーブルではない」ならわかるのですが、どういう意味か分かれば教えてください。

よろしくお願いします。

#9 2014-06-26 09:50:27

tim
Guest

Re: i-Padでの動作を速くする

前半のIfの内容も変えてるのに気付かなかった。最初はIDNoの入力チェックだったのに、しなくていいんですか?
対象レコード数が1の場合にだけバックアップ実行するなら、関連レコードへ移動も必要ありません。
最初のスクリプトで、
     全レコードを表示
  レコードを対象外
  対象外のみを表示
この3行が「現在のレコードのみを対象レコードにする」という操作なので、その代りに関連レコードへ移動を使うという提案です。

#10 2014-06-26 13:00:45

なりなり
Guest

Re: i-Padでの動作を速くする

timさん

ありがとうございます。
File Makerをあまり深く理解できていないので、ちぐはぐなことを
やっています。

もう一度考え直してみます。

#11 2014-06-27 07:25:53

なりなり
Guest

Re: i-Padでの動作を速くする

timさん

下記のようにスクリプトを変更したらリレーションを組まなくても、バックアップできました。
ありがとうございました。時間も短縮できました。


変数を設定 [ $code ;値:工程::IDNo ]
変数を設定 [ $ind ;値:Get ( 対象レコード数 ) ]
If [ $code = "" ]
      カスタムダイアログを表示 [ タイトル: "IDNoなし" ; メッセージ: "IDNoを入力してください。" ;
    デフォルトボタン 「OK」 , 確定 ; 「はい」]
      現在のスクリプト終了
Else
If [ $ind > 1]
       カスタムダイアログを表示 [ タイトル: "対象レコード過多" ; メッセージ: "対象レコード数が多すぎます。
     バックアップを中止します。" ; デフォルトボタン 「OK」 , 確定 ; 「はい」]
       現在のスクリプト終了
Else
       フィールド設定  [  値:工程::IDNo ; $code ] 
     レコードのインポート [ ソース: 「file:工程」;ターゲット: 「A工程(バックアップ)」;方法: 追加: 文字セット:
       「シフトJIS」; ・・・・・・
  End If
End If

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 526.55 KiB (Peak: 547.09 KiB) ]