1、如果stringgrid的数据是从dataset里取来的,那就直接打dataset里的数据吧。如不是,就只能一格一格的取数据打了。
2、试一下用FormatFloat

解决方案 »

  1.   

    var
      frmNeedData: TfrmNeedData;implementation{$R *.dfm}procedure TfrmNeedData.FormCreate(Sender: TObject);
    var
      i: integer;
    begin
      SomeList := TStringlist.Create;  for i := 0 to 500 do
        SomeList.Add('Line ' + IntToStr(i));
    end;procedure TfrmNeedData.QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    begin
      // You must reset your data in the BeforePrint event
      // or when you print from the preview, the report will
      // start with the last value(s)
      CurrentIndex := 0;
    end;procedure TfrmNeedData.QuickRep1NeedData(Sender: TObject;
      var MoreData: Boolean);
    begin
      // If MoreData is true, then QuickReport will print
      // another detail band.  When you set it to false,
      // the report is done.    MoreData := (CurrentIndex < SomeList.Count);  if MoreData then
      begin
        QRLabel1.Caption := SomeList[CurrentIndex];    // Here's how to set the progress bar
        QuickRep1.QRPrinter.Progress := (Longint(CurrentIndex) * 100) div SomeList.Count;
      end
      else
        QuickRep1.QRPrinter.Progress := 100;  Inc(CurrentIndex);
    end;end.
    这是第一个问题的答案
      

  2.   

    Edit1.Text:=Format('%3.2f', [123.456]);
    第二个问题。
      

  3.   

    to 凌霄不好意思,能给我发例程吗?
    [email protected]
      

  4.   

    你去看,DELPHI 里面DEMO有个做报表的就是你这个情况,刚才我的代码就是那里贴的,我也在做这个,都实现了。主要是在quickrep的QuickRep1NeedData事件来实现这个功能。
    然后因为你可能不知道有多少个RQLABEL你要动态产生QRLABEL
      

  5.   

    对于保留小数位我一般用的是Str()来将Real类型的数据来进行的,你可以参考一下Help。
      

  6.   

    floatToStrF(readvalue,fsfixed,7,2);
    好像没写错吧