はじめに
FM-1グランプリでの予選第3回レビューで、FM-SCのプログレスバー機能について「ここだけのモジュールとかあると」と、ご示唆をいただいたので、プログレスバーの部分のみ残したファイル(モジュールと言えるのか?)を作成してみました。
実際の動き
解説
サンプルファイルを見れば分かると思いますが、簡単な解説。
- 0から100までの自然数でプログレスを表すグローバル変数($$PROGRESS)を用意。
- 100個の繰り返しを持つ計算値のグローバル繰り返しフィールドを作成。
- 計算値は「Get ( 計算式繰り返し位置番号 )」。
- 条件付き書式を設定。Selfが$$HEAD.OF.PROGRESS.BARと$$TAIL.OF.PROGRESS.BAR変数の間の値を取る際には、背景色を変える。
あとは、$$HEAD.OF.PROGRESS.BARと$$TAIL.OF.PROGRESS.BAR変数を適宜設定するようにすれば、プログレスバーっぽくなる。単純にプログレスをゼロから増加させるだけなら、$$TAIL.OF.PROGRESS.BARをゼロに固定して、$$HEAD.OF.PROGRESS.BARだけ100までカウントさせればよい。
上記3つを含めたすべてのグローバル変数の管理方法についてはこちらの記事を参照してください。
導入の仕方
- サンプルファイルから"f_ProgressBar.number"フィールドを、コピーし、導入先のテーブルにペースト。
- サンプルファイルから、~~AppSpecificFunctions~~にある、Set、Get関数をインポートする(全部で10個)。
- サンプルファイルのレイアウトから、該当オブジェクト(繰り返しフィールド)をコピーし、導入先のレイアウトへペーストする。
実際には、導入先システムに合わせてプログレスを評価する必要があるので、思い通りに動かすには、もう少し手間がかかる。サンプルファイルでの設定を参考にして欲しい。サンプルファイルではループ処理で繰り返し評価させているが、OnTimerスクリプトでもよいかも知れない。
サンプルファイル
GitHubからダウンロードできます。
アカウントはadmin、user、fm1の3つが用意されており、いずれのパスワードもアカウントと同じです。
いずれのアカウントも完全アクセスにしてあります。
ファイルオプションでuserでログインするようにしてあります。
謝辞
FM-1グランプリでいただいたレビューを理由に、当サンプルファイルを作りましたが、プログレスバーはFM-SCで試しながら作っていたので、FM-SCではそこまで待ち時間ができないこともあり、プログレスバー自体をゆっくり眺めることがありませんでした。このサンプルファイルを作って、その点はとても満足しました。FM-1グランプリに感謝。
出来ているレベルが段違いに高いけど、これを見て、繰り返しフィールドでプログレスバーいけんじゃない? と思いました。先人達の投稿に感謝。