はじめに
PowerAppsには表示されている画面をページに合わせて印刷することが出来るPrint関数があります。デフォルトの印刷ダイアログが開くのでPDF保存を行うことも可能です。
帳票や見積もりなどで活用できそうな機能ですが、印刷する際に出力する必要のない情報を非表示にしたい時もあります。
単独パーツ(ボタンなど)であればVisibleプロパティに『Not(Parent.Printing)』と設定することで印刷時のみ非表示にできますが、フォームやギャラリーでは適用できません。
そこで今回はフォームやギャラリーに配置しているアイテムを印刷時に非表示にする方法を解説します。
結果
実装手順
-
印刷画面の設定
今回は例としてアプリ上で見積書を印刷できるようなページを用意しました。
項目部分はギャラリーを配置し、リストのデータを表示するようにしています。見積書を表示して印刷させるだけでなく、金額の横にある矢印アイコンを選択すると各項目の詳細画面に遷移するような画面設計の想定です。
印刷ボタンを画面右上に配置し、印刷ボタンのVisibleにはNot(Parent.Printing)を設定します。
Not(Parent.Printing)
-
印刷ボタンの設定
印刷ボタンのOnSelectを以下の式に設定します。
UpdateContext({Notprinting: false}); Print(); UpdateContext({Notprinting:true})
Notprintingと名付けた変数に非表示状態にするfalseを設定し、Print()関数を実行してから、再び表示状態にするためにtrueを設定します。
-
ギャラリー内非表示アイテムの設定
非表示にしたいアイテムのVisible値を変数『Notprinting』に変更します。
これで印刷ボタンを押すと『Notprinting』が入ったアイテムは、印刷ダイアログが開くタイミングで非表示にすることが可能になります。 -
画面の設定
最後に画面が表示されたタイミングでは常に表示されているようにするため画面のOnVisibleにも変数を設定します。
UpdateContext({Notprinting:true})
おまけ
印刷時だけ表示するような機能も実装することができます。(Visibleに『Parent.Printing』を設定するか、変数で設定する)
Wordの透かし文字のようなイメージです。会社印はアプリ上では表示せず印刷時に表示するなど色々応用が利きそう。
まとめ
簡単に表示・非表示を実装できるので、PowerAppsの印刷機能を活用して柔軟にコントロールしましょう!