FlexGridPrint Me.MSFlexGrid1, , , , , 1
ASKER
ASKER
Private Sub PrintFlexGrid(ByVal ptr As Object, ByVal flx As _
MSFlexGrid, ByVal xmin As Single, ByVal ymin As Single)
Const GAP = 60
Dim xmax As Single
Dim ymax As Single
Dim X As Single
Dim c As Integer
Dim r As Integer
With ptr.Font
.Name = flxData.Font.Name
.Size = flxData.Font.Size
End With
With flxData
' See how wide the whole thing is.
xmax = xmin + GAP
For c = 0 To .Cols - 1
xmax = xmax + .ColWidth(c) + 2 * GAP
Next c
' Print each row.
ptr.CurrentY = ymin
For r = 0 To .Rows - 1
' Draw a line above this row.
If r > 0 Then ptr.Line (xmin, _
ptr.CurrentY)-(xmax, ptr.CurrentY)
ptr.CurrentY = ptr.CurrentY + GAP
' Print the entries on this row.
X = xmin + GAP
For c = 0 To .Cols - 1
ptr.CurrentX = X
ptr.Print BoundedText(ptr, .TextMatrix(r, _
c), .ColWidth(c));
X = X + .ColWidth(c) + 2 * GAP
Next c
ptr.CurrentY = ptr.CurrentY + GAP
' Move to the next line.
ptr.Print
Next r
ymax = ptr.CurrentY
' Draw a box around everything.
ptr.Line (xmin, ymin)-(xmax, ymax), , B
' Draw lines between the columns.
X = xmin
For c = 0 To .Cols - 2
X = X + .ColWidth(c) + 2 * GAP
ptr.Line (X, ymin)-(X, ymax)
Next c
End With
End Sub
' Truncate the string so it fits within the width.
Private Function BoundedText(ByVal ptr As Object, ByVal txt _
As String, ByVal max_wid As Single) As String
Do While ptr.TextWidth(txt) > max_wid
txt = Left$(txt, Len(txt) - 1)
Loop
BoundedText = txt
End Function
ASKER
ASKER
ASKER
Visual Basic is Microsoft’s event-driven programming language and integrated development environment (IDE) for its Component Object Model (COM) programming model. It is relatively easy to learn and use because of its graphical development features and BASIC heritage. It has been replaced with VB.NET, and is very similar to VBA (Visual Basic for Applications), the programming language for the Microsoft Office product line.
TRUSTED BY
try this code: Print a FlexGrid control's data