:: Архив конференции по VFP до 2005 года
изменение и сохранение данных Grid-а в EditBox
Анонимный пользователь
Автор
Стала задача таким вот образом. Я понимаю, что это скорее всего элементарка, но просто таким образом работу с данными никогда не организовывал. А форум и так уже весь изрыл, чего-то ничего не откопал...
Есть форма с Grid-ом в один столбец, в котором отображается имя человека. Grid на основе таблицы базы. Рядышком стоят TextBox с этим именем, связанный с этой таблицей по ControlSource = имени и EditBox c ControlSource = описанию данного человека. Под ними кнопки Сохранить, Новый и Удалить.
Суть в чем. Когда в гриде становимся на пипла, редактируем ему имя и описание, оно записывается сразу в базу, переходим в таблице к другому - все аналогично. Хотелось бы, чтобы инфа о текущем челе из таблицы записывалась только по Сохранить. Если делать через транзакции - опять-таки, получится что отменять/сохранять изменения будем не для текущей записи, а для всех последних измененных, что не гут.
И нутром чую, что ответ где-то рядом - но в голову ничего не приходит...
Помогите люди добрые!

Ratings: 0 negative/0 positive
Re: изменение и сохранение данных Grid-а в EditBox
qws

Сообщений: 49
Откуда: Kryukov-na-Dnepr
Дата регистрации: 08.02.2005
А ты сделай через 5-ю буферизацию. Тогда Сохранить=ТаблАпдейт, а все остальное - ТаблРеверт.
Ratings: 0 negative/0 positive
Re: изменение и сохранение данных Grid-а в EditBox
Aptex

Сообщений: 1076
Откуда: г.Хмельницкий UA
Дата регистрации: 07.11.2003
Я в таких ситуациях создаю форму из командного окна
CREATE FORM FormName AS _FORM FROM _BASE.VCX
в DE добавляю нужные курсоры и устанавливаю 5 буферизацию
на форму ставлю нужные контролы.Все остальное там предусмотрено
Остается только под кнопку "Сохранить" поставить TABLEUPDATE()
Ratings: 0 negative/0 positive
Re: изменение и сохранение данных Grid-а в EditBox
Vladimir_Knyr

Сообщений: 1711
Откуда: г. Енисейск
Дата регистрации: 15.12.2003
Hi Сергей!
Я в таких случаях поступаю - отдельная форма редактирования записи!!
а иначе ни как!- ибо update операция комплексная,
так что ни чего не остается, как делать редактирование для конкретной записи
для конкретной таблицы
"универсального еще не придумали"




------------------
хороший код работать будет и обязан, а плохой не жалко.
Ratings: 0 negative/0 positive
Re: изменение и сохранение данных Grid-а в EditBox
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Sewer!

Тебе нужна буферизация, причём 5-я, причём в гриде на AfterRowColChange
вешается TableRevert(.T.) - лучше конечно окружённый IF-ом, проверяющим что
реально произошло перемещение на другую запись.
На Click кнопки сохранить вешается TableUpdate(0) - ну конечно с проверками
на отсутствие проблем и т.п.
В принципе можно отказаться от TableRevert при перемещении - тогда можно
будет вернувшись на запись получить "изменённое" состояние (при этом в
таблице оно конечно будет неизменным! только в буфере будут видны эти
изменения) - а уж тогда TableRevert(.F.) повесить на кнопку "откат/отмена".
Транзакции здесь применять не стоит - транзакция ДОЛЖНА быть краткосрочной,
а вот открыть транзакцию, потом бегать по таблице и чего-то править, и через
3 часа закрыть транзакцию - вот это и есть самое нехорошее решение что
только можно придумать!




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: изменение и сохранение данных Grid-а в EditBox
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Согласен с Игорем, но мне кажеться буферизация нужна все-так в данном конкретном случае, по-моему, все-таки 3-тья.




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: изменение и сохранение данных Grid-а в EditBox
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, piva!

Нет, при 3-й автоматом будет происходить запись при перемещении по
строкам -> придётся писать где-то (наверное в BeforeRowColChange и в методах
"ручного" перемещения по записям) явные TableRevert(.F.) - что IMHO
напрягает и потенциально влечёт ошибки. Я вообще 3-ю буферизацию
принципиально не использую - ибо 5-я как более "продвинутая" имеет все фишки
3-й, но при этом не имеет такой дурацкой "самостоятельности" в сбросе
изменений.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: изменение и сохранение данных Grid-а в EditBox
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
Зачам так наворочено?
Не прописывай ControlSource у Textbox и Editbox
в AftrRowColumnChange грида загоняй в них значение
и по кнопке "Сохранить" записывай значение в базу.
Ratings: 0 negative/0 positive
Re: изменение и сохранение данных Grid-а в EditBox
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Penner!

То что ты предлагаешь и есть реализация буферизации, только РУКАМИ. Я лично
не вижу никаких причин изобретать велосипед...




------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 9 (Гостей: 9)

© 2000-2024 Fox Club 
Яндекс.Метрика