Страница 1 из 1

Манипуляции с формами

Добавлено: 09 янв 2007, 13:13
Alxd
Надеюсь задам не глупый вопрос. Как узнать id объекта в вычисляемом поле на форме объекта отображаемом справа от дерева объектов (фуф)?
Короче, надо знать id объекта, чтоб соответственно отобразить на форме данные в вычисляемом поле. Значение атрибута вернуть - нет проблем, но вот id объекта?!

Добавлено: 09 янв 2007, 14:53
Anderyt
н-да.... такое подозрение, что никак...
придется спросить у Теххелпа, видимо...

Добавлено: 10 янв 2007, 07:14
Александр
праздники продолжаются :wink:
id(число)=set(a_Object)

Добавлено: 10 янв 2007, 08:18
Alxd
Это для действия такое тождество покатит. А если нет действия, то нет и a_Object. А форма то отображается, значит система знает какую форму выбрать для выбранного типа объекта. А значит знает id активного объекта. Только почему то не дают этот ID.
Большая тайна покрытая маком, видимо. Скупой api :( ХАЧУ БОЛЬШЕ!!!

Добавлено: 10 янв 2007, 08:23
Alxd
Вот если б можно было на форму кинуть кнопку и нажимать ее автоматически один раз при открытии формы - неплохо бы получилось. Но как?!

Добавлено: 10 янв 2007, 08:34
Anderyt
не не, это уж слишком обходное решение проблемы.. должна быть функция, или переменная формы, в которой бы хранился ИД текущего объекта.

и еще иногда нужно знать тип текущего объекта (код типа или мнемо этого типа), НАХОДЯСЬ НА ФОРМЕ объекта, а не в действии ;-) . тоже было бы очень неплохо...

итак, начинаем новый рабочий год? очередные запросы к авторам? ;-)

Добавлено: 10 янв 2007, 08:56
Александр
а зачем нам Авторы? :roll: когда у нас есть Profiler (для MSSQL) или что там для Sybase...
берем и смотрим как создается a_Object

Код: Выделить всё

declare @P1 int
set @P1=5949
exec lsdbo.p_uptemplvar 'I', @P1 output, 229, 'a_Object', 'O', 'W', 0.0000000000, NULL, 0, 'Текущий объект', NULL, 0
select @P1 
PS Это для действия. Но и при открытии формы думаю тоже самое

Добавлено: 10 янв 2007, 09:12
Anderyt
не, я все таки за то, чтобы были нормальные способы добывания информации... ну максимум - через execsqlselect... но лазить за элементарными вещами в профайлер (а ИД объекта на форме этого объекта - это как раз элементарная вещь, как верно заметил Alxd, система УЖЕ ЗНАЕТ его) - нет уж, я бы не хотел тратить на это свое время...

Добавлено: 10 янв 2007, 12:36
Alxd
2 Александр
Продолжи свою мысль. Я не уловил. В @P1 возвращается значение, но это где-то во вложенной процедуре? Где именно? В какой процедуре?

Добавлено: 10 янв 2007, 13:06
Александр
Да понимаешь, я исходил из того что все системные переменные хранятся в базе, и при выделении объекта - обновляется соответствующее поле с id гдето в служебной таблице.
Т.е. когда создается действие/форма - данная переменная a_Object сохраняется в базе с привязкой к действию/форме, а когда действие/форма запускается - значение этой переменной откуда то считывается.
Вот это то то место я и не нашел пока.

С другой стороны вполне вероятно, что a_Object не статическая (из базы), а динамическая переменная из *.exe - тогда SQL не обойтись... :roll:
Короче пока не знаю... :?

Добавлено: 10 янв 2007, 13:15
Anderyt
оо!!, Александр! 200-е сообщение!! поздравляю! ;-)

в общем, точно, нужна или переменная формы с ИД объекта, или функция для редактора выражений, чтобы на форме разместить вычисляемое поле... ;-)

Добавлено: 11 янв 2007, 07:59
Александр
2 Alxd
А может выйти на ID объекта через его атрибуты? (через Select) :roll: