Topic: Проблема при передаче компонентов в переменные FastReport

Эти вопросы пересекаются с предыдущим постом.
При передаче в переменные FastReport компоненты формы указываются в секции "Выберите компоненты, участвующие в поиске".
Если их там не указать, то эти компоненты будут недоступны в мастере отчетов.
Однако, такой подход ведет к проблеме:
Если открыть форму с данными и в каком-либо поле изменить значение (напр. добавить пробел), то при нажатии кнопки "Отчет" на выводимой странице будет пустота.
Причина - значение этого компонента участвует в поиске, а его мы изменили (добавили пробел).
Таким образом, не может быть найдено совпадения данных на форме с данными в БД.
Поэтому, и отчет пустой.
Вопросов два:
1. Можно ли передавать в переменные FastReport значения компонентов, если они не связаны с БД?
Например, надо отображать или скрывать изображение в отчете, в зависимости от флага на форме, состояние которого нет смысла хранить в БД.
2. Можно ли сделать так, чтобы передаваемые в отчет компоненты не участвовали в поиске?
Надо чтобы их значения можно было использовать только в скрипте отчета или просто отобразить в отчете.

Re: Проблема при передаче компонентов в переменные FastReport

Скачайте пожалуйста последнюю версию
https://www.dropbox.com/s/c804dzufyak6v … 2.zip?dl=0


Теперь можно добавлять компоненты в отчет, даже если они не связаны с БД, таким образом их значение будет передано в отчет и не будут учавствовать в поиске.


Также добавил возможность добавлять переменные в отчет с помощью скрипта, для этого создайте событие OnClick для кнопки с действием "Отчет"


procedure Form1_ButtonReport_OnClick (Sender: TObject; var Cancel: boolean);
begin
    Form1.frxReport.Variables.Clear;
    Form1.frxReport.Variables[' ' + 'My Category 1'] := Null;
    Form1.frxReport.Variables['My Variable 1'] := 10;
    Form1.frxReport.Variables['My Variable 2'] := 20;
    Form1.frxReport.Variables['My Variable 3'] := '''Hello''';
end;
Dmitry.

Re: Проблема при передаче компонентов в переменные FastReport

Передача компонентов в отчет, даже если они не связаны с БД, работает.
Спасибо!
Правда эти компоненты надо указывать в той же секции, что и ранее - "участвующие в поиске".
Немного сбивает с толку, но работает же.

4 (edited by kovalenko 2018-01-17 12:22:27)

Re: Проблема при передаче компонентов в переменные FastReport

DriveSoft wrote:

Скачайте пожалуйста последнюю версию
https://www.dropbox.com/s/c804dzufyak6v … 2.zip?dl=0


Теперь можно добавлять компоненты в отчет, даже если они не связаны с БД, таким образом их значение будет передано в отчет и не будут учавствовать в поиске.


Также добавил возможность добавлять переменные в отчет с помощью скрипта, для этого создайте событие OnClick для кнопки с действием "Отчет"


procedure Form1_ButtonReport_OnClick (Sender: TObject; var Cancel: boolean);
begin
    Form1.frxReport.Variables.Clear;
    Form1.frxReport.Variables[' ' + 'My Category 1'] := Null;
    Form1.frxReport.Variables['My Variable 1'] := 10;
    Form1.frxReport.Variables['My Variable 2'] := 20;
    Form1.frxReport.Variables['My Variable 3'] := '''Hello''';
end;

Всем категорически прувет ))) !!! А кто подскажет, можно-ли, и если да то как, вот здесь например

Form1.frxReport.Variables['My Variable 1'] := 10;

   вместо "10" воткнуть данные из какого-нибудь текстового поля на самой форме? Не залезая в сам скрипт?

надо идти вперёд....

5 (edited by kovalenko 2018-01-17 14:17:39)

Re: Проблема при передаче компонентов в переменные FastReport

kovalenko wrote:
DriveSoft wrote:

Скачайте пожалуйста последнюю версию
https://www.dropbox.com/s/c804dzufyak6v … 2.zip?dl=0


Теперь можно добавлять компоненты в отчет, даже если они не связаны с БД, таким образом их значение будет передано в отчет и не будут учавствовать в поиске.


Также добавил возможность добавлять переменные в отчет с помощью скрипта, для этого создайте событие OnClick для кнопки с действием "Отчет"


procedure Form1_ButtonReport_OnClick (Sender: TObject; var Cancel: boolean);
begin
    Form1.frxReport.Variables.Clear;
    Form1.frxReport.Variables[' ' + 'My Category 1'] := Null;
    Form1.frxReport.Variables['My Variable 1'] := 10;
    Form1.frxReport.Variables['My Variable 2'] := 20;
    Form1.frxReport.Variables['My Variable 3'] := '''Hello''';
end;

Всем категорически прувет ))) !!! А кто подскажет, можно-ли, и если да то как, вот здесь например

 Form1.frxReport.Variables['My Variable 2'] := 20;

   вместо "20" воткнуть данные из какого-нибудь текстового поля на самой форме? Не залезая в сам скрипт?

На просторах, нашёл такой вариант

frxReport1.Variables.Variables['MyVar'] := '''' + Edit1.Text + '''';
'''' - 4 (четыре) одинарные кавычки

будет ли он работать? Вот в таком варианте:

procedure frmOrder_Button33_OnClick (Sender: TObject; var Cancel: boolean);
begin
       
    Form1.frxReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Report\repair invoice order3.fr3');
    Form1.frxReport.Variables.Clear;
    Form1.frxReport.Variables[' ' + 'My Category 1'] := Null;
    Form1.frxReport.Variables['My Variable 1'] := 10;
    Form1.frxReport.Variables['My Variable 2'] :='''' + frmOrder.Label25.Text + '''';
    Form1.frxReport.Variables['My Variable 3'] := '''Hello''';

end;

не хочет...Может кто подскажет?

надо идти вперёд....

Re: Проблема при передаче компонентов в переменные FastReport

Приложите пожалуйста ваш проект, посмотрю в чем дело.

Dmitry.

Re: Проблема при передаче компонентов в переменные FastReport

DriveSoft wrote:

Приложите пожалуйста ваш проект, посмотрю в чем дело.

Дмитрий здравствуйте. Отправил свой проект вам на почту, доступ admin / 1.
Суть какая. У меня создаётся заказ. Потом в таблице "заказы" я при выборе заказа в гриде распечатываю бланк приёма в ремонт или какой другой бланк. Что хотелось бы, хочется создать отдельную форму с данными по компании (поля с наименованием, телефоном, режимом работы, почтой и т.д и т.п) и что бы эти данные вставлялись в шапку печатной формы (или иметь возможность вставлять в печ.форму отдельные/выборочные данные из формы данных о компании, телефон или мыло или ещё что). Соответственно если данные в форме по компании меняются, меняются и данные в шапке печатной формы. В идеале иметь возможность вставлять все данные из формы о компании, или выборочные в любые печ. формы (т.е с любой формы базы).
Заранее благодарен.

надо идти вперёд....

Re: Проблема при передаче компонентов в переменные FastReport

kovalenko wrote:
DriveSoft wrote:

Приложите пожалуйста ваш проект, посмотрю в чем дело.

Дмитрий здравствуйте. Отправил свой проект вам на почту, доступ admin / 1.
Суть какая. У меня создаётся заказ. Потом в таблице "заказы" я при выборе заказа в гриде распечатываю бланк приёма в ремонт или какой другой бланк. Что хотелось бы, хочется создать отдельную форму с данными по компании (поля с наименованием, телефоном, режимом работы, почтой и т.д и т.п) и что бы эти данные вставлялись в шапку печатной формы (или иметь возможность вставлять в печ.форму отдельные/выборочные данные из формы данных о компании, телефон или мыло или ещё что). Соответственно если данные в форме по компании меняются, меняются и данные в шапке печатной формы. В идеале иметь возможность вставлять все данные из формы о компании, или выборочные в любые печ. формы (т.е с любой формы базы).
Заранее благодарен.

Всё, отбой. Реально ОТТУПИЛСЯ. Дмитрий спасибо за ваше внимание вопрос закрыт!!!

надо идти вперёд....

Re: Проблема при передаче компонентов в переменные FastReport

В таком вариант - должен.

    Form1.frxReport.Variables['My Variable 2'] := ''' + frmOrder.Label25.Text + ''';