TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: LordLafebre en 26 de Diciembre de 2004, 21:59:00
-
Hola amigos:
Quisiera que me ayuden, estoy haciendo un programa que muestra valores en un control MSFLEXGRID y lo que me hac falta es poder imprimir estos valores, alguien me puede ayudar? Gracias a todos de antemano....
Saludosd desde ECUADOR!!!!!!
LordLafebre
-
Hola pana,
mira hay varias formas, puedes usar el metodo PAINTPICTURE(dibujar panmtalla), aqui hay un link:
http://www.vbusers.com/code/codeget.asp?ThreadID=267&PostID=1&NumReplies=0
Aqui hay un codigo de un ejemplo muy bueno:
http://www.adit.co.uk/html/printing_grids.html
Puedes usar el REPORTE de visual tambien, en fin hay varias formas pana, aqui te pongo un codigo para hcerlo:
------------------------------------------------------------------------------------------------------------
"**************IMPRIMIR MSFLEXGRID*********************************
Public Sub MSFlexGridPrint(gridQuery As Control)
Dim C As Integer
Dim CC As Integer
Dim TABB As Integer
For C = 1 To gridQuery.Rows - 1
TABB = 20
If Printer.CurrentY + Printer.TextHeight(gridQuery.Text) > Printer.ScaleHeight - 600 Then
Printer.NewPage
End If
gridQuery.Row = C "LINEA ACTIVA??
For CC = 0 To gridQuery.Cols - 1
gridQuery.Col = CC "Set the current column
"ENVIA EL CAMPO A LA LINEA IMPRESORA Y ADICIONA EL TAB.
Printer.Print Trim$(gridQuery.Text); Tab(TABB);
TABB= TABB+ 20 "INCREMENTO EL VALOR DE TAB
Next
"DESPUES DE HABER IMPRESO CADA COLUMNA UN PRINTER.PRINT SIN
"SEMICOLON( ; ) ENVIARA LA LINEA A LA IMPRESORA E INICIARA UNA NUEVA
Printer.Print
Next
End Sub
---------------------------------------------------------------------------------------------------------
De este ejemplo puedes hacer varias modificaciones,pero si quieres algo aun mas simple intenta este:
---------------------------------------------------------------------------------------------------------
"******IMPRIMIR EL CONTENIDO DE CONTROLES MSFLEXGRID
"******* DE FORMA RAPIDA Y SENCILLA
Printer.PaintPicture MSFlexGrid_Name.Picture, 0, 0
Printer.EndDoc
---------------------------------------------------------------------------------------------------------
"SI QUIERES USAR EL LARGO COMPLETO DE LA PAGINA DE IMPRESION
" NOTIFICALO ANTES DE IMPRIMIR,USANDO SUS PROPIEDADES.... ASI:
---------------------------------------------------------------------------------------------------------
"******IMPRIMIR EL CONTENIDO DE CONTROLES MSFLEXGRID
"******* DE FORMA RAPIDA Y SENCILLA*
Dim old_width as Integer
MSFlexGrid_Name.width=printer.width
Printer.PaintPicture MSFlexGrid_Name.Picture, 0, 0
Printer.EndDoc
MSFlexGrid_Name.width=old_width
---------------------------------------------------------------------------------------------------------
Tambien puedes pasarlo a excel para imprimirlo comunmente, para eso esta el Flexgrid a excel:
FlexGrid_To_Excel {Nombre delfFlexGrid, Numerodelineasaimprimir, Numerodecolumnasaimprimir, 2}
ejemplo:
FlexGrid_To_Excel MSFlexGrid1, 12, 8, 2
si usas esta opcion que te comento ,acuerdate de adicional la libreria "microsoft excel x.0 object library" para que no te de error de compilacion:
"Public Sub FlexGrid_To_Excel(TheFlexgrid As MSFlexGrid, _
TheRows As Integer, TheCols As Integer, _
Optional GridStyle As Integer = 1, Optional WorkSheetName _
As String)"
Para imprimirlo puedes usar el metodo .PRINTOUT de excel para imprimirlo directamente desde VB ...
En fin, probando estos y otros metodos , puedes elegir el que mas necesites realmente, solo son unas cuantas opciones.
Un abrazo pana
-
Hola Pana:
Gracias por tu ayuda... me interesa esta función Public Sub MSFlexGridPrint(gridQuery As Control) el problema que se me presenta es que solamente impreme cuando el formulario se descarga, no se porque, podrias ayudarme con seto??? esta función me gusta xq solo impreme en forma de texto y no de imagen, pero si nesesitara imprimirla con los cuadros del flexgrid comó podría hacerlo sin imprimir en forma de imagen, hay cómo??
Gracias nuevamente...
Un Abrazo desde ECUADOR!!!!
LordLafebre 