Показать сообщение отдельно
Старый 03.08.2006, 14:11   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Произвольное объединение компаний для отчетов и операций в них
Есть несколько разных компаний. По ним требуется делать консолидированные отчеты, реплицировать какие-то данные между ними (например, вести отдельные справочники номенклатуры, но реплицировать их между компаниями, чтобы везде они были одинаковыми; при этом объединять их через виртуальные компании неприемлемо) и т.д. НО при этом в операциях и отчетах должны участвовать не все компании, а только выбранные, например, для компаний A, B, C ,D, E у A, B и D должен быть одинаковый справочник номенклатуры, определенные отчеты надо делать консолидированно по B, C, D и еще по A, E...
При всем при этом есть стойкое отвращение к тому, чтобы зашивать списки компаний в код, хочется иметь возможность делать какие-то выборки, типа:
  • в какие еще компании надо реплицировать данные о номенклатуре, которую только что завели?
  • по каким компаниям надо консолидировать данные по контрагентам в оборотке?
  • по каким компаниям надо консолидировать данные по номенклатуре в отчете о ее движении за период?
И, соответственно, хочется, чтобы был какой-то удобный механизм настройки, какая компания в какие группы входит.
На данный момент придуман способ на основе виртуальных компаний (только сильно не пинайте ). Под каждую задачу заводится таблица-пустышка, табличная коллекция, ее включающая, и виртуальная компания на основе этой табличной коллекции. Соотв., в коде проверяется, через какую виртуальную компанию доступна та или иная таблица-пустышка, затем идет перечисление того, какие еще компании входят в эту виртуальную, и для них осуществляются какие-то дейтсвия (реплицируются данные или берутся данные для отчета). В интерфейсе же все просто: создали виртуальную компанию "реплицируемая номенклатура" или "общая оборотка", включили в нее компании - и все. Надо - исключили их оттуда...
Но, по правде сказать, в приложении вместо всяких промежуточных шагов хотлось бы просто делать выборку по определенному полю в DataArea, а в интерфейсе - сделать формочку, где для компаний проставлять те или иные крыжики. Так вот, у кого-нить была такая задача? Как можно без грубой силы добавить дополнительное поле в DataArea? Если сделать это средствами SQL, то не похерится ли поле при очередной синхронизации таблиц? Может, надо еще добавить его в SqlDictionary? кто-нить заморачивался с этим? Или, может, есть какие-то простые способы не через DataArea? В принципе, можно было бы просто завести свою табличку, где перечислить компании и поля-признаки для каждой компании, может, кто-то так реализовывал?

Последний раз редактировалось gl00mie; 03.08.2006 в 18:06.