Rave работает именно так, как здесь задумано. Параметры не генерируют строки каждый раз, когда вы меняете строку.
Давайте предположим, что поскольку вы никому не сказали, что они имеют в виду, переменная cdsgrouprep является группой, основанной на наборе данных клиента. Если в наборе данных 4 строки и у вас есть группа, вы, естественно, ожидаете, что код создания полосового отчета в rave сгенерирует 4 копии этой группы в вашем отчете. Но вместо того, чтобы полагаться на это, вы, вероятно, ищете что-то, что генерирует кучу строк полностью из кода , и для этого вам вообще не нужны параметры. Параметры полезны для многих вещей, но не совсем то, что вам нужно здесь.
Отчеты о Rave, основанные исключительно на коде, показаны здесь в статье EDN и выглядят так:
procedure TFormMain.PrintTabularReport(Report: TBaseReport);
var
FolderList : TStringList;
i : Integer;
NumFiles : Cardinal;
NumFolders : Cardinal;
SizeFiles : Cardinal;
Root : string;
begin
with Report do
begin
SetFont('Arial', 15);
NewLine;
PrintCenter('List of Folders in the Drive Root', 4);
NewLine;
NewLine;
ClearTabs;
SetTab(0.2, pjLeft, 1.7, 0, 0, 0);
SetTab(1.7, pjRight, 3.1, 0, 0, 0);
SetTab(3.1, pjRight, 3.5, 0, 0, 0);
SetTab(3.5, pjRight, 4.5, 0, 0, 0);
SetFont('Arial', 10);
Bold := True;
PrintTab('Folder Name');
PrintTab('Number of Files');
PrintTab('Number of Folders');
PrintTab('Size of Files');
Bold := False;
NewLine;
FolderList := TStringList.Create;
try
Root := IncludeTrailingPathDelimiter(ExtractFileDrive(ParamStr(0)));
EnumFolders(FolderList, Root);
for i := 0 to FolderList.Count - 1 do
begin
PrintTab(FolderList[i]);
GetFolderInfo(IncludeTrailingPathDelimiter(Root+FolderList[i]),
NumFiles, NumFolders, SizeFiles);
PrintTab(Format('%u',[NumFiles]));
PrintTab(Format('%u',[NumFolders]));
PrintTab(Format('%u bytes',[SizeFiles]));
NewLine;
end;
finally
FolderList.Free;
end;
end;