VB-Report で罫線が消せない!・・・と悩んだが

今日、VB-Report を使った帳票出力プログラムを書いていた時の話。

色々帳票内の編集をした後で、例えば

For y As Integer = aaa To bbb
For x As Integer = ccc To ddd
Report.Cell("**Hoge", x, y - 1).Attr.LineBottom(VBReport8.BorderStyle.None, xlColor.Auto)
Report.Cell("**Hoge", x, y).Attr.LineTop(VBReport8.BorderStyle.None, xlColor.Auto)
Next
Next

みたいにして、余分な罫線を消している。

ちょっと説明すると、帳票デザイン時には「全行出力された」状態で、つまり全ての罫線が表示された形でテンプレートの Excel シートを作成している。
そのため、プログラムでデータのセットを行った後、最後に不要な(データが出力されていない)部分の罫線を消しているのである。
具体的には「消す」というより、「透明な線で罫線を上書きする」という感じだが。

で、実際にその罫線がデザイン時に「そのセルの上枠の線」として引かれたか「下枠の線」として引かれたかプログラム内ではわからないので、「1つ上のセルの下枠の線(LineBottom)」と「そのセルの上枠の線(LineTop)」の両方を消しているわけだ。

なのに、消えないのである。

まあ、よくあるミスとして、プログラム内で動的にセルを指定するので、全然間違ったセルに処理をしているとか、そういうことがあるんだけど、今回はそうではない。
位置はばっちり合っているのに消えないのである。

悩みましたよ・・・
VB-Report の情報をググったり。
横向きの罫線の位置は LineBottom か LineTop しか指定できないので、これで駄目ならどうしようもない。
試しに、BorderStyle.Hair で赤色の線を引いてみたけど、消せない罫線の上だけ赤色にならないのである。

こればっかりやってたわけじゃないんだけど、結局解決に 2時間かかりましたぜ(^^;

解決方法は、「テンプレートの Excel シートの罫線を引き直す」です。
つまり、原因はわかんなかった(^^;;;
でも、一旦 Excel 上で罫線を消して、もう一度同じ位置に「下枠の線」として罫線を引いてやると、ちゃんと消すことができるようになった・・・むーん・・・

まあ、原因はわからないけど、そういう時は「テンプレートを作り直せ」ということがわかったからいいかな(^^;(もう、このプログラム、制作が 4日遅れてるんですけど・・・(^^;)

トラックバック(0)

このブログ記事を参照しているブログ一覧: VB-Report で罫線が消せない!・・・と悩んだが

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3298

コメントする

このブログ記事について

このページは、shinodaが2015年1月30日 21:06に書いたブログ記事です。

ひとつ前のブログ記事は「ありゃ、また野菜かき揚げになったか・・・」です。

次のブログ記事は「今日は中山湖の清掃だったようだ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら