Printing Flex Grid

Posted on 2004-03-31
Medium Priority
Last Modified: 2008-01-09
i wanna to print a taple from the type FGrid  the quistion is how can i print it in the wide of peaper ...."the gool of this to print the all taple elements"...and i wanna to print it alone i mean..that .i wanna to print the just the table...with out the else objects..
Question by:Omar_layous
  • 2
LVL 53

Accepted Solution

Dhaest earned 320 total points
ID: 10729791
Multiple possibilities
Public Sub MSFlexGridPrint(gridQuery As Control)
   ' *** Print MSFlexGrid

   Dim I          As Integer
   Dim J          As Integer
   Dim PTab       As Integer

   For I = 1 To gridQuery.Rows - 1
      PTab = 20 'Set the first tab value
      'This checks to see if a page break is needed

      If Printer.CurrentY + Printer.TextHeight(gridQuery.Text) > Printer.ScaleHeight - 600 Then
      End If

      gridQuery.Row = I 'Set the active row

      For J = 0 To gridQuery.Cols - 1
         gridQuery.Col = J 'Set the current column
         'Send the field to the print line and add the tab.
         'Notice the semicolon at the end of the line.

         Printer.Print Trim$(gridQuery.Text); Tab(PTab);

         PTab = PTab + 20 'Increment the tab value

      'After each column has printed to the print line

      'a Printer.Print statement without a semicolon will
      'will send the line to the printer and start a new

End Sub  

MSFlexigrid1.TextMatrix(1,1) - this gives the content in the first row, first column. Likewise, when you put in a For Loop u can get the content in each cell. Further, for each row of data, you can append to a string and pass it to the printer object.


For Ctr = 1 to MSFlexigrid1.Rows - 1
 strcontent = MSFlexigrid1.TextMatrix(Ctr,1)
 strcontent = strcontent & MSFlexigrid1.TextMatrix(ctr,2)

' where 1 & 2 are the columns. Like wise you can continue to build the string for each row & finally print.

printer.print strcontent


4) Export to an invisible excel and print
try this out!!

Public Sub FlexGrid_To_Excel(TheFlexgrid As MSFlexGrid, _
TheRows As Integer, TheCols As Integer, mode As Integer)
Dim objXL As New Excel.Application
Dim wbXL As New Excel.Workbook
Dim wsXL As New Excel.Worksheet
Dim intRow As Integer
Dim intCol As Integer

On Error Resume Next

' open Excel
If mode = 1 Then
  objXL.Visible = True
  objXL.Visible = False
End If
Set wbXL = objXL.Workbooks.Add
Set wsXL = objXL.ActiveSheet

' this is to fill the worksheet
For intRow = 1 To TheRows
  For intCol = 1 To TheCols
      With TheFlexgrid
          wsXL.Cells(intRow, intCol).Value = _
             .TextMatrix(intRow - 1, intCol - 1) & " "
      End With
If mode = 2 Then
End If
End Sub

Here's a quick way to print a MSFlexGrid control's contents:
    Printer.PaintPicture MSFlexGrid_Name.Picture, 0, 0

And if you want it to be the full length of the printer page add this before those two statements:
    Dim old_width as Integer

and this at the end:
LVL 53

Expert Comment

ID: 11256754
My recommandation: answered by Dhaest

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

When trying to find the cause of a problem in VBA or VB6 it's often valuable to know what procedures were executed prior to the error. You can use the Call Stack for that but it is often inadequate because it may show procedures you aren't intereste…
When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Suggested Courses

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question