procedure tdajydy.mydo();
var
   i:integer;
begin
   with Query1 do
   begin
      close;
      sql.Clear;
      sql.Add('select * from yourtable ');
      open;
      if recordcount<20 then
      begin
         for i:=1 to (20-recordcount) do  
         begin
            append;
            ..
         end;
         database.StartTransaction;
         try
            applyupdates;
            database.Commit;
         except
            database.Rollback;
         end;
         commitupdates;
         sql.Clear;
         sql.Add('select * from yourtable');
         open;
      end;
   end;
end;
procedure Tdajydy.QuickRep1Preview(Sender: TObject);
var
   forml:forml;
begin
   forml:=tforml.Create(application);
   forml.table:='m_dajy';
   forml.QRPreview1.QRPrinter:=tqrprinter(sender);
   forml.show;
end;