シェルスクリプトで業務システムを作れるというが、それならシェルスクリプトやTukubai を使って帳票を作ることはできるのか?できるなら例を見せてもらいたい。帳票というからには数値計算だけではなく、きちんとした見た目にレイアウトするところまで面倒を見てもらわないと困る。
勿論できる。テキストファイル(スペース区切り)の各種テーブルが用意されていれば*1、Tukubai コマンドを使って既存のリレーショナルデータベース(RDB)でできるデータの加工は概ねできる。
加工されたデータはテキストデータになっているため、引き続き、スペース調整や罫線挿入を施すことで、レイアウトを整えることまでできる。
*1 本レシピでは割愛するが、スペース区切りになっていない生データ( 例えばログファイル等) をそのように加工するのもTukubai で行っている。
■ サンプルプログラム
全国のスーパーから集めた売上に関するデータテキストと、その他4 つのマスターデータ(商品所属部門対応表、部門名表、店舗所在地域対応表、地域名表)テーブル群のテキストファイルを元データとし、ある一週間における、地域別・商品部門別の商品販売数の帳票を作成してみる。
元データは次の通り、いずれもスペース区切りのテキストデータである。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
0001 0000007 20071201 117 8335 -145 0001 0000007 20071202 100 7821 -130 0001 0000007 20071203 103 6012 -115 0001 0000007 20071204 104 6341 -120 0001 0000007 20071205 102 6165 -135 0001 0000007 20071206 106 7201 -125 0001 0000007 20071207 108 6033 -115 0001 0000007 20071208 132 6106 -100 : : 列構造(左から順に) 1.店コード 2.商品コード 3.日付 4.売数 5.売上高 6.値引高 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
0000007 001 0000017 001 0000021 002 0000025 002 0000027 001 0000030 001 0000043 001 0000045 002 0000047 001 : : 列構造(左から順に) 1.商品コード 2.部門コード |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
001 野菜 002 果物 003 魚介類 004 肉類 005 調味料 006 乾物その他 007 米 008 和風冷蔵 009 菓子 010 飲料 011 酒類 列構造(左から順に) 1.部門コード 2.部門名 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
0001 1003 0002 1005 0003 1003 0004 1007 0005 1002 0006 1005 0007 1003 0008 1005 0009 1003 : : 列構造(左から順に) 1.商品コード 2.部門コード |
1 2 3 4 5 6 7 8 9 10 |
1001 北海道 1002 東北 1003 関東 1004 中部 1005 近畿 1006 中四国 1007 九州 列構造(左から順に) 1.地域コード 2.地域名 |