请问:我要作一个打印报表。在查询窗体中输入了查询条件,在DataGrid中显示了几条查询结果。我怎样可以不使用DataEnvironment而让DataReport获得DataGrid中的几条查询结果?谢谢!

解决方案 »

  1.   

    1、datareport1.datasource设置为空datareport1.datamember设置为空
    2、在datareport1的section1中添加一些rpttextbox,并将它们的datafield属性设置为你将要用的表的字段名(要求手工输入,没有选择。如果在text1的datafield属性中输入"姓名"等)
    3、添加一个窗体、一个命令按钮和一个datagrid作试验用。
    4、在添加的command1中添加连接数据及查询的代码,并将其显示在datagrid1和datareport1中。
    5、第4步中的代码如下:
    Private Sub Command1_Click()
    Dim strconnect As String
    Dim rs As New ADODB.Connection
    Dim rcd As New ADODB.Recordset
    Dim strDir As String         'strDir 是dbf文件路径
    Dim strfile As String        'strFile 是dbf文件名
    strDir = "要连接的文件路径"
    strfile = "要连接的文件名(.dbf)"
    strconnect = "Provider = MSDASQL.1;" & _
                 "Driver=Microsoft Visual FoxPro Driver;" & _
                 "SourceDB=" & strDir & ";" & _
                 "SourceType = DBF"
    rs.Open strconnect
    rcd.CursorLocation = adUseClient
    '以下代码用来实现查询
    rcd.Open "select * From " & strfile & " where 条件表达式", rs, adOpenDynamic, adLockPessimistic
    '以下设置datagrid1和datareport1的datasource属性。让其动态指向查询结果,datagrid1将自动更新。
    Set DataGrid1.DataSource = rcd
    Set DataReport1.DataSource = rcd
    DataReport1.Show
    End Sub'别忘了给我加分哟。
      

  2.   

    江帆:你好。不好意思。好久没来看帖子了。我用了另外的一种方法做报表,把数据传到Excel里。
         但是还是要结贴,加分的。^_^