2012-05-25 4 views
0

У меня есть управление сеткой в ​​vfp9 на форме. И у меня есть кнопка, которая удаляет (с пакетом) текущую запись. После удаления записи сетка не находит ресурс. Он остается только пустым прямоугольником. Я сделал что-то вроде этого: DELETE ALL PACK GO TOP thisform.grid1.RefreshGridControl Refresh

, но без эффекта. Заранее спасибо.

ответ

1

Как Тамар упоминалось ... упаковка действительно плохо в изо дня в день мероприятия. Однако, есть «SETTING», который может «скрыть» запись для вас через все обычные операции до тех пор, каждую ночь перекачиваемой административную задачи, чтобы окончательно удалить записи ...

SET DELETED ON 
SET DELETED OFF 

Поворота «ON» (и это только должен выполняться один раз для всего приложения, если вы не имеете дело с формами, связанными с приватными сеансами передачи данных, тогда это также нужно сделать там. SET DELETED ON сообщает VFP, чтобы Скрыть любые записи, помеченные для удаления, чтобы они не загромождали Кроме того, он также скрывает их от любых запросов SQL, поэтому вы не получите записей, отмеченных для удаления.

SET DELETED OFF выключит скрытие и позволит вам просмотреть любые/все удаленные записи aga в. Это, если вы случайно отметили запись для удаления и должны были «ЗАПИСАТЬ» ее (восстановить).

Теперь все, что сказал. Если пометить запись для удаления, например, вашего установленного фильтра после обнаружения критериев, делая удалить все, пакет, что это плохо ...

Все вы должны в случае щелчка вашей кнопки является

DELETE 
Thisform.YourGridObject.Refresh() 

и запись должна быть визуально удалена из списка. Когда вы выдаете PACK, он фактически ЗАКРЫВАЕТ таблицу и, таким образом, отвязывает себя от сетки, удаляет все удаленные записи, а затем снова открывает себя через очищенную версию, но автоматически не привязывает себя к сетке.

+0

Большое спасибо за ответ! –

1

Проблема в том, что вы воссоздаете RecordSource сетки, и это не нравится. Не зная больше о том, что вы делаете, трудно предложить конкретные советы. Однако, как правило, считается плохой формой для упаковки таблицы в обычные действия приложения. Как правило, PACK зарезервирован для административного кода, который работает в нерабочее время, поскольку для этого требуется эксклюзивный доступ к таблице.

Ваша цель здесь? Почему вы удаляете все записи в таблице, на которой основана сетка?

Тамар

+0

Я делаю административную часть. Я ищу записи в соответствии с полем, и я показываю найденные записи в этой сетке (с SET FILTER TO). И если я хочу, я могу удалить эти записи с помощью приведенных выше инструкций. –

+0

Тамара, ты можешь мне помочь? –

1

Сетка VFP ненавидит редактируемый источник данных.

Вам необходимо отключить источник записей сетки (т. Е. Установить его на ""), выполнить свои операции, а затем сбросить источник записей и обновить.

Смежные вопросы