изменение и сохранение данных Grid-а в EditBox | |
---|---|
Анонимный пользователь Автор |
Стала задача таким вот образом. Я понимаю, что это скорее всего элементарка, но просто таким образом работу с данными никогда не организовывал. А форум и так уже весь изрыл, чего-то ничего не откопал...
Есть форма с Grid-ом в один столбец, в котором отображается имя человека. Grid на основе таблицы базы. Рядышком стоят TextBox с этим именем, связанный с этой таблицей по ControlSource = имени и EditBox c ControlSource = описанию данного человека. Под ними кнопки Сохранить, Новый и Удалить. Суть в чем. Когда в гриде становимся на пипла, редактируем ему имя и описание, оно записывается сразу в базу, переходим в таблице к другому - все аналогично. Хотелось бы, чтобы инфа о текущем челе из таблицы записывалась только по Сохранить. Если делать через транзакции - опять-таки, получится что отменять/сохранять изменения будем не для текущей записи, а для всех последних измененных, что не гут. И нутром чую, что ответ где-то рядом - но в голову ничего не приходит... Помогите люди добрые! |
Re: изменение и сохранение данных Grid-а в EditBox | |
---|---|
qws Сообщений: 49 Откуда: Kryukov-na-Dnepr Дата регистрации: 08.02.2005 |
А ты сделай через 5-ю буферизацию. Тогда Сохранить=ТаблАпдейт, а все остальное - ТаблРеверт.
|
Re: изменение и сохранение данных Grid-а в EditBox | |
---|---|
Aptex Сообщений: 1076 Откуда: г.Хмельницкий UA Дата регистрации: 07.11.2003 |
Я в таких ситуациях создаю форму из командного окна
CREATE FORM FormName AS _FORM FROM _BASE.VCX в DE добавляю нужные курсоры и устанавливаю 5 буферизацию на форму ставлю нужные контролы.Все остальное там предусмотрено Остается только под кнопку "Сохранить" поставить TABLEUPDATE() |
Re: изменение и сохранение данных Grid-а в EditBox | |
---|---|
Vladimir_Knyr Сообщений: 1711 Откуда: г. Енисейск Дата регистрации: 15.12.2003 |
Hi Сергей!
Я в таких случаях поступаю - отдельная форма редактирования записи!! а иначе ни как!- ибо update операция комплексная, так что ни чего не остается, как делать редактирование для конкретной записи для конкретной таблицы "универсального еще не придумали" ------------------ хороший код работать будет и обязан, а плохой не жалко. |
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 |
Re: изменение и сохранение данных Grid-а в EditBox | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Согласен с Игорем, но мне кажеться буферизация нужна все-так в данном конкретном случае, по-моему, все-таки 3-тья.
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: изменение и сохранение данных Grid-а в EditBox | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, piva!
Нет, при 3-й автоматом будет происходить запись при перемещении по строкам -> придётся писать где-то (наверное в BeforeRowColChange и в методах "ручного" перемещения по записям) явные TableRevert(.F.) - что IMHO напрягает и потенциально влечёт ошибки. Я вообще 3-ю буферизацию принципиально не использую - ибо 5-я как более "продвинутая" имеет все фишки 3-й, но при этом не имеет такой дурацкой "самостоятельности" в сбросе изменений. ------------------ WBR, Igor |
Re: изменение и сохранение данных Grid-а в EditBox | |
---|---|
Penner Сообщений: 4102 Откуда: Muenster Дата регистрации: 26.04.2002 |
Зачам так наворочено?
Не прописывай ControlSource у Textbox и Editbox в AftrRowColumnChange грида загоняй в них значение и по кнопке "Сохранить" записывай значение в базу. |
Re: изменение и сохранение данных Grid-а в EditBox | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, Penner!
То что ты предлагаешь и есть реализация буферизации, только РУКАМИ. Я лично не вижу никаких причин изобретать велосипед... ------------------ WBR, Igor |
© 2000-2024 Fox Club  |