小弟碰到个问题,有个表是关于工资项目,比如基本工资等。还有个表是关于月工资表。根据员工不同,他的工资构成项目不同。我试作个尝试。
  现有关网格显示工资项目,把选中的工资项目打印出来。
  其代码如下:
 procedure TForm1.FormShow(Sender: TObject);
begin
   with ADOQuery2 do
      begin
        Close;
        SQL.Add('select ItemName from Item');
        Open;
      end;
end;procedure TForm1.Button1Click(Sender: TObject);
var  SQLStr, Col :String;
  i,j :Integer;
  //
   v: TfrView;
   b: TfrBandView;
   Page: TfrPage;begin
  if DBGrid1.SelectedRows.Count >0 then
  begin
    with DBGrid1.DataSource.DataSet do
    begin
      for  i:=0  to DBGrid1.SelectedRows.Count - 1   do
      begin
        GotoBook(pointer(DBGrid1.SelectedRows.items[i]));
        if i >0 then
          Col := Col + ',';
        Col := Col + Fields.Fields[0].AsString;
      end;
    end;
  end;
  //显示报表
  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    //SQL.Add('select '+ SQL + ' from MonthlyWage') ;
    SQLStr := 'select  '+ Col  + ' from MonthlyWage';
    SQL.Add(SQLStr);
    Open;
  end;
end;
 最后不知道怎样把frReport1相关联的ADOQuery1数据集的查询结果,全部'insert data fileld'到当前页中。能不能用个方法一下子搞定。最后frReport1.ShowReport

解决方案 »

  1.   

    根据我的想法,准备创建一个dataset,把所有的这些符合要求的数据弄到这个dataset中,然后指定fr的数据集组件连接到你创建的这个dataset。好像笨了一点。
      

  2.   

    这个可以满足你的要求!不用写代码下载地址:http://www.sailprint.com
    简介:  SailPrint打印组件是一套VCL打印控件。目前最新版本是3.0,可以打印DBGrid,StringGrid,ListView以及直接打印数据源。SailPrint有以下几大特点:    一、SailPrint的特点是快速生成报表,灵活易用,只需几分钟即可完成漂亮的报表。    二、最终用户可以修改报表,开发人员只需调用setoption 这个过程即可让最终用户设置报表。   SailPrint并且保留了设置窗口的源代码,开发人员也可以自己订制设置窗口,这样可以可以跟系统   风格更为一致。包括打印预览窗口也保留了源代码,窗口样式可以随意修改。    三、自动折行功能,估计大家都理解不用多说了,好不好用一试便知。    四、主细表功能,这是新加入的功能,并且支持公式统计。支持的函数有:sum,count,avg以及函数之间   的加减乘除。        例如:sum([字段1])/count([字段2])    五、支持流存储,可以将报表的设置或者将整个报表保存为流,这样可以简单的将报表设置保存到数据   库中,当然也可以保存成文件。这样最终用户修改了报表设置可以方便的保存。    六、多表头功能,设置方法可能与其他控件不一样。大家可以下载试一下。    以上是一些主要特点,还有一些细小功能就不一一列举了,大家下载体验一下吧。