コンピュータ環境 (2002/02)

最初の書き込みへ

基本の環境はこちら

2002年01月の環境
2002年03月の環境
戻る


時系列・環境の変遷


 

2002/02/22 (Friday)
VB Tips のデータベース化、終了

 というわけで、めでたく ACCESS mdb に格納しました。まあ40かそこらですから今は簡単です。
 少しずつ増やしていきたいとは思っていますが、テニスの王子様じゃないけど「まだまだだね」の世界で((汗))

2002/02/20 (Wednesday)
今度は VB Tips をデータベース化進行中

 というわけで、まだ大した量ではないページですが、ちょっちがんばってみようかな、と思って。
 いや、いろいろとリンクいただいているようで、こちらも「ペットと同伴旅行」同様入り口よりアクセスが多いので。
 つくづくウケ狙いな性格だなあ、と嘆息。

 暇をみつけてせこせこやってますが、しうまつには完成することでしょう。まあ、みばはできるかぎり今まで通りにしますので、気がつかない向きも多いのではないかと想像します(苦笑)。
2002/02/22へ

2002/02/18 (Monday)
SPAMが来ない

 何があったのかしりませんが、せんしうの金曜日を境にSPAMがぱったりとにうでんしなくなりました。
 それまでは毎日最低1通、多い日は4通から5通受信する日もあったりしたのですが、どうしたのでしょうか。
 まあ、ほしくもないメールですから来ないにこしたことはないのですが、一方で受信したメールを晒しものにして笑い飛ばすというあくらつなページも持っている身にしてみれば、なんだか残念な気もします。

 実は、来ていた SPAM のほとんどが同一のサイトからのものだったので、そのあまりのしつこさと悪質さに、メール爆弾でも送りつけてやろうかとか一時は真剣に地下に潜って使えそうなサイトを捜したりもしていたのです。
 おおかた同じことを考えた人がいたのではないかと想像します。
 しかし、もしその想像が当たっていたとしたら、いったいどれくらいこっぴどくやられたんだろうと興味津々。なにしろあれだけの数をたれ流していたメールを一切停止したくらいですから。
2002/02/20へ

2002/02/12 (Tuesday)
ACCESS レポートの怪

 今日も SPAM が来ないのでこんなもの書いていますが。
 なんだか、SPAM が来ないときばかり書いているような気もしたりして。まあ、いいけど。

 金曜日に ACCESS レポートを書いていたのです。レイアウトがそこそこのできで取れ、最後にデータのしぼり込みというところでつまずきました。
 プログラムで SQL の Where 句を生成しているのですが、Debug でモニタするかぎり正確にできているはずなのに、レポートをプレビューすると全件対象になっているのです。
 これには頭をかかえました。

 金曜日は急用があってレポートはうっちゃっといて帰宅したのですが、連休があけてあらためて仕切りなおしかとうつうつとした気分でレポートを開いてみたところ、しらっと Where 句を反映した内容になっているではないですか。
 わたし、なんにもしてないんですよ、3日間ほったらかしにしておいただけで…
 しうまつになにがあったんだろう…きっとなにか恐ろしいことがあったんだ、ということで検収しました。

 パソコンの奥の深さを垣間見たしうまつでした。
2002/02/18へ

2002/02/10 (Sunday)
青色申告

 いつもの憂鬱な季節がやってきました。まあ、実際の書類は税理士の先生に作成してもらうので、こちらは伝票をまとめておけばいいのですが、いざ帳票を印刷しようとしたら実行時にエラーを引き起こします。
 そういえば去年もこのレポートの印刷時にエラーを起こしていたよね、とか思い出してももう遅い(笑)。
 伝票は自作の VB プログラムをインターフェイスにして ACCESS mdb に蓄積し、レポートは Crystal Report で印刷しているのですが、なんだか分からないがこの Crystal Report がロードできないとか言われて。
 去年は時間がなくて ACCESS のレポート機能を使って間に合わせのレポートを印刷したんだったとか回想にふけったり。
 で、今年はどうするんだい?と自問自答し、ACCESS のレポートを作ってみたりしたんだけど、結局 Crystal Report で新しいレポートを作りなおすことにしてけりをつけました。
 バックアップからもどすことも考えたけど、なにせこわれて一年以上たっているわけで、これではこわれていない頃のバック・アップなんてもう見つけられないとあきらめました。簡単なレポートだし。
 なんのかんのと言いながら結局作ってしまうあたりが職人の悲しさかね。
2002/02/12へ

2002/02/07 (Thursday)
続・四捨五入の丸め誤差

 昨日の件、「さあできた」と喜んで残りのレポートの修正もくわえていたら、ユーザー様から「今度は普通(金額プラス)の伝票が1円ちがいますぅ」と抗議の声。あわてて確かめてみると、ううむ確かに違う…なんでやねん、一応検証した『つもり』…はっ、端数のでない、きりのいい額だったかも((汗))
 てなわけでおろおろと考えなおすのですが、CR は運転中の中断デバッグモードがないのがつらい。
 なんだかんだと試行錯誤をくり返し、以下のような関数に落ち着きました:

if {売上金額} > 0 then
     round({売上金額} * 0.05 - 0.5)
else if {売上金額} < 0 then
    0 - round(abs({売上金額}) * 0.05 - 0.5)
else
    0;

 なんのことはない、プラス、ゼロ、マイナスの全部の条件を確かめないとちゃんとした値にならないという( ゚д゚)ポカーンな関数。
 アホか、と<わたし

 それでも、正しい値になるし、まいっかぁ、と現実逃避。でもって10数本のレポートを全部手直し。
 いや疲れました。

 つうかさ…
 今この関数、一歩さがって眺めると…
 数量マイナスのとき以外は、データベース上の数字正しいわけだしい…あわわ、あわわ^;)
2002/02/10へ

2002/02/06 (Wednesday)
四捨五入の丸め誤差

 仕事の話ししましょう。
 伝票発行システムがあります。っていうか、もともとは当社の基幹システムになるはずだったのが、インストールしてみたら使い勝手が悪くて遅くてバグだらけでという三重苦の腐れシステムで、結局伝票発行以外には使っていないという呪われたシステムです。
 画面入力したデータを SQL-Server に蓄積して、Crystal Report で印刷します。
 普通に使うぶんにはなんとかなっているのですが、イレギュラー処理をしようとすると牙をむくのがこの手の腐れシステムの常。
 返品です。返品するときは、数量をマイナスで入力、単価はプラスですから金額はマイナスになります。
 で、消費税。この、端数処理。
 画面表示はいいんです、きちんと四捨五入してくれます。
 問題はこの画面データを確定したあと。
 画面データはデータベースに格納されます。このとき、どういうわけかせっかく計算した消費税額を再計算しているらしいのです。しかも、その再計算に使用している関数が、画面表示に使用している関数と別物らしい。
 金額によって1円狂うんですな、これが(笑)。
 マイナス値の四捨五入は、プラスのときと違う処理が必要なのに、これを考慮しないでお仕着せの関数を使うと期待した結果が得られないのです。

 で、Crystal Report で伝票印刷です。つまり、データベース内の消費税額フィールドは使っちゃいかん、と。再計算だ、と。
 CR の丸め関数は、Round だけです。これは、四捨五入関数です。プラスのときはきちんと動きます。マイナスだときちんと狂います(苦笑)。
 さてそういうときはどうするかというと、昔の BASIC のときのように、自分で関数を作るわけです。切り捨て関数がありませんので、これもなかなか大変でした。で、結局 :
0 - round(abs({売上金額}) * 0.05 - 0.5)
 という式をでっち上げて逃げました。たぶんこれで大丈夫。

 問題は、部門ごとに作ってある伝票印刷の CR を延々と修正していかなきゃなことだけなんだな…
2002/02/07へ

最初に戻る
戻る