Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2013, 12:48   #1
Ivan174
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 51
По умолчанию FastReport по строке в гриде

Здравствуйте. Начал изучать FastReport и такой вопрос. Имеется на форме cxgrid, подключенный к базе Firebird.
Создаю новую форму, кидаю туда tfrxDBDataSet, tfrxReport, tfrxPreview. Все связываю. Формирую внешний вид.
При вызове формы с отчетом данные отображаются, но по первой записи в гриде, хотя выделена совсем другая. как сделать так чтобы по выделенной записи данные отображались?
Ivan174 вне форума Ответить с цитированием
Старый 07.05.2013, 20:33   #2
Ivan174
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 51
По умолчанию

помогите кто-нибудь(( Пробовал сделать отдельный dataset, пробовал применять фильтр к текущему dataset. не получается. все равно выводит первую строку. Объясните пошагово. неужели никто не делал?
Ivan174 вне форума Ответить с цитированием
Старый 07.05.2013, 21:19   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

возможно данные в отчете выводишь не в той области (пытаешься вывести в области Заголовка, а не Детальных танных)
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 08.05.2013, 10:11   #4
Ivan174
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 51
По умолчанию

Итак пробую сделать дополнительный dataset, в который выводились бы данные только по выделенной строке.
Код:
procedure TForm4.btn3Click(Sender: TObject);
var ID_val: string;
begin
  ID_val:=pfbdtst1.FieldByName('ID').AsString;
  pfbdtst3.SelectSQL.Clear;
  pfbdtst3.SelectSQL.Add('SELECT * FROM  OPERATIONS_ON_THE_GRAIN '+
    'where (ID = '''+ ID_val +''') ');
     pfbdtst3.Active:=True;
  Form23.ShowModal;                     //форма с отчетом
    pfbdtst3.Active:=False;
end;
Но не работает. При нажатии на кнопку открывается форма с отчетом и сразу вылетает ошибка. Вроде же все верно?
Ivan174 вне форума Ответить с цитированием
Старый 08.05.2013, 10:24   #5
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

а ошибку покажешь?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 08.05.2013, 10:26   #6
Ivan174
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 51
По умолчанию

Блин, глюк при загрузке произошел, не заметил.
Изображения
Тип файла: png Безымянный.png (18.0 Кб, 45 просмотров)
Ivan174 вне форума Ответить с цитированием
Старый 08.05.2013, 10:31   #7
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

ну вооооот ... а теперь переведи сообщение на русский язык ... т.е. ему открывать\выводить нечего ... ищи где у тебя еще может использоваться pfbdtst3 в этот момент
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 08.05.2013, 10:47   #8
Ivan174
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 51
По умолчанию

В том-то и дело, что нигде)) я его создал специально, чтобы отчет делать по строке. по умолчанию, все SQL пусты. select, insert, update, delete, refresh. все пусто. нажимаю на кнопку, ввожу select и запускаю его. все. больше нигде не использую.
Ivan174 вне форума Ответить с цитированием
Старый 10.05.2013, 10:19   #9
Ivan174
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 51
По умолчанию

С ошибкой разобрался. необходимо было в обработчике Form23Show присваивать значение DataSource, а не в инспекторе объектов.

Все заработало, но осталась одна неприятная мелочь. При первом вызове отчета, он пуст. При последующих - все нормально. Установил галочку в настройках отчета, чтобы он делался в 2 прохода. ничего не изменилось.
Сам вызов несколько изменил, для простоты кода. Может это как-то влияет? В инспекторе объектов в датасет сразу прописал:
Код:
SELECT * 
FROM  OPERATIONS_ON_THE_GRAIN 
where ID =:id_v
А вот сам вызов:
Код:
procedure TForm4.btn3Click(Sender: TObject);
var ID_val: string;
begin
  ID_val:=pfbdtst1.FieldByName('ID').AsString;
  pfbdtst3.Params.ParamByName('id_v').Value:=ID_val;
  pfbdtst3.Active:=True;
  Form23.ShowModal;                     //форма с отчетом
  pfbdtst3.Active:=False;
end;
Почему первый вызов выдает пустой отчет? Переменная ID_val точно не пустая, проверял.
Ivan174 вне форума Ответить с цитированием
Старый 10.05.2013, 21:06   #10
Ivan174
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 51
По умолчанию

И еще нужна помощь такого плана. до этого никогда не работал с FAstReport и с отчетами вообще. Почитал руководство пользователя/программиста. Суть такая. Перед печатью показывается форма с чекбоксами, где пользователь выбирает, какие поля он хочет распечатать. Почитав руководство, я так понял, что мне надо использовать UserDataset. Как я вижу решение данного вопроса: Пользователь выбрал нужные поля, нажал на кнопку Ок. В массив сохраняются нужные значения, на месте тех, которые пользователь не хочет печатать, ставится просто пробел. Открываю форму с отчетом. И что дальше? как связать мой массив и UserDataSet?
Ivan174 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертация отчета FastReport в PDF минуя просмоторщик FastReport a.falkone Компоненты Delphi 3 04.02.2013 06:57
Не отображает данные в ДБ Гриде EHLIB Помощь студентам 1 24.12.2012 20:45
Как отформатировать число в гриде Tihon Общие вопросы Delphi 6 26.03.2010 09:25
Древовидная структура таблицы в гриде AK BULLETS Общие вопросы Delphi 3 21.03.2010 02:51