como imprimir un MSFlexgrid

harold
05 de Mayo del 2003
como imprimo un MSFlexgrid.
he creado un boton con las ordenes para imprimir pero no imprime como puedo hacer si tienen un ejemplo porfa mandenmelo o un codogo de como hacer esto.

lsanta
05 de Mayo del 2003
Sub Grid_Print(grid As Control)
Dim tppx As Integer
Dim tppy As Integer
tppx = Printer.TwipsPerPixelX
tppy = Printer.TwipsPerPixelY
Dim Col As Integer
Dim Row As Integer
Dim x0 As Single
Dim y0 As Single
Dim x1 As Single
Dim y1 As Single
Dim x2 As Single
Dim y2 As Single

x0 = Printer.CurrentX
y0 = Printer.CurrentY

If grid.BorderStyle <> 0 Then
Printer.Line -Step(grid.Width - tppx, grid.Height - tppy), , B
x0 = x0 + tppx
y0 = y0 + tppy
End If
x1 = x0
For Col = 0 To grid.Cols - 1
If Col >= grid.FixedCols And Col < grid.LeftCol Then
Col = grid.LeftCol
End If
If x1 + grid.ColWidth(Col) >= grid.Width Then Exit For
y1 = y0
For Row = 0 To grid.Rows - 1
If Row >= grid.FixedRows And Row < grid.TopRow Then
Row = grid.TopRow
End If
If y1 + grid.RowHeight(Row) >= grid.Height Then Exit For
Printer.CurrentX = x1 + tppx * 2
Printer.CurrentY = y1 + tppy
grid.Col = Col
grid.Row = Row
Printer.Print grid.Text
y1 = y1 + grid.RowHeight(Row)
If grid.GridLines Then
y1 = y1 + tppy
End If
Next
x1 = x1 + grid.ColWidth(Col)
If grid.GridLines Then
x1 = x1 + tppx
End If
Next
If grid.GridLines Then
x2 = x0
y2 = y0
For Col = 0 To grid.Cols - 1
If Col >= grid.FixedCols And Col < grid.LeftCol Then
Col = grid.LeftCol
End If
x2 = x2 + grid.ColWidth(Col)
If x2 >= grid.Width Then Exit For
Printer.Line (x2, y0)-Step(0, y1 - tppy)
x2 = x2 + tppx
Next
For Row = 0 To grid.Rows - 1
If Row >= grid.FixedRows And Row < grid.TopRow Then
Row = grid.TopRow
End If
y2 = y2 + grid.RowHeight(Row)
If y2 >= grid.Height Then Exit For
Printer.Line (x0, y2)-Step(x1 - tppx, 0)
y2 = y2 + tppy
Next
End If
End Sub