VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



Print MsFlexGrid

by Halak Assad (1 Submission)
Category: OLE/COM/DCOM/Active-X
Compatability: VB 6.0
Difficulty: Unknown Difficulty
Originally Published: Thu 20th June 2002
Date Added: Mon 8th February 2021
Rating: (1 Votes)

Print MsFlexGrid

Rate Print MsFlexGrid



' Print Any MsFlexGrid with any ColWidth property

Private Sub Command1_Click()
Call Form_Load
End Sub
Private Sub Form_Load()
Dim colsWidth(10) As Integer
Dim Pages, PageNum, FirstRow, LastRow, NumRows As Integer
FirstRow = 0
LastRow = 0

NumRows = 15
HeightRow = 360

For x = 1 To 20
    MSFlexGrid1.Row = x - 1
    
    MSFlexGrid1.Col = 0
    MSFlexGrid1.Text = x
    
    MSFlexGrid1.Col = 1
    MSFlexGrid1.Text = x ^ 2
    
    MSFlexGrid1.Col = 2
    MSFlexGrid1.Text = x ^ 3
    
    MSFlexGrid1.Col = 3
    MSFlexGrid1.Text = x ^ 4
    
    MSFlexGrid1.Col = 4
    MSFlexGrid1.Text = x ^ 5
Next

MSFlexGrid1.Visible = False

LastRow = MSFlexGrid1.Rows

For ColNum = 1 To MSFlexGrid1.Cols
    colsWidth(ColNum) = MSFlexGrid1.ColWidth(ColNum - 1)
Next

Pages = Int(LastRow / NumRows) + 1

If MSFlexGrid1.Rows > NumRows Then
    FirstRow = 0
    LastRow = NumRows
Else
    FirstRow = 0
    LastRow = MSFlexGrid1.Rows - 1
End If

For PageNum = 1 To Pages
    CurX1 = 0
    CurX2 = 200
    CurY2 = 200
    
    For ColNum = 1 To MSFlexGrid1.Cols
        CurX1 = CurX1 + colsWidth(ColNum)
    Next
   
   CurX1 = CurX1 + CurX2
   CurY1 = 200
   
   For RowNum = FirstRow To LastRow + 1
        Printer.Line (CurX1, CurY1)-(CurX2, CurY2)
        CurY1 = CurY1 + HeightRow
        CurY2 = CurY2 + HeightRow
   Next
    
   CurY1 = 0
   CurY2 = 200
   CurX1 = 200
   
   For RowNum = FirstRow To LastRow
        CurY1 = CurY1 + HeightRow
   Next
   
   CurY1 = CurY1 + CurY2
   
   For ColNum = 1 To MSFlexGrid1.Cols
        Printer.Line (CurX1, CurY1)-(CurX2, CurY2)
        CurX1 = CurX1 + colsWidth(ColNum)
        CurX2 = CurX2 + colsWidth(ColNum)
  Next
        Printer.Line (CurX1, CurY1)-(CurX2, CurY2)

CurX3 = 0
CurY3 = 0

    For RowNum = FirstRow To LastRow
        MSFlexGrid1.Row = RowNum
            For ColNum = 1 To MSFlexGrid1.Cols
                    MSFlexGrid1.Row = RowNum
                    MSFlexGrid1.Col = ColNum - 1
                    Printer.CurrentX = CurY3 + 250
                    Printer.CurrentY = HeightRow + CurX3 + CurY2 - 300
                    CurY3 = CurY3 + colsWidth(ColNum)
                    Printer.Print Trim(MSFlexGrid1.Text)
            Next
           CurY3 = 0
           CurX3 = CurX3 + HeightRow
    Next
    
FirstRow = FirstRow + 16
LastRow = LastRow + 16

If LastRow > MSFlexGrid1.Rows Then
   LastRow = MSFlexGrid1.Rows - 1
  
End If
Printer.NewPage
Next

Printer.EndDoc
    
MSFlexGrid1.Visible = True
End Sub


Download this snippet    Add to My Saved Code

Print MsFlexGrid Comments

No comments have been posted about Print MsFlexGrid. Why not be the first to post a comment about Print MsFlexGrid.

Post your comment

Subject:
Message:
0/1000 characters