在Access报表中实现圆角的矩形
下面的代码可用于在报表实现圆角的矩形
调用方式:在报表的节的Format事件或页的Page事件中调用
'Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
' RoundCornerBox 4000, 6000, 100, 200, 300, Me
'End Sub
原作者:未知
翻译:tmtony(access/Office中国)
创建一个新模块,添加如下代码
Sub RoundCornerBox( _
lngWidth As Long, _
lngHeight As Long, _
lngTop As Long, _
lngLeft As Long, _
lngRadius As Long, _
rptReport As Report)
Dim sngStart As Single
Dim sngEnd As Single
Dim dblPI As Double
dblPI = 3.14159265359
'左上角
sngStart = 2 * dblPI * 0.25 ' Start of pie slice.
sngEnd = 2 * dblPI * 0.5 ' End of pie slice.
rptReport.Circle (lngLeft + lngRadius, _
lngTop + lngRadius), _
lngRadius, vbBlue, sngStart, sngEnd
'上边线条
rptReport.Line (lngLeft + lngRadius, lngTop)- _
(lngLeft + lngWidth - lngRadius, lngTop)
'右上角
sngStart = 2 * dblPI * 0.000001
sngEnd = 2 * dblPI * 0.25
rptReport.Circle (lngLeft + lngWidth - _
lngRadius, lngTop + lngRadius), _
lngRadius, vbBlue, sngStart, sngEnd
'右边线条
rptReport.Line (lngLeft + lngWidth, _
lngTop + lngRadius)- _
(lngLeft + lngWidth, _
lngTop + lngHeight - lngRadius)
'右下角
sngStart = 2 * dblPI * 0.75
sngEnd = 2 * dblPI
rptReport.Circle (lngLeft + lngWidth - _
lngRadius, lngTop + lngHeight - lngRadius), _
lngRadius, vbBlue, sngStart, sngEnd
rptReport.Line (lngLeft + lngRadius, _
lngTop + lngHeight)- _
(lngLeft + lngWidth - lngRadius, lngTop + lngHeight)
'左下角
sngStart = 2 * dblPI * 0.5
sngEnd = 2 * dblPI * 0.75
rptReport.Circle (lngLeft + lngRadius, _
lngTop + lngHeight - lngRadius), _
lngRadius, vbBlue, sngStart, sngEnd
'右边线
rptReport.Line (lngLeft, lngTop + lngRadius)- _
(lngLeft, lngTop + lngHeight - lngRadius)
End Sub