Работа с записями в Grid control в Visual foxpro
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Работа с записями в Grid control в Visual... Expand / Collapse
Автор
Сообщение
21.03.2006 16:10
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 22.03.2006 5:07
Сообщ.: 8, Visits: 89
Есть обьект Grid и есть кнопка Delete. Нужно с помощью етой кнопки удалить выделенную в Grid запись. Пытался получить данные из Grid с помощью следующей строки: S=ThisForm.grid1.column1.Text1.Text. и удалить с помощью следующей строки: DELETE FROM maintable;
WHERE Client_name=S AND Client_Surname=S2 AND Client_Addr=S3.
Ниже полный код:
PARAMETERS S, S2, S3
S=ThisForm.grid1.column1.Text1.Text
S2=ThisForm.grid1.column2.Text1.Text
S3=ThisForm.grid1.column3.Text1.Text

DELETE FROM maintable;
WHERE Client_name=S AND Client_Surname=S2 AND Client_Addr=S3

Не срабатывает, одно поле с однй записи, другое с другой и т.д.

И еще вопрос, как получить доступ с одной формы к компонентам другой?

Заранее спасибо
Сообщ. #893315
22.03.2006 13:51
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 19.09.2008 13:31
Сообщ.: 106, Visits: 979
Если источник данных для грида таблица с данными, а не курсор, то достаточно просто выполнить команду delete.
Если таблица связана релейшинами с другими таблицами, то предварительно сделай select maintable так, на всякий случай
Александр
Сообщ. #893395
22.03.2006 16:48
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 19.09.2008 13:31
Сообщ.: 106, Visits: 979
Да, чуть не забыл, потом сделай grid.refresh()
Сообщ. #893434
02.05.2006 12:49
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 04.05.2006 17:41
Сообщ.: 1, Visits: 16
Здравтсвуйте...
мне нужно из активной строки брать значение первой ячейки.
делаю так: в обработчике события Click кнопки пишу
SELECT contracts
num=thisform.grid1.column1.text1.value
SET FILTER TO numcont=num
browse
Сработывает, только когда щелкнешь по нулевой нулевой колонке в нужной строке(самый левый край грида)...А мне надо, чтоб срабатывало, при щелчке по любой ячейке. Как я понял при выделении произвольной ячейки строка не становится активной....а при щелчке в левый край становится...
Сообщ. #896335
10.05.2006 15:54
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 19.09.2008 13:31
Сообщ.: 106, Visits: 979
Draft (02.05.2006)
Сработывает, только когда щелкнешь по нулевой нулевой колонке в нужной строке(самый левый край грида)...А мне надо, чтоб срабатывало, при щелчке по любой ячейке. Как я понял при выделении произвольной ячейки строка не становится активной....а при щелчке в левый край становится...

Привет. Ты пойми одно.

Фоксовый грид - это не датасет, который связан с данными через всякие там механизмы. Фокс - имеет свой движок для работы с данными. Поэтому грид - это очень крутой компонент. Нас в даном случае интересует один момент. Кликнув мышью на любой строчке, ты моментально становишься на данной записи. Не нужны никакие команды перемещения. И уже можешь работать с текущей!!!!! записью не через SQL, а средствами самого фокса. Хочешь, REPLACE, DELETE.

Поэтому можно сразу делать: m.num = numcont.

Единственный момент.

Эта переменная должна быть глобальной, если таблица остаётся открытой после закрытия формы и фильтр остаётся включеным.

Александр

Сообщ. #896816
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 7:36