比如:我用水晶报表做好了一张报表,嵌入到VB所编写的应用程序中去,那么当我的应用程序安装路径有变的时候,再运行报表预览,去提示有关报表找不到路径的信息?
这个问题怎么解决???????有没有象APP.PATH设置相对路径的方法到设置报表的数据源?或都是其它办法?100分,解决了就结贴

解决方案 »

  1.   

    您可以试试这个语句:
    crptObj.ReportFileName = App.Path & "\YourReport.rpt"
      

  2.   

    楼上数据源参考这个例子里的格式:
    Dim m_Report As New crUnboundFields
    m_Report.Database.AddOLEDBSource DataEnvironment1.Connection1, "Orders"
    另外我想知道如何设定报表数据源为当前内存中用ADO打开的RS记录集在报表示例中为
    m_Report.Database.SetDataSource adoRS
    可就是不能用,报告下标超界。其语法提示和上面比起来好象不一致
    是否还需要 DIM 定义什么,或引用什么
      

  3.   

    你首先修改报表文件,操作如下:
    菜单:database——→set location…——→same as report 这样把报表文件和数据库文件定位在相同的目录下,发布程序时只要把你的数据库文件和报表文件也放到同一个目录就可以了。我用的水晶4.6。其它版本的也应该有相似的设置。你自己试一试。
      

  4.   

    建议你时候ODBC建立数据源,制作水晶报表的时候,选择ODBC,这样你只要动态来更新ODBC数据源就可以动态更新水晶报表的数据源了,你的问题也就解决了。
      

  5.   

    netcruiser(netcruiser) 的问题m_Report.Database.SetDataSource adors, 3
      

  6.   

    to netcruiser(netcruiser) :
    我用.AddOLEDBSource 方法时出错,提示自动化错误,经查,是版本的问题。你的水晶报表没问题吗?你用的是正式版吗?除了控件注册外,还有其它的组件要注册吗?
      

  7.   

    1.你在设计报表时,以ado方式建立数据源联接(ole db)==>meta data source==>ado
    2.在你程序运行期间,以ado方式产生相应的rs
    3.打开报表对象
    4.m_Report.Database.SetDataSource rs 即可