![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| sanik |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
Совершенно не вьезжаю в вывод данных в JTable!
И книги и статьи НЕ ПОМОГАЮТ, не надо гвоорить сразу что я тупой. Суть задачи простая: надо вывести на грид данные из sql server из вызванной хранимой процедуры вот текст ТОГО как я СУМЕЛ все-таки вывести на грид эти данные
мне просто показали как резултсет загнать в массив и я так сделал, но это этого не стало легче я не могу управлять выводом данных в гриде теперь!!!! мне надо чтоб я мог указать конкретно какие колонки из резултсета показать в гриде (избирательно), но в тоже время система должна знать о всех других колонках (так как по ним я собираюсь делать разные фильтрации) в дельфи было гораздо проще и легче - имеется dataset и все что с ним связано, а тут блиииин!!!! а вот в другом классе я обновляю содержимое грида после смены офиса в дереве
Это сообщение отредактировал(а) Domestic Cat - 23.12.2004, 16:56 |
||||||
|
|||||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 10 Всего: 118 |
Можно использовать Vector. Строки и столбцы.
Один вектор содержит строки, которые в свою очередь тоже являются векторами. И отдельный вектор столбцов. Вот схема - работу не проверял, времени нет.
|
|||
|
||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Пример РАБОТАЮЩЕЙ программы отображения ResultSet в JTable
Взял с http://www.google.com/url?sa=U&start=1&q=h...ble.java&e=7634, настроил под себя Не вдаваясь в подробности: здесь используются две взаимосвязанные структуры - model и table. Данные закачиваются в model, отображаются через table, т.е. table можно рассматривать как "окошко" на модель. Для твоего случая - отображаешь данные как нужно (я сделал вставку для демонстрации отображения 3 столбцов), настраивая table, а для фильтрации используешь столбцы из model.
-------------------- Хотите поговорить об этом? |
|||
|
||||
| sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
спасибо ребята, адаптировал пример - сижу ковыряюсь в механизме.
итак:
тут я вижу только количественно - взяли и ограничили число показываемых колонок до 3, а как конкретно только нужные колонки показывать? например, как показать данные из поля LastName, FirstName, OfficeName, Department Это сообщение отредактировал(а) sanik - 23.12.2004, 23:15 |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
-------------------- |
|||
|
||||
| sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
трудно понять
имеется "добавление столбцов" и "вставка столбцов" и два варианта кода!? попробовал - совместо они абсурдны - по одиночке каждый как-то работает, но не прозрачно все это. Предлагаю 1) берем и создаем таблицу Employees = LastName varchar 20 FirstName varchar 20 OfficeName varchar 20 Dept varchar 20 Position varchar 20 2) заполняем туда 20 как минимум строк работников 3) берем и создаем таблицу Office = OfficeName varchar 50 и заполняем 3 строки 4) берем и создаем таблицу Dept = DeptName varchar 50 и заполняем 3 строки 5) берем и создаем таблицу Position = PositionName varchar 50 и заполняем 2 строки 6) кладем все это хозяйство на сервер (кто на какой - мне так удобно на sql server) Employees LastName FirstName OfficeName Dept Position Burn Anna_o1 North IS Clerk Baran Erwin_o1 North IS Manager Testov Merlin_o1 North IS Manager Xezes Stephen_o2 Central Admin Clerk Golden Tana_o2 Central Admin Clerk Molden Greggor_o2 Central Admin Clerk Bugen Matthew_o2 Central Admin Manager Ruben Warren_o2 Central Admin Manager Logan Juliana_o2 Central Admin Manager Kimal Kevin_o3 Zoo Workshop Clerk Tupak Melissa_o3 Zoo Workshop Manager Jameson Mark_o3 Zoo Workshop Manager Limbo Pieter_o3 Zoo Workshop Manager Kosh Joe_o3 Zoo Workshop Clerk Kilian Lynette_o3 Zoo Workshop Manager Hostings Dolores_o3 Zoo Workshop Manager Jokinks Dorota_o3 Zoo Workshop Manager Piskually Marty_o3 Zoo Workshop Clerk Fredis Jeff_o3 Zoo Workshop Manager Yammy Delilah_o3 Zoo Workshop Manager Office OfficeName Central North Zoo Dept DeptName IS Admin Workshop Position PositionName Clerk Manager а потом шаг за шагом показываем как сделать приложение (скажем, на IntelliJ IDEA), чтоб вывести на экране форму с деревом офисов с комбобоксом для списка должностей и с комбобоксом для списка отделов и гридом для списка работников PS. Готов принимать посильное участие в проекте Это сообщение отредактировал(а) sanik - 24.12.2004, 01:27 |
|||
|
||||
| igon |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
ОК, теперь можно перейти к подробностям. Идея такая - не показывать нужные, а не показывать ненужные И в model, и в table у тебя есть список столбцов и методы манипулирования с ним. Из списка столбцов model извлекаешь их индексы и имена, например, в структуру типа HashTable в виде key=индекс, value=имя_столбца . Затем показываешь юзеру все value в виде, скажем, checkbox'ов. Он отмечает те, которые хочет видеть, а ты, зная индексы неотмеченных, удаляешь их из table. Причем удалять нужно в ОБРАТНОМ порядке, начиная с максимального индекса. Примерно так (в предположении, что столбцы CODE,LOGIN,ROLE_TYPE показывать НЕ НАДО):
-------------------- Хотите поговорить об этом? |
||||
|
|||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Возможно, что OFFTOPIC, но:
Не ясна структура таблиц: если в таблицах Office. Dept, Position только по ОДНОМУ полю, то они представляются избыточными, потому что дублируются в Employees. Если же Office. Dept, Position задумывались как справочники, то нужно добавить в них поле, ну, скажем, ID, на которое надо будет организовать foreign key из Employees. Или это особенности sql server? И какова "сверхзадача" предполагаемой формы и проекта в целом? Это должно быть что-то вроде поисковой системы? По выбраным из комбобоксов Office. Dept, Position показать тех, кто им соответствует? Тогда зачем скрывать поля в гриде? Для поисковой системы реализация достаточно тривиальная: по кнопке "Show" формируется и выполняется Statement Select * from Employees where Office=comboOffice.getSelectedItem and Dept=comboDept.getSelectedItem.. и т.д. Полученный ResultSet запихивается в грид, а потом ...всё -------------------- Хотите поговорить об этом? |
|||
|
||||
| sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
igon
да все правильно мыслишь по поводу избыточности - это я просто чтоб не городить всякие линки и связки ессно все надо нормализовать и т.д. и данные у меня вытаскиваются в основном при помощи хранимых процедур, в которые я передаю параметры из формы. ессно в работниках токо Lastname, FirstName, Id_office, Id_Dept, Id_Position + куча других полей (но это пока не важно) а в справочниках еще по одному Int полю для кода. я просто хочу - азбуку понять на примере, который готов последовательно сделать (вот к примеру форма, которую мне месяц пришлось делать, осваивая SWING (на Дельфи это уже пашет как танк 3 год - причем там мне нужно всего 5-10 минут чтоб отладить функциональность самой формы) образец формы) www.geocities.com/moontraps/Forma.html Это сообщение отредактировал(а) sanik - 24.12.2004, 05:44 |
|||
|
||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
А что с отображением нужных столбцов? Разобрался? -------------------- Хотите поговорить об этом? |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
- Присоединённый файл ( Кол-во скачиваний: 17 )
My_Design.JPG-------------------- |
|||
|
||||
| sanik |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
Как у меня уже сделано:
DB класс для установки соединения с sql server 2000 и там я расположил свои "датасеты"= запросы к серверу, которые возвращают некий резултсет, в одном случае это вызов хранимой процедуры, а в другом простой query затем у меня есть Main_KHR класс - главный это запуск приложения и показ главного меню программы допустим в меню я выбрал показать список работников formEmployees класс - это та форма, которая на экране. Как это все должно работать: При открытии формы идет заполнение дерева офисов и ... Открывается форма - юзер выбирает какой-нибудь офис из списка и ...вызывается хранимая процедура и возвращает резултсет. Моя SP возвращает Id_Code, Surname, FirstName, MiddleName, EmployeeID, Initials, ... ... Office_Status, JobTitle, Position но показывать я хочу только Surname, FirstName, MR, UserName, Local_Number, PrimeTask, Department, EmploymentType, W_Group, Discipline, City_Name, JobTitle, Position вот из примера igon для моего случая как это сделать? ХАААААААААААА кое-что получилось!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 //================= User selects the table and refreshes the grid
а вот ка к вреальности работает у менея - вызывается хранимая процедура и потом я генерю массив(но хотел бы избавится от этого метода а работать с моделью с чекто указанными колонками, вернее показывать нужные колокни только в гриде)
Это сообщение отредактировал(а) sanik - 24.12.2004, 22:19 |
||||
|
|||||
| igon |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 7 Всего: 21 |
Замени в моем примере подготовку к получению ResultSet
Дальше можешь использовать код из моего примера. Вызов подготовки (которая у меня привязана к combobox) привяжи к событию в твоем дереве офисов. Механизм сокрытия ненужных столбцов смотри в моем посте от 24.12.2004, 02:19 Это сообщение отредактировал(а) igon - 24.12.2004, 23:51 -------------------- Хотите поговорить об этом? |
||||
|
|||||
| sanik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 23.12.2004 Репутация: нет Всего: 1 |
||||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |