Отобразить в GUI разные аспекты сущности
От: stomsky Россия  
Дата: 06.04.10 07:17
Оценка:
Привет, народ!

Озадачился снова одной проблемой... Допустим, в программе есть такая сущность, как "Контрагент". Ну т.е. человек или организация, берущая на себя некоторые обязательства по договору, фигурирующая в документах, работа с которыми автоматизируется данной программой.
Как я упомянул, контрагент может быть отдельным физ. лицом или организацией.
Организация может быть обычной хозрасчетной, бюджетной, кредитной (банком). Может быть обособленным структурным подразделением более крупной организации (филиалом или доп.офисом, например), может сама быть быть вышестоящей для других организаций.
Организация может быть налогоплательщиком, а может и не быть (например, учитываем дворовые футбольные команды ).
Естественно, в зависимости от того, в какой ипостаси для нас выступает контрагент, он может обладать определенными атрибутами. Допустим банк имеет БИК, налогоплательщик — ИНН, бюджетная организация — казначейский орган, через который она финансируется бюджетом. Вышестоящая организация должна иметь список подчиненных, структурное подразделение — должно быть привязано к вышестоящей организации.

Собственно вопрос: как в GUI прозрачнее вести справочник контрагентов, принимая во внимание, что для контрагентов одного типа должен быть доступен набор атрибутов X, для другого типа — набор Y?

Мне приходят в голову два варианта:
1. На одной форме набросать кучу контролов на все случаи жизни (для удобства сгруппировать из по закладкам или GroupBox'ам) и отображать те или иные в зависимости от типа данного конкретного контрагента.
2. Завести некую почти иерархическую сеть справочников: справочник контрагентов (корневой, содержащий только Наименование и Краткое_Наименование), справочник физ.лиц (допустим с Датой_рождения, Адресами, Телефонами и пр....), справочник налогоплательщиков (ИНН, привязка к налоговому органу), ну и все в таком духе... Во всех справочниках, кроме корневого, выбирать контрагента ТОЛЬКО из справочника контрагентов.

Недостаток первого варианта: никакой мастабируемости и вообще тупо и неудобно...

Недостаток второго варианта: дофигища справочников получается. Пользователь в них утонет. Я такой шедевр сопровождал как-то...

Ваши мнения?
Красота — наивысшая степень целесообразности. (c) И. Ефремов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.