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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2012, 17:53   #1
Nenado
Пользователь
 
Регистрация: 17.01.2012
Сообщений: 54
По умолчанию Вопрос по отчету

Как в отчете (Fast report или еще какой нить) указать название БД??
К примеру у меня есть БД называется январь. И я хочу в шапке отчета написать - отчет за "...." как это сделать??
Nenado вне форума Ответить с цитированием
Старый 17.04.2012, 17:58   #2
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

Ты смотрел help? у тебя всегда одна БД, или разные будут? МОжешь присвоить имя отчету из программы, можешь в самом отчете написать.
SovereignSun вне форума Ответить с цитированием
Старый 18.04.2012, 09:33   #3
Nenado
Пользователь
 
Регистрация: 17.01.2012
Сообщений: 54
По умолчанию

У меня несколько БД - переключаю их нажатием кнопки и работаю с ними...а подскажите, как это в самом отчете написать??? я просто только поставил себе Fast report, еще не совсем его освоил

Последний раз редактировалось Nenado; 18.04.2012 в 09:59.
Nenado вне форума Ответить с цитированием
Старый 18.04.2012, 11:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

скачайте руководство по FastReport - благо оно есть везде (в т.ч. и на офф.сайте), полистайте. Многое станет понятнее.

а по большому счёту Вашу проблему можно решить следующими способами:
1. добавить нужное значение (название месяца) прямо в запрос/датасет (не рекомендую)

2. воспользоваться механизмом Variables (переменных) отчёта.
в руководстве есть.

3. использовать прямое преобразование значения поля из Delphi.
например, так:
Код:
>>>>на событии "Печатать что-то"

  frReport1.FindObject('mmName_Month').Memo.Clear;
  frReport1.FindObject('mmName_Month').Memo.Add('январь');

  .....

  frReport1.PrepareReport;
  frReport1.ShowPreparedReport;
4. написать функцию в самом отчёте, например, на BeforePrint шапки отчёта (как писать функции в отчёте - смотри руководство.) но это возможно, только если в отчете есть данные, по которым месяц можно определить.

5. воспользоваться событием отчёта OnGetValue и написать обработку в Delphi (не очень рекомендую, механизм достаточно навороченный==медлительный, пользоваться только в случае, когда другие способы не подходят.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2012, 12:40   #5
Nenado
Пользователь
 
Регистрация: 17.01.2012
Сообщений: 54
По умолчанию

пробую написать код, как предложили вы, но после ...frReport1.FindObject('mmName_Mon th') - не ставится memo - выдает ошибку : Unable to invoke Code Completion due to errors in source code..
Nenado вне форума Ответить с цитированием
Старый 18.04.2012, 14:13   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Nenado Посмотреть сообщение
пробую написать код, как предложили вы, но после ...frReport1.FindObject('mmName_Mon th') - не ставится memo - выдает ошибку : Unable to invoke Code Completion due to errors in source code..
1-е. отчёт на форме есть?
И называется точно так же, как в моём примере (frReport1)?!

2-е. в uses присутствует модуль fr_class ?

3-е. Вы вообще понимаете, что данный код делает?
Понимаете, что в отчёте с именем frReport1 должно быть текстовое поле с именем mmName_Month, куда данный код и запишет нужный текст?
(И если у Вас другое имя отчёта или поле по другому называется, то нужно в коде заменить на ВАШИ идентификаторы!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2012, 14:28   #7
Nenado
Пользователь
 
Регистрация: 17.01.2012
Сообщений: 54
По умолчанию

ну у меня не frReport1 а frxReport, и естественно я так и пишу. Кинул на форму отчета (в шапку) Memo - пишу там текст.....
Nenado вне форума Ответить с цитированием
Старый 18.04.2012, 17:58   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
пишу там текст
этот текст с FindObject нужно писать в DELPHI!
(способ №3)


А если Вы выбрали способ 4 (в самом FastReport писать, то там никаких Find не нужно - сразу можно присваивать нужным объектам текст.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2012, 22:28   #9
Nenado
Пользователь
 
Регистрация: 17.01.2012
Сообщений: 54
По умолчанию

да понятно что пишу в Делфи)
Обьясню свои шаги:
- на дизайнере отчетов, в шапке (title) создаю поле memo1... и пишу в нем, к примеру "январь".
-далее в делфи на событии он-клик кнопки, я пишу код :
frxReport1.FindObject('Memo1'). - и тут после точки не ставится memo..... а если прописываю все таки, то выдает ошибку, мол, типо не извесный...и т.п.
Nenado вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос Fezen Microsoft Office Excel 25 05.11.2010 23:55
Вопрос по mySQL + Вопрос по RichEdit HTL Общие вопросы Delphi 4 01.01.2010 20:22
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10
Вопрос по отчету. xruss Microsoft Office Access 18 08.05.2008 02:00