Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163

Работа с иерархической таблицей

28.02.2010, 19:25. Показов 3542. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может кто подскажет стандартные приемы организации работы с иерархической таблицей. Я пока работаю с визуальным редактором. В связи с этим 2 вопроса. 1. Сейчас я завожу 2 tableAdapter для одной таблицы и устанавливаю связь от первой ко второй - чтобы организовать ввод головной организации в соответствующее поле. Правильно ли это? или есть варианты проще? 2. Мне желательно отобразить эту таблицу в нечто типа treeView. Или grid с раскрывающимися подуровнями по плюсикам?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.02.2010, 19:25
Ответы с готовыми решениями:

Составить программу, в которой будет реализована работа с таблицей по варианту. Для работы пользователя с таблицей будет
Добрый день. Есть такое задание: Составить программу, в которой будет реализована работа с таблицей по варианту. Для работы пользователя...

Заполнение поля иерархической таблицы из этой иерархической таблицы
Привет всем, врываюсь в Oracle. Такая задача, если следующая таблица create table rost_task3_irhy ( id_f number(10) --код ...

Работа с таблицей
Как привести Рис1 к Рис2? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> ...

8
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
28.02.2010, 20:45
Есть компонент DataTreeView.
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
28.02.2010, 21:19  [ТС]
И в нее можно закачать таблицу с "правильным" расположением записей по иерархии - можно дизайнером или только программно?
0
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
28.02.2010, 22:02
drag'n'drop не работает, надо задать в свойствах поля для id, parent и названия.
1
 Аватар для =Jester=
10 / 10 / 0
Регистрация: 22.01.2010
Сообщений: 55
01.03.2010, 01:01
Я с иерархическим представлением данных практически не сталкивался, а вот теоретически... видел в книге создание связей между родительской и дочерней таблицами посредством DataRelations. В результате чего в DataGrid (с загруженными туда данными родительской таблицы) появлялись "+" в каждой строке. Визульный пример - таблицы в MS Access. Если требуется именно такое представление, то могу написать код примера из книги.
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
01.03.2010, 12:37  [ТС]
За пример буду благодарен. В прежних версиях была возможность работы с datagrid с помощью визуального редактора (если не ошибаюсь), а теперь вроде как только ручным кодированием. Недостаток времени заставляет работать пока с визуальным дизайнером. А datagrid - даже на панели инструментов сложно найти... Ессно все таблицы у меня связаны , используя эти связи можно за 5 минут творить чудеса, то что раньше я кодировал - просто в качестве значения источника поля указываю связь - и в поле combobox показываются только связанные строки из подчиненной таблицы. Сейчас текущих 2 задачи - научиться иерархическую таблицу отобразить на TreeView и в нечтом, типа Datagrid ...

Добавлено через 2 часа 36 минут
Цитата Сообщение от serg42 Посмотреть сообщение
drag'n'drop не работает, надо задать в свойствах поля для id, parent и названия.
Не могу разобраться где эти свойства задавать.У TreeView есть свойство DataBindings и там можно привязать dataSource к чему-нибудь Например к tag. Но сейчас пытаюсь понять можно ли DataSource целиком привязать к treeview , чтобы система сама построила иерархический список , соответствующий таблице - или это научная фантастика - нужно самому разворачивать таблицу и заполнять узлы дерева?
0
124 / 106 / 7
Регистрация: 14.02.2010
Сообщений: 263
01.03.2010, 16:50
http://www.codeproject.com/KB/... ltree.aspx
1
 Аватар для =Jester=
10 / 10 / 0
Регистрация: 22.01.2010
Сообщений: 55
01.03.2010, 18:13
Довольно громоздкий код. Хотя главным образом в книге он был приведен для того, чтобы объяснить методы GetChildRows, GetParentRow, GetParentRows, SetParentRow объекта DataRow. Присоединение сетки DataGrid указывается. Я этот код у себя не тестировал, так что, если возникнут ошибки, пишите. Попытаемся вместе разобраться.

Скрин примера здесь
VB.NET
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
Private m_DataSet As DataSet 
Private m_dtClasses As DataTable 
Private m_dtStudents As DataTable 
Private m_DataRelation As DataRelation
 
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load 
  ' создать объект DataSet 
  m_DataSet = New DataSet() 
 
  ' создать таблицу Classes 
  m_dtClasses = New DataTable("Classes") 
  m_DataSet. Tables.Add(m_dtClasses) 
  m_dtClasses.Columns.Add("ClassName", GetType(String)) 
  m_dtClasses.Columns.Add("ClassNumber", GetType(Integer)) 
  m_dtClasses.Columns.Add("Department", GetType(String)) 
 
  ' создать таблицу Students 
  m_dtStudents = New DataTable("Students") 
  m_DataSet.Tables.Add(m_dtStudents) 
  m_dtStudents.Columns.Add("l_astName", GetType(String)) 
  m_dtStudents.Columns.Addf'FirstName", GetType(String)) 
  m_dtStudents.Columns.Add("Major", GetType(String))
 
  ' создать отношение между столбцами Department и Major- 
  ' последний параметр указывает, что 
  ' отношение не должно создавать ограничений целостности 
  ' (которых потребовало бы отношение "один-ко-многим") 
  m_DataRelation = New DataRelation("ClassStudents", m_dtClasses.Columns("Department"), m_dtStudents.Columns("Major"), False) 
  m_DataSet.Relations.Add(m_DataRelation)
 
  ' загрузить данные в таблицу Classes 
  Dim class_data(2) As Object 
  class_data(0) = "Calculus I" 
  class_data(1) = 1201 
  class_data(2) = "Mathematics" 
  m_dtClasses.Rows.Add(class_data) 
 
  '... часть кода опущена 
 
  'загрузить данные в таблицу Students 
  Dim student_data(2) As Object 
  student_data(0) = "Archer" 
  student_data(1) = "Audrey" 
  student_data(2) = "Mathematics" 
  m_dtStudents.Rows.Add(student_data) 
 
  '... часть кода опущена 
  
  ' принять изменения 
  m_DataSet.AcceptChanges() 
 
  ' присоединить сетку DataGrids к DataTables 
  dgClasses.DataSource = m_dtClasses 
  dgStudents.DataSource = m_dtStudents 
End Sub
 
Private Sub btnl_istChildren_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnListChildren.Click 
  Dim class_row As DataRow 
  Dim child_rows() As DataRow 
  Dim i As Integer 
  Dim txt As String 
  'получить строку class 
  class_row = m_dtClasses.Rows(dgClasses.CurrentCell.RowNumber) 
  'получить потомков 
  child_rows = class_row.GetChildRows(m_DataRelation) 
  'цикл по потомкам 
  For i = 0 To child_rows.GetUpperBound(0) 
       txt = txt & child_rows(i).Item("FirstName") & " " & _ 
       child_rows(i).Item("LastName") & vbCrLf 
  Next i 
 
MsgBox(txt, MsgBoxStyle.OKOnly, "Студенты отделения " & class_row.Item("Department")) 
End Sub 
 
'список родительских строк для записи Student 
Private Sub btnListParents_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles- btnListParents.Click 
  Dim student_row As DataRow 
  Dim parent_rows() As DataRow 
  Dim i As Integer 
  Dim txt As String 
 
  'получить строку Student 
  student_row = m_dtStudents.Rows(dgStudents.CurrentCell.RowNumber) 
 
  'получить родительские строки 
  parent_rows = student_row.GetParentRows(m_DataRelation) 
 
  'отобразить сокращенное название штата 
  For i = 0 То parent_rows.GetllpperBound(0) 
       txt = txt & parent_rows(i).Item("ClassName") & vbCrLf 
  Next i 
MsgBox(txt, MsgBoxStyle.OKOnly, "Занятия в отделении " & student_row.Item("FirstName") & Student_row.Item("LastName")) 
End Sub
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
01.03.2010, 19:05  [ТС]
Спасибо огромное, надеюсь в будущем тоже буду полезен - пока очень напряженно. Все попробую и напишу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2010, 19:05
Помогаю со студенческими работами здесь

Работа с Таблицей
Как изменить значения переменного в уже выведенной секции таблицы?

работа с таблицей
привет,подскажите как в stringgrid сделать сортировку по столбцу,так что бы если в таблице попадалось одинаковое слово,то оно переносилось...

Работа с таблицей в С++
Вот условие: Ввести в консоли строку из пяти символов, а затем прибавить к коду каждого символа 10, вывести новые символы на экран.

работа с таблицей
Как страницу с таблицей заключать в рамку-рисунок? Добавлено через 32 минуты Как поместить картинку или диаграмму в кадр? Как...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru