昨日のエントリーで
>効率化ってのは価値観と一体のものなのですよ。
との指摘を受け思い出したことがあります。
日本の業務アプリは罫線が不可欠なのはご承知の通りです。
VSに付属のCrystal Reportの苦手とする分野です。Active Reportsなどの汎用印刷ツールにはそこそこの罫線機能は付いててますが制約も多いです。
その時の要望は、請求書の外枠は実線矩形で囲む。上辺の左右の角は90度直角で描画する。最下辺の左右の角は丸みを付けて描画する。というものでした。
OverLayで描画したらいいのでは、簡単に考えていましたが、固定高の枠でなく、有効な明細行の直下に罫線の下段がくるようにする可変サイズの枠が希望とのこと。その際の最下段の線の角のみ角丸にせよとの事。
この実装は難しい。OwnerDrawで描画処理を実装してごちゃごちゃしないと実現できない。
PGからは、「下段だけ角丸にするのは見てくれの問題で業務的には無意味だ。工数を裂く価値があるのか?」と愚痴られ、顧客からは、「現行システムはその様式で請求書を作っている。新システムになって、角丸がなくなるのは、イメージダウンになるので譲れない。」と釘をさされる。
別要求で3桁区切りの"," の位置に薄い縦破線も要求される。....どこで歯止めすべきなんだろうか。
クリスタルレポートを選択したのは選択ミスでした。他の印字ツールでそこまで可能か否かの評価する期間もなく、Print.Documentで作り込んで納品しました。
こういう要望はシステム的な意味は小さいのですが要望度は高いもので、意外と手間の掛かる事でもあったりします。入念な実装を踏まえた打合と双方が納得できる工数設定が必要ですが、顧客の価値に依存する部分なので、コスト見積もりは難しいです。
「なんでそんなに工数がかかるんだ。技術が低いのではないか。」と言われないように応対するのも技術なんでしょうね。
言語で実装するのでなく、Excel/Accessをフロントエンドにして、印刷するほうが、低コストかもしれません。
VBAで実装するのは面白くないのでVSTOになるのかな。COMを使うことになるので.......純な.netアプリにはなりませんね。