FlexGrid rows
-
:((The following code are printing the selected row from a fleggrid: srow = fgrid1.Row Col = fgrid1.Col For i = 1 To (fgrid1.Cols - 1) Printer.Print fgrid1.TextMatrix(0, i) & ": " & fgrid1.TextMatrix(srow, i) Next I can't figure out how to print all row from a grid. Please help me
-
:((The following code are printing the selected row from a fleggrid: srow = fgrid1.Row Col = fgrid1.Col For i = 1 To (fgrid1.Cols - 1) Printer.Print fgrid1.TextMatrix(0, i) & ": " & fgrid1.TextMatrix(srow, i) Next I can't figure out how to print all row from a grid. Please help me
Try this code Private Sub Cmdprint_Click() 'grdDetailReport(Name of the grid control) Dim i As Integer Dim defaultGridStyle As Integer Dim defaultFixedGridStyle As Integer Dim picGrid As StdPicture Dim defaultFontsize As Single ' Initalize Variables hl = grdDetailReport.HighLight ' Save current settings. tr = grdDetailReport.TopRow lc = grdDetailReport.LeftCol X = 0 Y = 0 defaultGridStyle = grdDetailReport.GridLines defaultFixedGridStyle = grdDetailReport.GridLinesFixed Printer.Orientation = 2 Printer.Font.Size = 18 Printer.Font.Bold = True 'Printer.Print label1.Caption grdDetailReport.Redraw = False ' Highlight off grdDetailReport.HighLight = 0 Printer.Font.Size = 10 Printer.Font.Bold = False Do Until X - grdDetailReport.Rows >= -2 X = X + 45 Y = Y + 1 Printer.Print "Page " & Y If X > grdDetailReport.Rows - 1 Then grdDetailReport.Row = X - 44 grdDetailReport.Col = 0 grdDetailReport.RowSel = grdDetailReport.Rows - 1 grdDetailReport.ColSel = grdDetailReport.Cols - 1 Else grdDetailReport.Row = X - 44 grdDetailReport.Col = 0 grdDetailReport.RowSel = X grdDetailReport.ColSel = grdDetailReport.Cols - 1 End If For i = grdDetailReport.FixedRows To grdDetailReport.Rows - 1 If i < grdDetailReport.Row Or i > grdDetailReport.RowSel Then grdDetailReport.RowData(i) = grdDetailReport.RowHeight(i) grdDetailReport.RowHeight(i) = 0 End If Next For i = grdDetailReport.FixedCols To grdDetailReport.Cols - 1 If i < grdDetailReport.Col Or i > grdDetailReport.ColSel Then grdDetailReport.ColData(i) = grdDetailReport.ColWidth(i) grdDetailReport.ColWidth(i) = 0 End If Next ' Scroll to top left corner. grdDetailReport.TopRow = grdDetailReport.FixedRows grdDetailReport.LeftCol = grdDetailReport.FixedCols ' Copy picture. Clipboard.Clear On Error Resume Next grdDetailReport.PictureType = 0 ' Color. Clipboard.SetData grdDetailReport.Picture If Err <> 0 Then grdDetailReport.PictureType = 1 ' Monochrome. Clipboard.SetData grdDetailReport.Picture End If With flxGrid Set picGrid = Clipboard.GetData(vbCFBitmap) End With grdDetailReport.GridLines = defaultGridStyle grdDetailReport.GridLines = defaultFixedGridStyle
-
Try this code Private Sub Cmdprint_Click() 'grdDetailReport(Name of the grid control) Dim i As Integer Dim defaultGridStyle As Integer Dim defaultFixedGridStyle As Integer Dim picGrid As StdPicture Dim defaultFontsize As Single ' Initalize Variables hl = grdDetailReport.HighLight ' Save current settings. tr = grdDetailReport.TopRow lc = grdDetailReport.LeftCol X = 0 Y = 0 defaultGridStyle = grdDetailReport.GridLines defaultFixedGridStyle = grdDetailReport.GridLinesFixed Printer.Orientation = 2 Printer.Font.Size = 18 Printer.Font.Bold = True 'Printer.Print label1.Caption grdDetailReport.Redraw = False ' Highlight off grdDetailReport.HighLight = 0 Printer.Font.Size = 10 Printer.Font.Bold = False Do Until X - grdDetailReport.Rows >= -2 X = X + 45 Y = Y + 1 Printer.Print "Page " & Y If X > grdDetailReport.Rows - 1 Then grdDetailReport.Row = X - 44 grdDetailReport.Col = 0 grdDetailReport.RowSel = grdDetailReport.Rows - 1 grdDetailReport.ColSel = grdDetailReport.Cols - 1 Else grdDetailReport.Row = X - 44 grdDetailReport.Col = 0 grdDetailReport.RowSel = X grdDetailReport.ColSel = grdDetailReport.Cols - 1 End If For i = grdDetailReport.FixedRows To grdDetailReport.Rows - 1 If i < grdDetailReport.Row Or i > grdDetailReport.RowSel Then grdDetailReport.RowData(i) = grdDetailReport.RowHeight(i) grdDetailReport.RowHeight(i) = 0 End If Next For i = grdDetailReport.FixedCols To grdDetailReport.Cols - 1 If i < grdDetailReport.Col Or i > grdDetailReport.ColSel Then grdDetailReport.ColData(i) = grdDetailReport.ColWidth(i) grdDetailReport.ColWidth(i) = 0 End If Next ' Scroll to top left corner. grdDetailReport.TopRow = grdDetailReport.FixedRows grdDetailReport.LeftCol = grdDetailReport.FixedCols ' Copy picture. Clipboard.Clear On Error Resume Next grdDetailReport.PictureType = 0 ' Color. Clipboard.SetData grdDetailReport.Picture If Err <> 0 Then grdDetailReport.PictureType = 1 ' Monochrome. Clipboard.SetData grdDetailReport.Picture End If With flxGrid Set picGrid = Clipboard.GetData(vbCFBitmap) End With grdDetailReport.GridLines = defaultGridStyle grdDetailReport.GridLines = defaultFixedGridStyle
I copyed your code into my program and it working only 50 %. 1. When I select the first row it is printed fine, but when I am trying to print the next selected row it fails(nothing happend). 2. Also it is printing the only visible column what about the invisible columns? Thanks