前回は、集計について学びました。
今回は集計を出力する方法としてPDF保存について学んでいきます。
PDF ファイルの保存機能を作成します👍
PDF保存をスクリプトで実行
「集計結果を PDF で保存したい」場合のスクリプトを設定していきます。
●スクリプトの作成
1、shift ⌘ S [スクリプトワークスペース]
2、⌘ N スクリプトの新規作成。
3、スクリプトステップを入力。
レイアウト切り替え[集計タスク一覧(タスク管理)]
全レコードを表示 //…①
レコードのソート[記憶する ; ダイアログあり:オフ] //…②
レコードを PDF として保存[記憶する;ダイアログあり:オン;対象レコード] //…③
レイアウト切り替え[元のレイアウト])
①「集計タスク一覧」ページ上でソートが既に行われているか分からないため、まず全レコードを表示させて揃える。
②ここでソートする。[ソート順の指定][レコードのソート]を入力。
③[オプション指定]でPDFファイルに保存する内容を指定。「対象レコード」
PDF作成時は、ファイル名、保存場所の指定が必要なためダイアログはオン。
●ボタンバーに追加。ボタンを作成。
「タスク集計ダイアログ」
ページ固定
上記で、PDF保存をスクリプトで実行する設定を行いました。
現在、レイアウトが「集計タスク一覧」ページに切り替わり、ファイル保存が行われている。
PDFファイルを作成するためだけなら、わざわざレイアウトを確認しなくても良いはず❗
スクリプトステップを修正します。
ウインドウの固定 //…①
レイアウト切り替え[集計タスク一覧(タスク管理)]
全レコードを表示
レコードのソート[記憶する;ダイアログあり:オフ]
レコードを PDF として保存[記憶する;ダイアログあり:オン;対象レコード]
レイアウト切り替え[元のレイアウト])
️①[ウインドウの固定] >>> スクリプトで行なっている処理を、ユーザーに見えないように、元のレイアウトを固定したまま処理を実行する。
カスタムダイアログ
ユーザーの間違えによって、不要なファイルの作成を行わないようにしたい。
そこで、カスタムダイアログ確認する設定を行います。(ボタンをクリックした場合、本当にPDFファイルを作るかどうかの確認をする)
スクリプトステップを修正します。
カスタムダイアログを表示["PDF 保存の確認 " ; " タスクの集計結果を PDF に保存しますか? "] //…①
If[Get(最終メッセージ選択) = 1] //…②
ウインドウの固定
レイアウト切り替え[集計タスク一覧(タスク管理)]
全レコードを表示
レコードのソート[記憶する;ダイアログあり:オフ]
レコードを PDF として保存[記憶する;ダイアログあり:オン;対象レコード]
レイアウト切り替え[元のレイアウト])
Else
End If //…③
①ギアマーク⚙をクリック。
[カスタムダイアログを表示]のダイアログが表示。
・「タイトル:」を「PDF 保存の確認」
・「メッセージ:」を「タスクの集計結果を PDF に保存しますか?」
・「デフォルトボタン」を「保存する」「データを確定」を オフ
・「ボタン 2」を 「しない」「データを確定」を オフ
②「保存する」「しない」を[If]スクリプトステップで切り分ける。
If オプション設定で[計算式の指定] 「保存する」を選択した場合という式。
Get ( 最終メッセージ選択 ) = 1 //最終メッセージが1(デフォルトボタン)の場合
③1以外が押されたら、何もせずにスクリプトを終える。
カスタムダイアログによって、ユーザーに選択してもらう。
[Get(最終メッセージ選択) ]とセットで使用する。
強制終了を許可
現在問題点が1つあります。
ユーザーがスクリプトステップを強制終了した場合、「集計タスク一覧」画面が表示された状態になってしまいます。本来なら、画面遷移してない状態の「タスク一覧」画面が表示されることが望ましいです。
例
強制現在、「タスク集計ダイアログ」ボタンをクリックすると、カスタムダイアログが表示され「タスクの集計結果を PDF に保存しますか?」「保存する」「しない」が選択できます。
「保存する」をクリックして進めた場合。
次にPDFファイルの名前、保存場所などを設定するダイアログが現れます。
そこで再び「キャンセル」「保存」の選択が現れます。
「キャンセル」をクリックすると新たなダイアログが表示されます。
デフォルトのダイアログで「このスクリプトを続行しますか?」との問いに
「キャンセル」「続行」が選択できます。
ここで「キャンセル」をクリックするとスクリプト自体が強制終了されてしまうので、「集計タスク一覧」画面が表示されることになってしまいます。
ユーザによる強制終了の設定を加えることで解消します。
スクリプトステップを修正します。
ユーザによる強制終了を許可[オフ] //…①
カスタムダイアログを表示["PDF 保存の確認 ";" タスクの集計結果を PDF
に保存しますか? "]
If[Get(最終メッセージ選択) = 1]
ウインドウの固定
レイアウト切り替え[集計タスク一覧(タスク管理)]
全レコードを表示
レコードのソート[記憶する;ダイアログあり:オフ]
レコードを PDF として保存[記憶する;ダイアログあり:オン;対象レコード]
レイアウト切り替え[元のレイアウト])
Else
End If
①を加えることで、ユーザーにスクリプトの強制終了ができないように設定します。
↓↓↓
すると、PDFファイルの名前、保存場所などを設定するダイアログで「キャンセル」をクリックしてもスクリプトがそのまま続行され、希望通り画面遷移してない状態の「タスク一覧」画面が表示されます。
コメント