Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-33332
Думкин
2003-07-25 05:39
2003.08.11
С днем рождения


14-33285
Е-Моё имя
2003-07-24 11:04
2003.08.11
однако


1-33169
Z_man7777
2003-07-28 12:04
2003.08.11
Вопрос по TQuickReport


1-33091
Evg12
2003-07-26 19:44
2003.08.11
Таймер в микровекундах.


3-33077
Spawn
2003-07-17 19:27
2003.08.11
Сортировка





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский