10.04.2006, 10:22
|
#12
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
Цитата:
Сообщение от macklakov
Ничего не понял. Давайте конкретно обсуждать, где и что Вы хотите увидеть?
Стало быть, ситуация такая:- В гриде на форме SalesTable, в части, где выводятся строки заказа, мне необходимо отображать по каждой строке дополнительную информацию, вычисляемую динамически в зависимости от того, что в эту строку вбито (номенклатура, комбинация номенклатурных и складских аналитик, etc).
- Был обнаружен один побочный эффект: при вызове формы в другой компании (через внутренние расчеты, например) эта форма SalesTable (как, подозреваю, и любая другая) начинает работать в контексте другой компании, со всеми вытекающими...
Для п.1 я решил использовать display-методы, поскольку мне это показалось наиболее простым и прозрачным решением (конечно, можно возразить, что "у каждой сложной задачи существует простое, ясное и неправильное решение", но мне эта задача сложной не казалась ). Изначально display-методы я пробовал сделать на DataSource формы, но это, как оказалось, тупиковый вариант: для каждой строки вызывается display-метод, который смотрит через DataSource на текущую строку, а не на ту, для которой он должен показывать данные. В результате я перенес display-метод из DataSource формы на таблицу SalesLine - и все начало показываться нормально... пока не переключишься на другую компанию: из-за п.2 display-методы начинают показывать лажу Очевидное решение этой проблемы: при вызове формы запоминать, в какой компании она была вызвана, и в display-методах делать принудительное changecompany в нужную компанию - тогда они будут работать нормально независимо от того, переключились ли мы на другую компанию (а они даже при неактивности формы продолжают вызываться для перерисовки).
Если бы display-методы нормально работали на DataSource формы, прикрутить в них changecompany в нужную компанию было бы проще простого, но вот как из формы передать информацию о нужном коде компании в таблицу SalesLine, мне в голову не приходит Остается еще один вариант: поскольку данные, по которым пересчитывается отображаемая информация, меняются только в самой форме, можно выводить их не display-методами, а через временную таблицу, значения которой изменять в соответствии с изменениями в данных на форме. Однако, вариант с временной таблицей мне пока кажется более геморройным, чем просто display-методы, поэтому я хочу оставить это решение на тот случай, если вариант с changecompany реализовать не удастся...
|
|