第69回 蓄積されたデータを検索する・表示する

こんにちは。エヌ・ケイ・カスタマイズの大村です。鹿児島でも朝晩が涼しくなってきました。でも、日中は暑いです。寒暖差に気を付けましょう。コロナにも気を付けましょう。


これまで、「タスク管理」という題材を通して、レコードを作成するスクリプトを作ったり、入力しやすいように、また進捗がわかりやすいように、レイアウトに工夫を凝らしてみたりしてきました。順調に入力が進み、たくさんの情報が登録されていくと、今度は、そのデータを利用することも重要になってきます。蓄積されたデータを検索して一覧表示する、というのは、データベースの大切で必要で便利な機能です。
FileMaker Pro にはこれらについても充分な機能が用意されています。
今回は、検索するスクリプトの基本的な作り方を見ていきましょう。

結果を表示する、印刷する


1 つのゴールとして、「印刷」や「PDF保存」、ファイルとして「エクスポート」をおこなって、書類やファイルを出力することを考えてみましょう。

まずは、その前提として、欲しい情報を検索して表示するというスクリプトが必要になります。

以前、タスク管理のAppsで、新規タスクを登録するスクリプトを作ったりしました。
そして、作ったスクリプトを使って、新規タスクを作成して、中身を登録するための工夫をしてきました。

その順序を、ユーザが毎回手作業でおこなうのではなく一部あるいはすべての順序を自動的におこなえるようにすること。それが「自動化」です。自動化のために作成されるのが「スクリプト」です。

第46話 スクリプトによる自動化

第49話 スクリプトの作成で、「新規タスク作成」というスクリプトを作成しました。これを題材に、新規レコードを作成するスクリプトを考えてみましょう。

第51話 新しいレコードを作成するスクリプトを作ってみる


いま、「タスク一覧」レイアウトには、レコードが蓄積されて、タスクの基本的な情報が揃っているとします。この蓄積されたタスクを元に、「進行中」のタスクのみを表示する、なんて機能があると便利ですよね。
というわけで、
・ 必要に応じてタスクを検索する
・ タスク一覧を印刷する
といったことを行いたいと思います。

検索をスクリプトで実行する

「タスク検索」機能をつくります。どのような検索が必要でしょうか。会議の参考資料として必要なデータは……。
ここでは次のような資料が必要だとします。

・ ステータスが「進行中」のタスクがわかる参考資料

これなら、「タスク一覧」レイアウトで検索モードに切り替えて検索をおこなうことが可能です。
しかし、毎回手作業で検索するのではなくボタンの方が簡単で誰でも作業できます。
次のボタンを作りましょう。

・ あるステータスで「タスク」テーブルのレコードが検索されるボタン(機能)

タスクの進捗状況を示す「ステータス」フィールドに設定した値一覧の内容は以下の文言でした。

・ 進行中
・ 保留中
・ 延期
・ キャンセル
・ 完了

ステータス



つまり、タスクには、どれかが入力されているはずです。では「ステータスが進行中のタスク」レコードが検索されるボタンを考えます。

「タスク一覧」レイアウトで検索をおこなう想定で考えます。
その詳細を考えてみます。

  1. 「タスク一覧」レイアウトに切り替える
  2. 検索モードに切り替える
  3. 検索条件を入力する → 「ステータス」フィールドに「進行中」を入力
  4. 検索を実行する
  5. 検索結果が表示される

こんな感じでしょうか。これをスクリプトのボタンにします。
スクリプトワークスペースを開いて、手入力でスクリプトを組んでみましょう。

1. 新しいスクリプトを1 つ作成します。
名前は「タスクステータス検索」とします。
2. レイアウトで検索が実行されるようにします。
  a. まず「タスク一覧」レイアウトに切り替えます。
「スクリプト編集パネル」で「レイアウト」と入力すると候補が表示されます。

候補が表示される

b. [↑][↓]キーで「レイアウト切り替え」を選択して[Enter]キーを押下します。
c. スペースバーを1 回押下すると、切り替え先の選択が表示されます。[↑][↓]キーで「レイアウト…」を選択して[Enter]キーを押下します。
d. [レイアウトの指定]ダイアログでも[↑][↓]キーで「タスク一覧」レイアウトを選択して[Enter]キーを押下します。
1 行目が入力されました。

3. 次のスクリプトステップも入力してください。これまでのようにマウス操作でも大丈夫です。

(1 行あける)
検索モードに切り替え[一時停止:オフ]
フィールド設定[タスク管理 :: ステータス ; ” 進行中”]
レコード/ 検索条件確定[ダイアログあり:オフ]
検索実行[ ]



4. スクリプトを保存します。
5.スクリプトをボタンに割り当てます。


a. 「タスク一覧」レイアウトの「ヘッダ」パートにボタンバー(ボタンは1 つ)を作成します。
b. 「タスクステータス検索」スクリプトを割り当てます。以下の設定です(右図も参照してください)。
・ [ボタン名]は、アイコン+文字列(右)を選択して虫眼鏡のアイコンと” 進行中” 
・[アイコンの大きさ]は、「16pt」
c. ボタンの横幅を調整してください。
d. インスペクタでスタイルの「ボディボタンバー」を割り当ててください。
6. レイアウトを保存します。
7. ブラウズモードで動作を確認します。
「進行中」ボタンをクリックして「進行中」だけが検索されるか確かめます。

これで、ボタン一つで進行中のタスクが表示されるようになりました。便利ですね!


今回は、「印刷」や「PDF保存」、ファイルとして「エクスポート」するための前提として、検索するスクリプトを作ることから始めてみました。次回、この検索スクリプトをもう少し掘り下げて、エラーが発生する場合の処理をみていきます。実際に利用していく上では、どうしても必要な処理ですね。

次回も頑張ってまいりましょう。

Follow me!