一个关于fastreport折行显示不正确的问题,望高手指点!(附部分源码,急急急 救命呀,没人告诉我,我死定了) (50分)

  • 主题发起人 主题发起人 bigsun
  • 开始时间 开始时间
B

bigsun

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么我的memo中折行显示的时候,显示不正确???
我是用frReportGetValue取得数据的,在DatasetCheckEOF中判断数据是否取完!
例如我愈显示的数据:1234567890as
折行应该显示为:
123456
7890as
却显示出:
123456
12345
6789as
6789a
s
 
怎么知道显示两次的?
 
预览的时候看见的!
 
把报表文件和需要用到的数据打包发到tigerr@ynmail.com,帮你看看
 
没人能解决吗?
 
例如以下代码就会出现上述问题:
代码:
procedure TForm1.FormCreate(Sender: TObject);
var
  i, j: Integer;
begin
  for i := 0 to StringGrid1.ColCount - 1do
    for j := 0 to StringGrid1.RowCount - 1do
      StringGrid1.Cells[i, j] := '1234567890'+IntToStr(j * StringGrid1.ColCount + i + 1);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  frReport3.ShowReport;
end;
procedure TForm1.frReport3GetValue(const ParName: string;
  var ParValue: Variant);
begin
  if AnsiCompareText(ParName, 'Cell1') = 0 then
    ParValue := StringGrid1.Cells[0, Dataset.RecNo]
  else
 if AnsiCompareText(ParName, 'Cell2') = 0 then
    ParValue := StringGrid1.Cells[1, Dataset.RecNo]
  else
 if AnsiCompareText(ParName, 'Cell3') = 0 then
    ParValue := StringGrid1.Cells[2, Dataset.RecNo]
  else
 if AnsiCompareText(ParName, 'Cell4') = 0 then
    ParValue := StringGrid1.Cells[3, Dataset.RecNo]
  else
 if AnsiCompareText(ParName, 'Cell5') = 0 then
    ParValue := StringGrid1.Cells[4, Dataset.RecNo]
end;
procedure TForm1.DatasetCheckEOF(Sender: TObject;
var Eof: Boolean);
begin
  Eof := Dataset.RecNo >= StringGrid1.RowCount;
end;
 
接受答案了.
 
后退
顶部