我在做一个成绩管理系统时,选用几个combobox下拉菜单,在选择几个信息(如年份,课程名,课程号,学号)后,用dbgrid显示出成绩,我想用报表打印出来,该怎样做啊?就是说我先查到成绩,然后用报表将查到的成绩打印出来??小第主要是不知道怎样将查到的这科成绩在报表中显示出来
具体查询成绩的代码如下:
procedure TForm20.FormCreate(Sender: TObject);
begin
t1:=false;
t2:=false;
t3:=false;
t4:=false;
bitbtn1.Enabled:=false;
with adotable1 do
 begin
   open;
   while not eof do
      begin
      combobox1.Items.Add(fieldbyname('年份').AsString);
      combobox2.Items.Add(fieldbyname('名称').AsString);
      combobox3.Items.Add(fieldbyname('CID').AsString);
      combobox4.Items.Add(fieldbyname('SID').AsString);
      next;
      end;
  close;
 end;
//combobox1.ItemIndex:=0;
with adoquery1 do
   begin
     close;
     SQL.Clear;
     sql.Add('select distinct 名称 from grade where 年份=:年份');
     Parameters.ParamByName('年份').Value:=(combobox1.Text);
     prepared;
     open;
     while  not eof  do
              begin
                  combobox2.Items.Add( FieldByName('名称').AsString);
                  next;
              end;
       end;
     close;
dbgrid1.Columns[0].FieldName:='年份' ;
dbgrid1.Columns[1].FieldName:='SID' ;
dbgrid1.Columns[2].FieldName:='CID' ;
dbgrid1.Columns[3].FieldName:='名称';
dbgrid1.Columns[4].FieldName:='成绩';dbnavigator1.Enabled:=true;
dbnavigator1.DataSource:=datasource1;
dbgrid1.Enabled:=true;
dbgrid1.DataSource:=datasource1;end;procedure TForm20.BitBtn2Click(Sender: TObject);
begin
close;
end;procedure TForm20.ComboBox1Change(Sender: TObject);
begin
t1:=true;
if t1 and t2 and t3  and t4 then
   begin
   bitbtn1.Enabled:=true;
   end;  with adoquery1 do
    begin
    DisableControls;
    close;
    SQL.Clear;
    sql.Add('select Distinct 名称 from grade where 年份=:年份');
    Parameters.ParamByName('年份').Value:=(combobox1.Text);
    prepared;
    open;
    while  not eof  do
        begin
         combobox2.Items.Add( FieldByName('名称').AsString);
         next;
        end;
     close;
     enableControls;
     end;
dbgrid1.Columns[0].FieldName:='年份' ;
dbgrid1.Columns[1].FieldName:='SID' ;
dbgrid1.Columns[2].FieldName:='CID' ;
dbgrid1.Columns[3].FieldName:='名称';
dbgrid1.Columns[4].FieldName:='成绩';dbnavigator1.Enabled:=true;
dbnavigator1.DataSource:=datasource1;
dbgrid1.Enabled:=true;
dbgrid1.DataSource:=datasource1;end;procedure TForm20.ComboBox2Change(Sender: TObject);
begin
t2:=true;
if t1 and t2 and t3 and t4 then
   begin
   bitbtn1.Enabled:=true;
   end;  with adoquery1 do
    begin
    DisableControls;
    close;
    SQL.Clear;
    sql.Add('select Distinct CID from grade where 年份=:年份 and 名称=:名称');
    Parameters.ParamByName('年份').Value:=(combobox1.Text);
    Parameters.ParamByName('名称').Value:=combobox2.Text;
    prepared;
    open;
    while  not eof  do
        begin
         combobox3.Items.Add( FieldByName('CID').AsString);
         next;
        end;
     close;
     enableControls;
     end;
dbgrid1.Columns[0].FieldName:='年份' ;
dbgrid1.Columns[1].FieldName:='SID' ;
dbgrid1.Columns[2].FieldName:='CID' ;
dbgrid1.Columns[3].FieldName:='名称';
dbgrid1.Columns[4].FieldName:='成绩';dbnavigator1.Enabled:=true;
dbnavigator1.DataSource:=datasource1;
dbgrid1.Enabled:=true;
dbgrid1.DataSource:=datasource1;
end;procedure TForm20.ComboBox3Change(Sender: TObject);
begin
t3:=true;
if t1 and t2 and t3 and t4 then
   begin
   bitbtn1.Enabled:=true;
   end; with adoquery1 do
    begin
    close;
    SQL.Clear;
    sql.Add('select  Distinct SID from grade where 年份=:年份 and 名称=:名称 and CID=:CID');
    Parameters.ParamByName('年份').Value:=(combobox1.Text);
    Parameters.ParamByName('名称').Value:=combobox2.Text;
    Parameters.ParamByName('CID').Value:=combobox3.Text;
    prepared;
    open;
    while  not eof  do
        begin
         combobox4.Items.Add( FieldByName('SID').AsString);
         next;
        end;
     close;
     enableControls;
     end;
dbgrid1.Columns[0].FieldName:='年份' ;
dbgrid1.Columns[1].FieldName:='SID' ;
dbgrid1.Columns[2].FieldName:='CID' ;
dbgrid1.Columns[3].FieldName:='名称';
dbgrid1.Columns[4].FieldName:='成绩';dbnavigator1.Enabled:=true;
dbnavigator1.DataSource:=datasource1;
dbgrid1.Enabled:=true;
dbgrid1.DataSource:=datasource1;end;procedure TForm20.ComboBox4Change(Sender: TObject);
begin
t4:=true;
if t1 and t2 and t3 and t4 then
    begin
    bitbtn1.Enabled:=true;
    end; with adoquery1 do
    begin
    close;
    SQL.Clear;
    sql.Add('select 年份,SID,CID,名称,成绩 from  grade where 年份=:年份 and 名称=:名称 and CID=:CID and sid=:sid');
  //  SQL.Add('SELECT student.联系方式 FROM "grade" grade inner join "student" student on(grade.SID=student.SID) where STUDENT.联系方式=:SID');
    Parameters.ParamByName('年份').Value:=(combobox1.Text);
    Parameters.ParamByName('名称').Value:=combobox2.Text;
    Parameters.ParamByName('CID').Value:=combobox3.Text;
    Parameters.ParamByName('sid').Value:=combobox4.Text;
    prepared;
    open;
    dbgrid1.Columns[0].FieldName:='年份' ;
    dbgrid1.Columns[1].FieldName:='SID' ;
    dbgrid1.Columns[2].FieldName:='CID' ;
    dbgrid1.Columns[3].FieldName:='名称';
    dbgrid1.Columns[4].FieldName:='成绩';    dbnavigator1.Enabled:=true;
    dbnavigator1.DataSource:=datasource1;
    dbgrid1.Enabled:=true;
    dbgrid1.DataSource:=datasource1;
end;
end;