Autor Tema: Como imprimir datos de un control MSFLEXGRID  (Leído 8159 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Como imprimir datos de un control MSFLEXGRID
« 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 Sonrisa Gigante

Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
RE: Como imprimir datos de un control MSFLEXGRID
« Respuesta #1 en: 27 de Diciembre de 2004, 11:57:00 »
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
   
   

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Como imprimir datos de un control MSFLEXGRID
« Respuesta #2 en: 01 de Febrero de 2005, 14:40:00 »
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 RollEyesRebotado


 

anything