:: Visual Foxpro, Foxpro for DOS
Начальный параметр представления
frontman
Автор

Сообщений: 89
Откуда: Москва
Дата регистрации: 16.02.2005
Доброго дня, коллеги

Сделал грид по параметризированному представлению с параметром idobj1,
и обновляю его по пермезению записи в другом

LPARAMETERS nColIndex
idobj1 = obj.id
requery("gettag")
ThisForm.grdTeg.Refresh

Но при открытии формы постоянно первый раз спрашивает параметр. Куда я его только не пытался засунуть... Load, Init формы и гридов и Data Enviriment, в свойство формы..
Идеи кончились, а нагуглить не получилось. Прошу помощь зала.
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
frontman
Но при открытии формы постоянно первый раз спрашивает параметр. Куда я его только не пытался засунуть... Load, Init формы и гридов и Data Enviriment, в свойство формы..
Идеи кончились, а нагуглить не получилось. Прошу помощь зала.
Надо просто вспомнить/узнать, что методы объектов вызываются не последовательно друг из друга и потому область действия приватной переменной оказывается такой же как и у локальной переменной, то есть только тот метод, в котором она определена.
Создай свойство формы idobj1 и его используй в качестве параметра.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
frontman
Автор

Сообщений: 89
Откуда: Москва
Дата регистрации: 16.02.2005
Пробовал с самого начала.. ну еще разок , может ошибся где
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
frontman
Автор

Сообщений: 89
Откуда: Москва
Дата регистрации: 16.02.2005
Не, не помогает. В форме свойство idobj1 есть у меня, default значение 1
На всякий пересоздал, та же фигня..
Главное , после ответа на запрос параметра все потом отлично работает и обновляется..



Исправлено 2 раз(а). Последнее : frontman, 25.10.18 14:19
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
frontman
Главное , после ответа на запрос параметра все потом отлично работает и обновляется..
Загадочная фраза.
Переведите)


------------------
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
Перевести на cursoradapter. У него добавить свойство и в тексте запроса писать типа this.miProp.
И глобальная переменная тогда не нужна и пр..
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
frontman
Не, не помогает. В форме свойство idobj1 есть у меня, default значение 1
На всякий пересоздал, та же фигня..
Главное , после ответа на запрос параметра все потом отлично работает и обновляется..
Показывай как делал.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
frontman
Автор

Сообщений: 89
Откуда: Москва
Дата регистрации: 16.02.2005
Пожалста, ткните где не так



Исправлено 3 раз(а). Последнее : frontman, 25.10.18 16:12
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
frontman
Но при открытии формы постоянно первый раз спрашивает параметр. Куда я его только не пытался засунуть... Load, Init формы и гридов и Data Enviriment, в свойство формы..
Там где открывается это самое представление, там и нужно прописать параметр. Если используется DE (представление визуально "брошено" в DE, и открывается им автоматически), то беда - надо либо вообще убрать представление из DE, либо хотя бы запретить автооткрытие курсоров, чтобы в момент полу-ручного их открытия все нужные переменные-параметры существовали. Просто NoDataOnLoad в свойстве курсора, насколько я помню, в VFP9 уже не помогает - т.е. хоть сами данные и не будут выбираться, но переменные для параметров таки нужны.
Т.е. я бы посоветовал очистить DE, поместить в Load код наподобии
LOCAL idobj1
idobj1 = 0
USE нужное_представление ... && можно с опцией NODATA, если потом всё равно где-то будет идти перезапрос.
Заодно, если уж несколько курсоров на форме, можно совершенно очевидным образом упорядочить их открытие - не гадая в каком же порядке DE будет открывать их, и не вылавливая потенциальные ошибки открытия курсоров чёрт-те каким кодом черт-те где расположенным

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


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
В принципе да, конечно.
Хотя тут можно обойтись и малой кровью.
Т.е. просто открываем DataEnvironment, дважды кликаем про пустому месту, открывается метод BeforeOpenTables.
Он срабатывает раньше всех методов формы и ее объектов.
Поэтому в нем бывает удобно прописывать даже скажем создание при включении подключенной к гриду таблицы с произвольной структурой.
В данном случае всего пара строк все и решает:
PUBLIC idobj1
idobj1=1


Если же скажем вдруг есть детские страхи перед PUBLIC, как перед чем-то диким, темным и ужасающим, как замечал, бывает у пришедших в фокс из строгих языков и подсознательно боящихся его нестрогости, в принципе следом после использования при желании можно и изменить видимость этой переменной через ее RELEASE и дальнейшее объявление ее локальности при необходимости.
Хотя по мне так ничего страшного в таких висящих глобальных переменных как бы и нет. Ну может где-то в толпе разработчиков, грызущих один проект, где каждый кто во что горазд, оно и бывает страшно, кто там чего наобъявлял. Но когда сам на сам, почему бы и не использовать.
Ну безусловно, удобнее конечно всегда бывает использовать вместо такого объявления такое же по сути глобальное свойство формы, оно как бы еще и более гибкое по ряду моментов. Но здесь-то формы в общем-то еще нет. А экран, к которому тоже можно бы в принципе пристегнуть, у меня например обычно всегда невидим. Ну это уже пошли как бы нюансы конфессий - кто молится босиком, но в шапке, а кто обутым, но без шапки. Поэтому споры о таком в итоге обычно бесполезны.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 1 раз(а). Последнее : Crispy, 26.10.18 07:33
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
frontman
Автор

Сообщений: 89
Откуда: Москва
Дата регистрации: 16.02.2005
PUBLIC idobj1 в Init формы спас отца демократии..

Давно в руки шашку не брал, такие простые вещи как видимость переменной забыл, спасибо.

Вот интересно, почему в Load формы тоже самое не работает, он вроде раньше
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
frontman
Автор

Сообщений: 89
Откуда: Москва
Дата регистрации: 16.02.2005
Igor Korolyov
В перспективе стоит заменить представления на курсорадаптеры, оставив логику их создания/открытия в том же самом Load.
То что оно гибче я понял, а по скорости в сравнении с представлениями есть информация?
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Crispy
В данном случае всего пара строк все и решает:
PUBLIC idobj1
idobj1=1

Скорее всего, у ТС не одна такая переменная.
Чтобы ими никого не дразнить, можно объявить глобальный объект EMPTY, определив эти переменные как его свойства.
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
frontman
PUBLIC idobj1 в Init формы спас отца демократии..
Досада.
ТС зареген на форму в 2005 г.
13 лет.
Выбирает самый... из всех... плохой подход.


------------------
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
frontman
Автор

Сообщений: 89
Откуда: Москва
Дата регистрации: 16.02.2005
Аспид
frontman
PUBLIC idobj1 в Init формы спас отца демократии..
Досада.
ТС зареген на форму в 2005 г.
13 лет.
Выбирает самый... из всех... плохой подход.
Я фоксом уже 15 лет не зарабатываю, программировал в основном на foxpro DOS 2.6
Но старая любовь не ржавеет, пишу немного для себя в редко свободное время, и изучаю VFP.
А не знать чего-то не стыдно, за сим и обращаюсь к опытным на форуме, и никто кроме вас не кичится.
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Я вовсе не кичусь.
И спрашивать, не стыдно.
Из всех советов, вы выбрали паблик, вот о чем досада была.

Ясно что 15 лет, не зарабатывали фоксом, да и вообще программированием.


------------------
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
frontman
Автор

Сообщений: 89
Откуда: Москва
Дата регистрации: 16.02.2005
Чем кардинально в данном случае плох PUBLIC ?
На данном этапе прототипа проблема решена "малой кровью",
будет время - разберусь с курсорадаптерами, а пока чтобы понять контуры будущего приложения и начать вводить первичные данные форма с представлением меня устроит.



Исправлено 1 раз(а). Последнее : frontman, 26.10.18 12:58
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Понимаешь, мне все равно.
Но коли это прототип, так тут и надо разбираться с такими вещами окончательно.
100% этот паблик дойдет до конца жизни приложения.

Параметры - ну как раз для вашего случая придумали. С этого начинали.
Столько правильных советов, и выбрать самый, якобы легкий, потенциально, очень опасный выход...

Вам жить с этим)
Но если это на раз. Сделать и выбросить, то запросто можно. Только я бы не стал об этом здесь сообщать)))


------------------
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
frontman
PUBLIC idobj1 в Init формы спас отца демократии..
Давно в руки шашку не брал, такие простые вещи как видимость переменной забыл, спасибо.

Вот интересно, почему в Load формы тоже самое не работает, он вроде раньше
Еще раз внимательно читаем мой первый ответ в этой теме. При необходимости повторить нужное до просветления количество раз.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Начальный параметр представления
frontman
Автор

Сообщений: 89
Откуда: Москва
Дата регистрации: 16.02.2005
Ну про раньше погорячился, но переменная Public , не Pivate
По идее тоже должна быть видна как глобальная.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 25 Владимир Максимов Joys Guest (Гостей: 22)

© 2000-2024 Fox Club 
Яндекс.Метрика