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

Откуда: Луцк, Украина
Сообщений: 161
Читал в фоксклубе статью С.Чеговца о формах (какраз начал новую програмку) и возник вопрос:
Если запускать из PRG файла форму то вроде как все понятно
SET ...
DO FORM...
READ EVENTS
а вот если без PRG.
Load
 SET...
Init
 Select ... INTO CURSOR tmp_cursor WHERE <условие>
 ThisForm.Grid.RecordSourse = "tmp_cursor"
Затем при смене <условия> пишу ThisForm.Init и все хорошо...
Но вот правильно ли это и куда вставить READ EVENTS чтоб в .ЕХЕ-шнике работало
16 ноя 04, 16:00    [1109978]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Если проект на одной форме и она модальная, то READ EVENTS не треба, в остальном он ставиться в главном модуле проекта после активизации меню и выполнения других начальных действий.
Вот селект в ините не есть хорошо.
Лучьше создай параметризированную вьюшку, помести ее в DE формы, а в ее свойствах установи NoDataOnLoad=.T., привяжи ее к GRID, а в Initе задашь параметр и сделаешь REQUERY(<ViewName>), то же самое и при смене условия.
16 ноя 04, 16:08    [1110029]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
Alex Sheff
Member

Откуда: Луцк, Украина
Сообщений: 161
да вот форма немодальная, а условия для селекта пользователь указывает в всплывающей (модальной) форме которая как параметр возвращает условие селекта.
Я непредставляю как сделать view в такой ситуации
16 ноя 04, 16:17    [1110082]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Из формы под условие возвращается один параметр или пользователь так и пишет ff> ... and bb<2 ...?
16 ноя 04, 16:23    [1110108]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
Alex Sheff
Member

Откуда: Луцк, Украина
Сообщений: 161
там формируется строка типа
"tmp_cursor.field1 = " + alltrim(ThisForm.Text1.Value)
Форма возвращает эту строку в переменную,
а затем в основной форме
SELECT .... WHERE &condition
16 ноя 04, 16:29    [1110142]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Ну так все равно у тебя получается ограниченное количество параметров, которые можно передать через массив, и привязаны эти параметры к определенным полям, которые можно ограничить параметрами в представлении.
Или можно попробовать в представлении написать
SELECT ... WHERE ?tcParamStr
16 ноя 04, 16:48    [1110267]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
Alex Sheff
Member

Откуда: Луцк, Украина
Сообщений: 161
Надо будет попробовать, но сейчас уже слишком много переделывать придется.
1. почему нежелательно в INIT формы писать SELECT?
2. почему если я из INIT переношу SELECT в ACTIVATE, а затем пишу ThisForm.Activate - SELECT несрабатывает?
16 ноя 04, 16:58    [1110347]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
1. Потому что в INIT обычно пишешь установку начальных параметров при создании формы, а если ты их в дальнейшем меняешь и тебе опять необходимо выполнить запрос, что получится при повторном INIT?
Добавь тогда в форму свой метод, который будет отвечать за перезапрос данных. Ты сможешь вызвать его из любой точки формы, а при изменении запроса нужно будет исправить только один метод.
2. Думаю что ответ на первый вопрос разубедит тебя переносить SELECT в какое то другое место.
16 ноя 04, 17:16    [1110447]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
karly™
Guest
Правильно вот так:
1. Создай специальный метод, например DataRefresh (вижу, AleksMed меня уже опередил ;) )

2. В init формы напиши
ThisForm.DataRefresh()
ThisForm.Show()
Read Events && Так можно поступать только для немодальных форм

3. Все же потрать время на изучение view. В результате окажется, что переделавать надо совсем чуть-чуть. Точнее, понадобится удалить весь старый код и написать чуть-чуть нового ;-)
16 ноя 04, 17:24    [1110491]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
Alex Sheff
Member

Откуда: Луцк, Украина
Сообщений: 161
Неуверен что средствами View можно реализовать такую конструкцию
SELECT a.name FROM a WHERE a.id IN (SELECT b.id FROM b HAVING BETWEEN(b.date,date_start,date_end))
А вот о создании своего свойства - надо подумать (еще такого непробовал)
Можно ссылку почитать или вкратце описать как это делать (форму я создавал мастером)
16 ноя 04, 17:51    [1110614]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
karly™
Guest
Если a.id уникально, что следует из названия ;) то можно заменить приведенный запрос такой конструкцией
Select a.name from a, b where a.id = b.id and b.date between date_start and date_end

В противном случае можно разбить запрос на два view, и второе view строить на результатах первого.

Создание своего метода (а не свойства, не путай) - очень просто. Когда редактируешь форму, в меню появляется пункт Form. А там - все, что тебе надо :)

Удачи.
16 ноя 04, 19:04    [1110805]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
Strong
Member

Откуда: Россия
Сообщений: 277
Чтоб не плодить новых топиков задам вопрос здесь.

Есть форма в ней эдит бокс но при вводе пользователем текста мигающий курсор ( I ) не отображается, т.е. стоит отвести взгляд от экрана и уже забыл где текст редактируешь. При запуске в VFP все нормально. Может быть кто то встречался с подобной проблемой, или есть какието соображения по этому поводу. Программа работает из под "Парус"а
______________________________________
с уважением: Strong
1 дек 04, 09:39    [1148732]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Возможно сделана настройка

SET CURSOR OFF
1 дек 04, 10:13    [1148794]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
Strong
Member

Откуда: Россия
Сообщений: 277
Большое спасибо проблема решена.
______________________________________
с уважением: Strong
1 дек 04, 10:33    [1148894]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос о форме  [new]
Strong
Member

Откуда: Россия
Сообщений: 277
хех рано радовался.
когда скролишь и верхушка едит бох уезжает за границы формы то курсор мигает где угодно только не в том месте где надо, или вообще пропадает,
а едит бох длиннее формы а делать его меньше неудобно пользователям.
______________________________________
с уважением: Strong
1 дек 04, 10:40    [1148914]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить