Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отчет в FastReport, Загрузка на лист отчета из переменных 
V
    Опции темы
Hellen
Дата 19.1.2009, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 3.7.2006
Где: Москва

Репутация: 2
Всего: 3



У меня данные находятся в переменных.
Как мне их вывести  на лист отчета?

Одна колонка будет иметь наименование товара, 
а напротив наименования,  должны отображаться кол-во и стоимость.

Наименование-из базы, а кол-во и стоимость-из переменных.
Вот с переменными у меня трудности......

PM MAIL   Вверх
Данкинг
Дата 19.1.2009, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Вот справка, изучай... smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Hellen
Дата 20.1.2009, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 3.7.2006
Где: Москва

Репутация: 2
Всего: 3



Из справки:-

Вывод значения переменной в отчете
Чтобы показать содержимое какой-либо скриптовой переменной в отчете, надо описать эту переменную и присвоить ей значение. Вот простой пример скрипта:

Код

var
MyVariable: String;
begin
MyVariable := 'Hello!';
end.


Вывести значение переменной можно, например, в объекте "Текст", поместив в него строку [MyVariable].
Имя переменной должно быть уникальным, т.е. не должно совпадать с именами объектов отчета, стандартных функций, констант. При любой ошибке в скрипте на экран будет выведено сообщение и отчет строиться не будет.

Добавлено через 4 минуты и 2 секунды
Я примерно это себе и представляла, но пока не получается у меня вот что:
Для того что бы вывести эту переменную,  я описываю её в строке кода  fastreportА,
потом пускаю на выполнение, но как мне связать скрипт в фаст репорте с переменной юнита.??
Он не видит переменную.

PM MAIL   Вверх
Данкинг
Дата 20.1.2009, 00:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Ладно, вот краткий мануал накатал. smile 

1. На FR Заходим в меню "переменные":
user posted image
2. В окне редакторе переменных создаём новую категорию:
user posted image
3. В этой категории уже создаём наши переменные, называя их, как нужно:
user posted image
4. Для использования переменных в отчёте обрамляем их скобочками:
user posted image

Теперь как обращаться к переменным отчёта из программы. У компонента frxReport есть метод OnGetValue. Вот его и юзаем:
VarName - это название переменной в отчёте, value - то значение, которое мы хотим ей передать:

Код

procedure TForm1.frxReport1GetValue(const VarName: String;
  var Value: Variant);
begin
if varname='path' then value:='БУГАГАГА';
end;


Это сообщение отредактировал(а) Данкинг - 20.1.2009, 00:55


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 20.1.2009, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Данкинг, посоветовал FR? Теперь придётся учить smile .
PM MAIL   Вверх
Данкинг
Дата 20.1.2009, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Akella @ 20.1.2009,  01:18)
Данкинг, посоветовал FR? Теперь придётся учить smile .

Кому учить, мне? Согласен, что многого не знаю ещё по FR. smile 



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 20.1.2009, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



И я не знаю, может оно и к лучшему smile . Сами побольше узнаем. А я ещё хотел бы хорошо изучить скриптер.
PM MAIL   Вверх
Данкинг
Дата 20.1.2009, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Akella @  20.1.2009,  09:15 Найти цитируемый пост)
А я ещё хотел бы хорошо изучить скриптер. 

Там много на Дельфи похоже (ну, на паскаль т.е.). smile Можно интуитивно догадываться, а вообще событий немного - до печати, после печати... И ещё что-то такое подобное. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 20.1.2009, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Нет, там есть отдельный пакет для скриптов.
PM MAIL   Вверх
Данкинг
Дата 20.1.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Akella @  20.1.2009,  11:14 Найти цитируемый пост)
Нет, там есть отдельный пакет для скриптов. 

Я про закладку "скрипт" в отчётах. А пакеты - да, есть, только их я определённо не знаю. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Kbl4AH
Дата 20.1.2009, 11:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



На форме имеется компонент frxReport1.
1-й способ (в конструкторе отчета добавляем мемку Memo1):
Код

procedure TForm1.FormShow(Sender: TObject);
var
  MyString: string;
begin
  MyString := 'Переменная';
  (frxReport1.FindObject('Memo1') as TfrxMemoView).Text := MyString;
  frxReport1.ShowReport(True);
end;

2-й способ (динамическое создание мемки):
Код

procedure TForm1.FormShow(Sender: TObject);
var
  MyString: string;
  MyMemo: TfrxMemoView;
begin
  MyString := 'Переменная';
  MyMemo := TfrxMemoView.Create(frxReport1.FindObject('Page1'));
  MyMemo.SetBounds(100,100,200,20);
  MyMemo.Text := MyString;
  frxReport1.ShowReport(True);
end;

PM MAIL ICQ   Вверх
Hellen
Дата 21.1.2009, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 3.7.2006
Где: Москва

Репутация: 2
Всего: 3



Данкинг   спасибо.....
У меня на выполнение запущена  ButtonClick.............из формы  "TFormFastReport" 
что то я сообразить не могу.......куда твою  процедуру сажать.
Можно дополнить код??  плиз.

Ф отчете я создала переменную  'price' в неё надо передать значение переменной  'cena'.



Код

procedure TFormFastReport.Button1Click(Sender: TObject);
    var
cena:integer;
begin
cena:=strtoint(edit1.Text);
frxReport1.ShowReport(true);
end;
end.

PM MAIL   Вверх
Данкинг
Дата 21.1.2009, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Hellen @  21.1.2009,  22:12 Найти цитируемый пост)
куда твою  процедуру сажать.

У frxReport1 ищи OnGetValue и вместо моих переменных подставляй свои. smile 

Это сообщение отредактировал(а) Данкинг - 21.1.2009, 22:42


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Hellen
Дата 21.1.2009, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 3.7.2006
Где: Москва

Репутация: 2
Всего: 3



Код

procedure TFormFastReport.Button1Click(Sender: TObject);

       var
cena:integer;
begin
cena:=strtoint(edit1.Text);
frxReport1.ShowReport(true);

end;

procedure TFormFastReport.frxDBDataset1Open(Sender: TObject);
begin
end;

procedure TFormFastReport.frxReport1GetValue(const VarName: string;
  var Value: Variant);
begin
 if price='path' then value:=cena;
end;
end.


Я не понимаю как этот мой бред может работать?
Как переменные могут передоваться?

Добавлено через 32 секунды
передаваться

Добавлено через 1 минуту и 58 секунд
я запуталась smile

Добавлено через 10 минут и 3 секунды
Код

procedure TFormFastReport.Button1Click(Sender: TObject);
    var
cena:integer;
begin
cena:=strtoint(edit1.Text);
frxReport1.ShowReport(true);
end;
procedure TFormFastReport.frxReport1GetValue(const VarName: string;
  var Value: Variant);
begin
 if VarName ='price' then value:='cena';
end;
end.

вот здесь уже что то проясняется только вместо  текста  'cena' мне нужно передать значение переменной......

Добавлено через 10 минут и 36 секунд
значение переменной cena

Добавлено через 14 минут и 15 секунд
Объявила переменную в  public
уф...
Всё получилось.
Спасибо всем.
PM MAIL   Вверх
Hellen
Дата 22.1.2009, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 3.7.2006
Где: Москва

Репутация: 2
Всего: 3



Kbl4AH,  твой метод тоже получился, спасибо, мне пригодится всё............

PM MAIL   Вверх
Данкинг
Дата 22.1.2009, 00:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Hellen @  21.1.2009,  23:13 Найти цитируемый пост)
Объявила переменную в  public

А не проще сразу так:

Код

procedure TFormFastReport.frxReport1GetValue(const VarName: string;
  var Value: Variant);
begin
 if VarName ='price' then value:=edit1.Text;
end;

 smile  smile  smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Hellen
Дата 22.1.2009, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 168
Регистрация: 3.7.2006
Где: Москва

Репутация: 2
Всего: 3



Цитата

А не проще сразу так:


Мы рассматривали переменную, где это возможно канешна буду так делать))
PM MAIL   Вверх
Deniz
Дата 23.1.2009, 07:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Вставлю свои пять копеек:
Код
frxReport1.Variables['VarName']:=QuotedStr(edit1.Text);



--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Данкинг
Дата 23.1.2009, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Deniz @  23.1.2009,  07:03 Найти цитируемый пост)
Вставлю свои пять копеек:

А это куда вешать?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Kbl4AH
Дата 23.1.2009, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(Данкинг @  23.1.2009,  10:55 Найти цитируемый пост)
А это куда вешать?

ну, наверное, в начале нужно переменную создать...
я тоже не совсем понял...
PM MAIL ICQ   Вверх
Deniz
Дата 23.1.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Цитата(Данкинг @  23.1.2009,  13:55 Найти цитируемый пост)
А это куда вешать?
код вызываем перед frxReport1.ShowReport(true);
Цитата(Kbl4AH @  23.1.2009,  14:33 Найти цитируемый пост)
ну, наверное, в начале нужно переменную создать...
я тоже не совсем понял... 
RTFM.
Данный код добавляет переменную, если ее нет, и устанавливает значение.
Я обычно пользуюсь данным методом, когда в шапке отчета нужно вывести какие-то параметры, которые ввел пользователь для построения отчета. Например, период "с ... по ..."


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Kbl4AH
Дата 23.1.2009, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Deniz, ну хорошо, переменной значение присвоили... а как тогда вывести это значение в отчете?
PM MAIL ICQ   Вверх
Данкинг
Дата 23.1.2009, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Kbl4AH @  23.1.2009,  12:25 Найти цитируемый пост)
а как тогда вывести это значение в отчете? 

Вероятно, как обычно: в коде FR : <VarName> .


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Kbl4AH
Дата 23.1.2009, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(Данкинг @  23.1.2009,  13:08 Найти цитируемый пост)
Вероятно, как обычно: в коде FR : <VarName> .

не понимаю, можно подробнее?
последовательность действий и пример кода...

разобрался

Это сообщение отредактировал(а) Kbl4AH - 23.1.2009, 13:46
PM MAIL ICQ   Вверх
Данкинг
Дата 23.1.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Kbl4AH @  23.1.2009,  13:17 Найти цитируемый пост)
разобрался

Т.е. получилось? Я-то так не пробовал, я всегда переменные задавал в FR, ничего не создавая динамически.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Kbl4AH
Дата 23.1.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(Данкинг @  23.1.2009,  14:55 Найти цитируемый пост)
Т.е. получилось?

угу
PM MAIL ICQ   Вверх
Deniz
Дата 26.1.2009, 06:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Цитата(Данкинг @  23.1.2009,  17:55 Найти цитируемый пост)
Т.е. получилось? Я-то так не пробовал, я всегда переменные задавал в FR, ничего не создавая динамически. 
я тоже переменные создаю в FR и там присваиваю им значение, что бы посмотреть, как это все выглядит.
А в коде присваиваю правильное значение переменной. Вот и все.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1213 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.