怎样在dbgrid中选择几条记录,就只将这几条记录用fastreport汇总打印成一个表,像实现printdbgrideh的选择打印dbgrideh功能?(30

  • 主题发起人 主题发起人 wnsr
  • 开始时间 开始时间
W

wnsr

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在dbgrid中选择几条记录,就只将这几条记录用fastreport汇总打印成一个表,像实现printdbgrideh的选择打印dbgrideh功能?(30分)<br />怎样在dbgrid中选择几条记录,就只将这几条记录用fastreport汇总打印成一个表,像实现printdbgrideh的选择打印dbgrideh功能?下面这个是选择一条记录打印成一张卡片,可是选择的数据汇总成一个表怎么办呢?不要说用printdbgrideh
http://community.csdn.net/Expert/topic/4919/4919162.xml?temp=.3837397
 
把选择的多条记录放入临时表,然后再使用fasrreport打印。可能属于笨办法,但是有效。
 
具体怎样做啊,怎样将选择的多条记录放入临时表啊?
 
怎样知道选择的是哪几条记录啊?只知道当前选择记录的bookmark,怎样知道具体选择的是什么内容啊?
 
用frUserDataset,在GetValue事件里手工赋值就可以拉
下面是个打印listview的例子:你变通一下就可以
procedure TForm1.frReport1GetValue(const ParName: String;
var ParValue: Variant);
var
I:integer;
begin

if ParName='data1' then
ParValue:=listview1.Items[frUserDataset1.RecNo].caption;

begin
for I := 2 to 5 do
begin
if ParName ='data'+ inttostr(I) then
ParValue := listview1.Items[frUserDataset1.RecNo].SubItems[I-2];
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
frReport1.LoadFromFile('test.frf');
frUserDataset1.RangeEndCount :=listview1.Items.Count;
frReport1.Dictionary.Variables['chengang']:=''''+'陈刚'+'''';
frReport1.Dictionary.Variables['de']:= ''''+'的'+'''';
frReport1.Dictionary.Variables['baobiao']:=''''+'报表'+'''';

// if frReport1.PrepareReport then
frReport1.ShowReport;
end;
 
你参考这点代码 ,可以知道选择的内容
var
i, j: Integer;
s: string;
begin
if DBGrid1.SelectedRows.Count&gt;0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items));
for j := 0 to FieldCount-1 do
begin

if (j&gt;0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= '';
end;
end;
 
接受答案了.
 
后退
顶部