我想把stringgrid内容添加到RAVE报表中,请问大虾们如何做呢?

解决方案 »

  1.   

    动态给RAVE中的TEXT赋值
    var
        MyPage: TRavePage;
        MyText: TRaveText;
    begin
      RvProject1.Open;
      With RvProject1.ProjMan do begin
          MyPage := FindRaveComponent('Report1.Page1',nil) as TRavePage;
          MyText := FindRaveComponent('Text1',MyPage) as TRaveText;
          MyText.Text := Sg_result.Cells[0,Sg_result.RowCount-1];
          MyText := FindRaveComponent('Text2',MyPage) as TRaveText;
          MyText.Text := Sg_result.Cells[1,Sg_result.RowCount-1];
          MyText := FindRaveComponent('Text3',MyPage) as TRaveText;
          MyText.Text := Sg_result.Cells[2,Sg_result.RowCount-1];
      end; { with }
      RvProject1.Execute;//Report('Report1');
      RvProject1.Close;
      

  2.   

    有些RAVE常见问题可参考我的贴子
    http://expert.csdn.net/Expert/topic/1743/1743788.xml?temp=.7417261
      

  3.   

    把stringgrid在delphi里用数据源和rave里的一个DataView相连接连接,
    再用几个DataText就可以显示出来了(或者使用tools->report wizards->simple table
    也可以)。
      

  4.   

    to qxj(Borland中国&游民)单个动态给予值我会呀,我想把整个STRINGgRID的值都打出来,就像打印一个TABLE一样
      

  5.   

    http://expert.csdn.net/Expert/topic/1743/1743788.xml?temp=.7417261
      

  6.   

    qxj(Borland中国&游民)  , 讲讲啊
      

  7.   

    好象只能用个循环,给Rave里面的Text一个个赋值,方法就和qxj的一样
      

  8.   

    动态给RAVE中的TEXT赋值
    var
        MyPage: TRavePage;
        MyText: TRaveText;
    begin
      RvProject1.Open;
      With RvProject1.ProjMan do begin
          MyPage := FindRaveComponent('Report1.Page1',nil) as TRavePage;
          MyText := FindRaveComponent('Text1',MyPage) as TRaveText;
          MyText.Text := Sg_result.Cells[0,Sg_result.RowCount-1];
          MyText := FindRaveComponent('Text2',MyPage) as TRaveText;
          MyText.Text := Sg_result.Cells[1,Sg_result.RowCount-1];
          MyText := FindRaveComponent('Text3',MyPage) as TRaveText;
          MyText.Text := Sg_result.Cells[2,Sg_result.RowCount-1];
      end; { with }
      RvProject1.ExecutReport('Report1');
      RvProject1.Close;
      

  9.   

    to: long102(龙102)
    那STRINGGRID中的其它记录呢,是用个WHILE DO就行吗?
      

  10.   

    把STRINGGRID的值插入到DataSet﹐再把DataSet跟Rave報表關聯起來就行了
    把STRINGGRID的值插入到DataSet可用循環實現
      

  11.   

    是个好办法,请教drinven(白冰) 制入数据集的部分代码说完给分
      

  12.   

    导入数据集的代码?试试这个:
      ...
      adoquery.sql.text:='select field1,field2,field3... from table where PK is null';
      ...
      for i,j (STRingGrid遍历。)
        adoquery.fieldbyname('field1').asstring:=stringgrid.cells[i,j]  不过这个方法似乎在数据量大的时候很慢。  
      
      

  13.   

    请教 icet(孤独的质数) 还有更好的办法吗?
    说完结贴
      

  14.   

    这要看你的stringGrid的数据来源。如果你的stringGrid的数据是与某数据集控件为前提就好办了。就不需要再写上面这些了。如果不是,那么上面的方法就已经够可以了,足以应付一般的数据量了。另外如果你实在不想用数据集,还有一个方法是用数组,然后用循环语句,参照上面的
    牛大歌QXJ的方法去做,也是可以的。(不过,如果你不关系数据集的话,数据量往往很
    小,这个方法应该是最方便快捷的。)
    我在大富翁上写了个贴子,可以瞧瞧,评论一下也行:
    http://www.delphibbs.com/keylife/iblog_show.asp?xid=2939
      

  15.   

    问题是如何像QREPORT那样在NEEDDATA中控制数据
      

  16.   

    使用TRvCustomConnection组件将StringGird中的数据作为非数据集输入Rave报表
    参见 http://expert.csdn.net/Expert/TopicView1.asp?id=2354177