みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
同じスクリプト内で下記スクリプトの一部の式を変えて、20個程作成することになりました。
変わるのは (スクリプト引数)=1
と A入力 の部分です。
20個作成しても良いのですが、簡素化出来ないかと思い問い合わせさせていただきます。
Else If[ Get(スクリプト引数)=1
If[計画番号=""]
Else
If[A入力=0]
Else
カスタムダイアログを表示
全スクリプト終了
End If
End If
Else If[ Get(スクリプト引数)=2
If[計画番号=""]
Else
If[B入力=0]
Else
カスタムダイアログを表示
全スクリプト終了
End If
End If
・
・
・
カスタムダイアログを表示
が同じなら、20個分のIf条件を1つにまとめれば、20個書かなくていいのでは。
If[計画番号=""]
は全部同じなので毎回書かず外に出す。
Else If[ Get(スクリプト引数)=1
If[計画番号=""]
Else
If[A入力=0]
Else
カスタムダイアログを表示
全スクリプト終了
Ifステップの3回分は
If [Get ( スクリプト引数 ) = 1 and not IsEmpty ( 計画番号 ) and A入力 ≠ 0]
この1行に出来ますね。
この判定を20回繰り返すということでしたら、
Loopを使って20回繰り返すようにすればいいでしょう。
計画番号の判定が常に同じ条件なら
scripterさんのお薦めの通り、外に出すことが出来ますね。
Get ( スクリプト引数 ) = 1
これが1、2、3・・・と規則的に変化するのなら変数に出来ます。
不規則な変化なら、始めに変数にリストにして入力し、1行ずつ取り出すことが出来ます。
A入力 = 0
この判定するフィールドが変わるのでしたら、
フィールド名を順にリストにして変数に入力し、
GetField
で1行ずつフィールド名を指定してその値を取り出すことが出来ます。
Offline
If [ A入力 = 0 ]の部分も
Let (
[
%テーブル名 = "テーブル名" ;
%フィールド名 =
GetValue (
List (
"A 入力" ; // スクリプト引数が 1 の場合のフィールド名
"B 入力" ; // スクリプト引数が 2 の場合のフィールド名
"C 入力" ; // スクリプト引数が 3 の場合...
"D 入力" ; // スクリプト引数が 4 の場合...
...
) ;
Get ( スクリプト引数 )
)
] ;
GetField ( %テーブル名 & "::" & %フィールド名 ) = 0
)
って式でまとめられそうですね。
If (
計画番号 ≠ 0
and
Choose (
Get(スクリプト引数) ;
"" ;
A入力 ≠ 0 ;
B入力 ≠ 0 ;
…
)
)
カスタムダイアログを表示
全スクリプト終了
end If
で良いのでは。
Offline
If (
計画番号 ≠ 0
and
Choose (
Get(スクリプト引数) ;
"" ;
A入力 ≠ 0 ;
B入力 ≠ 0 ;
…
)
)
カスタムダイアログを表示
全スクリプト終了
end If
で良いのでは。
カスタムダイアログが表示しません。
宜しくお願い致します。
検証ファイルでは動いていますが。
Offline
If (
計画番号 ≠ 0
and
Choose (
Get(スクリプト引数) ;
"" ;
A入力 ≠ 0 ;
B入力 ≠ 0 ;
…
)
)
カスタムダイアログを表示
全スクリプト終了
end If
で良いのでは。
Shin様
この通りにサンプルを作成すると上手く行きました。
実際に展開致します。
有難う御座いました。
Pages: 1
[ Generated in 0.011 seconds, 9 queries executed - Memory usage: 517.27 KiB (Peak: 521.8 KiB) ]