プリザンター用帳票出力ソリューション「Report Create for プリザンター」の紹介
IISではプリザンター用帳票出力ソリューション「Report Create for プリザンター」を提供しています。
この記事ではホームページの紹介ページだけでは分かりにくい面を、実際の画面サンプルを通して紹介します。
Excel出力
Report Create for プリザンター を導入し、帳票出力をしたい編集画面に「Excel出力」ボタンを追加します。(Excel版の場合)
「Excel出力」ボタンをクリックすることで、Excelファイルをダウンロードします。
ダウンロードしたExcelファイル
編集画面で登録した内容をExcelファイルに出力します。
説明項目に添付した画像も出力できます。
Excelファイルですので、出力後に文言追記や色変更などの表現の調整が可能です。
ですが、見積書や請求書のような帳票は後から変更できないようにしたいケースもあると思います。
そのような場合はPDF出力がお勧めです。
PDF出力
Report Create for プリザンター のPDF版を導入すると、「PDF出力」ボタンが追加され、PDFファイルをダウンロードできます。
ダウンロードしたPDFファイル
子テーブルのレコードを明細行として出力できます
以下のように子テーブルを持つ場合、子テーブルのレコードを明細行として出力することが出来ます。
ダウンロードしたExcel/PDFファイル
一括出力
Excel出力、PDF出力ともに一覧画面上で一括出力することが出来ます。
出力したいレコードにチェックをつけ、「Excel一括出力」(「PDF一括出力」)ボタンをクリックすることで、チェックしたレコード件数分のExcelファイル(PDFファイル)を一括でダウンロードします。
一覧出力
Excel、PDFともに一覧帳票を出力することが出来ます。
一覧画面上の「Excel一覧出力」(「PDF一覧印刷」)ボタンをクリックすることで、一覧帳票をダウンロードします。
ダウンロードしたExcelファイル
テンプレート
帳票のテンプレートはExcelで作成します。
Excelですので、簡単に編集することが出来ます。
テンプレートのサンプル
テンプレートは、あらかじめ作成したテンプレート保存用テーブルに「添付ファイル」として保存します。
テンプレート保存用テーブルの例
お気軽にお問い合わせください
実際の画面を通してReportCreate for プリザンターを紹介しましたが、参考になりましたでしょうか?
より詳細の説明を聞きたい方や、デモンストレーションの依頼、サービス内容についての確認など、ご不明点ございましたら、お気軽にお問い合わせください。
「+読者になる」のお願い
プリザンターの他、C#によるWebアプリ開発もIISの得意とする領域です。今後もプリザンターの機能、拡張スクリプト、ページ追加の研究を進めて行くつもりです。関心のある方、よかったらブログ上部の「+読者になる」をクリックをお願いします!
独自の入力値検証を追加してみた!
こんにちは。IISの田口です。
プリザンターでは必須入力チェックなどの基本的な入力値検証機能がありますが、
「名前カナ欄には全角カナだけを登録したい」
「2つの日付の前後関係をチェックしたい」
などの独自のチェックが欲しい場合が多いと思います。
4/24に追加された「javascriptのユーザイベントの戻り値によりスクリプトを中断する機能」を用いれば、スクリプトで独自チェックを実装し、NGだった場合は登録・更新を中断することが出来るようになりました。
週刊プリザンター第20号のサンプルのようなスクリプトですと、必須入力などのプリザンター標準の検証のエラーメッセージ表示とは異なり、alertでエラーメッセージを表示しています。
独自チェックでもプリザンター標準の検証と同じようなエラーメッセージにしたいですよね。
これが出来るのです!
Validationプラグインが勝利の鍵!
出来るのです!なんて言いましたが、実はソースコード読んだ方ならすぐに分かってしまう内容です。
プリザンターの必須入力チェックなどの入力値検証はValidationプラグインを利用しています。
ですので、Validateionプラグインをうまく使いこなせば、独自チェックもプリザンター標準のエラーメッセージと同じように表示することが出来ます。
サンプルです
以下のスクリプトを画面に設定しました。
$(function() { // カナチェック $.validator.addMethod( 'katakana', function(value, element){ return this.optional(element) || /^([ァ-ヶー]+)$/.test(value); }, '全角カタカナで入力してください。' ); // 日付前後チェック $.validator.addMethod( 'DateCompare', function(value, element){ var from = $('#Results_DateA').val(); var to = $('#Results_DateB').val(); return this.optional(element) || from <= to; }, '日付Fromは日付Toより過去日を入力してください。' ); // 分類Aにデフォルトのminlengthバリデータを設定(入力値が指定した桁数以上か) $p.getControl('ClassA').rules('add', { minlength: 3 }); // 分類Bにカスタムバリデータ「カナチェック」を設定 $p.getControl('ClassB').rules('add', { katakana: true }); // 日付A、日付Bにカスタムバリデータ「日付前後チェック」を設定 $p.getControl('DateA').rules('add', { DateCompare: true }); $p.getControl('DateB').rules('add', { DateCompare: true }); });
その結果が以下となります。
minlengthバリデータを設定した箇所のエラーメッセージが英語なのはデフォルトのバリデータをそのまま設定したためです。
メッセージを日本語に変更する方法やその他細かい設定内容については割愛しますので、興味のある方はValidateionプラグインの使い方を調べてください。
実は上記のスクリプトには弱点があります・・・
気づかれた方もいらっしゃるかと思いますが、上記サンプルスクリプトは$(function() {
(HTMLの読み込み終了後)で実装しています。
実はこのタイミングだと、前・次ボタンクリック時などのレコードの遷移にAjaxを使用する場合(テーブルの管理-エディタで設定)では遷移後にバリデータ設定が抜けてしまいます。
そのための対策というわけではないですが、現在プリザンターには$p.events.on_editor_load
(編集画面表示後)イベントハンドラが準備されています。
このイベントはhtml再読込/Ajax読み込みどちらも発火するので、画面表示後に処理したい内容は原則このイベントに実装すれば良いのですが、バリデータ設定はこのイベントではエラーになってしまいました。
私の力不足でこのエラーが解決できませんでしたので、もし解決策をご存じの方いらっしゃいましたら、是非ご教示ください!!!
「+読者になる」のお願い
プリザンターの他、C#によるWebアプリ開発もIISの得意とする領域です。今後もプリザンターの機能、拡張スクリプト、ページ追加の研究を進めて行くつもりです。関心のある方、よかったらブログ上部の「+読者になる」をクリックをお願いします!
最後に
IISはプリザンターのスクリプトによるカスタマイズの経験が豊富です。
プリザンター導入に際してカスタマイズをご検討されている方は是非ご相談ください!
またご不明点やご質問などございましたら弊社までお問い合わせください。
週刊プリザンター第20号
こんにちは。IISの田口です。
10連休のGWが終わってしまいました。皆さん楽しく過ごせたでしょうか?
週刊プリザンター第20号です。
4/22~5/6を追いかけます。
4/24:javascriptのユーザイベントの戻り値によりスクリプトを中断する機能を追加。(0.49.224)
個人的にうれしい機能追加です!
作成ボタンや更新ボタンクリック時に独自検証や確認ダイアログで処理を中断することが出来るようになりました。
ポイントは以下の通りです。
1. 処理中断出来るイベントは次の3つ
- 検証前イベント(before_validate)
- 検証後イベント(after_validate)
- 送信前イベント(before_send)
検証前イベント/検証後イベントでは、必須入力チェックなどプリザンター標準の検証の他に独自の検証を組み込みたいときに利用すると良いでしょう。
(日付が本日以前であることや、2つの数値項目の大小比較など)
送信前イベントは、検証が全てOKでなおかつ再確認させる場合などに利用できると思います。
(「本当に更新しますか?」の確認ダイアログを表示するなど)
2. return false;
で処理中断する。
中断したい場合はreturn false;
とします。ソースを読むとイベントハンドラの戻り値がfalseである場合に処理中断しているので、false以外の値を返しても処理中断しません。(同様に処理続行の意味でtrueを返しても意味がありません。)
それでは具体例として簡単なサンプルを紹介します。
検証前イベント
《スクリプト》
$p.events.before_validate_Create = function(args) { // 数値Aが100未満だとエラー if($p.getControl('NumA').val() < 100) { alert('100以上を入力してください。'); return false; } }
《結果》
検証前イベントですので、必須入力チェック前に処理実行していることが確認できます。
数値Aに"100"を入力すると検証前イベントを通過し、必須入力チェックに移ります。
検証後イベント
《スクリプト》
$p.events.after_validate_Create = function(args) { // 数値Aが200未満だとエラー if($p.getControl('NumA').val() < 200) { alert('200以上を入力してください。'); return false; } }
《結果》
検証後イベントですので、必須入力チェック後に処理実行していることが確認できます。
送信前イベント
《スクリプト》
$p.events.before_send_Create = function(args) { if(confirm('本当に登録しますか?') == false){ alert('キャンセルしました。'); return false; } }
《結果》
確認ダイアログが表示し、キャンセルボタンをクリックすると「キャンセルしました」のメッセージが表示することが確認できます。
OKボタンをクリックすると登録されず、作成ボタンクリック前の状態に戻ります。
4/29:レコードの移動先をサイト設定で指定する仕様に変更。(0.49.233)
編集画面の下部に「移動」ボタンがありますが、今までは移動ボタンをクリックすると、移動可能なテーブル全てがプルダウンで表示しました。
今回追加になった機能では移動先を指定する事が出来るようになります。
テーブルの管理に新しく「移動」タブが追加になりました。
移動タブで設定したテーブルが移動ボタンクリック後の移動先として表示します。
5/6:全てのユーザのアクセス許可を使用しないテナント設定を追加。(0.49.229)
4/8に追加になった「全てのユーザ」を使用しないような設定が追加になりました。
「全てのユーザ」は一見便利ですが、場合によってはテーブルごと削除されてしまう可能性もありますので、注意が必要です。
今回追加になった機能で使用しない設定にすれば、誤ったアクセス権を設定するようなミスが未然に防げます。
設定は「テナントの管理」から行います。
未設定時はアクセス権の設定画面で「全てのユーザ」が表示します。
「全てのユーザのアクセス許可を使用しない」チェックONにするとアクセス権の設定画面で「全てのユーザ」が表示されません。
その他
不具合解消やソースコードのリファクタリングなどで13個のアップデートが実施されています。
バージョンアップに追いつけ!
プリザンターは日々進化しつづけて、新しい機能が追加されています。 皆さんの参考になるよう毎週紹介していきたいと思いますので、ご期待ください!
「+読者になる」のお願い
プリザンターの他、C#によるWebアプリ開発もIISの得意とする領域です。今後もプリザンターの機能、拡張スクリプト、ページ追加の研究を進めて行くつもりです。関心のある方、よかったらブログ上部の「+読者になる」をクリックをお願いします!
最後に
IISはプリザンターのスクリプトによるカスタマイズの経験が豊富です。
プリザンター導入に際してカスタマイズをご検討されている方は是非ご相談ください!
またご不明点やご質問などございましたら弊社までお問い合わせください。
プリザンター・マニアックス #5【テーブルの管理を使いこなそう】を開催しました。
IIS主催の「プリザンター・マニアックス #5【テーブルの管理を使いこなそう】」を開催しました。
「プリザンター・マニアックス」 とは?
プリザンターをお使いの方に、もう一歩深く使い方を学ぶ勉強会です!
本勉強会では標準設定から一歩前に進みたい方へ、スクリプトの作成方法やAPI連携など、拡張機能について一緒に学んでみませんか。
今回のテーマ
今回のテーマは初のVol.3です。 以前に開催したVol.1、Vol.2と違う新しい内容での開催となりました。
- リンク・タイトルマニアックス
- ビュー・サイト統合マニアックス
- サマリー・計算式マニアックス など
今回も多くの方に参加頂き、人々のマニアックなプリザンターの話題への関心の高さを実感しました。
今後も新しいコンテンツを充実するとともに、新しくプリザンターの世界へ飛び込んできた方向けにリピート講演も定期的に行って行きます。
今回は初のテーマの区切りでスピーカーを変えてセッションを行いました。
今回も質疑応答でかなり深い話もありました。毎回深い話になってしまい、質疑応答も重要なコンテンツとなっています。
質疑応答の内容を聞けるのもイベントに参加された皆さんの特典です。ぜひ今後開催されるイベントにご参加ください。
今後のIIS主催のプリザンター勉強会
IISでは今後もマニアックなプリザンターの勉強会を企画しています。 イベントは開催が決定したらconnpassサイトで告知・募集いたしますので是非チェックしてください。
Japan IT Week【春】後期、準備完了
明日2019年5月8日(水)~10日(金)の3日間、東京ビッグサイトで開催されるJapan IT Week【春】後期に出展します。
展示会では、当ブログ人気連載「週刊プリザンター」でおなじみの「プリザンター」と、IISの印刷ソリューション「ReportCreate for プリザンター」を展示します。
会場の様子
明日からの開催に向けてブースも万全の準備が整いました。
この広いスペースでプリザンターのパートナー各社とともにプリザンターと関連サービスを展示・紹介します。
IISは向かって左手
向かって左手側のこちらがIISスペースです。
IISは、プリザンターに帳票機能を追加する、印刷ソリューション「ReportCreate for プリザンター」を展示しています。
インストラクターによる製品紹介やデモ環境を用意してお待ちしております。ぜひブースにお立ち寄りください。
出展情報
会 期 :2019年5月8日(水)~10日(金)
開場時間:10:00~18:00(最終日のみ17:00終了)
会 場 :東京ビッグサイト 青海展示棟
出展製品:国産オープンソース「プリザンター」
(https://pleasanter.org/)
帳票印刷ソリューション「ReportCreate for プリザンター」
(http://iis.image-inf.co.jp/solution/reportcreate)
ほか
参加費 :無料 ※入場券もしくは事前来場登録が必要です。
下記のサイトよりお申し込みください
IISのニュースリリース イメージ情報システム株式会社
週刊プリザンター第19号
こんにちは。IISの田口です。 皆さんGWの予定は決まっていますか?
週刊プリザンター第19号です。
4/15~4/21を追いかけます。
4/18:日付のフィルタに範囲指定機能を追加、セッション情報にユーザ領域を追加。(0.49.220)
一覧画面の日付項目が範囲指定に対応しました!
「テーブルの管理」-「フィルタ」で日付項目の「詳細設定」を開くと、『モード選択』という新しい設定項目が追加されています。
デフォルトは「規定」となっています。
モード選択で「範囲指定」を選択、更新した後、一覧画面でその日付項目をクリックすると範囲指定のダイアログが表示します。
ここで、開始(from)、終了(to)を入力し、OKをクリックすると、一覧画面の日付欄に値がセットされるとともに、対象のレコードが検索されます。
開始・終了いずれか片方だけの指定も可能です。
《検索前》
《検索後》
その他
不具合解消やソースコードのリファクタリングなどで7個のアップデートが実施されています。
バージョンアップに追いつけ!
プリザンターは日々進化しつづけて、新しい機能が追加されています。 皆さんの参考になるよう毎週紹介していきたいと思いますので、ご期待ください!
「+読者になる」のお願い
プリザンターの他、C#によるWebアプリ開発もIISの得意とする領域です。今後もプリザンターの機能、拡張スクリプト、ページ追加の研究を進めて行くつもりです。関心のある方、よかったらブログ上部の「+読者になる」をクリックをお願いします!
最後に
IISはプリザンターのスクリプトによるカスタマイズの経験が豊富です。
プリザンター導入に際してカスタマイズをご検討されている方は是非ご相談ください!
またご不明点やご質問などございましたら弊社までお問い合わせください。
週刊プリザンター第18号
こんにちは。IISの田口です。 やっと春らしく暖かくなってきたでしょうか?
週刊プリザンター第18号です。
4/8~4/14を追いかけます。
4/8:全てのユーザを対象とした権限を付与する機能を追加。(0.49.210)
アクセス権限の設定で「全てのユーザ」が追加になりました。
読んで字のごとく全てのユーザに対する設定をすることが出来るのですが、何が便利かというと
「今後新規に追加したユーザに対しても適用される」
ことです。
現状は、登録済みのユーザ、組織、グループから選択したものに対して権限を設定するため、例えば全ユーザに見せたいテーブルなどはユーザを新規追加するたびにアクセス権限の設定を修正する必要があります。
これが「全てのユーザ」に対して権限設定するだけで、ユーザを追加してもアクセス権限の設定を修正する手間が省けます。
4/10:一覧画面のhiddenにColumnNameの一覧を出力する機能を追加。(0.49.211)
一覧画面で表示している項目のColumnNameがhiddenに出力するようになりました。
該当のhiddenのIDは「GridColumns」です。
一覧画面の表示項目のColumnをスクリプトで動的に取得出来るので、一覧画面の表示位置が変わっても正しく処理できるスクリプトを作る場合に有用かと思います。
簡単なサンプルですが、一覧画面表示後イベントでGridColumnsをコンソールに出力した結果は以下のようになります。
《スクリプト》
$p.events.on_grid_load = function(){ console.log($('#GridColumns').val()); }
《実行結果》
4/10:hiddenに表示名と項目名のJsonデータを出力する機能を追加。(0.49.212)
各入力項目の表示名と項目名の対応がJSONデータとしてhiddenに出力するようになりました。
該当のhiddenのIDは「Columns」です。
出力するJSONのレイアウトは
{ "ColumnName": "項目名", "LabelText": "表示名" }
で、これが配列として出力します。
この機能は一覧画面、編集画面のどちらでも有効です。
表示名から項目名を変換する場合などに利用できると思います。
簡単なサンプルですが、表示後イベントでColumnsをコンソールに出力した結果は以下のようになります。
■一覧画面
《スクリプト》
$p.events.on_grid_load = function(){ console.log($('#Columns').val()); }
《実行結果》
■編集画面
《スクリプト》
$p.events.on_editor_load = function(){ console.log($('#Columns').val()); }
《実行結果》
4/10:一覧表のヘッダのdata-name属性にColumnNameを出力する機能を追加。(0.49.213)
一覧画面で表示している項目のColumnNameがヘッダのdata-name属性に出力するようになりました。
簡単なサンプルですが、一覧画面表示後イベントでdata-nameをコンソールに出力した結果は以下のようになります。
《スクリプト》
$p.events.on_grid_load = function(){ console.log($('th[data-name=ClassA]').text()); }
《実行結果》
4/10:一覧画面および編集画面の項目へのアクセスを簡略化するjavascriptを追加。(0.49.214)
今回の目玉の追加機能です。今までの追加機能は全てこの機能に集約されます!
一覧画面および編集画面で各項目へアクセスするためのファンクションが追加になりました。
追加ファンクションは以下の5つです。
// 1. 表示名からColumnNameを取得、ColumnNameを指定した場合もColumnNameを返す $p.getColumnName(name) // 2. 表示名またはColumnNameで編集画面のコントロール要素を取得 $p.getControl(name) // 3. idで一覧画面のtrを取得 $p.getGridRow(id) // 4. idと表示名またはColumnNameで一覧画面のtdを取得 $p.getGridCell(id, name) // 5. 表示名またはColumnNameで一覧画面の列indexを取得 $p.getGridColumnIndex(name)
では、1つずつ簡単に説明します。
1. 表示名からColumnNameを取得、ColumnNameを指定した場合もColumnNameを返す
画面の表示名からColumnNameを取得するファンクションです。
スクリプトを使う方は
・テーブル管理のエディタをみながら 画面の○○は『分類C』だから、ColumnNameは『ClassC』と脳内変換
・開発ツールで「要素の選択」で画面の○○を選択し、ソースから選択する
のどちらかでColumnNameを探し出していると思いますが、このファンクションがあれば、表示名からColumnNameが取得出来ます。
このファンクションは一覧画面、編集画面どちらでも利用可能です。
簡単なサンプルと実行結果です。
■一覧画面
《スクリプト》
$p.events.on_grid_load = function(){ console.log("$p.getColumnName('数値B'): " + $p.getColumnName('数値B')); console.log("$p.getColumnName('NumB'): " + $p.getColumnName('NumB')); }
《実行結果》
■編集画面
《スクリプト》
$p.events.on_editor_load = function(){ console.log("$p.getColumnName('数値B'): " + $p.getColumnName('数値B')); console.log("$p.getColumnName('NumB'): " + $p.getColumnName('NumB')); }
《実行結果》
2. 表示名またはColumnNameで編集画面のコントロール要素を取得
個人的には目玉中の目玉です!!!!
画面の表示名またはColumnNameからコントロール要素を取得出来ます。
今までは
「テーブルは期限付テーブルで、画面の「○○」は分類Cだから、要素セレクタは$('#Issues_ClassC')
っと」
という感じで実装していると思いますが、このファンクションがあれば、表示名もしくはColumnNameだけで値の取得やセットが出来ます。
期限付テーブルか記録テーブルかで$('#Issues_~')
と$('#Results_~')
で意識する必要がありましたが、これを気にすることなく表示名またはColumnNameだけでコントロールにアクセスできます。
また、表示名でコントロールを指定できるところもポイントです。
スクリプトをバリバリ使う方ならColumnNameで実装し慣れていると思いますが、例えば
「画面の表示名を入力or選択させ、選択した項目の値を取得する」
みたいな仕組みが必要になった場合、今までは表示名と要素セレクタの組み合わせをJSON形式や配列などであらかじめ定義しておくような仕掛けが必要だったと思いますが、これからはこのファンクションに表示名を渡すだけで簡単に値を取得することができます。
このファンクションは編集画面でのみ利用可能です。
簡単なサンプルと実行結果です。
《スクリプト》
$p.events.on_editor_load = function(){ // 表示名またはカラム名で編集画面のコントロール要素を取得 console.log("$p.getControl('日付C'): " + $p.getControl('日付C').val()); console.log("$p.getControl('DescriptionD'): " + $p.getControl('DescriptionD').val()); }
《実行結果》
3. idで一覧画面のtrを取得
一覧画面上で表示しているレコードIDからその行(trタグ)をひとまとめに取得出来ます。
trタグの内容をオブジェクトとして取得しますので、取得後はスクリプトで色々加工が必要になるかと。
このファンクションは一覧画面のみで利用可能です。
簡単なサンプルと実行結果です。
■一覧画面
《スクリプト》
$p.events.on_grid_load = function(){ console.log("$p.getGridRow(22393): "); console.log($p.getGridRow(22393)[0]); }
《実行結果》
4. idと表示名またはColumnNameで一覧画面のtdを取得
一覧画面上で表示しているレコードIDと表示名またはColumnNameからその表示項目の値(tdタグ)を取得出来ます。
tdタグの内容をオブジェクトとして取得しますので、取得後はスクリプトで色々加工が必要になるかと。
このファンクションは一覧画面のみで利用可能です。
簡単なサンプルと実行結果です。
《スクリプト》
$p.events.on_grid_load = function(){ console.log("$p.getGridCell(22393, '分類A'): "); console.log($p.getGridCell(22393, '分類A')[0]); console.log("$p.getGridCell(22393, 'DateC'): "); console.log($p.getGridCell(22393, 'DateC')[0]); }
《実行結果》
5. 表示名またはColumnNameで一覧画面の列indexを取得
一覧画面上の列のインデックスを表示名またはColumnNameで取得出来ます。
例えば「○○」という表示の列の背景職を変えたいケースでは、今までは一覧画面の表示位置をあらかじめ決めておかないとCSSで設定しにくかったですが、このファンクションを使えば表示名で列位置が特定できるので、スクリプトでも設定できるようになると思います。
列indexは0スタートです。チェックボックス列のindexが0になります。
このファンクションは一覧画面のみで利用可能です。
簡単なサンプルと実行結果です。
《スクリプト》
$p.events.on_grid_load = function(){ console.log("$p.getGridColumnIndex('状況'): " + $p.getGridColumnIndex('状況')); console.log("$p.getGridColumnIndex('CheckE'): " + $p.getGridColumnIndex('CheckE')); }
《実行結果》
その他
不具合解消やソースコードのリファクタリングなどで1個のアップデートが実施されています。
バージョンアップに追いつけ!
プリザンターは日々進化しつづけて、新しい機能が追加されています。 皆さんの参考になるよう毎週紹介していきたいと思いますので、ご期待ください!
「+読者になる」のお願い
プリザンターの他、C#によるWebアプリ開発もIISの得意とする領域です。今後もプリザンターの機能、拡張スクリプト、ページ追加の研究を進めて行くつもりです。関心のある方、よかったらブログ上部の「+読者になる」をクリックをお願いします!
最後に
IISはプリザンターのスクリプトによるカスタマイズの経験が豊富です。
プリザンター導入に際してカスタマイズをご検討されている方は是非ご相談ください!
またご不明点やご質問などございましたら弊社までお問い合わせください。