初学水晶报表,在VB 中通过水晶报表控件对已存在数据表进行制表预览,感觉其效果不错。但把表单中VSflexgrid 表格内内容输入到水晶报表中实现打印预览功能,却无从下手,请问各位大虾,如何定制报表数据源,如何实现所需功能,并能控制打印行数,很好利用水晶报表的特性,最好能提供实例代码,在此先谢了!!!!

解决方案 »

  1.   

    flexgrid 数据显示用得SQL语句 用水晶报表显示代码就一样显示了
      

  2.   

    采用PUSH模式,ttx数据源,将Vsflexgrid的数据源传过去就OK了
      

  3.   

    思路已经很明确了,你应该去问百度
    首先问"水晶报表 PUSH模式"
    再问"水晶报表 TTX数据源"
    推荐去阿泰的空间看看
      

  4.   

    基本思路就是 按grid结构构造ttx,然后根据ttx建报表
    再把grid里的数据转到一个recordset里,再传给报表使用ttx模式
    参考
    http://www.cnblogs.com/babyt/archive/2005/03/11/116878.html
    http://www.cnblogs.com/babyt/archive/2005/03/11/116880.html
      

  5.   

    你好阿泰,ttx建报表大致明白了,把grid里的数据转到一个recordset里,如何做却知道,在次请教?把查询结果传给VSflexgrid 程序如下rsPublic rs As New ADODB.Recordset
    Public str As String
    Public conn As New ADODB.Connectionstr = " SELECT *  FROM employees where employ_no='" & Trim(txt_no.Text) & "'"
             rs.Open str, conn, 3, 2
             lastrow = 1
             lastcol = 1
             With grid_master
                         .Editable = flexEDNone
                         .AllowUserResizing = flexResizeBoth
                         .AllowUserFreezing = flexFreezeBoth
                         .BackColorFrozen = RGB(200, 200, 255)
                         .ExplorerBar = flexExMoveRows Or flexExSortShowAndMove
                     Set .DataSource = rs
                         .SelectionMode = flexSelectionByRow但如何相反把VSflexgrid 的数据传至 recordset 却不会了,请指教,能否写个具体的语句给我看看最好加点注释
      

  6.   

    那只是把表格设定数据源,让VSflexgrid 表格显示数据,却不是把表格的数据做为源向外传送呀,难道用FOR语句一条条把数据传至报表吗
      

  7.   

    不用啊,你前面的rs不就是数据源么?VSflexgrid 的数据源不就是rs么?
    还不明白?
      

  8.   

    不要一头雾水的问一些自己也弄不清楚的问题了.
    只说两句:
    1.用TTX,水晶报表的数据源也是Recordset对象.
    2.仔细看阿泰写的实例,看看他是如何传递Recordset给水晶报表的.
      

  9.   

    在调用的那个存在表格的 form中
    set VSFlexGrid1.DateSource=rs
    然后就已经
    rs.close
    之所以要释放rs,是因为不同的几个form中都需要用rs