有没有一种方法可以将Rave Report上的text1等文本设置为在Delphi应用程序中打印的Delphi表单上的Edit.text。
我想在delphi应用程序中创建一个应用程序窗体,其中每个块代表一个单词的某个字母...例如-Edit1.text:=姓
在我的Rave Report上,text1应该显示Edit1.text [1](S),text2应该显示Edit1.text [2](u)...,依此类推。我知道如何在Rave Report中使用datatext函数...但这意味着我必须先将每个字段的每个字母分别保存在数据库列中... :(
如果可以的话,请帮助我...因为这种事情我很傻。
最佳答案
由于这对我来说很奇怪,因此我强烈建议直接从应用程序而不是报表中设置TEdit.Text
,并且由于不清楚您要问的是什么,我将尝试向您展示如何获取或设置Rave报告中来自Text component
或来自Report1
的文本。
假设您有Page1
和Text1
,其中名为C:\YourRaveProject.rav
的文本组件放置在某处。所有这些都由Rave Reports设计器保存在Edit1
文件中。然后假设您在Delphi项目中有一个按钮,其OnClick事件处理程序中带有以下代码,并带有两个编辑框Text1
,在这里我们从Edit2
组件加载文本,从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;
请以这个为例,而不是您问题的真实答案,因为恕我直言,目前尚无法回答。如果您指定了确切的问题,那么我们也许可以为您解决实际问题。
使用Rave Reports 7.6.2在Delphi 2009上进行了测试。
关于delphi - 打印时在Rave Report中将“TEXT”设置为Delphi表单上的Edit1.text,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7716109/