Показать сообщение отдельно
Старый 07.04.2006, 17:55   #7  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от macklakov
Все правильно работает. Если хочешь видеть данные из другой компании, оберни код в changeCompany.
Все-таки, как можно увязать changecompany и display-метод на таблице?
Собственно, у меня пока получается следующая ситуация: на форме нужно показывать данные, которые как-то вычисляются по другим данным в строке и по другим таблицам. Для этого выбран, как мне казалось, наиболее подходящий выход - в grid добавлено дополнительное поле, которое связано с display-методом. В условиях того, что форма может быть открыта в одной компании, пользователь переключится на другую компанию, и тогда display-метод при перерисовке формы будет вызываться в контексте другой компании и показывать лажу, необходимо его всегда выполнять в "нужной" компании - той, в которой была открыта форма, например. С одной стороны, видится простое решение: в ClassDeclaration формы добавляется переменная - код компании, она инициализируется с помощью init() формы, затем display-метод использует эту переменную. все бы хорошо, но в моем случае использовать display-метод на чем-то, связанном с формой (читай, на DataSource), не выходит - метод показывает фигню, потому что для разных строк использует одни и те же данные, ведь DataSource ссылается на какую-то одну запись (строку), а в гриде этих строк может быть больше одной... Чтобы таких визуальных глюков не было, был использован display-метод таблицы, а не DataSource'а (в моем случае SalesLine). Все работает замечательно, показывается то, что нужно, вот только мне не приходит в голову, как в метод таблицы, вызываемый без параметров, передать информацию о том, в контексте какой "правильной" компании он должен отрабатывать, - ведь у SalesLine нет доступа к переменным, объявленным в форме И дополнительную "переменную" в SalesLine не заведешь - это же таблица, там только поля записи. Что же остается, создавать в форме временную таблицу, заполнять ее, когда заполняется grid строчной части формы, и потом брать данные оттуда? И все это - только чтобы отобразить лишнее "вычисляемое" поле в строке?