dbSheetClient格闘編(3)

2021年8月2日

ご飯を炊いたことがない。
お茶も入れたことがない。
「男子厨房に入らず」の典型だった筆者も、コロナ禍の巣ごもり生活で、遅ればせながら台所デビューしました。
料理を体験するプロセスで、ほんのひと手間を加える、ちょっと盛り付けに工夫することで、印象がまるで変わってしまうことにワクワクしています。
「料理は科学であり、科学には実験が重要です。」と開き直って、失敗の山を築いています^^;

素材であるところのCSV
条件を指定して抽出したレコードをCSV形式でダウンロードできるシステムがあります。
筆者が所属していた会社の基幹システムがそうでした。
また、サイボウズ社の「デヂエ」や「Kintone」もそうです。
CSVファイルの魅力は、ユーザーがデータをExcelで自由に加工して再利用できることです。
しかし、ユーザーにとって、加工や加工後の処理に余計な手間がかかることもあります。
すなわち、書式の変更やファイル名を付けて保存です。(Excel形式で保存しないと変更した書式が保持されない)
下記の売上データテーブルを例にすると、列幅の調整や金額を桁区切り、罫線を引く、オートフィルタをかける等がよくある加工ではないでしょうか。
dbSheetClientはExcelとの親和性に優れているので、これらの加工をあらかじめ施し、ユーザーが余計な手間をかけずに抽出したデータを活用できるよう試行錯誤を繰り返しました。

さらばマクロ
当初は、手作業で行なう加工をマクロで処理していました。
プログラム初心者の筆者にはExcelの「マクロ記録」機能が重宝しました。
加工手順からマクロ記録して、生成されたソースコードを修正する方法です。
dbSheetClientからは、タスクタイプ「マクロ実行」にて、マクロプログラムを指定します。
マクロの利点は処理速度が若干速いこと、複雑な処理の場合、タスクや変数演算の数を抑えることが可能です。
しかし、システム改訂時のメンテナンス性や継承を考慮すると、極力マクロは使わないほうがよいのではと考えるようになりました。
後に、dbSheetClientのバージョンアップで「プロジェクト変数」やタスクタイプ「変数演算」が追加されました。
これらの新機能のお陰で、ほとんどマクロを使わなくもシステム開発できるようになりました。

dbSheetClientによる盛り付け
下記にdbSheetClientで展開されたデータ一覧の加工例並びに加工手順をご紹介します。
書式を見やすく整えると同時にオートフィルタをかけることにより、抽出後もユーザーがデータ分析できます。
書式をコピーした後に、レコードを展開することがポイントです。(この作法も最初はわからなかった^^;)

仕上げのひと手間
dbSheetClientは、抽出データをExcel形式で保存することができます。
これが何気に便利なのです^^
タスクタイプ「保存」では、「売上データ(2021-04-19).xlsx」のように識別できるファイル名が自動的に付けられるようにしておくとユーザーが喜んでくれます。
システム変数「サーバー時刻」(SYS_Server_Time)から当日日付を抽出

「保存」タスクを実行すると、保存ファイル名がセットされています。
ユーザーは保存ボタンをクリックするだけでOK

皆さん本日もお疲れ様でした!
おやすみなさい(挙手)