Перейти к содержимому


- - - - -

Форма с множеством полей


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 IL

IL

    Хранитель форума

  • Members
  • PipPipPipPipPipPipPipPip
  • 2 127 сообщений
  • Пол:Мужчина
  • Город:Химки, EastSide

Отправлено 15 Июнь 2009 - 16:45

Коллеги, у меня вопрос абстрагированный от конкретной среды разработки и направленный на юзабилити.

Есть база данных, есть клиентский интерфейс к ней. Пользователь вводит данные в БД. В некоторых таблицах в БД много полей (20-30 шт) и эти поля надо заполнить посредством интерфейса. Вопрос: каким образом организовать (расположить) поля ввода в окне, чтобы удобно было вводить данные и интерфейс не был слишком громоздким. Для примера таблицы возьмем описание некого объекта: <имя_объекта> <набор_характеристик_объекта>. Из-за большого кол-ва характеристик и получается таблица с большим кол-вом полей.


Мои мысли:

1) Расположить все поля на одном окне в нужном порядке. При таком подходе окно получается очень большим и загроможденным полями. // От этого хотелось бы избавиться.
2) Использовать вкладки (tabs). На каждой вкладке в окне расположить часть полей и при заполнении формы "ходить" по вкладкам. // Над этим я сейчас думаю.
3) Реорганизовать схему БД, логически сгруппировать характеристики объекта и вынести их в отдельные таблицы, создав таким образом реляционную модель, а в интерфейсе использовать Master-Detail окна.

Но вопрос все же в том, как организовать ввод большого кол-воа полей на одном окне.

#2 VMS

VMS

    Посетитель

  • Members
  • PipPip
  • 101 сообщений

Отправлено 15 Июнь 2009 - 16:49

Забить в таблицу, аля эксель.

#3 Longbow

Longbow

    Посетитель

  • Members
  • PipPip
  • 74 сообщений
  • Город:Химки
  • Интересы:много всяких...

Отправлено 16 Июнь 2009 - 17:42

Может что-то вроде этого?
Прикрепленный файл  Untitled_1.jpg   104,37К   15 Количество загрузок:
Вдобавок сделать так, чтоб при выделении ячейки в таблице строка и столбец для удобства расширялись или поле ввода у ячейки увеличивалось...

#4 IL

IL

    Хранитель форума

  • Members
  • PipPipPipPipPipPipPipPip
  • 2 127 сообщений
  • Пол:Мужчина
  • Город:Химки, EastSide

Отправлено 16 Июнь 2009 - 20:20

Нет, таблица не подходит. Excel тем более. Имеется стандартное окно приложения Win32, в нем расположены поля ввода. Задача расположить их так, чтобы окно не было громоздким и трудновоспринимаемым. Вот пример формы с кучей полей:

Прикрепленный файл  image002.png   12,21К   20 Количество загрузок:

#5 VMS

VMS

    Посетитель

  • Members
  • PipPip
  • 101 сообщений

Отправлено 17 Июнь 2009 - 10:01

Ты пойми, никто тебе не "починит машину", если известна лишь её модель.
ТЗ в студию.

#6 IL

IL

    Хранитель форума

  • Members
  • PipPipPipPipPipPipPipPip
  • 2 127 сообщений
  • Пол:Мужчина
  • Город:Химки, EastSide

Отправлено 17 Июнь 2009 - 10:14

Причем тут ТЗ? В любой системе есть ввод данных, в некоторых случаях приходится заполнять много полей на одной форме, что делает ее большой и нечитаемой. Задача каким-то образом разместить поля на форме чтобы она легко воспринималась.

#7 VMS

VMS

    Посетитель

  • Members
  • PipPip
  • 101 сообщений

Отправлено 17 Июнь 2009 - 10:19

Просмотр сообщенияIL (17.06.2009, 11:14) писал:

Причем тут ТЗ?
Ты сам представил достойный образец, вот и дерзай по образу и подобию. Для себя я эту тему закрыл.
P.S. И как только таких берут в программисты...

Сообщение отредактировал VMS: 17 Июнь 2009 - 10:21


#8 Гость_m1cra_*

Гость_m1cra_*
  • Guests

Отправлено 17 Июнь 2009 - 19:55

Просмотр сообщенияVMS (17.06.2009, 11:19) писал:

P.S. И как только таких берут в программисты...
поржал  :)   Сразу видно - ты далек от кодинга  :)  
По теме: Довольно актуальная задача, размещение едитов под ввод данных  :lol:  Я  обычно создавал динамически компоненты под ввод, а не кидал их сразу на форму. Ну и также табы,которые ты уже указал...Задача на самом деле актуальная...Почти во всех проектах есть такое, вопрос в количестве :)
Если полей не слишком много, то можно и правда использовать грид, форму по его размеру срезать. 1 столбец с описанием свойства сделать edited = false; На самом деле такая реализация в форме грида (не тупо лист xls, а конкретная табличка, например dbgrid, а еще лучше dbgrideh с возможностью задания типа полей и фильтрации ввода) будет неплохим выбором.  Можно обрабатывать метод ввода в едит и делать видимым следующий едит  :lol:  Тут уж чистая фантазия,если конечно код не будет смотреть руководитель проекта =) В любом случае советую использовать лукап-поля.
P.S. Посмотри в сторону WPF (я про сами формы) , и может быть не так уже и плохо будет? А если уж не под .net - то в сторону каких нибудь almdev копонентов

Сообщение отредактировал m1cra: 18 Июнь 2009 - 00:54


#9 .creo

.creo

    Свой человек

  • Members
  • PipPipPipPipPipPip
  • 786 сообщений
  • Пол:Мужчина
  • Город:DefaultCity
  • Интересы:лучше вам и не знать %)

Отправлено 17 Июнь 2009 - 23:07

По теме ничего сказать не могу, но:

Цитата

Для себя я эту тему закрыл.
В таком случае, следует закрыть для себя этот форум. А лучше все интернеты сразу.

Сообщение отредактировал .creo: 17 Июнь 2009 - 23:09


#10 Pyromaniac

Pyromaniac

    Новичок

  • Members
  • Pip
  • 4 сообщений

Отправлено 18 Июнь 2009 - 16:41

Имхо два варианта:
1) Данные вводятся нечасто - разбить запись на логические группы, каждую группу сделать страницей визарда.
2) Данные вводятся постоянно и в больших объёмах - дать пользователю таблицу на редактирование и не пудрить мозги.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных