Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Создание объекта в FastReport   Найти похожие ветки 

 
Светлана   (2005-01-22 15:27) [0]

Есть FastReport"овский отчет. Нужно при событии [OnBeforePrint] в MasterData1 (TfrBandView) в цикле создавать объекты, например TfrLineView.
Подскажите пожалуйста как это сделать.


 
Соловьев ©   (2005-01-22 15:44) [1]

а зачем?


 
Светлана   (2005-01-22 15:50) [2]

Рисую деревовидный отчет. Данные готовы. Надо только само собстнна дерево нарисовать.


 
Соловьев ©   (2005-01-22 15:55) [3]

положи нужные тебе лини и смещай их в OnBeforePrint, зачем криейтить?


 
Светлана   (2005-01-22 15:59) [4]

Потому что уровней вложенности дерева у каждой записи может быть несколько. И соответсвенно нужно создавать объекты (к тому же разные). В данных уже всё это есть. Нужно только, в зависимости от того, какие данные в текущей строке на соответсвующем уровне создавать объект соответсвующего вида.


 
Соловьев ©   (2005-01-22 16:04) [5]

>Нужно только, в зависимости от того, какие данные в текущей строке
> на соответсвующем уровне создавать объект соответсвующего вида

Ничего создавать не надо. Играешся с Visible.


 
Светлана   (2005-01-22 16:12) [6]

Представь, что у тебя 32 уровня вложенности.
Разве правильно будет создавать
  32 прямые линии      │,
  32 линии - "окончание ветки"    └    и
  32 линии вот такого вида   ├      (уж и не знаю, как их назвать :)))

А потом в цикле перебирать именами объектов и "играться" с Visible?
Мне кажется, что грамотнее было бы создавать, опираясь на данные, нужные объекты.


 
Соловьев ©   (2005-01-22 16:15) [7]

достаточно 3-х элементов.
Зачем 32? а если 64 уровня вложености - создавать 64 линии?


 
Соловьев ©   (2005-01-22 16:17) [8]

У тебя же один рядок MasterData1 - это один уровень одной ветки?
вот в событии OnBeforePrint и ставишь их по Left в зависимости от глубины и делаешь Visible в зависимости от лист это или середина ветки.


 
Светлана   (2005-01-22 16:23) [9]

Ну нарисуй дерево, в котором больше одного уровне вложенности.

├ данные(1 уровень)
│  ├ данные (2 уровень)
│  │  ├ данные (3 уровень)
│  │  │   └  данные (4 уровень)
│  │  └ данные (3 уровень)
│  └ данные (2 уровень)
└ данные (1 уровень)

вот видишь в четвертой строке на четырех уровнях нужно создавать четыре объекта (разных). Так не хватает же 3-х элементов.


 
Соловьев ©   (2005-01-22 16:28) [10]

понял... а без вертикальных линий никак?


 
Светлана   (2005-01-22 16:30) [11]

ну так дерево же нужно! Красивое и полноценное :)))


 
Светлана   (2005-01-22 16:31) [12]

Вот мне бы узнать как создавать объект в FastReport"е в рантайме и всё тогда заработает :)


 
Соловьев ©   (2005-01-22 16:32) [13]

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


 
Соловьев ©   (2005-01-22 16:39) [14]

кажысь придумал:)
ложим Cross tab на него линию, поключаем его к источнику данных, который запоняем в OnBeforePrint:
select 1 union select 2 ... unoin select n
где n - кол-во нужных вертикальных линий.


 
Светлана   (2005-01-22 16:45) [15]

очень интересная идея :)))
Только вот поконкретней объясни, плиз. Не пойму, что у тебя за SELECT 1 UNION ?.... И у кого мы заполняем в OnBeforePrint?


 
Соловьев ©   (2005-01-22 16:59) [16]

>Не пойму, что у тебя за SELECT 1 UNION ?
генеришь наборданных. такой, чтобы он тебе возвратил нужное кол-во записей, тебе нужно 3 линии, значит запрос должен быть

select 1 union select 2 union select 3

И т.д.
и присваиваешь эту строку ADOQuery в том же событии.

...
CountLines.Close;
CountLines.SQL := "select 1 union select 2 union select 3"//или переменную;
CountLines.Open;
...

И єтот источник данных указываешь у Cross tab


 
Светлана   (2005-01-22 17:06) [17]

Спасибо, сейчас попробую...



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.047 c
1-1107368301
Юрий К
2005-02-02 21:18
2005.02.20
LowerCase & UpperCase


14-1107249320
Ozone
2005-02-01 12:15
2005.02.20
Настройка маршрутизаторов (Cisco)


4-1105172846
Arnold
2005-01-08 11:27
2005.02.20
Обработка событий элементов управления


14-1106519766
Pat
2005-01-24 01:36
2005.02.20
Права категории "B" хотят разбить на 2 подкатегори


9-1100536487
Kobik
2004-11-15 19:34
2005.02.20
Диздок