Установите «ТЕКСТ» в Rave Report на Edit1.text в форме Delphi при печати - PullRequest
3 голосов
/ 10 октября 2011

Есть ли способ установить определенный текст, такой как text1 в Rave Report, на определенный Edit.text в форме Delphi, из которой вы печатаете в приложении Delphi.Я хочу создать форму приложения в приложении Delphi, где каждый блок представляет определенную букву слова ... например - Edit1.text: = Фамилия В моем отчете Rave text1 должен отображаться Edit1.text [1] (S),text2 должен показывать Edit1.text [2] (u) ... и так далее.Я знаю, как использовать функцию datatext в Rave Report ... но это означало бы, что мне нужно сначала сохранять каждую букву каждого поля в столбце базы данных отдельно ... :( Пожалуйста, помогите мне, если сможете ... потому что я 'Я очень глуп, когда дело доходит до такого рода вещей.

1 Ответ

3 голосов
/ 11 октября 2011

Поскольку это выглядит довольно странно для меня, и я настоятельно рекомендую установить TEdit.Text непосредственно из вашего приложения, а не из отчета, и поскольку не совсем понятно, о чем вы здесь просите, я постараюсь показать вам, как получить или установите текст от или до Text component в Rave Reports.

Давайте представим, что у вас есть Report1 с Page1, где текстовый компонент с именем Text1 размещен где-то. Все это разработчиком Rave Reports, сохраненным в файле C:\YourRaveProject.rav. Затем предположим, что в вашем проекте Delphi есть кнопка со следующим кодом в обработчике событий OnClick и двумя полями редактирования, Edit1, где мы загружаем текст из нашего 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;

Пожалуйста, возьмите это в качестве примера, а не как реальный ответ на ваш вопрос, потому что ИМХО в настоящее время он не отвечает. Если вы укажете точный вопрос, мы сможем помочь вам решить вашу реальную проблему.

Протестировано на Delphi 2009 с Rave Reports 7.6.2.

...