powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / CR-11. Отчет-дерево
13 сообщений из 13, страница 1 из 1
CR-11. Отчет-дерево
    #33655322
Фотография kkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется обычное дерево: id, parent_id, name. Всего три уровня группировки (на данный момент, потом может будет и больше). В CR нужно сделать так, чтобы в левой части выводилось удобоваримое для пользователей дерево по полю name, что-нибудь вроде

Тетради
- тетради в клетку
-- 48 листов
-- 96 листов
- тетради в линейку
-- 48 листов
-- 96 листов

Надеюсь, мысль понятна. Если делать группировку по полям id и parent_id, то в левой части будут просто числовые коды, которые конечному пользователю совершенно неинтересны. Как же сделать так, чтобы группировка была по полям id и parnet_id, но при этом пользователь видел не коды, а иерархическое дерево с возможностью соответственно открывать нужный узел? Может кто сталкивался с подобной задачей?

С уважением, kkv
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33655524
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотреть в хелпе про "Customize Group Name Field"
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33655559
dragonv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там где поле группировки в закладке Options можно поставить (указать) имя поля.
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33655593
Фотография kkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, буду пробовать.

С уважением, kkv
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33655739
Фотография kkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С выводом названий полей я разобрался, а вот с деревом нет. Все дело в том, что при таком подходе, я имею в виду группировку по id и parent_id, не выводится дерево, которое ожидается. Кристал совершенно по-честному на первый уровень группировки ставит parent_id, на второй id - претензий не имею. Но нужно-то получить совершенно другое! Неважно какой грублины дерево, в отчете иерархия должна прослеживаться четко в зависимости от данных в узлах. Т.е. очевидно, что неправилен сам подход к формированию деревянного отчета. Нужно выводить не группировкой (или не только группировкой), но и как-то по другому. Вот только как?

С уважением, kkv
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33656494
Фотография kkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, раз никто не подсказал, то пришлось разобраться самому. В CR иерархические отчеты делаются элементарно. Сначала нужно задать уровень группировки по полю id, затем зайти в меню "Report" - "Hierarchical Group Options" и указать parent_id. Вот и все.

С уважением, kkv
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33671814
Фотография kkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sql.ru/forum/actualthread.aspx?tid=283493#2571506

Peter Kirillowя бы не стал извращатся с передачей отчету готового резалтсета. если в дизайнере все строится нормально, то отчет надо вызывать как есть с простой передачей ему параметров. и все. если поискать в форуме, то можно найти как это сделать через OLE. я пользуюсь явой только...В этом случае на каждой клиентской машине должен быть установлен Crystal. Дело здесь (теперь уже) даже не в технике передачи параметров (я их могу "зашить" в строку SQL, считав из формы), а в том, что вьювер некорректно отображает дерево. Вот как это побороть?

С уважением, kkv
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33673501
Фотография kkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
Private Sub cmdOpenReport_Click()
On Error GoTo errHandler

Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Crystal As CRAXDRT.Application
Dim Report As CRAXDRT.Report
Dim strSQL As String
Dim strFileName As String

'Строка подключения
Set Conn = New ADODB.Connection
Conn.CursorLocation = adUseClient
Conn.ConnectionString = "Provider=SQLOLEDB.1;" _
    & "Persist Security Info=False;" _
    & "User ID=USERNAME;" _
    & "Password=PASSWORD;" _
    & "Initial Catalog=DATABASE;" _
    & "Data Source=SERVERNAME"
Conn.Open

'Открываем файл отчета
strFileName = "d:\App\test\PriceList.rpt"
Set Report = Nothing
Set Report = m_Application.OpenReport(strFileName,  1 )
Report.DiscardSavedData 

'Получаем данные из ХП
Set rs = New ADODB.Recordset
strSQL = "exec UP_RPT_ACC_ENT_GOODS_PRICE_LIST " _
   & "@PRICE_ID = '" & txtPriceID.Text & "' " _
   & ", @CURRENCY_ID = '" & txtCurrencyID.Text & "' "
rs.Open strSQL, Conn, adOpenStatic, adLockReadOnly

'Прикручиваем рекордсет к вьюверу на форме
Report.Database.SetDataSource rs
CRViewer1.ReportSource = Report
CRViewer1.ViewReport

'Выход
rs.Close
Set rs = Nothing
Set Conn = Nothing
Set Crystal = Nothing
Set Report = Nothing
Exit Sub

'Ошибки
errHandler:
    MsgBox Err.Description, vbExclamation
End Sub

Если запускать файл отчета отдельно, то дерево формируется так как надо. Если же запускать из кода, то во вьювере все эти данные отображаются, но уже как-то криво. На картинке справа это то, что должно получиться, а слева - то, что получается из кода. (То что справа я наваял на .NET, но нужно прикрутить именно к VB6). Кривизна состоит в том, что все ветки дерева начиная со второй строки попадают в самую первую ветку, в данном случае "Товары для делопроизводства". В самом коде я нигде не проникаю внутрь вьювера, а просто тупо его подключаю. Может кто сталкивался с подобной задачей и знает как ее решить. В документации я не нашел ни одного примера о том как можно "включить" иерархичность во вьювере. Догадываюсь, что нужно каким-то образом пройтись по дереву в цикле, но как???

С уважением, kkv
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33673688
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробовать включить программно
http://support.businessobjects.com/global/interactive/xi/om/RDC/content.html
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33673739
Фотография kkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Peter Kirillowпопробовать включить программно
http://support.businessobjects.com/global/interactive/xi/om/RDC/content.htmlИменно этого я и добиваюсь, пример кода нужен. А по этой ссылке (объектная модель) я уже был. Все, что касается иерархичности, если я правильно понимаю, следует искать в свойстве EnableHierarchicalGroupSorting . А примера кода я там не нашел. Пробовал просто присваивать этому свойству значение true, но прога ругается (как именно уже не помню, т.к. перепробовал много способов). Подскажешь?

С уважением, kkv
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33673819
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поскольку я никогда не делал этого в VB, то для начала попробовал бы получить массив объектов Area и посмотреть на их свойства, а потом попробовать установить этот (EnableHierarchicalGroupSorting) флаг.
но, повторюсь, я бы попробовал всю задачу формирования репорта (резалтсет) оставить самому кристалу и делать так как написано по ссылке http://support.businessobjects.com/library/kbase/articles/c2004630.asp.
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33673837
Фотография kkv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Peter Kirillowно, повторюсь, я бы попробовал всю задачу формирования репорта (резалтсет) оставить самому кристалу и делать так как написано по ссылке http://support.businessobjects.com/library/kbase/articles/c2004630.asp Так ведь именно так я и сделал, только вот вьювер криво отрабатывает.
...
Рейтинг: 0 / 0
CR-11. Отчет-дерево
    #33674010
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
здается мне, что это таки кривизна самого вьюера.
версия-то какая ?
какой тип данных у парента ?
если сделать тестовый репорт, где не будет русских символов, то будет работать через вьюер ?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / CR-11. Отчет-дерево
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]