powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGridEh 3.6 + checkbox сохранение в базе
37 сообщений из 37, показаны все 2 страниц
DBGridEh 3.6 + checkbox сохранение в базе
    #39433131
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
В гриде есть столбец с галкой. При установке галки, значение в базе не обновляется, обновляется, например, при переходе на другую запись.
Соответственно проблема, юзер тыкает галку, потом тыкает, например, кнопку печать и получает шиш.
Пока выкрутился, поставив Edit Post при потере фокуса гридом, но чуйствую это через опу...
Как лучше делать?
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39433135
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik,

1. Оставь, как сделал (черех ж@пу), раз работает.
2. Объясни юзеру, как нужно работать.
3. Редактирование записи вынеси в отдельную модальную форму.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39433138
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД, это не редактирование формы, это отметка записей для последующих действий.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39433142
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто думал, может есть волшебное свойство, которое я не знаю...
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39433146
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgikчччД, это не редактирование формы, это отметка записей для последующих действий.
У тедбя как раз - редактирование записи, если вызывать Post требуется.
Отметка записей в эхлибгриде делается вовсе не изменением значения одного из столбцов. Не чекбоксом.
Посмотри на демки. После отметки запись просто подсвечивается по-другому, и переходить на другую запись необходимости нет.
Там специальная демка по мультивыбор записей есть.
...
Если лень разбираться и нет доп. условий, можешь тупо на событие изменения значения поля с чекбоксом Post навесить.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
DBGridEh 3.6 + checkbox сохранение в базе
    #39804914
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ведь зараза какая. Опять всплыло. Через опу теперь не прокатывает, грид фокус не теряет.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39804935
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik,

Проверь в кнопке печати состояние он да, и если он в режиме редактирования сделай ему Post().
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39804948
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad Fdidgik,

Проверь в кнопке печати состояние он да, и если он в режиме редактирования сделай ему Post().

В кнопке не хотелось бы. Хочется в момент установки крыжика. OnСellClick не подходит.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39804953
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik,

Если в момент установки делать пост, то когда делать снова Edit, если юзер будет щёлкать по одному и тому
же несколько раз подряд? Больше извратов, хороших и разных.))
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39804958
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgikВ кнопке не хотелось бы. Хочется в момент установки крыжика. OnСellClick не подходит.
Почему?

ЗЫ: Правильно так, как советует Vlad F - перед анализом нужно проверить, в каком режиме датасет, с которым связан грид. И если он в Edit, то вызвать Post.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39804960
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik грид фокус не теряет.
Кнопка стала другой?
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39804972
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldmi45didgikВ кнопке не хотелось бы. Хочется в момент установки крыжика. OnСellClick не подходит.
Почему?

ЗЫ: Правильно так, как советует Vlad F - перед анализом нужно проверить, в каком режиме датасет, с которым связан грид. И если он в Edit, то вызвать Post.

Кнопок может быть много, ситуаций может быть много. Каждый раз проверять не верно. Хочется в одном месте.

goldmi45didgik грид фокус не теряет.
Кнопка стала другой?
Да. SpeedButton не забирает на себя фокус.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39804983
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik,

Тогда на OnChange соотв поля если датасет при этом режиме редактирования попробуй пост.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805023
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad Fdidgik,

Тогда на OnChange соотв поля если датасет при этом режиме редактирования попробуй пост.

Еле нашел подходящее событие.
DataChange у соответствующего DataSource вроде подошло.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805048
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нехорошее решение. Правильное - это Post перед печатью. Как раз единственное место, все как ты хочешь. Заодно, если прога станет мультиюзерной, можно и Refresh навесить, и блокировку в отдельной транзакции, и массу всего другого.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805068
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2,

Он не хочет, вестимо, хорошее, хочет привычный костыль.))
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805080
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не хорошее? Обосновать есть чем?
Столбец с галкой это отметка нужных записей. Логично предположить, что если отметил нужное, оно должно сразу где-то сохраниться. Чтоб в десятке мест не проверять, а не изменилось ли чего.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805085
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik,

Потому, что текущее "централизованное" решение не выглядит достаточно культурным.
Более культурным представляется вызов CheckBrowseMode первой строкой в каждом из обработчиков нажатий SpeedButton-ов.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805088
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad F, сильно спорно. Это можно забыть проверить и потом пол дня тупить, почему галочками помечено четыре строки, а в обработку пропадает только три. Онож визуально крыжик ставит.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805093
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik,

Все в этом мире спорно и все в любой момент можно забыть, таки, да.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805099
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такие проблемы решаются через OnCellCheckClick + PostMessage
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805102
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael LongneckТакие проблемы решаются через OnCellCheckClick + PostMessage
Звучит угрожающе. OnCellCheckClick не нашел, нашел просто OnCellClick но он не подходит. Т.е. не не понимаю, зачем туда PostMessage прикручивать.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805228
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем отметки для юзерских манипуляций в принципе сохранять в базе?
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805229
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2А зачем отметки для юзерских манипуляций в принципе сохранять в базе?
Вариантов миллион. Например, что заявка выполнена/закрыта.

ЗЫ. Странный вопрос.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805238
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятна проблема.
Почему нельзя вызвать post сразу после изменения конкретного поля, раз уж так хочется? В датасете/датасорце есть соответствующие эвенты, чтобы ловить нужный момент. Ну, добавить защиту от дурака, чтобы не чекали записи, логически непригодные для сохранения.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805240
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2А зачем отметки для юзерских манипуляций в принципе сохранять в базе?
Намного проще потом манипулировать данными с помощью обычных запросов.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805242
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanВасилий 2А зачем отметки для юзерских манипуляций в принципе сохранять в базе?
Вариантов миллион. Например, что заявка выполнена/закрыта.

ЗЫ. Странный вопрос.
Вопрос странный, да. Но, как раз "заявка выполнена/закрыта" надо делать по другому. Через окошко с вопросом, "А вы точно уверены?" )))
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805246
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёНепонятна проблема.
Почему нельзя вызвать post сразу после изменения конкретного поля, раз уж так хочется? В датасете/датасорце есть соответствующие эвенты, чтобы ловить нужный момент. Ну, добавить защиту от дурака, чтобы не чекали записи, логически непригодные для сохранения.
Я так и хотел, когда понял, что само оно не работает. Просто не сразу нашел подходящий эвент.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805264
Devillio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я делал так. У колонки с Checkbox есть OnUpdateData (Правда, у меня Ehlib 6.2)
В этом обработчике вручную поменяйте (через TpFIBQuery) значение, и значение Checkbox'a, и ставите Handled := True;
Текст, конечно, кривоват, но стабильно работает уже лет 12:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
procedure TframeMonitor.DBGResPricesColumns10UpdateData(Sender: TObject;
  var Text: string; var Value: Variant; var UseText, Handled: Boolean);
begin
  Handled := True;
  if DBGResPrices.DataSource.DataSet.State = dsEdit then
  begin
    DBGResPrices.DataSource.DataSet.FieldByName('USEINCALC').AsInteger := (1-DBGResPrices.DataSource.DataSet.FieldByName('USEINCALC').AsInteger);
    try
      DM.TRNShort.StartTransaction;
      with DM.RunFIBSQL do
      begin
        Close;
        SQL.Text := 'update TPrices set '+(Sender as TDBGridColumnEh).Grid.SelectedField.FieldName+'=:PARAM, IDAUTH=:IDAUTH, IDAUTHLOG=:IDAUTHLOG, LASTEDITDATE=current_timestamp where ID=:ID';
        ParamByName('ID').AsInteger := (Sender as TDBGridColumnEh).Grid.DataSource.DataSet.FieldByName('ID').AsInteger;
        ParamByName('IDAUTH').AsInteger := GlobalUserID;
        ParamByName('IDAUTHLOG').AsInteger := GlobalLogID;
        ParamByName('PARAM').AsInteger := (Sender as TDBGridColumnEh).Grid.DataSource.DataSet.FieldByName((Sender as TDBGridColumnEh).Grid.SelectedField.FieldName).AsInteger;
        ExecQuery;
        Close;
      end;
      DM.TRNShort.Commit;
    except
      DM.TRNShort.Rollback;
    end;
    DBGResPrices.DataSource.DataSet.Post;
  end;
end;
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805273
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И никто не узнает что ж там за ошибка была, если что...
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805375
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgikwadmanпропущено...

Вариантов миллион. Например, что заявка выполнена/закрыта.

ЗЫ. Странный вопрос.
Вопрос странный, да. Но, как раз "заявка выполнена/закрыта" надо делать по другому. Через окошко с вопросом, "А вы точно уверены?" )))Теперь представь условия да/нет в виде битовой маски. Окошки для каждого бита выводить? А если у каждого условия больще двух вариантов? Юзверь повесится.
Вот короткий собачий примерУсловиеЗначениеПорода BIS 09.09.1918-Заявка до 01.01.2019+Заявка до 01.06.2019+Есть гарантийное письмо+Оплачено полностью+

Вот тебе маска 1E А от этого бабло зависит
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805379
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gator, какие то две не связные ситуации.
В этом случае нужно еще две кнопки Сохранить и Отменить. Этот пример и есть вариант этого окошка.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805388
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanВасилий 2А зачем отметки для юзерских манипуляций в принципе сохранять в базе?
Вариантов миллион. Например, что заявка выполнена/закрыта.

ЗЫ. Странный вопрос.
Странный, потому что ты его не так понял. У ТС отметки типа "отправить на печать". Им в базе делать нечего. Имхо.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805393
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2wadmanпропущено...

Вариантов миллион. Например, что заявка выполнена/закрыта.

ЗЫ. Странный вопрос.
Странный, потому что ты его не так понял. У ТС отметки типа "отправить на печать". Им в базе делать нечего. Имхо.

Не совсем так. У ТС отметки типа "помеченная запись". А что с ней делать дальше, это дело десятое.
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805435
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2Странный, потому что ты его не так понял. У ТС отметки типа "отправить на печать". Им в базе делать нечего. Имхо.
Интересная версия...
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805578
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgikGator, какие то две не связные ситуации.
В этом случае нужно еще две кнопки Сохранить и Отменить. Этот пример и есть вариант этого окошка. Это только твоё мнение. А опыт подсказывает, что сегодня это две не связные ситуации , а завтра их свяжут вместе и ещё 3 добавят. :)
...
Рейтинг: 0 / 0
DBGridEh 3.6 + checkbox сохранение в базе
    #39805581
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, ну что ты волнуешься, приятель, добавь "отправить на телефон" или "отправить в шредер". Всё равно из базы чистить не след.

Вот потом, раз в полгода можно базу одним джобом почистить по условию. Но это - другая песня.
_________
Здоровья, кстати. И Солнца, радости, природы разной летом и потом...
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGridEh 3.6 + checkbox сохранение в базе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]