Visual Basic - como imprimir msflexgrid

Life is soft - evento anual de software empresarial
 
Vista:

como imprimir msflexgrid

Publicado por carlos (1 intervención) el 20/11/2005 16:38:40
hola

Alguien sabe como mandar a imprimir lo que tiene el msflexgrid,
se los agradecere, bye
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como imprimir msflexgrid

Publicado por Arnaldo (53 intervenciones) el 20/11/2005 16:49:02
Hola Carlos, mira te mando un codigo que hice para imprmir flexos.
El modulo lo podes copiar tal cual esta cuando lo llamas le envias por parametro el Maflexgrid, la posicion Y donde empesara a imprimir, la cantidad de columnas del flexo y salto que es una variable no declarada en primer instancia. Cuando sale la primera vez trae un valor y te sirve a imprimir otro flexo debajo a una distancia determinada y asi arrastra un valor para imprimir uno debajod e otro.

' Rutina para imrimir
Private Sub Command5_Click()
Dim SalTo As Integer

ImpTabla Msfx1, 0, Msfx1.Cols, SalTo
Printer.Print vbCrLf
ImpTabla Msfx2, (SalTo + 400), Msfx2, SalTo
Printer.EndDoc
End Sub

Sub ImpTabla(Flexo As MSFlexGrid, PosY, Columnas, SalTo As Integer)
Dim Cantcol, y1, CantFil, x, y, x1, L As Integer
Dim MatAux() As Integer

CantFil = Flexo.Rows 'Controlo la cantidad de filas

'Retengo el alto de celda y calculo el alto total de la tabla
y = Flexo.CellHeight
y1 = y * CantFil
CantFil = 0
SalTo = y1
'Dibujo la tabla
x1 = 0
For x = 0 To Flexo.Cols
Printer.Line (x1, PosY)-Step(0, y1)
ReDim Preserve MatAux(x)
MatAux(x) = x1
If x < Columnas Then '12
x1 = x1 + Flexo.ColWidth(x)
Else
Printer.Line (x1 + Flexo.ColWidth(Columnas - 1), PosY)-Step(0, y1)
x1 = x1 + Flexo.ColWidth(Columnas - 1)
End If
Next x

L = PosY

'Imprimo los datos de la tabla
For y = 0 To Flexo.Rows - 1
For x = 0 To Columnas - 1
Printer.CurrentY = L
Printer.CurrentX = MatAux(x)
Printer.Print Flexo.TextMatrix(x, Columnas - 1)
Next x
L = L + Flexo.CellHeight
Next y

'Aca no me acuerdo que hice, por las dudas lo dejo
y1 = PosY
For x = 0 To Flexo.Rows
Printer.Line (0, y1)-Step(x1, 0)
y1 = y1 + Flexo.CellHeight
Next x

End Sub

Lo que hice fue manejarme con los controles de dibujo, asi voy dibujando la grilla, segun las dimenciones del flexo en la instancia de imprimir. Luego en una matriz me reservo la posicion de cada columna, para luego al imrimir las lineas de la fila imprimo tambien el texto o valor contenido en la celda.
Espero te sea de ayuda.
Saludos
Arnaldo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar