Форум: "Базы";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
ВнизИзменение записи Найти похожие ветки
← →
VS (2003-07-17 16:47) [0]Всем привет!
Такая проблемка - если юзер внес изменения в запись, то хочу его переспрашивать перед post-ом. Пробовал обрабатывать OnUpdateData, но оно возникает и при открытии таблицы и при простом переходе на другую запись. if Table1.Modified = True Then ... тоже не помогает :( Как бороть?
Очень надеюсь, что задал не очень идиотский вопрос :)
← →
Sandman25 (2003-07-17 16:58) [1]Есть событие BeforePost
← →
VS (2003-07-17 17:13) [2]Попробовал. Все равно, если в DBGrid переходишь на другую строчку (изменял-не изменял запись - по барабану), то генерится событие BeforePost
← →
Sandman25 (2003-07-17 17:20) [3]Что используете для доступа?
В TQuery BeforePost вызывается только при изменении.
← →
Sandman25 (2003-07-17 17:20) [4]В TTable тоже.
← →
VS (2003-07-17 17:33) [5]Все понял. Я - ... (непечатное слово). У меня обрабатывается еще и BeforeScroll, где модифицируется запись. Поэтому и пост вызывается.
← →
MsGuns (2003-07-17 17:38) [6]Давать узеру свободно редактить данные в гриде - ИМХО порочный метод. Все изменения через не db-aware контролы (обычно на отдельно открывемой форме или панельке) с кнопками "Записать", "Отменить", "Удалить". Если узер нажал "Записать", то просто делать и проверки и собственно изменения. Кстати, такая технология не зависит от того, какой метод исп-ся при отображении БД - табличного или запросного типа.
Кстати, узеру так проще и понятнее. В частности исключены "случайные" изменения (типа к Саше подошла Маша и легла мощной грудью на клаву, придавив BackSpase на поле Сашиного оклада - в рез-те оклад "потерял" пару нолей ;))
← →
Johnmen (2003-07-17 17:44) [7]>MsGuns © (17.07.03 17:38)
Вот тут можно поспорить. :) Насчет порочности...
:)))
← →
Sandman25 (2003-07-17 18:05) [8]MsGuns © (17.07.03 17:38)
При редактировании в гриде может быть и удобнее - легче найти нужную запись среди нескольких, не нужно переводить взгляд в панельку редактирования.
Для добавления мне тоже больше нравятся отдельные панельки/формы.
← →
MsGuns (2003-07-17 19:37) [9]>Sandman25 © (17.07.03 18:05)
>При редактировании в гриде может быть и удобнее - легче найти нужную запись среди нескольких, не нужно переводить взгляд в панельку редактирования
А что мешает эту самую панельку показывать непосредственно под или на месте строки грида и даже в том же самом стиле (шрифты, цвет и т.д.) ? Тогда не надо будет "переводить взгляд"
← →
Sandman25 (2003-07-18 12:07) [10]MsGuns © (17.07.03 19:37)
>А что мешает эту самую панельку показывать непосредственно под или на месте строки грида и даже в том же самом стиле (шрифты, цвет и т.д.) ? Тогда не надо будет "переводить взгляд"
А что мешает использовать грид в таком случае? Если панелька находится на месте грида и выглядит как грид?
Ради одной кнопки "Подтвердить изменения"? Так всегда можно перед записью запрашивать подтверждение, причем подставляя кнопку "Yes" прямо под указатель мыши :)
← →
Lord Warlock (2003-07-18 13:15) [11]У DataSet есть свойство State. (dsInsert,dsEdit,dsBrowse)
← →
MsGuns (2003-07-18 14:16) [12]>Sandman25 © (18.07.03 12:07)
>А что мешает использовать грид в таком случае? Если панелька находится на месте грида и выглядит как грид?
Ради одной кнопки "Подтвердить изменения"? Так всегда можно перед записью запрашивать подтверждение, причем подставляя кнопку "Yes" прямо под указатель мыши :)
Да ничего не мешает !! Все дело в том, чтобы прогораммно реагировать на начало изменений в записи. Как это делать - на вкус и цвет. Если в гриде, то надо писать обработчики на несколько событий того же датасета, а иногда и грида. Я просто, давая совет, исходил из следующих вещей:
1. Начало изменения только по спецюкоманде (кнопке) во избежание ситуаций "нечаянной" правки (Машина грудь :)).
2. Простота и универсальность подхода "от отдельной формы", т.к. мне может понадобиться обращаться к процедуре коррекции записи из разных мест программы и даже из разных программ.
3. Независимость интерфейса узера от физического состояния таблицы-объекта редактирования (особенно актуально для локальных БД, в т.ч. Парадокса)
Все - ИМХО.
← →
vopros (2003-07-18 14:40) [13]>MsGuns © (18.07.03 14:16)
Полностью согласен. Только юзеров приходиться отучать насильно.ПРивыкли к Екселю.
← →
MsGuns (2003-07-18 15:07) [14]>vopros © (18.07.03 14:40)
>Только юзеров приходиться отучать насильно.ПРивыкли к Екселю.
Детишек тоже долго приходится приучать мыть руки после посещения туалета ;)
← →
Sandman25 (2003-07-18 15:47) [15]MsGuns © (18.07.03 14:16)
В принципе, уговорили :)
Но все же многое от задачи зависит. У меня жена работает тайписткой (забивает данные в компьютер), так у них в программе становишься в гриде куда-хочешь и сразу набиваешь новое значение, а при нажатии Enter происходит запись поля, переход на следующую запись и вход в режим ее редактирования. Получается очень удобно для быстрого ввода единственной редактируемой колонки во многих записях подряд.
← →
Johnmen (2003-07-18 15:51) [16]>Sandman25 © (18.07.03 15:47)
>MsGuns © (18.07.03 14:16)
>В принципе, уговорили :)
Ни в коем случае не поддаваться на уговоры !
Оба подхода имеют ПОЛНОЕ ПРАВО на существование !
← →
ZrenBy (2003-07-18 16:01) [17]>>Sandman25 ©
Ну так. Действительно, люди привыкшие работать в экселе,
хотят также действовать и в гриде.
Ну хотят, так хотят. Делаем.
Бамс !!!. Блин. А в екселе на нумпаде ставиться десятичный
разделитель, а в гриде дельфовом какая-то фигня.
Ну ладно. Делаем как говорит MsGuns ©, на лету меняем
что угодно на что угодно, делаем проверки, делаем ... э-э-э
и все довольны.
← →
Johnmen (2003-07-18 16:07) [18]>ZrenBy © (18.07.03 16:01)
М-да... НамЛок то отключи...
И не надо приводить в качестве аргументов чью-либо привычки.
← →
Sandman25 (2003-07-18 16:12) [19]Johnmen © (18.07.03 15:51)
MsGuns меня убеждал, что в большинстве случаев отдельная форма/панель "полезнее". Убедил. Но как я и написал, бывают и исключения, когда лучше использовать грид.
ZrenBy © (18.07.03 16:01)
Дело не только в привычке. В гриде все интуитивно даже для тех пользователей, которые первый раз увидели комп. То есть хочешь изменить поле - иди и изменяй, зачем еще какую-то кнопку жать (особенно если ее еще и не заметили)?
← →
Johnmen (2003-07-18 16:20) [20]>Sandman25 © (18.07.03 16:12)
Причем приведенный тобой пример самый убедительный, я бы даже сказал, "классический".
И не стал бы я говорить "исключения". Это не исключения, а РЕАЛЬНЫЙ равноправный метод.
← →
Sandman25 (2003-07-18 16:22) [21]Johnmen © (18.07.03 16:20)
В принципе, уговорили :)
PS. См. первую фразу в Sandman25 © (18.07.03 15:47)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c