想学习一下大家的优秀方法。
有人做过的这方面东西,如果源码可以公开,我愿学习学习。(vb,vc,vf不限)
请多多支持。[email protected]

解决方案 »

  1.   

    form1上有vsflexgrid控件,form2上有vsPrint控件
    Private Sub Form_Load()
    Dim i As Integer
    Dim j As Integer   With vp
         vp.StartDoc
         vp.StartTable
         .TableCell(tcCols) = 10
         .TableCell(tcRows) = 101
         .TableCell(tcColWidth) = "1.0in"    For i = 1 To 100
             For j = 1 To 9
                 .TableCell(tcText, i, j) = Form1.Grid1.TextMatrix(i - 1, j - 1)
             Next j
        Next i
             .EndTable
             .EndDoc
        End With
    '
    '
    '    vp.StartDoc
    '    vp.BrushStyle = bsTransparent
    '    vp.BrushColor = vbBlack
    '    vp.DrawRectangle 100, 100, 1000, 500
    '    vp.TextColor = vbRed
    '    vp.TextBox "asdf234234243234", 0, 100, 100000, 100000
    '    vp.EndDoc
    End Sub
      

  2.   

    如果是双行表头(两行固定行),而且有些列是不显示的,.colhiden(i)=true,i为不确定的列,再每次打印时,i的值不确定;而且,在固定行里有列,也有行的合并,而且在打印时,要求vp打印出来的表格的内容都能显示出vsflexgrid里的内容(列的宽度成比例显示).
    谁做过双行表头的打印程序,我要学习学习.
      

  3.   

    我用vsprint做过双行表头, 不过很麻烦,
    用vsprint的TextBox方法来输出单元格
      

  4.   

    有两种方法,(1)用renderControl属性,将Grid直接画上去
    (2)在newpage事件中,写表头,这样就不会从第二页开始只出现
    一行表头