|
▼takataka さん:
>あるテーブルを元にレポート出力します。但しテーブルデータが1行しか無いにも関らず
>行が15行分表示したい。但し連番はついていません。
>何方かご返答お願い致します。
レポートのクラスモジュール画面に次の様なプロシージャを書いて下さい。
Private Sub Report_Page()
Dim a, b, c As Integer
c = 182
'レポートで指示する単位を指定します詳細はScaleModeにカーソルを合わせF1キーを押して下さい
Me.ScaleMode = 6
'1ページと2ページでライン位置を変更するため分けています
If Me.Page = 1 Then
'ラインメソッドを使って線を引きます詳細はLineにカーソルを合わせF1キーを押して下さい
Me.Line (0, 0)-(245, c), RGB(255, 0, 0), B
'線の太さを指定します
Me.DrawWidth = 1
'縦のラインを引きます
Me.Line (47, 15)-(47, c), RGB(0, 0, 0)
Me.Line (75, 15)-(75, c)
Me.Line (115, 15)-(115, c)
Me.Line (210, 15)-(210, c), RGB(0, 255, 255)
'横のラインは等間隔なのでForNext関数を使って22ミリより5ミリ間隔で31本のラインをひきます
For a = 0 To 31
b = a * 5 + 22
Me.Line (0, b)-(245, b), RGB(255, 0, 255)
Next a
Else
'2ページ以降の設定です
Me.Line (0, 0)-(245, c), RGB(255, 0, 0), B
Me.DrawWidth = 1
Me.Line (47, 0)-(47, c), RGB(0, 0, 0)
Me.Line (75, 0)-(75, c)
Me.Line (115, 0)-(115, c)
Me.Line (210, 0)-(210, c), RGB(0, 255, 255)
For a = 0 To 34
b = a * 5 + 7
Me.Line (0, b)-(245, b), RGB(255, 0, 255)
Next a
End If
End Sub
これでレポートに自由に線の色、太さを指定して線が引けます
参考までに円を描く時はCircleメソッドを使います。次のプロシージャで円と線を描きます。
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
Me.ScaleMode = 7
Me.DrawWidth = 1
Const conPI = 3.14159265359
' 円を描きます。
Me.Circle (14.5, 10), 9
Dim i, j, X1, X2, Y1, Y2, c As Integer
For i = 0 To 23
X1 = 14.5 + 9 * Cos(i * 15 * conPI / 180)
Y1 = 10 - 9 * Sin(i * 15 * conPI / 180)
For j = i + 1 To 23
X2 = 14.5 + 9 * Cos(j * 15 * conPI / 180)
Y2 = 10 - 9 * Sin(j * 15 * conPI / 180)
c = c + 1: If c >= 15 Then c = 0
Me.ForeColor = QBColor(c)
Me.Line (X1, Y1)-(X2, Y2)
Next j
Next i
End Sub
一度試して見て下さい。
|
|