FM-中部 2013.3.16 変数を使ってみよう
- 2. 変数を使ってみよう
変数を使ったことがありますか?データベース構造と
は関係なく値を格納できる便利な変数。変数には ロ
ーカル変数 と グローバル変数 の2種類があります。
13年3月16日土曜日
- 3. 本日の内容
変数とは?
変数の定義
変数の使いどころ
実践(ワークショップ)
便利な変数の使い方
13年3月16日土曜日
- 4. 変数とは
計算式で、値を表すシンボルまたは名前。変数の設定
スクリプトステップを使用し、変数の名前、値および
繰り 返しを指定します。名前に $ で接頭語を付ける
と、現在のスクリプト内でのみ使用できるローカル変
数になります。名前に $$ で接頭語を付けると現在のフ
ァイル全体で使用できるようになります。ローカルおよ
びグローバルな変数は同じ名前にすることができます
が、異なる変数として 処理されます。
13年3月16日土曜日
- 5. 変数の種類
ローカル変数 $_XXX
計算式・スクリプト中のみ保持される
グローバル変数 $$_XXX
ファイルが閉じられるまで保持される
Let 関数内の変数
計算式内のみで保持される
13年3月16日土曜日
- 6. グローバル変数のマージ
<<$$_XXX>> の形式でレイアウト上に配置
グローバル変数の値を表示できる
Ver. 12 以降
13年3月16日土曜日
- 7. 変数に使える文字
2バイト文字が使える(日本語も大丈夫)
「$」はダメ
大文字・小文字を区別しない
命名時の制約はテーブル/フィールド名と同じ
変数の場合、強制もできない
「変数を設定」スクリプトステップの名前入力欄で
はローカル変数の「$」を省略しても大丈夫
13年3月16日土曜日
- 8. 問題01
グローバル変数とローカル変数の名前を同じにした
場合、値は同じになる?
例:$$時間 $時間
13年3月16日土曜日
- 9. 問題01:答え
グローバル変数とローカル変数の名前を同じにした
場合、値は同じになる?
答え:同じ値にならない
グローバル変数とローカル変数は名前が同じでも
別の変数として扱われる
13年3月16日土曜日
- 10. 問題02
ローカル変数はスクリプト内の「スクリプトの実
行」スクリプトステップで呼び出した別のスクリプ
ト内でも保持される?
13年3月16日土曜日
- 11. 問題02:答え
ローカル変数はスクリプト内で「スクリプトの実
行」スクリプトステップで呼び出した別のスクリプ
ト内でも保持される?
答え:保持されない
ローカル変数は定義したスクリプト内のみで有
効。
13年3月16日土曜日
- 12. 問題03
メインスクリプトで定義したローカル変数と同じ名
前のローカル変数をサブスクリプトでも定義して値
を変更した場合、メインスクリプトに戻ってきた時
に変数の値はどうなる?
13年3月16日土曜日
- 13. 問題03:答え
メインスクリプトで定義したローカル変数と同じ名
前のローカル変数をサブスクリプトでも定義して値
を変更した場合、メインスクリプトに戻ってきた時
に変数の値はどうなる?
答え:メインスクリプトで定義した時の値のまま
ローカル変数の値はスクリプト内でのみ保持さ
れるので、別のスクリプトで同じ変数名を使って
も元のスクリプトでは保持されたまま
13年3月16日土曜日
- 14. 本日の質問
スクリプトの結果を受け取るには?
答え:「現在のスクリプト終了」スクリプトステ
ップで”スクリプトの結果”を設定すると、元のスク
リプトで Get ( スクリプトの結果 ) で受け取れる
13年3月16日土曜日
- 15. 本日の質問
ファイルをまたいで変数を使える?
ローカル/グローバルともにファイルをまたぐこと
はできない
スクリプト引数やスクリプトの結果を使うこと
で値の受け渡しはできる
13年3月16日土曜日
- 16. 変数を定義するには
「変数を設定」スクリプトステップ
Let 関数を使う(フィールド定義)
Let 関数を使う(条件付き書式)
データビューワ(Advancedのみ)
13年3月16日土曜日
- 17. 変数の扱いのポイント
変数は最初の定義以外はコピー&ペーストが原則
名前を覚えて「$_XXX」と打たない
面倒だけどミスの発生率が桁違い
手打ちだとミスがあった場合に発見が困難
InspectorとかBaseElements使う?
13年3月16日土曜日
- 18. 変数の落とし穴
ローカル変数はスクリプト内のみで保持されるが、
スクリプトステップ以外で再定義される場合がある
スクリプト内でのレコード移動/レイアウト切替で
計算式内の変数が変更されると、スクリプト内の
同名の変数に影響が出る
13年3月16日土曜日
- 19. 変数の使いどころ
値の作成・保存
動的なパスの作成
繰り返しの処理(カウンターとして使う)
繰り返しの処理(繰り返し変数)
スクリプトの効率化
開発の効率化
マージ変数でレイアウトの使い回し
13年3月16日土曜日