2013-09-18 2 views
1

Я использую IReport 4.2 и я пытаюсь сделать следующийКак создать иерархическое дерево

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

, например

A. 
    A.a 
    A.b 
B. 
    B.a 
     B.a.a 

Любые предложения. Я сделал некоторые исследования, и я даже не знаю, что искать :)

+0

Знаете ли вы, сколько уровней вы можете иметь? – Lisa

+0

Нет, это динамично – Yebach

ответ

0

Я написал следующее выбрать, где я изменил идентификаторы с пробелами, умноженные на уровне

выберите ocs_season_questionnaire_id, идентификатор, код, название, описание, 0, «1» из ocs_season_report_unit где supervisor_id равна нулю и ocs_season_questionnaire_id = 5

union all 
select C.ocs_season_questionnaire_id, C.id, C.code, C.title, C.description, depth+1, xid||'.'||C.id 
from sumthis P 
inner join ocs_season_report_unit C on P.id = C.supervisor_id 
) 
select id, lpad('', depth*2)||title as title, description from sumthis where ocs_season_questionnaire_id = $P{qu_id} 

это не лучшее решение, так что если кто-нибудь знает, что лучше один пожалуйста, ответьте. спасибо

Смежные вопросы