Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / вопрос по SCAN / 12 сообщений из 12, страница 1 из 1
29.01.2013, 14:02
    #38128813
mosalova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
Помогите пожалуйста!

Есть курсор, к которому применяю фильтр по возрасту:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
* Возраст "С" указан, возраст "По" - опущен
IF prAgeF > 0 AND prAgeT = 0
	SET FILTER TO myCurs.age >= prAgeF IN myCurs
ENDIF
	
* Возраст "С" - опущен, возраст "По" указан
IF prAgeT > 0 AND prAgeF = 0
	SET FILTER TO myCurs.age <= prAgeT IN myCurs
ENDIF
	
* Оба параметра "С" и "По" указаны
IF prAgeT > 0 AND prAgeF > 0
	SET FILTER TO BETWEEN(myCurs.age,prAgeF,prAgeT) IN myCurs	
ENDIF	

Grid.RecordSource = 'myCurs'



Затем командой SCAN ... ENDSCAN данные из курсора myCurs передаю в Word.

Но при передаче фильтр не учитывается!!! Как сделать, чтобы передавались отфильтрованные записи?
...
Рейтинг: 0 / 0
29.01.2013, 14:13
    #38128848
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
mosalovaЗатем командой SCAN ... ENDSCAN данные из курсора myCurs передаю в Word.

Но при передаче фильтр не учитывается!!! Как сделать, чтобы передавались отфильтрованные записи?
Не может быть. Либо фильтр изначально не устанавливается либо где-то позже убирается
Код: sql
1.
set filter to
...
Рейтинг: 0 / 0
29.01.2013, 14:17
    #38128856
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
mosalovaЗатем командой SCAN ... ENDSCAN данные из курсора myCurs передаю в Word.
Но при передаче фильтр не учитывается!!! Как сделать, чтобы передавались отфильтрованные записи?Включите в SCAN содержание фильтра, например :
Код: plsql
1.
SCAN FOR myCurs.age >= prAgeF

IF ... ENDIF тут, видимо, тоже потребуется...
...
Рейтинг: 0 / 0
29.01.2013, 14:21
    #38128866
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
Посмотреть какой фильтр стоит можно так
Код: sql
1.
2.
sele myCurs
MessageBox(set("Filter"))


вставь этот код после установки фильтра и перед сканом.

PS Если используется SELECT из myCurs, то он игнорирует фильтр.
...
Рейтинг: 0 / 0
29.01.2013, 14:22
    #38128868
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
mosalovaПомогите пожалуйста!

Есть курсор, к которому применяю фильтр по возрасту:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
* Возраст "С" указан, возраст "По" - опущен
IF prAgeF > 0 AND prAgeT = 0
	SET FILTER TO myCurs.age >= prAgeF IN myCurs
ENDIF
	
* Возраст "С" - опущен, возраст "По" указан
IF prAgeT > 0 AND prAgeF = 0
	SET FILTER TO myCurs.age <= prAgeT IN myCurs
ENDIF
	
* Оба параметра "С" и "По" указаны
IF prAgeT > 0 AND prAgeF > 0
	SET FILTER TO BETWEEN(myCurs.age,prAgeF,prAgeT) IN myCurs	
ENDIF	

Grid.RecordSource = 'myCurs'



Затем командой SCAN ... ENDSCAN данные из курсора myCurs передаю в Word.

Но при передаче фильтр не учитывается!!! Как сделать, чтобы передавались отфильтрованные записи?А тут у вас
Код: plsql
1.
GO TOP


не хватает, чтобы фильтр заработал.
...
Рейтинг: 0 / 0
29.01.2013, 14:28
    #38128889
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
Jonny540
Код: plsql
1.
GO TOP


не хватает, чтобы фильтр заработал.
Это не обязательно для SCANа
...
Рейтинг: 0 / 0
29.01.2013, 14:40
    #38128928
mosalova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
Dima T,

установила фильтр

Код: sql
1.
SET FILTER TO myCurs.age <= prAgeT IN myCurs



сделала после установки фильтра

Код: sql
1.
2.
sele myCurs
MessageBox(set("Filter"))



у меня выдало
myCurs.age <= praget

что теперь?
...
Рейтинг: 0 / 0
29.01.2013, 14:45
    #38128943
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
mosalovaчто теперь?
Я же написал еще перед сканом проверить.
Или скан сразу же начинается? В приведенном примере не видно.
...
Рейтинг: 0 / 0
29.01.2013, 16:12
    #38129131
mosalova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
Dima T,

команда
Код: sql
1.
SET FILTER TO myCurs.age <= prAgeT IN myCurs



производилась в дочерней форме, в которой при ее закрытии стояло
Код: sql
1.
release window имя дочерней формы



что сбрасывало все фильтры.
поставила
Код: sql
1.
HIDE WINDOW имя дочерней формы

и при выполнении команды СКАН пошло в Word то, что нужно.

Но как правильно передавать управление между родительской и дочерней формами?
Код: sql
1.
HIDE WINDOW имя дочерней формы

правильно или нет?
...
Рейтинг: 0 / 0
29.01.2013, 16:37
    #38129171
tor300
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
С фильтрами никогда не работал, всегда выбирал в курсор показываемые данные в грид, для редактирования записи отдельная форма, применительно к Вашему случаю:
Код: sql
1.
2.
3.
4.
5.
6.
  select * from myCurs
    where age>=iif(prAgeF>=0,prAgeF,0) and age<=iif(prAgeT>=0,prAgeT,999)
  into cursor myCurs1
  
  Grid.RecordSource = ''
  Grid.RecordSource = 'myCurs1'



и в скане выводить содержимое myCurs1, при закрытии формы уничтожать myCurs1.
...
Рейтинг: 0 / 0
29.01.2013, 16:46
    #38129188
Jonny540
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
mosalovaНо как правильно передавать управление между родительской и дочерней формами?Если вы дочернюю форму вызываете командой DO FORM, то там есть еще опция WITH, где можно передать параметры.
Ну или через глобальные переменные, что не всегда есть хорошо. :)
...
Рейтинг: 0 / 0
29.01.2013, 16:48
    #38129192
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по SCAN
Ни HIDE WINDOW ни RELEASE WINDOW никак не влияют на твой курсор. Это команды управления окнами.
Возможно при уничтожении окна выполняется какой-то код который пересоздает курсор.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / вопрос по SCAN / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]