Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Открыть новую тему     Написать ответ в эту тему

YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GeXamin

Цитата:
Что-то типа переменных

 
Подгрузка из словаря
REP_VARS - variable dictionary
 
procedure LoadVariables_to_FR(LREP: TfrxReport);
var
  i: integer;
begin
  LREP.Variables.Clear;
  LREP.Variables[' Глобальные переменные'] := Null;
  for i := 0 to REP_VARS.Count - 1 do
  begin
    LREP.Variables[REP_VARS.GetKeyByIndex(i)] :=
      AnsiQuotedStr(VarToStr(REP_VARS.ReadVariable(REP_VARS.GetKeyByIndex(i))), '''');
  end;
end;

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 01:51 19-10-2011 | Исправлено: YuriyRR, 01:56 19-10-2011
GeXamin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuriyRR
Собственно это один из двух вариантов, о которых я думал:
- передача всех переменных.
- наваять свою фнкцию для Фаста, подтягивающую значение.
 
Сомневался на счёт первого, но теперь задумался - ведь так прямо в редакторе будет виден список переменных.

Всего записей: 131 | Зарегистр. 07-09-2006 | Отправлено: 09:27 19-10-2011
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
1. Имеется пара десятков отчётов, суть их не имеет значения. В каждом присутствуют в конце "подписи" типа "Директор ______________ / Иванов И.И. /". Сейчас это все забито в статике руками. Хочется динамически из справочника, чтоб менять в одном месте и не лопатить все отчёты.  

 
Значит, так. Я такое делал следующим образом:
1. Справочник (или несколько) должностей и сотрудников в базе данных.
2. В каждом отчёте при его запуске в диалоговом окошке параметров отчёта есть пара лукапкомбобоксов, связанных с запросами из этих справочников (посредством использования одаковского примера для фастрепорта).
3. Пользователь при формировании сам выбирает единожды сотрудника, который сохраняется в реестр/ини файл и при следующем запуске автоматически подтягивается в поле.
 
Никаких переменных, всё просто как для меня, так и для пользователя.

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 10:34 19-10-2011
GeXamin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Пользователь при формировании сам выбирает единожды сотрудника, который сохраняется в реестр/ини файл и при следующем запуске автоматически подтягивается в поле.
т.е. с отчётом нужно тягать обязательно файл с настройками?
 

Всего записей: 131 | Зарегистр. 07-09-2006 | Отправлено: 11:09 19-10-2011
rrromano



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
т.е. с отчётом нужно тягать обязательно файл с настройками?

 
Зачем тягать? Он сам создастся. При переносе на другой комп просто заново придётся выбрать пару человек. А если так уж критично - можно зафиксировать выбор на уровне БД, в которой и хранить для каждого отчёта перечень параметров. Даже сам отчёт можно в блоб запихнуть.
 
Лично я делаю хранение настроек программ в ини-файлах - портабельно и просто. И когда переношу программу - могу и файлик ини дополнительно перенести.
Есть вариант с хранением настроек в профилях пользователей - тогда сложнее, но тоже не проблема.

Всего записей: 283 | Зарегистр. 20-09-2006 | Отправлено: 12:31 19-10-2011
GeXamin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rrromano
Идею понял. Спасибо всем.

Всего записей: 131 | Зарегистр. 07-09-2006 | Отправлено: 15:33 19-10-2011
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Народ, как очистить подготовленный отчет в frxPreview?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 17:14 21-11-2011
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеются три таблицы  
Мастер:
Заказы(ID, NAME)
 
Детали:
Материал(ID, ORDER_ID, NAME, WIDTH, LENGTH)
Обработка(ID, ORDER_ID, NAME)
Структура надуманная, важно различное количество смысловых колонок. (NAME, WIDTH, LENGTH в первом; NAME во втором случаях).
 
Необходимо сформировать отчет, типа

Код:
 
Вывеска
 
  Материал:
  Пластик 12 13
  ЛДСП 14 23
 
  Обработка:
  Фрезеровка
  Обрезка
 
Баннер
 
  Материал:
  Фанера 23 55
 
  Обработка:
  Кромление
  Покраска
 

Т.е. группировка двух бендов, по общему ID или NAME мастера.
Реально ли сделать такое без связывания исходных дейтасетов мастер-детейл (это очень не желательно). Т.е. обойтись группировкой или использовать субрепорт? Если реально, подскажите как?

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 22:43 22-11-2011 | Исправлено: wasilissk, 22:45 22-11-2011
GloThin



Тобольский шашлычник
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MagistrAnatol

Цитата:
Народ, как очистить подготовленный отчет в frxPreview?

Может это:
FORM1.frxPreview.Clear;

----------
Все принципиальное-просто,а все простое-принципиально!
На каждого мудреца достаточно простоты!
Не изменишь существующее,не изменив себя!!

Всего записей: 705 | Зарегистр. 28-04-2004 | Отправлено: 23:29 22-11-2011
SergKhM

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wasilissk
 
Реально. Я бы разместил под основной таблицей два detail со своими header, а строки для detail отбирал по OnScroll для основной таблицы

Всего записей: 83 | Зарегистр. 19-09-2009 | Отправлено: 00:30 23-11-2011
YuriyRR



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergKhM

Цитата:
а строки для detail отбирал по OnScroll для основной таблицы

Это дурной тон. Все само должно делаться в связке мастер-деталь

Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 01:53 23-11-2011
SergKhM

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuriyRR
 
1. С какой стати это дурной тон? Только потому, что так дядя Borland рисовал?
2. Человек захотел именно без мастер-связки

Всего записей: 83 | Зарегистр. 19-09-2009 | Отправлено: 03:25 23-11-2011
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergKhM
YuriyRR
Спасибо!
Дело в том, что дизайн отчета происходит в программе. Есть механизм добавлениея user-дейтасетов (по сути делать просто текст SQL и имя), но нет механизма их связывания. Будем думать, что менее затратно, либо реализовать этот механизм, либо делать через событие OnScroll.

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 06:41 23-11-2011
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GloThin
не помогает почему-то, уже пробывал

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 10:31 23-11-2011
GloThin



Тобольский шашлычник
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MagistrAnatol

Цитата:
не помогает почему-то, уже пробывал

Ты же выводишь отчет в собственную форму предпросмотра? Я правильно понял?
 
Тогда может объяснишь зачем очищать подготовленный отчет?
Для выведения нового?
Если для нового тогда делай:
frxReport1.PrepareReport(True) при подготовке отчета, тогда прежний очистится.
 

Всего записей: 705 | Зарегистр. 28-04-2004 | Отправлено: 11:54 23-11-2011
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Да и как проверить  есть ли подготовленный отчет в frxPreview??
 
Добавлено:

Цитата:
Ты же выводишь отчет в собственную форму предпросмотра? Я правильно понял?

да, точнее не форму а фрейм, и он у меня не удаляется и не пересоздается - ето меню в стиле офис 2010 реализованное через ТМС

Цитата:
Тогда может объяснишь зачем очищать подготовленный отчет?

а затем что я окрываю меню - превьюшка пустая - формирую предосмотр - и при следующем открытии
меню вижу предыдущий отчет - а мне нада пустая форма превьюшки

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 13:46 23-11-2011
indapublic



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
Prevew.PagesCount
 
Добавлено:

Цитата:
а мне нада пустая форма превьюшки  

Тогда очищай всегда превью перед показом

Всего записей: 200 | Зарегистр. 05-02-2008 | Отправлено: 14:03 23-11-2011
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
indapublic
if(frmFrame->frxPreview1->PageCount>0)frmFrame->frxPreview1->Clear();
получаю
Access in invalid memory in process: vdgo.exe(5032)  - D:\Робота\Проекты в розробке\ВДГО\_frmMain.cpp#1244

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 14:11 23-11-2011
GloThin



Тобольский шашлычник
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MagistrAnatol

Цитата:
формирую предосмотр - и при следующем открытии
меню вижу предыдущий отчет - а мне нада пустая форма превьюшки  

Как формируешь?
PrepareReport(true) ?
 
А в менюшке при открытии проводи очистку фрейма или обновление...
Ты же подготавливаешь отчет, а у него просмотр ассоциирован с твоим фреймом?

Всего записей: 705 | Зарегистр. 28-04-2004 | Отправлено: 15:00 23-11-2011
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GloThin

Цитата:
PrepareReport(true)

да

Цитата:
Ты же подготавливаешь отчет, а у него просмотр ассоциирован с твоим фреймом?

не совсем так - для создание меню в стиле офиса 2010 в тмсовских компонентах используется фрейм, и уже на него я кинул ТfrxPreview
indapublic
так и пробывал на онклик кнопки меню и получил выше наведенную ошибку
 
 
 
Добавлено:
indapublic

Цитата:
Но я бы плясал от Report'a, имхо эстетичней
а подробнее

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 16:02 23-11-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru