Страница 1 из 1

2 потока в fastreport

Добавлено: 16 фев 2006, 17:07
Rishat
субж. что и как надо сделать чтобы в один fastreport отчет загнать 2 независимых потока?

Добавлено: 18 фев 2006, 13:45
Rishat
мдя видимо fastreport'ом никто не пользуется. :P

Добавлено: 20 фев 2006, 08:37
Goblin
2 Dataset'а в DataStream

Добавлено: 20 фев 2006, 18:00
Rishat
вы наверное меня неправильно поняли. мне надо 2 create view. как такое реализовать?

Добавлено: 21 фев 2006, 08:20
Goblin
А один Create View, но с двумя независимыми ветвями чем не устраивает ?

Потом поля этих ветвей объявить 2 таблицами в одном DataStream'е

Код: Выделить всё

datastream stream1
(

table table1
(
поля первой ветки
)

table table2
(
поля второй ветки
)

;
)
end;
Правда не представляю себе задач, где такое (2 независимые ветки в Create View или же 2 Create View независимых) может понадобиться

Добавлено: 21 фев 2006, 16:02
Rishat
нет не походит.
вот такая вот задача. в одном select нельзя вывести то что надо. :Р потому и нужен второй поток.
хотя бы для примера есть вот такое

persons.appointcur == appointments.nrec
apphist.cappoint /== appointments.nrec
и в то самое время надо вывести
persons.appointfirst == appointments.nrec
apphist.cappoint /== appointments.nrec

синонимы не канают. пробовали.
так работает
select * from persons, appointments, synonym appointments app2 where
((
persons.APPOINTfirst==appointments.nrec
and
persons.APPOINTcur==app2.nrec
))

а вот так нет. идет перемножение..


select * from persons, appointments, synonym appointments app2, apphist, synonym apphist apphist2 where
((
persons.APPOINTfirst==appointments.nrec
and
apphist.cappoint /== appointments.nrec

and
persons.APPOINTcur==app2.nrec
and
apphist2.cappoint /== app2.nrec
))

Добавлено: 22 фев 2006, 11:00
Rishat
и опять тишина... техподдержка как всегда молчит. :\

Добавлено: 22 фев 2006, 14:34
dp
Rishat
select * from persons, appointments, synonym appointments app2, apphist, synonym apphist apphist2 where
((
persons.APPOINTfirst==appointments.nrec
and
apphist.cappoint /== appointments.nrec

and
persons.APPOINTcur==app2.nrec
and
apphist2.cappoint /== app2.nrec
))
а зачем использовать жесткие подцепки? они и так сложно работают - а тут их аж 2 сразу?

Код: Выделить всё

select 
 * 
from 
 persons
, apphist
, apphist apphist2 
where 
(( 
    persons.APPOINTfirst == apphist.cappoint
and persons.APPOINTcur   == apphist2.cappoint
))
вот это, по моему, идентично будет тому, что выше написано.

или я идеи не понял?

Что получить-то нужно?

Добавлено: 22 фев 2006, 17:12
Rishat
2 dp
а куда выкинули appointments. оттуда также требуется вывести данные.
напр.

ФИО Табельн. № Дата1 Код1 Дата2 Код2
где
persons.fio - ФИО,
persons.tabnmb - Табельн.№,
appointments.appointdate - Дата1,
apphist.codoper - Код1,
app2.appointdate - Дата2,
apphist2.codoper - Код2

в осадке должно получиться вот так

ФИО1 234 23.02.2005 1 25.02.2005 50
ФИО2 235 18.01.2005 1 18.01.2005 1
ФИО3 236 01.01.2005 1 - -

....

использую "обходной путь" в принципе можно получить данные которые мне треба. :)

select
persons.fio, persons.tabnmb, apphist.codoper, apphist2.codoper , appointments.appointdate, app2.appointdate
from
persons
, apphist
, apphist apphist2
, appointments
, appointments app2
where
((
persons.APPOINTfirst == apphist.cappoint
and persons.APPOINTcur == apphist2.cappoint
and apphist.cappoint == appointments.nrec
and apphist2.cappoint == app2.nrec
));


большой сенкс. вы мне подали мне хорошую идею. :))
будем пытать.. надеюсь больше проблем не возникнет..
т.к. мне еще порядка 3-4 табл к этому запросу цеплять. :)

Добавлено: 23 фев 2006, 11:48
dp
Rishat так я и спрашивал - что нужно получить? :grin:

потому как не зная задачи нельзя предложить точное решение.

и в целом, по-моему, нужно избегать жестких подцепок - потому как очень не очевидно как они отработают и что получится на после компиляции (бывает что срабатывают на внешней выгрузке и это очень большие тормоза).

уж лучше построить на обычных подцепках, а там где не хватает индекса написать (noindex)