![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrid [D7, XP]
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-ах и т.п. Но это уже к делу не относится... :)