3

有没有办法将某个文本(如 Rave Report 上的 text1)设置为您在 Delphi 应用程序中打印的 Delphi 表单上的某个 Edit.text。我想在 delphi 应用程序中创建一个应用程序表单,其中每个块代表一个单词的某个字母......例如 - Edit1.text := Surname 在我的狂欢报告中 text1 应该显示 Edit1.text[1] (S), text2 应该显示 Edit1.text[2] (u) ... 等等。我知道如何在 Rave Report 中使用 datatext 函数...但这意味着我必须先将每个字段的每个字母分别保存在数据库列中... :( 如果可以请帮助我...因为我当涉及到这种事情时,我非常愚蠢。

4

1 回答 1

3

由于这对我来说看起来很奇怪,我强烈考虑TEdit.Text直接从您的应用程序中设置您,而不是从报告中,并且由于您在这里问的内容不太清楚,我将尝试向您展示如何从或获取或设置文本在Text componentRave Reports 中。

让我们假设你有一个Report1名为Page1的文本组件Text1放置在某处的地方。这一切都是由 Rave Reports 设计者保存在C:\YourRaveProject.rav文件中的。然后假设您在 Delphi 项目中有一个按钮,在其 OnClick 事件处理程序和两个编辑框 中包含以下代码,Edit1我们在其中从组件加载文本Text1Edit2从中设置Text1组件文本。

uses
  RpRave, RpDefine, RpBase, RpSystem, RvCsStd;

procedure TForm1.Button1Click(Sender: TObject);
var
  RaveProject: TRvProject;
begin
  RaveProject := TRvProject.Create(nil);
  RaveProject.ProjectFile := 'C:\YourRaveProject.rav';

  try
    RaveProject.Open;
    RaveProject.SelectReport('Report1', False);
    // get the text from the Text1 component from the report
    Edit1.Text := (RaveProject.ProjMan.FindRaveComponent('Page1.Text1', nil) as TRaveText).Text;
    // set the text of the Text1 component on the report
    (RaveProject.ProjMan.FindRaveComponent('Page1.Text1', nil) as TRaveText).Text := Edit2.Text;
    // and execute the report for showing the result of setting the text
    // note, this can be omitted of course if you want only to get the value
    RaveProject.ExecuteReport('Report1');
    RaveProject.Close;

  finally
    RaveProject.Free;
  end;
end;

请以此为例,而不是作为您问题的真正答案,因为恕我直言,目前无法回答。如果您指定了确切的问题,那么我们可能会帮助您解决真正的问题。

在 Delphi 2009 上使用 Rave Reports 7.6.2 进行测试。

于 2011-10-10T22:53:58.507 回答