QReportでStringGridのような罫線付の表を作るには?

解決


倉庫番  2006-04-18 22:31:51  No: 21096

QRBand(rbDetail)にQRShape(Rectangle)を並べて表をつくってみましたが、罫線がずれてしまいます。QReportで表をつくるのはどうすればいいのですか?


HOta  2006-04-18 22:55:16  No: 21097

QReportだと、この方法しかないでしょうね。
罫線をプログラムで位置指定すればそれらしくなります。


倉庫番  2006-04-19 04:04:44  No: 21098

HOta様、ありがとうございました。
Raveなら簡単にできるかも?と読みました。
が、気が重い・・


beagle  2006-04-20 01:14:02  No: 21099

解決になっているようですが...
1)QRShape(Rectangle)を並べて表をつくって
2)罫線がずれて
この2つが意味不明です。
質問者がやりたい「StringGridのような罫線付の表」とはこういう事か?
┏━━━┳━━┳━━┳━━┓
┃出身地┃苗字┃名前┃性別┃
┣━━━╋━━╋━━╋━━┫
┃東京都┃稲垣┃拓哉┃男性┃
┣━━━╋━━╋━━╋━━┫
┃沖縄県┃島袋┃仁絵┃女性┃
┗━━━┻━━┻━━┻━━┛
こちらでは普通にできている(と思う)。
    ##QRShape(Rectangle)を並べて##
        はいませんが
表の中身はTQRxxとTQRDBxxが混在しているが、Excelの表と同程度には
罫線がそろっていると思う。
質問者は上記1)と2)、ついでに環境等(プリンタも含めて)について
今少し詳細に説明してはどうだろう?
有効な助言が返せるかもしれない。


倉庫番  2006-04-20 04:50:59  No: 21100

beagle様ありがとうございました。
説明能力の欠如を痛感しているところですが、せっかくの御申し入れですのでtryしてみます。

>QRShape(Rectangle)を並べて表をつくって

QRBand(rbDetail)にQRShape(Rectangle)を4個、height をそろえて横につなげて配置します。
BandとShape は height が同じです。
各セルにQRDBTextに配置し、program 実行時にdatabase の recordのfieldを設定し、previewすると列数が4、行数がrecord数の罫線付の表が表示されます。

>罫線がずれて

この表は、top とbottom を除くhorizontal line が2回描画されますので、preview時に二重線となることがあります(ならないこともあります。微妙)

環境:Delphi7-pro,WinXp-home


ん?  2006-04-20 17:27:01  No: 21101

自分がよくやる方法

DetailBand部には、横罫線を一本配置
行としての上罫線か下罫線かは、状況によって変えています。

縦線は、DetailBandではなく、TQuickRepに直接貼り付け
qrsRectangleではなくqrsLeftLineやqrsVertLineで使用することが多いです。

これで、二重に線を書くことはありません。
罫線の位置あわせの調整は面倒ですけど。

一般コンポーネントのプロパティであるTop,Left,Width,Heightでなく、Sizeプロパティの
Top,Left,Width,Heightを変更するのが微調整のコツ・・・らしい。


beagle  2006-04-21 03:38:06  No: 21102

確認するけど、
質問者は↓このようなQRShape(Rectangle)を作って
┏━━━┓
┃○○○┃
┗━━━┛
↓このように4つ(仮に)並べてQRBand(rbDetail)に貼り付けた。
┏━━━┓┏━━┓┏━━━━┓┏━┓
┃○○○┃┃△△┃┃□□□□┃┃×┃
┗━━━┛┗━━┛┗━━━━┛┗━┛
で、4つのQRShape(Rectangle)を、隙間なくぴったりくっつけた。
↓このような表示を期待している。
┏━━━┳━━┳━━━━┳━┓
┃○○○┃△△┃□□□□┃×┃
┣━━━╋━━╋━━━━╋━┫
┃○×△┃△□┃○×△□┃×┃
┗━━━┻━━┻━━━━┻━┛
が、↓このようになる「事がある」のかな?
┏━━━┳━━┳━━━━┳━┓ 
┃○○○┃△△┃□□□□┃□┃ 
┣===╋==╋====╋=┫ 
┃○×△┃△□┃○×△□┃×┃ 
┣===╋==╋====╋=┫ 
┃○×△┃△□┃○×△□┃×┃ 
┗━━━┻━━┻━━━━┻━┛ 
>preview時に二重線
previewだけなら特に問題ないと思うが、印刷するとどうなっているのかな?
1)印刷でも二重線になることがある。
2)線が太くなる場合がある。
3)それ以外の問題がある。

・・・  ん?  さんの答えは私と同じ方法かと思ったけど、
>縦線はTQuickRepに直接貼り付け
これが私には良くわからないです。
>行数がrecord数の罫線付の表
に対応するためには、レコード数に応じて縦線の長さを変えなければ
ならないのでは?    という気がしますが。


倉庫番  2006-04-21 19:15:50  No: 21103

DatailBandにShapeのHorizontalLine1本とRightAndLeftを組み合わせて、おおむね満足できるものが出来ました。
ん?様、beagle様、ありがとうございました。


ん?  2006-04-21 20:03:33  No: 21104

すでに解決されたようですが。。。

> >縦線はTQuickRepに直接貼り付け
> これが私には良くわからないです。

QRShapeの親が、QRBandではなく、QuickRep(QRフォーム?)です。
行としての縦罫線でなく、ページとしての縦罫線・・・説明むずい。

わかりにくいかもしれませんが、それぞれのバンドに罫線を貼り付けるのが
1)みなさん(?)の方法
┏━━━┳━━┳━━━━┳━┓
┃      ┃    ┃        ┃  ┃へっだー
┣━━━╋━━╋━━━━╋━┫
┃      ┃    ┃        ┃  ┃でぃているばんど
┣━━━┻━━┻━━━━┻━┫
┃                          ┃
┃        TQuickRep         ┃
┃                          ┃
┃                          ┃
┃                          ┃
┗━━━━━━━━━━━━━┛

2)自分の方法
┏━━━━━━━━━━━━━┓
┃                          ┃へっだー
┣━━━━━━━━━━━━━┫
┃                          ┃でぃているばんど
┣━━━┳━━┳━━━━┳━┫
┃      ┃    ┃        ┃  ┃
┃      ┃    ┃        ┃  ┃
┃      ┃    ┃        ┃  ┃
┃      ┃    ┃        ┃  ┃
┃      ┃    ┃        ┃  ┃
┗━━━┻━━┻━━━━┻━┛
設計時の見た目なのですが、バンドの後ろに縦罫線が隠れています。

実行結果
1)行データのある部分しか縦罫線が表示されない
┏━━━┳━━┳━━━━┳━┓
┃○○○┃△△┃□□□□┃×┃
┣━━━╋━━╋━━━━╋━┫
┃○×△┃△□┃○×△□┃×┃
┣━━━┻━━┻━━━━┻━┫
┃                          ┃
┃                          ┃
┃                          ┃
┃                          ┃
┃                          ┃
┗━━━━━━━━━━━━━┛

2)横罫線だけが行データ分表示される。
┏━━━┳━━┳━━━━┳━┓
┃○○○┃△△┃□□□□┃×┃
┣━━━╋━━╋━━━━╋━┫
┃○×△┃△□┃○×△□┃×┃
┣━━━╋━━╋━━━━╋━┫
┃      ┃    ┃        ┃  ┃
┃      ┃    ┃        ┃  ┃
┃      ┃    ┃        ┃  ┃
┃      ┃    ┃        ┃  ┃
┃      ┃    ┃        ┃  ┃
┗━━━┻━━┻━━━━┻━┛

> >行数がrecord数の罫線付の表
> に対応するためには、レコード数に応じて縦線の長さを変えなければ
> ならないのでは?    という気がしますが。
気がするではなく、その通りです。
うちは、余白が気になる人が多くて、縦罫線はページ全体に入れる仕様なんです(^^ゞ


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加