見出し画像

Exmentで作る帳票〜苦労したタイムスタンプを添えて〜

前回たくさんの課題をもらって終了した説明会。ひとまず、やるべきことを確認します。
その結果、⑴帳票の印刷⑵タイムスタンプに取り組むことになりました。

exment.net/what

Exmentの帳票印刷を作成する方法は2つあります。
一つは提携のクラウド帳票サービス「Docurain」をつかってPDF印刷する方法。もう一つがプラグインを使ってExcel出力する方法です。前者は従量課金制なので今回は後者で作成をしました。
やり方はマニュアルに書いてあるconfig fileをメモ帳にコピーします。(かなり独学なので非効率かつ間違ったやり方をしているかもしれません!)

{
plugin_name": "PluginDemoDocument",
"uuid": "1e7881d0-324f-11e9-b56e-0800200c9a66",
"plugin_view_name":
"Plugin Document",
"description": "ドキュメント出力を行うテストです。",
"author": "(Your Name)",
"version": "1.0.0",
"plugin_type": "document",
"filename": "見積書_${ymdhms}",
"target_tables": "estimate",
"label": "見積書出力",
"icon": "fa-files-o",
"button_class": "btn-success"
}

uuidを以下のリンクから作成して、上記3行目にコピペします。
(uuidとは、ざっくりいうと「いつでも作れて、しかも世界の誰とも重複しないID」のことです!)

そして次にエクセルで出したい帳票を作ります。私は元々紙回覧されていたフォーマットをそのまま使うことにしました。見慣れたものの方がいいという方が多いし、用意も簡単。そして重要なのは変数です!!!
呼び出したいテーブルのカラム名(列名)を利用して、
${value:(カラム名)}
と記述します。
ここまではさくさく簡単だったのですが、次の作業は少し難題でした。
そう、タイムスタンプ!
いや、Exmentはきちんとステータスとステータスが移行した時の時間を記録するテーブルを持っています。なのでそのテーブルからひっぱてくればいいやと思っていたのですが、まだ、そういった内部テーブルから数値をひっぱてくる設定はないことがわかりました(実装待ってます!)
そうするとフローの次の作業者の名前もどうとってくるか、課題となります。(同様に内部テーブルから取ってこようと思っていたので…)

調べた結果、ちょっとカッコ悪い方法に落ち着きました。
まずは次の作業者の取得方法について。
変数で持って来れるカラムはどうやら該当テーブルに表記されているカラムのみ(違うテーブルも取って来れるようですが、カラムの、どの情報という指定の仕方がいまいちわかりません…)。なので帳票に表示させたい情報かつ申請者には見せたくないカラムは隠しテーブルとして配置します。

私は次の作業ユーザーをユーザーテーブルに直接記入していました。
例)上司1、上司2
なのでこの情報を隠しテーブルとして配置し、データを自動取得してくるように設定しまいた。ちょっとカッコ悪いけど、これで次の作業者の情報はとって来れます。

つぎに作業時間です。
これはさっきの作業者が作業した時間を自動取得して記録するカラムを隠しテーブルとして配置しました。
これは自動更新機能を使ったのですが、自動更新の条件がいまいちフィットせず今回はボタンを押した時間を記録する設定にしてあります。つまり、記録ボタンを押してもらう一手間があるのであんまり良くない…(押し忘れがあると時間が取れない。これは要改善です)
ひとまずこれでGoサインをもらいました。

書いてみるとえ、何をあんなに迷ったの?というくらい簡単で拍子抜けしちゃうなぁ。
そんなこんなで帳票はこれにて終わりです

この記事が気に入ったらサポートをしてみませんか?