|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста, а есть какие– нибудь серьезные учебники/ресурсы по разработке интерфейса баз данных? Хотелось бы что то почитать с системным подходом. Схемы построения взаимодействия оператора с приложением, для разных задач, внесения данных в базу, вывода на экран и в печать и т.д. разграничение задач. ...С этим у меня почему то проблемы. Каждая формочка даётся тяжело, не с первого раза. Сделаю и только тогда вижу что тут этого не учел, здесь другого, в результате всё очень криво и не удобно. С пятого десятого раза что то рабочее получается, но с бОльшим охватом, со всей системой всё равно затык. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 14:35 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
ИзерлонерПодскажите пожалуйста, а есть какие– нибудь серьезные учебники/ресурсы по разработке интерфейса баз данных? Хотелось бы что то почитать с системным подходом. Схемы построения взаимодействия оператора с приложением, для разных задач, внесения данных в базу, вывода на экран и в печать и т.д. разграничение задач. ...С этим у меня почему то проблемы. Каждая формочка даётся тяжело, не с первого раза. Сделаю и только тогда вижу что тут этого не учел, здесь другого, в результате всё очень криво и не удобно. С пятого десятого раза что то рабочее получается, но с бОльшим охватом, со всей системой всё равно затык. гетц наверное, если под бд вы подразумеваете именно Access. А вообще бд и графический интерфейс взаимодействия с ней - ортогонально находятся друг от друга. Есть отдельно книги по дизайну приложений, отдельно по структуре бд. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 14:37 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Озверин, точнее, " П. Литвин, К. Гетц Разработка настольных приложений в Access 2002 " ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 14:38 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
У Геца я не нашел такого подхода (не скажу правда что всё прочитал от корки до корки, как то «набегами» получается. учебник у него замечательный. ...но там как бэ частности, как сделать то или иное, но без целого, собственно зачем всё, и почему именно такое построение. Не рассматривается система в целом. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 14:54 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Я понимаю что спрашиваю о чем то не вполне конкретном. Но мне кажется какие то правила построения приложений должны быть, и соответственно где то рассматриваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 14:57 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Как не надо делать, и какие проблемы могут возникнуть при построении приложения таким образам. Как надо/желательно делать и почему. Где уместно использовать подчиненные формы в табличном виде, а где это лишнее, где лучше использовать тривью и т.д. и т.п. как разграничить вывод информации и ее ввод так бы это было быстро и удобно. Масса подобных вопросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 15:03 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Что бы приобрести опыт построения приложения, помимо основной задачи, действительно тяжелой, взялся за простое приложение. Всего пять табличек, и даже с ними возник затык. Хотя казалось что приобретённых знаний уж точно хватит для такого простого приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 15:09 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Изерлонер, Почитай на досуге Купер Алан. Психбольница в руках пациентов - забавно... Влада В. Головача. Дизайн пользовательского интерфейса II. Искусство мыть слона ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 15:21 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
ПанургИзерлонер, Влада В. Головача. Дизайн пользовательского интерфейса II. Искусство мыть слона Блин! Мне нравится содержание: Часть 1. Продуктивная работа Улучшайте, а не делайте хорошо ...9 Относитесь к своей работе пессимистично . . . 13 Стройте работу так, чтобы не думать о том, что именно вы могли забыть . . . 14 Переделывайте, а не думайте . . . 16 Начинайте работу с самой больной части . . . 19 .... Эту часть я точно уже освоил! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 16:43 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Алан Купер. Об интерфейсе - супер книжка!!! Маст хэв! Ну и у меня советов спрашивать ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 16:53 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Программист-ЛюбительАлан Купер. Об интерфейсе - супер книжка!!! Маст хэв! Ну и у меня советов спрашивать П-Л дает толковые ответы даже на бестолковые вопросы ;) До сих пор помню схему экспорта\импорта xls документов, которую он мне предложил ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2013, 17:50 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Программист-Любитель Ну и у меня советов спрашивать ну вот простой пример. Что бы приобрести опыт решил сделать законченное простое приложение. Журнал регистрации ремонта изделий. В журнале указывается владелец изделия. Тип и заводской номер изделия. Когда пришло в ремонт и вышло из ремонта. Какие виды работ произведены. Кто ремонтировал. Ф–фсё. Больше ничего не надо. Таблицы: – владельцы (имя, фамилия, компания, контактные данные) – изделия (тип, заводской номер, год выпуска) – ремонты (изделие пришло в ремонт – дата, ушло из ремонта дата) – содержание ремонта (виды работ проведенных в ремонт) – таблица всех возможных видов работ – таблица групп работ (по назначению) – рабочие (имя, фамилия, телефон) по началу начал городить формы контейнеры с подчиненными формами, что бы вывести на экран сразу побольше информации и там же ее редактировать. Ну например тыкаешь владельца, ниже в подчиненной форме сразу показываются все его изделия.Тыкаешь на изделие, выводится форма со всеми ремонтами, когда приходило это изделие... сделал – вижу что то не то. Не удобно, не красиво и не логично. Сейчас начал по новой. Для владельцев отдельная форма (так же контейнер с подчиненной формой, но без лишних данных, в контейнере кнопки и управляющие элементы, в подчиненной форме в табличном виде данные владельцев). Внесение/удаление данных непосредственно из формы запрещено (изменение пока оставил) что бы внести нового владельца надо нажать соответствующую кнопку по которой выводится на экран форма ввода. Удаление записи тоже через кнопку. На этом пока все, дальше ещё не делал. То же самое планирую делать и для других таблиц. Для каждой таблицы отдельную форму. Сложнее с тем случаем, когда надо вывести связанные данные из разных таблиц. Пока ещё не придумал, как, где и что должно быть. Где то же надо выводить что у владельца такие то вот изделия. А изделия приходили в ремонт тогда то и тогда то. А в прошлый ремонт на изделии было отремонтировано то то и вот то. То ремонтировал такой то рабочий, а это другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2013, 13:41 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Во-первых, надо определиться с ИДЕОЛОГИЕЙ интерфейса. Иногда бывает нужно делать "жесткий арм" - шаг влево, шаг вправо - расстрел, прыжок на месте - попытка улететь. Для массовых рутинных отстоявшихся операций, малоквалифицированного персонала. Альтернативный вариант - интерфейс, поозволяющий легко скользить по данным, переходя от одной сущности к другой. Большее применение головного мозка для использования прогаммы, но возможно решать любые задачи. Я сторонник второго подхода. Надо продумать архитектуру презентационного слоя системы, а это, неизбежно, тянет за собой общую архитектуру. Могу описать как эти слои работаю у меня. Первый слой - таблицы базы данных. В этом слое решается вопрос логирования изменения и грубое, но абсолютно надежное разделенние прав доступа на уровне ядра БД. Второй слой - таблицы, запросы, функции и процедуры базы данных как источники данных прикладных форм. Здесь же управляющие контроля, управляющие фильтрацями и сортировками при подгоне данных в прикладные формы. Третий слой - сами прикладные формы. При открытии новой прикладной формы она читает свою конфигурацию. Это может быть форма-карточка, форма-таблица, форма-структура. Для каждого типа форм конфигурация имеет своб специфику. Но в любом случае, когда дело доходит до объектов, содержащих данные (форма-карточка, вложенный грид) они получают нужный им набор данных через второй слой. Надо выбрать стиль интерфейса. Это может быть таббед стиль, как новый аксесах, более старомодный эмдиай, что-то еще. Я видел учетную финансовую систему, интерфейс которой был построен полностью на аутлайновых деревьях - было карасиво, и, наверняка логично с точки зрения программиста, но работать с ней было дико неудобно. Допустим, надо попрравить один и тот же атрибут в нескольких записях. В табличной форме это решается элесентарно - правим ячейку, переходим на следующую запись, правим ячейку (в том же столбце). В этой же системе надо было раскрыть дерево записи, добраться до нужного атрибута через несколько уровней узлов, потом раскрыть запись следующего объекта, сделать то же самое. При том что в деревьях вложенный куда-то внутрь атрибут фиг увидишь. Удобно, как зубная боль! Антипаттерн, адназначна! Раз уж сказал про антипаттерны, продолжу растекаться мыслью по древу в этом же напраалении. Продолжение следует ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 11:16 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Ыщщо антипаттерны. Столь часто задаваемые вопросы на этом форуме: Как мне в одной карточке сделать и редактирование записи и переход к нужной записи если я в каком-то поле введу какой-то код. Тоже ни хрена не удобно. Просмотр, поиск объектов через карточку, когда не видно их перечня - неприемлем. Удобный поиск в таблице и мгновенный, легкий переход на карточку найденной записи (в один клик) - то, что нужно. Казалось бы в новых аксесах разделенная форма то, что нужно, ан нет. Я с этим не согласен. Карточка должна показывать больше более подробные данные, нежели таблица. Подписи полей должны быть достаточно длинные, исчерпывающе описыющие поля. Визуальное расположение и группировка полей по смыслу должна присутствовать. Группы полей могут иметь общий для всех заголовок, подпись. Все это в табличной форме в принципе не реализуемо. Еще один часто реализуемый антипаттерн на многих учетных системах - особенно тяжелых. Это скажи что тебе недо ? А что у вас есть ? и так долго. Имеется в виду, что для того чтобы не загружать бд тяжелыми запросами на таблицах с многомиллионными записями разработчик принял самое лнгкое и удобное для себя решение: при открытии табличная форма открыватеся пустая и пользователь должен сначала указать некие условия отбора, только после этого ему дозволяется получить данные. В чем состоит проблема - только в том, что пользлватель должен абсолютно четко представлять что где и как в этой таблице хранится. Ошибешься в задании фильтров - бац! результат - пустой. Многие опции фильтрации часто содержат пниятые в этой системе кодировки, ключевые слова и т.п. Часто без подписей, объяснений. Приходится тратить много времени, пока не нащупаешь комбинацию, которая дает непустую выборку чтобы посмотреть, что хоть эти данные из себя представляют! Табличные формы обязательно должны открываться с какими-то наиболее типовыми наборами, всеми способами помогать пользователю перейти к тому, набру, который ему нужен. Продолжение следует. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 11:31 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Теперь кратко опишу концепцию интерфейса своих разработок. Все прикладные формы пользователей относятся к одному из трех типов - Форма-карточка, Форма-таблица, Форма-струкрура, Вложенный грид. Помимо них вспомогательный формы: Модальные диалоги, Многоходовые визарды, Системные окна вывода сообщений и информирования о ходе выполнения процессов. Вот из этих кирпичиков построены все мои системы учтетно-финансового толка. Все прикладные формы настраиваются в конфигураторе, т.е. кодить, чтобы форма задышала не нужно. Форма карточка. Имеет источник данных. Имеет область заголовка, область главных данных, область набора вкладок. Может содержать любое количество Вложенных гридов (как правило, на вкладках). Вложенные гриды могут быть связаны с источником Формы-карточки или друг с другом какпарент-чаилд. Форма-карточка может использоваться как правая панель Формы-структуры, раскрывая данные текущего узла. Продолжение следует ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 12:06 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Программист-Любитель, Красиво! Действительно красиво! Поясни, только, для чего на форме вертикальный скролл-бар? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 12:12 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Форма-таблица. Не содержит данных, является окном-контейнером. Содержит один или несколько Вложенных гридов. Каждый грид может иметь один управляющий контрол сортировки и один или несколько управляющих контролов фильтрации плюс стандартный набор контролов мгновенного поиска. Вложенные гриды как правило связаны парент-чаилд. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 12:13 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Форма-структура. Наболее красивый и любимый мною вид форм. В реальности все данные имеют иерархическую структуру. Тривью позволяет показать ее наглядно. Сразу видно что куда вложена, что к чему и как относится. (Кстати, забыл - форма с несколькими комбо/листбоксами, последовательно коазвающими уровни структуры - тоже антипаттерн, если нет наглядной визуализации дерева) Форма-структура имеет левую панель - собственно тривью и правую панелю На правой панели отображается либо Вложенный грид, либо Форма-карточа текущего узла. Как правило, для корневого уровня нужно отобразить Вложенный грид, а для всех остальных узлов - Формы карточки. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 12:21 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Взаимодействие форм. Ка было видно на картинках, формы имеют кнопки Открыть... Показать... Этими кнопками выполняется открытие новых форм и переход между ними. Из Формы-таблицы (а точнее Вложенного-грида) обязательно должна быть команда перхода в Форму-карточку. Если во Вложенном гриде запись - какая-то сложная сущность, то для нее можно открыть несколько Форм-карточек. Например, грид Реестр договоров. Открывается Карточка договора. Еще удобно сразу окрыть Карточку Покупателя по договору и Карточку Продавца. Еще из Формы-таблицы обычно имеется переход на Форму-структуру, в которой содержатся аналогичные данные, но в иерархическом представлении. Из Формы-карточки можно перейти "наверх" - в формы, содержащие набор данных, текущая запись которого развернута в Форме-карточке - в Форму таблицу и Форму-структуры. Находясь на вкладке Формы-карточки с Вложенным гридом можно переходить на другие формы, содержащие данные этого грида - Карточки, Таблицы, Структуры. Приведу пример переходов для картотеки контаргентов. Имеется набор таблиц, в которых хранятся данные по Организациям-контрагентам, включая информацию об их подчинении парент-чаилд, Физлицах, Работа Физлиц в Организациях на разных Должностях. Открываем структуру контрагентов (Холдинго - Огранизация - Филиалы...). Открываем Карточку организации. Из нее со вкладки Физлиц - Карточку физлица. Из нее со вкладки Работа в организациях - Карточку организации. Из нее - Таблицу организаций. И так далее. (Разумеется во всех переходах выполняется позиционирование новой формы на текущей записи). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 12:34 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Rivkin DmitryПрограммист-Любитель, Красиво! Действительно красиво! Поясни, только, для чего на форме вертикальный скролл-бар? а где там скролл-бар ? про эту ж форму речь - 14177807 ? нету там скрола ... а вот зачем там "область выделения", это вопрос ... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 12:36 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Кофигурирование форм. Все формы, их содержмиое, открытия новых форм, переходы по формам - все конфигурируется. Для своей работы форме кода не требуется. (Только для красивого ресайзинга). Еще забыл про антипаттерн - нерезиновые формы. Все формы обязаны быть резиновыми, причем алгоритм их отрисовки должен давать хорошие результаты безо всяких сплиттеров - на основании собственной смышленности. Я обычно задаю зоны форм в долях от общего размера с минимальным и максимальным порогом. Источники данных форм тоже содержатся в общем перечне и тоже конфигурируются. Для встраивания специфического прикладного кода (когда-то же таки программа должна что-то делать кроме как показывать, вводить и редактировать данные) использется подписка на события. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 12:45 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Область выделения в Формах-карточках и Вложенных гридах: - показывает текуущий статус запись (карандашик - редактирование) - по ней можно щелкнуть для сохранения записи - показывает, что эти данные можно редактировать, они относятся к одному экземпляру сущности. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 12:48 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Программист-ЛюбительОбласть выделения в Формах-карточках и Вложенных гридах: - показывает текуущий статус запись (карандашик - редактирование) - по ней можно щелкнуть для сохранения записи - показывает, что эти данные можно редактировать, они относятся к одному экземпляру сущности. Да, извиняюсь, оговорился. Рекорд-селектор, конечно. Если щелкнуть по нему и выделить, то запись можно удалять? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 12:56 |
|
Разработка интерфейса.
|
|||
---|---|---|---|
#18+
Визуализация процесса загрузки данных. Во всех прикладных формах (особенно тяжелых) надо обязательно стараться открывать форму как можно скорее (паузы должны быть меньше одной секунды). Уже потом показывать текущий статус загрузки данных. Только так пользователь будет чувствовать себя комфортно - о нем не забыли, система работает и делает именно то, что он от нее запросил. Далее будет 3 картинки. 1. Так форма откывается сразу 2. Дерево загружено, идет загрузка текущего узла 3. Все полностью загружено ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2013, 13:07 |
|
|
start [/forum/topic.php?fid=45&fpage=96&tid=1613234]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 138ms |
0 / 0 |