Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];

Вниз

Ввод данных в две таблицы из одной формы   Найти похожие ветки 

 
grav   (2008-04-17 17:49) [0]

Требуется реализовать ввод данных в БД. Данные следующие. Имеется здание, в нем располагаются объекты (склад, столовая и т.д.). Нужно чтобы пользователь вводил: Здание №1, его параметры (год постройки, общая площадь, полная стоимость и т.д.). Потом на этой же форме вводил все объекты располагающиеся в этом здании: 1. Столовая, площадь, проектная мощность и т.д. 2. Спортзал .... 3...
Потом Здание №2 и его объекты. И чтобы это все на одной форме располагалось.
Своих варианта два. Первый - использовать два DBGrid, вверху для зданий, внизу для объектов. Второй - использовать TDBCtrlGrid, с которым не могу разобраться :)
Подскажите, как такое правильно реализуется?


 
grav   (2008-04-17 17:50) [1]

Использую IBX, помоему он как то не дружит с TDBCtrlGrid. Компоненты не отображаются (TDBEdit).


 
ANB   (2008-04-17 17:58) [2]

2 грида + мастердетал.


 
grav   (2008-04-17 18:03) [3]


> ANB

Да вот параметров по задниям и объектам много, строчка динная получится и соответственно не удобно будет. Еще и пользователям надо переходить из поля в поле по Enter.


 
ANB   (2008-04-17 18:31) [4]


> grav   (17.04.08 18:03) [3]

Тогда грид + форма редактирования + детал грид + детал форма редактирования.
Вместо отдельных форм можно использовать вкладки - получается довольно удобно.

Во всяком случае TDBCtrlGrid - не совсем подходит для этих целей. Плюс их все равно нужно будет 2. Да и неудобный он.


 
grav   (2008-04-18 12:07) [5]

Тогда грид + форма редактирования + детал грид + детал форма редактирования
А как это? Можно поподробнее? Что означает грид + форма редактирования ?


 
zorik ©   (2008-04-18 12:31) [6]

1. На главной форме грид со списком зданий. В гриде отображай основные параметры (название, и т.д.)
2. кнопки "добавить здание", "редактировать здание", "удалить здание". При нажимании на кнопку появляется модальная форма для редактирования конкретного здания. На которой DBEdit-ы для редактирования параметров здания и грид для объектов здания. И опять же кнопки "добавить объект", "редактировать объекты", "удалить объект".
3. Нажимаешь на кнопку и модальная форма редактирования объекта

З.Ы. Это для редактирования вариант. Для просмотра можно получше придумать, например с закладками


 
grav   (2008-04-18 12:59) [7]


> zorik ©

Если бы все так легко было. Надо реализовать ввод с клавиатуры с минимальным использованием мыши. Будут работать одновременно несколько девушек (более 5). Нужно ввести данные об около 10 тыс предприятиях, десятках тысяч зданий и сотнях тысяч объектов. И все это нужно ввести за несколько дней.


 
Anatoly Podgoretsky ©   (2008-04-18 13:16) [8]

И что у вас есть такие люди?
Ну тут надо произвести иследование предметной области и потом под нее реализовывать интерфейс.
При вводе через формы мышь совсем не нужна, просто надо продумать интерфейс и навигацию.


 
Сергей М. ©   (2008-04-18 13:34) [9]


> как такое правильно реализуется?
>


Это зависит от того, что в последствии планируется со всем этим введенным "добром" делать.

Подозреваю, что двухтабличная структура подобного рода БД никуда не годится.


 
grav   (2008-04-18 14:11) [10]


> И что у вас есть такие люди?

В смысле которые вводить будут? Да, есть. Людей специально нанимают произвести такую работу. В настоящее время предприятия в письменном виде заполняют печатные формы. После чего машинистки будут заносить в базу.
База моя, программа тоже моя будет.


 
grav   (2008-04-18 14:17) [11]


> Сергей М. ©   (18.04.08 13:34) [9]

>
> Это зависит от того, что в последствии планируется со всем
> этим введенным "добром" делать.
>
> Подозреваю, что двухтабличная структура подобного рода БД
> никуда не годится.

Реальных таблиц в базе получилось 11 (справочники+данные). Т.е. в эти две таблицы на форме должны будут вводиться данные, которые потом попадут в несколько таблиц в базе. Плюс еще выбор данных из справочников. Простые гриды не годятся для этого.
Пока у меня нет идей, как обойтись без мыши. Мышь же сильно замедлит ввод. Но т.к. срок всего неделя, придется писать с мышью.


 
Anatoly Podgoretsky ©   (2008-04-18 14:21) [12]

> grav  (18.04.2008 14:11:10)  [10]

Квалифицированая машинистка в состоянии ввести 8 страниц в час. У тебя объемы на многие миллионы символов. Опыт ввода подобного объема есть, это далеко не несколько дней. И потом еще много месяцев на устранение ошибок ввода, а будут еще и программные ошибки.
Ну это ладно, тут нужен специалист по разработке интерфейсов в данной предметной области.


 
tesseract ©   (2008-04-18 14:21) [13]


> База моя, программа тоже моя будет.


Жадный какой, всё под себя, всё под себя.


>  Простые гриды не годятся для этого.


Сложные тоже. Это задачка из папки Demos, не сложнее. Напихай DBControlo-в, расставь связи между ними и пошли грид нафиг.


 
Сергей М. ©   (2008-04-18 14:24) [14]


> Простые гриды не годятся для этого


Конечно не годятся.
И тем более не понятно, почему ты на них зациклился..
Что, разве мало разных data-aware-контролов, "заточенных" под интерактивный ввод инф-ции той или иной специфики ?


 
Anatoly Podgoretsky ©   (2008-04-18 14:29) [15]

> grav  (18.04.2008 14:17:11)  [11]

Для выбора из справочника не нужна мышь. Вводи значение с клавиатуры.
Твоя проблема видимо в том, что ты хреновый разработчик интерфейсов пользователя.
В старые времена (ДОС/ФоксПро) мышь была предметом особой гордости, вводили с клавиатуры, в том числе и с выпадающих и других списков, с тех пор ничего не изменилось, только мышь стала доступна всем и работа со справочниками стала еще проще.


 
Dennis I. Komarov ©   (2008-04-18 14:32) [16]

Шаг 1 - проектирование БД
.....
Шаг (околопоследний) - проектирование данного интерфейса


 
grav   (2008-04-18 14:56) [17]


> Что, разве мало разных data-aware-контролов

Не нашел ни одного подходящего


 
tesseract ©   (2008-04-18 15:00) [18]


> Не нашел ни одного подходящего


А тебе что аналог швейцарского ножа нужен ? Лень edit-ы покидать на форму ? .


 
grav   (2008-04-18 15:04) [19]

>Anatoly Podgoretsky ©

> Твоя проблема видимо в том, что ты хреновый разработчик
> интерфейсов пользователя.

Кто бы сомневался. Я даже и не программист. Так, любитель. Время от времени пишу программки н заказ, которые почему-то потом работают годами.
То что я интерфейсы писать не могу это еще пол беды. Я еще не могу правильно мысль свою сформулировать.
Но за программы меня хвалят, в т.ч. и за удобство интерфейса. Потому и не бросаю писать программки. Хобби :)
Спасибо, что есть такой форум, где можно получить ответы на свои вопросы. А главное, сформулировать и уточнить сами вопросы, чего часто бывает достаточно для решения своих проблем.


 
grav   (2008-04-18 15:08) [20]


> tesseract ©   (18.04.08 15:00) [18]

>
> А тебе что аналог швейцарского ножа нужен ? Лень edit-ы
> покидать на форму ? .

Как вы себе представляете на одной форме разместить несколько записей по зданиям и чтобы к каждому зданию было привязано по нескольку объектов?


 
Anatoly Podgoretsky ©   (2008-04-18 15:11) [21]

> grav  (18.04.2008 14:56:17)  [17]

Не ужели даже TDBEdit не работает? Ну тогда напиши свои


 
tesseract ©   (2008-04-18 15:15) [22]


>  и чтобы к каждому зданию было привязано по нескольку объектов?


Каждый день такое в 1с считай делаю. Слева здания в Grid или List  Справа тоже самое, но со списком объектов. Всё это связано master-detail.

В чём проблема ?


 
Сергей М. ©   (2008-04-18 15:23) [23]


> Как вы себе представляете на одной форме разместить несколько
> записей


Следует четко представлять себе разницу между функциональными назначениями формы просмотра/редактирования списка и формы просмотра/редактирования записи.


 
grav   (2008-04-18 15:24) [24]


> tesseract ©   (18.04.08 15:15) [22]

1. Проблема в том, что надо ввод реализовать, а не отображение.
2. В 1с по моему не реально работать без мышки


 
Сергей М. ©   (2008-04-18 15:26) [25]


> ввод реализовать, а не отображение


Ты не заболел ?)
Как можно вводить не видя что вводишь ?
Это же не ввод паролей)


> В 1с по моему не реально работать без мышки


Тебе говорят про логическую организацию структуры и взаимосвязей форм ввода/отображения, а не про мышь.


 
tesseract ©   (2008-04-18 15:29) [26]


> В 1с по моему не реально работать без мышки


Да нет у нас склад, как раз больше клаву при наборе документа из 700 строк пользует.


> 1. Проблема в том, что надо ввод реализовать, а не отображение.


Это то по барабану.


 
Anatoly Podgoretsky ©   (2008-04-18 15:30) [27]


> Но за программы меня хвалят, в т.ч. и за удобство интерфейса

В таком случае с заданием справишься, поговори с операторами, серьезно вникни в предметную область.
Наверно надо сделать привязку не к нескольким зданиями, а к одному, это же явно разные записи. Эту информацию в Эдиты, объекты в гриды. Для потокового ввода можно автоматически переходить на ввод следующего здания и возможно еще и шаблоны помогут ускорить ввод, шаблоном может считаться предыдущая запись. Но на форуме тебе точно особо не помогут, поскольку вопрос не программирования, а дизайна конкретной области, про которую мы ничего не знаем.


 
Anatoly Podgoretsky ©   (2008-04-18 15:31) [28]

> tesseract  (18.04.2008 15:15:22)  [22]

Можно и так и переход по ТАБ между мастер детайл, вариантов тьма.


 
grav   (2008-04-18 15:32) [29]

Пока не придумал лучшего, чем разместить на форме два грида. Один для зданий, второй для объектов зданий.
Видимо придется сделать две формы для ввода параметров зданий и объектов. А вызывать эти формы по нажатию кнопки Ввести здание и Ввести объект. Плюс вызов этих форм комбинацией клавиш.
Сами гриды нужны лишь для того, чтобы оператор видел чего ввел.
Есть вопрос. Данные введенные в таблицы в пределах транзакции не подтвержденные коммитом будут отображаться в DBGrid или для этого лучше обычный Grid использовать?


 
tesseract ©   (2008-04-18 15:34) [30]


>  Данные введенные в таблицы в пределах транзакции не подтвержденные
> коммитом будут отображаться в DBGrid


Вот в grid они как раз и будут. А вот в базе нет. Только один человек будет их видеть.


 
grav   (2008-04-18 15:36) [31]


> Anatoly Podgoretsky ©   (18.04.08 15:30) [27]

Общение помогает самому понять чего надо и как это сделать.
Поэтому огромное спасибо всем кто тратит на меня свое время.


 
grav   (2008-04-18 15:38) [32]


> Вот в grid они как раз и будут. А вот в базе нет. Только
> один человек будет их видеть.

Это и требуется. Чтобы в случае чего пропала вся запись по предприятию.


 
Anatoly Podgoretsky ©   (2008-04-18 15:47) [33]

> grav  (18.04.2008 15:32:29)  [29]

Гриды (по зданиям нужны только для навигации) запрети там сразу ввод, избежишь множества проблем. Ввод делай через форму, а там варианты, если у здания много аттрибутов, то их можно ввводить в гриде на форме, можно предусмотреть автоматический переход к следующему зданию.
И еще совет делай это в отдельной транзакции.


 
Anatoly Podgoretsky ©   (2008-04-18 15:47) [34]

> grav  (18.04.2008 15:36:31)  [31]

Мы тратим время на тех, кто это заслуживает и не гнет пальцы. В других случаях с удовольствием посмеемся.


 
Anatoly Podgoretsky ©   (2008-04-18 15:48) [35]

> grav  (18.04.2008 15:38:32)  [32]

Вижу, что к транзакциям уже пришел, целостность не должна нарушаться ни на начальном этапе ни в будущем, или все или ничего.


 
Anatoly Podgoretsky ©   (2008-04-18 15:54) [36]

> tesseract  (18.04.2008 15:29:26)  [26]

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

Для Сергей М. как раз при вводе с бумаги оператор не должен видеть, что вводит, у него глаза направлены на документ, пальцы на клавиатуру, язык для разговоров с соседкой. а монитор лишнее устройство. Видимо тебе не посчастливилось видеть подобное, завораживает.


 
ANB   (2008-04-18 15:59) [37]


> В старые времена (ДОС/ФоксПро)

А я прикрутил к клипперу работу с мышей. Смотрелось ново и современно. Но кроме меня ей никто не пользовался :)


 
Anatoly Podgoretsky ©   (2008-04-18 16:02) [38]

> Anatoly Podgoretsky  (18.04.2008 15:47:34)  [34]

Пожалуй можно добавить еще, если ввод делается в поле с фиксированых количеством символов, то можно предусмотреть автоматический переход в следующее поле, тоже для не фиксированого ввода, при достижение максимального количества. Это тоже очень важный резерв. В ДОС программах он был как бы обязательных, а вот в Виндоус подход поменяли. Выбор из списков должен делаться с помощью ComboBox, в которых предусмотрен инкриментный поиск, как в раскрытом, так и в закрытом состоянии, наглядно ввод адресов в почте, справочником является адресная книга, этой особенностью легко пользуются даже неквалифицированые пользователи, а раньше они раскрывали справочник, сейчас уже редко это делают, несколько первых букв и далее не следующее поле. Закрытие формы в любом месте, по клавише Enter не заставляй проходить по всем полям до кнопки закрытие (это стандартное поведение для Виндоус программ, как отмена по Esc).


 
Dennis I. Komarov ©   (2008-04-18 16:05) [39]

> [35] Anatoly Podgoretsky ©   (18.04.08 15:48)

Помилуйте, Вы о чем? [19]


 
Anatoly Podgoretsky ©   (2008-04-18 16:41) [40]

> Dennis I. Komarov  (18.04.2008 16:05:39)  [39]

Что не нравится, а то помилуйте не технический термин.
Ты против транзакции, при вводе в связаные таблицы?



Страницы: 1 2 3 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.041 c
15-1209294414
Foo Fighters
2008-04-27 15:06
2008.06.08
если в папке находится ярлык на нее же ... глюк WMP 11?


15-1209039762
ekto
2008-04-24 16:22
2008.06.08
как скрыть логин/пароль БД?


8-1181893421
BlackCat
2007-06-15 11:43
2008.06.08
Проигрывание AVI файла с выводом на плату ввода /вывода


15-1208979144
Loginov Dmitry
2008-04-23 23:32
2008.06.08
Многопоточность и Delphi


2-1211050274
Шестаков Антон
2008-05-17 22:51
2008.06.08
Копирование файлов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский