如题。
问题1:
VC6下如何使用水晶报表?
网上搜了一下,大都只是简单地说
“#import "C:\Documents and Settings\Administrator\桌面\cr\craxdrt9.dll" no_namespace”
可这个craxdrt9.dll文件及其相关的其他文件(如果有的话)是从哪里来的?VC6好象没有crystal9这个控件可加载的吧?要另外下载吗?
还有
“//staff.rpt为通过向导建立的报表文件,数据库采用SQL Server 7.0
m_Report =m_Application->OpenReport ("C:\\Documents and Settings\\Administrator\\桌面\\cr\\debug\\staff.rpt");”
这个staff.rpt是用谁的向导建立的?SQL?如果我的数据库只是一个Access的.mdb文件,没安装SQL怎么办?
问题2:
要输出数据库报表的话,水晶报表是否是最方便或唯一的方法?
我是菜鸟,请大家指点指点!

解决方案 »

  1.   

    先安装水晶报表
    -----------------------------
    VC6下怎么安装呢?要在哪里下载VC6水晶报表的安装程序?
      

  2.   

    vc6下我不清楚在vs.net2005里面使用还是比较简单的…………
      

  3.   

    在C:\Program Files\Common Files\Crystal Decisions\1.0\Bin目录下找到一个craxddrt20.dll文件(这就是大家说的vs2003.net下自带的水晶报表吧),谁能告诉我这个是水晶报表的什么版本,难道是crystal report 20的版本?太奇怪了,现在最新版本也才到版本10啊!
      

  4.   

    我是菜鸟,我的解决方法是:
    当要输出报表时,就事先用C#写一个十分简单的打开报表的程序。然后在VC中调用这个C#写的程序。
    行不行?别笑我。
      

  5.   

    楼上BeyondYV(真的很菜)朋友的方法是个不错的选择。这里的高人们没有一个直接在VC6下用水晶报表的吗?继续期待ing......
      

  6.   

    /*********************************************************************
    *
    *程序与报表初始化
    *
    *********************************************************************/
    //判断报表名称是否输入法
        if(sReport.IsEmpty())
    {
    MessageBox("打印出错");
    return;
    }
    //实例化m_Application
    m_Application.CreateInstance (__uuidof(Application));
    CString stReportName;
    stReportName.Format(".\\Report\\%s.rpt",sReport); m_Report =m_Application->OpenReport(_bstr_t(stReportName));
    //打印选择 SwitchPrint(); //清空数据
    m_Report->DiscardSavedData();
    //设置报表数据源
    m_Report->Database->SetDataSource(_variant_t((IDispatch*)m_pRs,true),(long)3,long(1)); 
    //将m_Report与报表控件连接
    m_ReportViewer.SetReportSource(m_Report);
    //显示报表工具条
    m_ReportViewer.SetDisplayToolbar (TRUE);
    //不显示报表左边的分组树
    m_ReportViewer.SetDisplayGroupTree (FALSE);
    //显示工具栏上导出按钮   
    m_ReportViewer.SetEnableExportButton(true); 
    //不显示控件边框
    m_ReportViewer.SetDisplayBorder (FALSE);
        //不显示刷新按钮
    m_ReportViewer.SetEnableRefreshButton(false);
    //刷新数据
    m_ReportViewer.Refresh ();
    //显示报表内容
    m_ReportViewer.ViewReport();
    //取消等待鼠标形状
    EndWaitCursor();

    /* */
      

  7.   

    楼上的xscansou朋友:你的例子中所用到水晶报表的dll文件是怎么得到的呢?我在VC6下打开带水晶报表的范例时,总是报错。
      

  8.   

    在安装目录下搜索,,,craxdrt9.dll
      

  9.   

    关键还是在SwitchPrint();这个函数里
      

  10.   

    在安装目录下搜索,,,craxdrt9.dll
    ----------------------------------------------------------
    我的系统是XP(sp2补丁)的,VC6和VC2003,可只找到一个craxddrt20.dll文件,真的没有craxdrt9.dll这个文件呀。我是菜鸟,可大家只要指点一下,剩下的事我自己会努力的。可现在关键的文件根本就没有,怎么办?!
    楼上朋友可否把这个文件发给我:tian_dao_akane01#yahoo.com.cn       (请把#换成@)
      

  11.   

    最后顶一下,没人详细说的话准备按楼上BeyondYV(真的很菜)朋友的方法,用BCB写个程序解决报表输出的问题。
    VC6,你的报表输出功能真弱啊!
    VB、BCB等工具都可以不用另外安装控件就能轻松解决报表的问题,可号称功能强大的你却如此令人失望!!
      

  12.   

    vc6可以自己做报表阿。不需要使用水晶报表。可以自己制作打印DC,建立一个printview。具体需要去看专门说打印的书。
      

  13.   

    谢谢楼上的回复!本来想偷懒用水晶报表输出的,不过看上去更麻烦,主要是VC6用的水晶报表软件(控件)不知到哪里下载?目前打算:
    1 用打印DC的方法做,灵活但费事(最初考虑的就是用这个方法);
    2 用VB或BCB专门做一个报表输出程序实现。