IMPRIMIR UM FLEXGRID

WEBIER 21/02/2010 16:32:40
#334971
Tem como imprimir um flexgrid inteiro?

são 4 colunas

seria a impressão do cabeçalho e dos conteudos desssas 4 colunas?

como seria?
RENNERFERNANDES 21/02/2010 16:37:55
#334973
Resposta escolhida
como quando eu imprimi no tamanho normal saiu muito pequeno eu transfiro para uma flex oculta com tamanho maior...para poder realizar a impressão tá ai o código:

Dim PaginaInicial, Paginafinal, numerodecopias, I
Dim maxgrid As Integer
For x = 1 To flexGrade.Rows - 1
If flexGrade.TextMatrix(x, 0) = [Ô]1º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]2º[Ô] Or _
flexGrade.TextMatrix(x, 0) = [Ô]3º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]4º[Ô] Or _
flexGrade.TextMatrix(x, 0) = [Ô]5º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]6º[Ô] Or _
flexGrade.TextMatrix(x, 0) = [Ô]7º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]8º[Ô] Or _
flexGrade.TextMatrix(x, 0) = [Ô]9º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]10º[Ô] Then
maxgrid = maxgrid + 1
End If
Next
MSFlexGrid.Rows = maxgrid + 1

For y = 0 To 2
For x = 0 To MSFlexGrid.Rows - 1
If flexGrade.TextMatrix(x, 0) = [Ô]1º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]2º[Ô] Or _
flexGrade.TextMatrix(x, 0) = [Ô]3º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]4º[Ô] Or _
flexGrade.TextMatrix(x, 0) = [Ô]5º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]6º[Ô] Or _
flexGrade.TextMatrix(x, 0) = [Ô]7º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]8º[Ô] Or _
flexGrade.TextMatrix(x, 0) = [Ô]9º[Ô] Or flexGrade.TextMatrix(x, 0) = [Ô]10º[Ô] Then
MSFlexGrid.TextMatrix(x, y) = flexGrade.TextMatrix(x, y)
End If
Next
Next
MSFlexGrid.Rows = MSFlexGrid.Rows + 1
MSFlexGrid.TextMatrix(x, 0) = [Ô]Total[Ô]
MSFlexGrid.TextMatrix(x, 2) = Text1.Text
Dim g As Integer
g = 0
For z = 1 To x
If MSFlexGrid.TextMatrix(z, 0) = [Ô]1º[Ô] Then
g = g + 1
End If
Next
MSFlexGrid.TextMatrix(x, 1) = [Ô]Houve [Ô] & g & [Ô] Ganhadores[Ô]
Max_Row = MSFlexGrid.Rows - 1

For C = 1 To 1
Max_Wid = 0
For R = 1 To Max_Row
Wid = TextWidth(MSFlexGrid.TextMatrix(R, C))
If Max_Wid < Wid Then Max_Wid = Wid
Next R
MSFlexGrid.ColWidth(C) = Max_Wid * 2.5
Next C
[ô]usar o código para imprimir em seguida
PaginaInicial = 0
Paginafinal = 0
numerodecopias = 0
CommonDialog1.CancelError = True
On Error GoTo trataerro
CommonDialog1.ShowPrinter
PaginaInicial = CommonDialog1.FromPage
Paginafinal = CommonDialog1.ToPage
numerodecopias = CommonDialog1.Copies
For I = 1 To numerodecopias
Dim intTamanho As Integer
intTamanho = MSFlexGrid.Width
MSFlexGrid.Width = Printer.Width
Printer.PaintPicture MSFlexGrid.Picture, 0, 0
Printer.EndDoc
MSFlexGrid.Width = intTamanho
Next
Exit Sub
trataerro:
DUSK 21/02/2010 17:31:55
#334978
Dim i As Integer, P As Integer
Dim MsVal()

[ô]<<< AQUI COMEÇO DA LINHA 1 PARA DESCARTAR O CABEÇALHO >>>
For i = 1 To MSFlexGrid1.Rows - 1
P% = P% + 1
ReDim Preserve MsVal(P%)
MsVal(P% - 1) = MSFlexGrid1.TextMatrix(i, 0) & [Ô] - [Ô] & MSFlexGrid1.TextMatrix(i, 1) & [Ô] - [Ô] & MSFlexGrid1.TextMatrix(i, 2) & [Ô] - [Ô] & MSFlexGrid1.TextMatrix(i, 3)
Next

Printer.FontSize = 14
Printer.FontBold = True
Printer.FontUnderline = True
Printer.Print Tab(20); [Ô]IMPRIMIR MSFLEXGRID[Ô]
Printer.FontUnderline = False
Printer.FontSize = 10
Printer.Print

Pos = 0
If P% > 0 Then
For P% = 0 To UBound(MsVal)
If (Pos > 48) Then
Pos = 0
Printer.NewPage
Printer.FontSize = 14
Printer.FontBold = True
Printer.FontUnderline = True
Printer.Print Tab(20); [Ô]IMPRIMIR MSFLEXGRID[Ô]
Printer.FontUnderline = False
Printer.FontSize = 10
Printer.Print
End If

Printer.Print Tab(10); MsVal(P%)
Pos = Pos + 1
Next
End If

Printer.EndDoc


[ô]<<< ACHO QUE EH ISSO - VE C TE SERVE >>>

Tópico encerrado , respostas não são mais permitidas