Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 опять проблема с grid  [new]
tem@
Member

Откуда: Планета Земля
Сообщений: 79
в grid'e есть вложенный edit, при удалении записи
удаляется и edit, использую процедуру:

form1.Grid1.RecordSource = ""
DELETE
PACK
CLOSE TABLES
WITH form1.grid1
.RecordSourceType = 0
.RecordSource = "FULLBAZ"
.Refresh
endwith

при 1 использовании данной процедуры edit не
удаляется, а при следуюшем исчезает!!!!
18 фев 06, 16:19    [2370704]     Ответить | Цитировать Сообщить модератору
 Re: опять проблема с grid  [new]
Doktor Gradus
Member

Откуда:
Сообщений: 57
Странный код...

Во-первых, 1-ая строка не нужна. Нет необходимости обнулять грид перед удалением записи.

Процедура PACK, если вам действительно она нужна, должна выполняться перед выходом из пакета, на крайний случай -- при закрытии формы. Наилучшим же решением (не всегда!) является написание отдельной административной программы, из которой PACK выполняется периодически. Дело в том, что для команды PACK необходимо монопольное использование таблицы, а это не всегда возможно.

Конструкцию WITH .. ENDWITH вы используете правильно. Незачем писать form1.grid1 по 3 раза.

Ваш код можно переписать гораздо короче:

delete record recno()
thisform.grid1.refresh()

Однако, я бы рекомендровал вставить месаджбокс с подтверждением удаления, а также процедуру проверки местонахождения указателя (а вдруг запись на удаление не выбрана)

Что-нибудь вроде этого:

local ln_Answer

select FULLBAZ

if !eof() or !bof()
  ln_Answer = messagebox( "Вы действительно хотите удалить запись?", 4 + 32 + 0,"Предупреждение!")
  if ln_Answer = 6
    delete record recno()
    thisform.grid1.refresh()
  endif
endif

Однако интересно было бы услышать гуру.
19 фев 06, 18:22    [2371869]     Ответить | Цитировать Сообщить модератору
 Re: опять проблема с grid  [new]
tem@
Member

Откуда: Планета Земля
Сообщений: 79
Первая строка как раз нужна для того, чтоб Grid не сбрасывал
с себя все параметры, без этой строки при первых манипуляций с
базами Grid полностью сбрасывает настройки.

сама процедура работает нормально, но через несколько
удалений из таблицы, Grid всетаки сбрасывает настройки!!!!

спасибо за помощь.
19 фев 06, 19:39    [2371905]     Ответить | Цитировать Сообщить модератору
 Re: опять проблема с grid  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi tem@!

- Не надо паковать таблицу после удаления (достаточно SET DELETE ON)
- Не надо закрывать таблицу
- Не надо использовать ResordSourceType = 0 (достаточно 1 - Alias, а саму
таблицу открывать при запуске формы - через DE или в Form.Load)

Posted via ActualForum NNTP Server 1.3

23 фев 06, 01:32    [2384486]     Ответить | Цитировать Сообщить модератору
 Re: опять проблема с grid  [new]
Zheka
Member

Откуда:
Сообщений: 19
Так он и сбрасывает настройки из-за PACK. Как уже писалось, достаточно:

Select <myTable>
Delete
...Grid.Refresh

все.
28 фев 06, 08:27    [2397232]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить