Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DBGrid [D7, XP]


Страницы:   1 2 3 4 5

AlekseyB ©   (2008-06-24 08:59:00) 

Подскажите плиз. Есть грид, где отображаются данные, необходимо в грид вносить данные и чтобы они сохранялись. Когда меняю несколько записей то сохраняет нормально, хотя не всегда, а если одну запись меняю, то совсем не сохраняет. Не подскажите в чем проблема ?


blazerad   (2008-06-30 22:14:00) [1]

Удалено модератором
Примечание: Наверху есть форма - добавить свой вопрос


blazerad   (2008-06-30 11:10:00) [2]

Удалено модератором
Примечание: Offtopic


blazerad   (2008-06-29 22:18:00) [3]

Удалено модератором
Примечание: Задай свой вопрос в отдельной ветке


Anatoly Podgoretsky   (2008-06-26 13:48:00) [4]

> MsGuns  (26.06.2008 11:47:26)  [86]

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


MsGuns   (2008-06-26 11:47:00) [5]

>Anatoly Podgoretsky ©   (25.06.08 20:12) [76]
>Особый случай, не типичный, и таких случаев можно привести много, доведя это до абсурда, но в >этом случае конечно грид удобнее, но это часто мешают правила целостности, что это >реализовать приходится делать отложенную запись, аналог Экселя.

Безусловно. При проектировании интерфейса я исходил именно из Эксельной манеры, т.к. она позволяет максимально УСКОРИТЬ ввод для БОЛЬШИНСТВА пользователей, многие из которых имеют весьма слабые навыки работы в винде. Там еще масса наворотов с автозаполнением и автодополнением, переходы стрелками и ентером и т.д. И все - с единственной цеью - упрощения и ускорения.

Это приложение, конечно, скорее исключение, чем правило, но сколько же в нашей жизни таких исключений ;)

>korneley ©   (26.06.08 11:09) [85]
>Перечитал ветку. Топикстартер тихо плачет в сторонке :))

Думается, информация в ветке будет ему отнюдь не бесполезна.


korneley   (2008-06-26 11:09:00) [6]

Перечитал ветку. Топикстартер тихо плачет в сторонке :))


Галинка   (2008-06-26 10:12:00) [7]

Ega23 ©   (26.06.08 10:01) [83]

"То что меня не убивает, делает меня сильнее". ))) Но твой опыт очень интересен.


Ega23   (2008-06-26 10:01:00) [8]


> Или прописать общее событие OnKeyUp и на стрелки вниз/вверх
> повесить переход по строкам грида, а навигацию по остальным
> контролом выше приведенными способами. А на энтер соответственно
> нажатие "ОК" по умолчанию. Тогда мышку можно сэкономить.
>


Да всё можно сделать. Было бы желание, как грицца.
Ещё раз повторюсь - это был один единственный раз, когда я признал, что ввод в грид удобнее, чем в форму. Хотя с этим была масса чисто технических проблем: проверка корректности введённых данных, дурное добавление новой строки в рекордсет, когда доходил до последней строки и "вниз"  жал и т.п.


Галинка   (2008-06-26 09:53:00) [9]

Ega23 ©   (25.06.08 20:21) [79]

А AccessButtons не помогут в этом случае? Или в дельфи такого нет?

Или прописать общее событие OnKeyUp и на стрелки вниз/вверх повесить переход по строкам грида, а навигацию по остальным контролом выше приведенными способами. А на энтер соответственно нажатие "ОК" по умолчанию. Тогда мышку можно сэкономить.


Anatoly Podgoretsky   (2008-06-25 21:14:00) [10]

> Ega23  (25.06.2008 20:21:19)  [79]

Что то у тебя не то.
Нажатие на энтер открывает форму, никаких даблкликов не требуется, перемещение делается стрелками, закрытие или энтером или эскейпом.
Не вижу места для мышки.

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


Anatoly Podgoretsky   (2008-06-25 21:09:00) [11]

> Галинка  (25.06.2008 20:14:17)  [77]

В Экселе переход управляемый.


Ega23   (2008-06-25 20:21:00) [12]


> а при чем горячие клавиши? TabIndex уже отменили? И это
> лишь самый простой способ.


А я не про перемещение в рамках модальной формы. TabOrder - это второе, что я делаю после выстраивания всех контролов.

Речь шла о том, что после редактирования конкретной записи нужно нажать ОК, посмотреть результат, выбрать в гриде следующую запись, даблкликнуть на ней и начать ввод данных.
Т.е. приходится время-от-времени переключаться на мышку. Что не всегда удобно.


Галинка   (2008-06-25 20:16:00) [13]

офф:

смотрю на наши обсуждения и в голове крутится "Психбольница в руках пациентов".


Галинка   (2008-06-25 20:14:00) [14]

Anatoly Podgoretsky ©   (25.06.08 20:07) [75]

ага. У нас на фирме примерно так же (программа для учета рабочего времени). Я теперь вспомнила. Т.е. вводишь дату. Она и так MaskEdit, так как только последнюю цифру ввел, курсор сам перескочил. А в гриде только видно, что уже ввел. Если где-то ошибка, то удалили и ввел заново.

MsGuns ©   (25.06.08 19:47) [74]

в реальной жизни таблицу читают строками. А вводить удобнее столбцами, именно потому что тот же эксель перескакивает по нажатию энтера не на след столбец, а на след строку. Просто операторы привыкли к "нечеловеческому" алгоритму.


Anatoly Podgoretsky   (2008-06-25 20:12:00) [15]

> MsGuns  (25.06.2008 19:47:14)  [74]

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


Anatoly Podgoretsky   (2008-06-25 20:07:00) [16]

> Галинка  (25.06.2008 19:45:13)  [73]

Имелся в вилу автопереход не по Enter, а по заполнению поля, например поля из четырех символов, после ввода четвертого символа автопереход на следующее поле, это из dBase/FoxPro (там это управляемое поведение). Автозаполнение по шаблону тоже имеется, а шаблоном является текущая запись, операторы это используют. В итоге в форме ввод быстрее и с меньшим процентом ошибок. По заполнению одной формы переход на заполнение следующей и так пока не будет отменено.
Формы часто имею следующий формат - вверху форма, внизу грид. На гриде можно перейти на изменение или удалить строку, а ввод/изменение в верхней части.
Сообственно этот формат у авторов последовательно мигрировал из ДОС (ФоксПро) в Windows (ФоксПро) и сейчас в Visual Basic (насколько я понял). Программа полностью покрывает потребности нашей фирмы по учету. В ней не было только отдела кадров, но эту часть я сам написал, благо в структуру все было заложено.


MsGuns   (2008-06-25 19:47:00) [17]

>Anatoly Podgoretsky ©   (25.06.08 17:25) [72]
>Отдельная модальная форма никак не мешает скоростному вводу данных

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


Галинка   (2008-06-25 19:45:00) [18]

Ega23 ©   (25.06.08 17:11) [71]

а при чем горячие клавиши? TabIndex уже отменили? И это лишь самый простой способ.

Анатолий, а автопереход по нажатию на Enter? Очень интеерсный приемчик, надо где-то запомнить.

Если подумать, то грид - это всего лишь стоящие рядом TEdit"ы. Навигацию по форме можно сделать так же удобно, как и по гриду. А еще можно сделать типа автозаполнение полей. Может тоже поможет.


Anatoly Podgoretsky   (2008-06-25 17:25:00) [19]

> Ega23  (25.06.2008 17:11:11)  [71]

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


Ega23   (2008-06-25 17:11:00) [20]


> Предлагаю вводить в форме.


Отдельная модальная форма на редактирование сущности плоха только в одном единственном случае - скоростной ввод данных. Когда пользуешься только клавой, про мышку вообще забываешь, и т.п. Горячие клавиши - в конкретном данном случае вещь неудобная.

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

Другое дело, что я массу геморроев обрёл на Update-ах и т.п. Но это уже к делу не относится...  :)


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо