|
|
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Как сделать так, что если условие для set filter выполняется, то надо вывести из одной таблицы 2-а поля в Grid, а иначе Grid должен быть пустым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:39 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
А что Вы вкладываете в понятие: "условие для set filter выполняется" Grid отображает то, что есть. Т.е. все записи удовлетворяющие условию фильтра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:45 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
К примеру: set filter to fam='Иванов' И далее мне нужно сделать так чтобы в грид выводились записи у которых поле fam=Иванов Можно ли так сделать используя грид? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:30 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
-) Фильтр вступает в силу, только после перемещения указателя записи в той таблицы, на которую он накладывается -) Картинка Grid обновляется только после получения им фокуса Следовательно, необходимо сделать: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:56 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
для ВладимирМ: Попробовал SELECT MyTab set filter to fam='Иванов' GO TOP ThisForm.MyGrid.SetFocus() и не работает.В грид выводятся все данные таблицы, а не отфильтрованные. Если вам несложно пожалуста укажите процедуру, где необходимо указывать код фильтрации, и обновления грида. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 14:57 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Делается все элегантно и просто заводится у формы свойство filter делается ассайн мтод на него и в ассайн методе уже прописываем наложение фильтра и отключение видимости колонок пример накидать??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 15:03 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Да-да-да-да-да-да-да-да-да-да-да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 15:10 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
А что, если в гриде колонок мало не лутше ли подвязать его к курсору, в который и будут скидываться эти самые Ивановы, Петровы и Гавриковы по вашему выбору? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 15:25 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
для О_В_Д: Если можно, то раскажите про это поподробнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 16:38 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
chukchaдля О_В_Д: Если можно, то раскажите про это поподробнее SELECT .. FROM.. WHERE..'Иванофф' INTO CURSOR Ifanoff This..Grid.RecordSource = 'Ifanoff' в этом направлении смотреть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 17:41 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Вот так без самого фокса под рукой навскидку Ну типа имеем таблу Person: cFamly, cName, cOtch, dGorn, cAdres и т.д. Далее прописываем в форме для грида: Код: plaintext 1. 2. 3. По нажатию командной кнопы запусскатся запрос: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 17:41 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
chukchaдля ВладимирМ: Попробовал SELECT MyTab set filter to fam='Иванов' GO TOP ThisForm.MyGrid.SetFocus() и не работает.В грид выводятся все данные таблицы, а не отфильтрованные. Если вам несложно пожалуста укажите процедуру, где необходимо указывать код фильтрации, и обновления грида. Ну, смотри примерчик во вложении. Написан на VFP6SP5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 21:48 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
ВладимирМ , я немного подправил я понимаю нужно так?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 10:46 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
IF USED("tabTest") = .F. CREATE CURSOR tabTest (tabTestId I, NickName C(50)) Поясните пожалуста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:54 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
chukchaIF USED("tabTest") = .F. CREATE CURSOR tabTest (tabTestId I, NickName C(50)) Поясните пожалуста Если алиаса с именем "tabTest" не существует, создать курсор с таким алиасом. Это просто "заплатка", чтобы не добавлять в архив еще и DBF-таблицу. Если таблица и так есть, то весь этот кусок можно смело выбрасывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 17:10 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
для ВладимирМ: [/quot]Если таблица и так есть, то весь этот кусок можно смело выбрасывать.[/quot] Я еще выкунул кусок, где вы вводите TabTestId NickName. Я беру данные из таблицы, и вместо Text1 куда вы вводите данные фильтрации я использую глобальную переменую. Вот ввел данные в глоб.перемен. перехожу на следующую форму и выдается такая ошибка: Unknown member Grid1 Что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 14:50 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Это надо понимать буквально. Нет объекта с именем Grid1. Т.е. смотрите, где у Вас идет обращение к Grid1 и сравните реальное расположение этого объекта и вообще факт его существования. Если он существует (это свойство Name соответствующего объекта), то надо смотреть где он лежит. Если как в примере, непосредственно на форме, то обращение к нему будет иметь вид вроде: ThisForm.Grid1.SetFocus() а вот попытка обратиться таким образом: Grid1.SetFocus() вызовет сообщение об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 14:56 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Посмотрел свойство Name все правильно стоит Grid1, thisform тоже вроде везде есть там, где я обращаюся к гриду. Когда ввел данные в глоб.перем. перехожу на другую форму и при выводе ошибки, игнорирую ее и все работает нормально. Может можно в коде прописать чтобы игнорировала эту ошибку или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 15:47 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Что означает фраза "ввел данные в глобальную переменную"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 16:03 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Пример в текстбокс ввожу фамилию 'Иванов' дальше перехожу на другую форму. И по ней уже осуществляется фильтрация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 16:23 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Что именно ты записал в глобальную переменную? Т.е. вот ты ввел в TextBox фамилию "Иванов". Где и каким образом произошла запись этого значения в глобальную переменную? Как (какой командой) настривается фильтр? Т.е. буквально, что именно пишешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 17:07 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Все нормально заработало. Убрал строчку ThisForm.MyGrid.SetFocus() И у меня есть еще такой вопросик! Я хочу по выходу из формы (нажатием на крестик в правок верхнем углу формы), сделать Set filrer to . Если кто знает как это сделать скажите пожалуста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2006, 18:19 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Все нормально заработало. Убрал строчку ThisForm.MyGrid.SetFocus() И у меня есть еще такой вопросик! Я хочу по выходу из формы (нажатием на крестик в правок верхнем углу формы), сделать Set filrer to . Если кто знает как это сделать скажите пожалуста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2006, 18:25 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
При нажатии на крестик в правом верхнем углу формы срабатывет событие формы QueryUnload(). Если в этом событии дать команду NODEFAULT, то закрытие формы будет отменено. При выполнении команды RELEASE или метода формы Release() событие QueryUnload() игнорируется и не исполняется. Обычно на форме есть кнопка "Выход", при нажатии на которую выполняются необходимые действия и дается команда ThisForm.Release(). Тогда в событии QueryUnload() пишется примерно такой код Код: plaintext 1. 2. Здесь CmdExit - это имя той самой кнопки "Выход". Т.е., по сути, при нажатии на крестик здесь произошла отмена автоматического закрытия формы и вызов пользовательского метода для закрытия формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2006, 18:28 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
У меня на форме есть кнопка выхода (там имеется Set filter to), но хотелось бы и по выходу на крестик происходило тоже самое, отключение фильтрации и закрытие формы. Если я правильно понял то в свойстве QueryUnload(),мне необходимо написать: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2006, 18:37 |
|
||
|
Grid(ёныш)
|
|||
|---|---|---|---|
|
#18+
Не надо искать в моем ответе "тайный смысл". Воспринимай его в данном случае БУКВАЛЬНО! При нажатии на крестик в правом верхнем углу форма закрывается. Разве ей надо при этом давать какие-то дополнительные команды? Т.е. дополнительный Release() ей вовсе не нужен. Она и так замечательно закроется. Смысл всего написанного по поводу QueryUnload() сводился к тому, что не надо писать дважды один и тот же код в разных местах. Надо ОТМЕНИТЬ закрытие формы по нажатию на крестик и запустить тот метод, который "штатно" (по твоему замыслу) обрабатывает закрытие формы. У тебя "штатным" методом закрытия формы является событие Click() на кнопке формы. Значит, в событии QueryUnload() необходимо вызвать этот твой штатный метод. Т.е. в явном виде написать команду вроде ThisForm.CmdExit.Click() Вызвать событие Click() нужной кнопки. Но этого недостаточно. Ведь в процессе обработки нажатия на кнопку выход может быть ОТМЕНЕН. Точнее, запрещен по разным соображениям. Но если все оставить как есть, то событие QueryUnload() отработает до конца и само, автоматически, без дополнительных команд ЗАКРОЕТ форму. Следовательно, необходимо отменить автоматическое закртие формы именно в событии QueryUnload(). Для этой цели используется команда NODEFAULT. Т.е. код в событии QueryUnload это Код: plaintext 1. 2. ВСЕ! НЕ НАДО больше ничего в нем писать! Теперь при нажатии на крестик в правом верхнем углу вместо автоматического закрытия формы будет запущен твой собственный метод закрытия формы, написанный в событии Click() кнопки CmdExit. Вот в нем-то как раз и пишешь: Код: plaintext 1. 2. Таким образом, если по каким-либо соображениям теперь тебе надо будет изменить код, исполняемый при закрытии формы ты изменяешь только код в событии Click() твоей кнопки "Выход" и уже не заботишся о том, что пользователь может нажать на крестик. Все-равно произойдет перенаправление действий на обработку события Click() кнопки. Не надо писать один и тот же код несколько раз в разных местах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2006, 19:48 |
|
||
|
|

start [/forum/topic.php?all=1&fid=41&tid=1592305]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 507ms |

| 0 / 0 |
