Показать сообщение отдельно
Старый 10.04.2006, 10:22   #12  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от macklakov
Ничего не понял. Давайте конкретно обсуждать, где и что Вы хотите увидеть?
Стало быть, ситуация такая:
  1. В гриде на форме SalesTable, в части, где выводятся строки заказа, мне необходимо отображать по каждой строке дополнительную информацию, вычисляемую динамически в зависимости от того, что в эту строку вбито (номенклатура, комбинация номенклатурных и складских аналитик, etc).
  2. Был обнаружен один побочный эффект: при вызове формы в другой компании (через внутренние расчеты, например) эта форма SalesTable (как, подозреваю, и любая другая) начинает работать в контексте другой компании, со всеми вытекающими...
Для п.1 я решил использовать display-методы, поскольку мне это показалось наиболее простым и прозрачным решением (конечно, можно возразить, что "у каждой сложной задачи существует простое, ясное и неправильное решение", но мне эта задача сложной не казалась ). Изначально display-методы я пробовал сделать на DataSource формы, но это, как оказалось, тупиковый вариант: для каждой строки вызывается display-метод, который смотрит через DataSource на текущую строку, а не на ту, для которой он должен показывать данные. В результате я перенес display-метод из DataSource формы на таблицу SalesLine - и все начало показываться нормально... пока не переключишься на другую компанию: из-за п.2 display-методы начинают показывать лажу Очевидное решение этой проблемы: при вызове формы запоминать, в какой компании она была вызвана, и в display-методах делать принудительное changecompany в нужную компанию - тогда они будут работать нормально независимо от того, переключились ли мы на другую компанию (а они даже при неактивности формы продолжают вызываться для перерисовки).
Если бы display-методы нормально работали на DataSource формы, прикрутить в них changecompany в нужную компанию было бы проще простого, но вот как из формы передать информацию о нужном коде компании в таблицу SalesLine, мне в голову не приходит Остается еще один вариант: поскольку данные, по которым пересчитывается отображаемая информация, меняются только в самой форме, можно выводить их не display-методами, а через временную таблицу, значения которой изменять в соответствии с изменениями в данных на форме. Однако, вариант с временной таблицей мне пока кажется более геморройным, чем просто display-методы, поэтому я хочу оставить это решение на тот случай, если вариант с changecompany реализовать не удастся...