FileMaker 【20】出力と集計(出力)

前回は、計算式に共通する内容について学びました。
今回は、データの出力について学んでいきます。


データを入力して蓄積し、利用するためには「出力」が必要です。画面にデータが表示されることも一種の出力です。
今回は「印刷」や「エクスポート」をおこなって、書類やファイルを出力することを考えます。

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

「タスク検索」機能をつくる。
 ステータスが「進行中」のタスクがわかる参考資料をつくりたい場合。

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

結果一覧を印刷。

上記の手動をスクリプト化しボタンクリックで自動に表示させることを考える。
↓↓↓

●スクリプトを作成
1、shift ⌘ S [スクリプトワークスペース]を開く。
2、新しいスクリプトを 作成。
名前は「タスクステータス検索」
3、スクリプトステップを入力。

レイアウト切り替え[「タスク一覧」(タスク管理);アニメーション:なし]
//(1 行あける)
検索モードに切り替え[一時停止:オフ]
フィールド設定[タスク管理 :: ステータス ; " 進行中 "]
レコード / 検索条件確定[ダイアログあり:オフ]
検索実行[ ]

4、⌘ S 保存

●ボタンバー作成
レイアウトモードに切り替え、ボタンバーの作成、設定をしていく。
ボタンに表示する文字列 「進行中」
[処理:] 「スクリプト実行」を選択。
[開始:現在のファイル] 作成したスクリプト「タスクステータス検索」を選択。

レイアウト上に「進行中」ボタンが表示される。クリックすると、ステータスが進行中のものだけが表示されるようになる😄

エラーの処理

上記のボタンを実行した際、進行中のステータスが無かった場合どうすれば良いでしょう・・・😦

デフォルトのエラーメッセージが表示されるが分かりにくい。
では、エラーメッセージ設定をしていきましょう。

1、自分でエラーメッセージの設定をする場合、先ずはデフォルトのエラーメッセージを非表示にする必要がある

「タスクステータス検索」のスクリプトステップを修正。

レイアウト切り替え[「タスク一覧」(タスク管理);アニメーション:なし]
//(1 行あける)
エラー処理[オン]  //デフォルトが表示されない状態。
検索モードに切り替え[一時停止:オフ]
フィールド設定[タスク管理 :: ステータス ; " 進行中 "]
レコード / 検索条件確定[ダイアログあり:オフ]
検索実行[ ]
エラー処理[オフ] //デフォルトが表示される状態。

エラー処理のオン/オフは必ずセットで使う💡


2、さらにステップを追加していく。

レイアウト切り替え[「タスク一覧」(タスク管理);アニメーション:なし]
//(1 行あける)
エラー処理[オン]  //デフォルトが表示されない状態。
検索モードに切り替え[一時停止:オフ]
フィールド設定[タスク管理 :: ステータス ; " 進行中 "]
レコード / 検索条件確定[ダイアログあり:オフ]
検索実行[ ]
If[Get(最終エラー)] //エラーがあった場合(真)Elseまで記述を実行。
  カスタムダイアログを表示[" 検索結果なし " ; " 検索結果がありませんでした。"]
Else
End If
エラー処理[オフ] //デフォルトが表示される状態。

Get(最終エラー)関数   直前のスクリプトステップの実行でエラーがあるかどうかがわかる。
[If]スクリプトステップ   If 関数と同じ使い方をする。論理計算式としては Get(最終エラー)関数が 0 以外を返すことを利用して、論理計算式の結果が「1」真(True)であると判断している。

ソート

ソート >>> 並び替え

進行順で並べ替えた場合、その中でも更に優先度の高い順に並べ替えれると便利です。
今回は、進行中の検索結果に対して、以下の内容を反映させた並び替えを行ってみます。

・期限が早い順
・優先度が高い順
・カテゴリーの順

●スクリプトを作成

1、shift ⌘ S [スクリプトワークスペース]を開く。
スクリプト名は「タスクソート:期限と優先度とカテゴリー」
2、スクリプトステップを記述。

レコードのソート[記憶する;ダイアログあり:オフ]
レコード / 検索条件 / ページへ移動[最初の] /ソートした後、一番最初のレコードにいるのが望ましいため

3、レコードのソート[記憶する;ダイアログあり:オフ]

<オプション設定>

ダイアログあり:オフ
ギアマーク⚙クリック[ソート順指定…]

「期限」「昇順」
「優先度」「値一覧に基づく順位:優先度
「カテゴリー」「値一覧に基づく順位:カテゴリー

[ソートされた順位でレコードを保持]にチェック
実行した後も有効。レイアウトに見えているレコードに対し常にソートを適応している。(新規レコードを登録した時点でソートに反映される。)

4、⌘ S 保存

●ボタンバーの作成

1、レイアウトモードで進行中のボタンをクリックし、セグメントを増やす。
ボタンに表示する文字列 「期限と優先度とカテゴリー」
[処理:] 「スクリプト実行」を選択。
[開始:現在のファイル] 作成したスクリプト「タスクソート:期限と優先度とカテゴリー」を選択
5、⌘ S 保存

↓↓↓ブラウザモードで確認
「進行中」ボタンをクリック。 進行中のレコードのみ表示

「タスクソート:期限と優先度とカテゴリー」ボタンをクリック。
期限順に並ぶ⇨期限が同じものがあれば優先度で並ぶ⇨それも同じならカテゴリー順で並ぶ。

コメント

タイトルとURLをコピーしました