intraweb + rave 实现报表预览功能
我要做五个报表:
1 产品信息报表
2 客户信息报表
2 退货信息报表
..........
当点击产品报表时,可以生成rave代码生成(thml)或pdf文件!;
当但点击客户信息报表时,出现无法找到文件!
我写了个产生报表的过程:每次点击不同的报表便把相应的tablename和报表文件,和报表名称传给他!
但结果是只有第一次点击的那个报表可以显示啊!
请教再点击另一个报表产生时,怎么把原来产生的报表文件删除!!!!!!!!!!我查找了很多资料的,都说用rave生成报表以.pdf;.html文件存放后打开!
对新手来说,感觉虚幻的拉。
偶是这样理解的:生成报表文件后,那不是静态了?那下次再更新打开又是那个了?有大侠说,在下次生成前,先把原来生成的文件删除掉!
在调用前面的设计思路啊!
小弟也表示同意的。
但是请问怎么去删除原来生成的文件呢?
请指示!把所以的分都加了哈。只为了科学和可爱的大侠朋友们!
小弟的QQ:52208377

解决方案 »

  1.   

    补充上代码哈参考ravedemo后所做的修改()。
        定义一个预览报表函数:procedure TIWMainForm.PrReport(tablename: TADOTable; str1, str2: string);
       RVdatacon := TRvDataSetConnection.Create(self);
       RvProject1.ProjectFile := WebApplication.ApplicationPath +'reports\' + str1;  
       RvSystem1.DoNativeOutput := false;
       //  当前程序目录路径下的 .rav
      RvSystem1.RenderObject := RvRenderHTML1; //保存为格式
      LFile := str2 + '.' + 'html';
      RvSystem1.OutputFileName := GServerController.FilesDir  + LFile; //存放的路径
      ForceDirectories(ExtractFileDir(RvSystem1.OutputFileName));
      GRaveLock.enter;
      try
        RVdatacon.Name := 'RvDataSetConnection1';
        RVdatacon.DataSet :=tablename;  //  可变
        RvProject1.ExecuteReport(str2); //  可变
      finally   
       RVdatacon.Free;
       GRaveLock.leave;
      end; // try/finally
      LWindowName := 'Report';
      LOptions := 'scrollbars=yes,width=1000,height=600';
      LURL := WebApplication.AppURLBase + '/files'   + '/' + LFile;
      AddToInitProc('NewWindow("' + LURL + '", "' + LWindowName + '","' + LOptions + '");');
    end;当点击产生产品信息报表:调用 PrReport(CP_bbADOTable1,'CP_BB.rav','CPReport');
    可以实现!
    但是再点击产生客户报表时: PrReport(KH_bbADOTable1,'KH_BB.rav','KHReport');确有PHP404错误!打开生成文件指定路径查看,发现没有生成KHReport.html文件。只有cpreport文件啊!
    请问大侠们这是怎么回事呢?(在程序中我只用一个RvProject1,RvSystem1和RvRenderHTML1)
    小弟在想;为什么第二次激发,他就没再生成我指定的文件了呢?
    难道RvProject1等只对一个内容有效吗?
    真的好迷茫!
    我都在网上找了好几天的资料,都没能解决问题!
    请大侠们帮帮我!
    祝君好运!
      

  2.   

    帮定一下,当时用intraweb + fastreport做过类似的东西。
    没用过rave但是请问怎么去删除原来生成的文件呢?--把原来生成的文件名,存到公共变量中,到时再取出来。
      

  3.   

    谢谢了!
    删除文件的问题得到了解决的。我调用了deletefile函数!
    上面的问题偶今天硬是把他整出来,但是还不指定发布后能否得到预期结果的!
    谢谢你了6rl(海)。你会万福的!
      

  4.   

    messageBox在intraweb中如何实现?
    intraWeb中怎么显示一个包含“确定”、“取消”的对话框?就是类似WebApplication.ShowMessage('***')然后有“确定”、“取消”的对话框?
    我想在点击退货是,弹出对话框:确定和取消!
    点击确定则执行往下代码,点击取消则不做操作!
    大侠帮助!