Страница 1 из 1

Поиск решения... Модель данных... Экономические показатели..

Добавлено: 04 июл 2007, 12:38
Alexey
Уважаемые софорумцы... я уже устал честное слово искать решение... немогу понять то ли я перемудрил, то ли что... Подскажите как можно решить такую проблему:
1) Есть объект График (атрибуты: деньги отделов в рублях, т.е. отдел 1, отдел 2, .... отдел 10)
2) Ему подчинен объект вид работ.
3) А объекту Вид работ подчинены объекты Задание ( атрибуты: дата выдачи, дата сдачи, Выдающий отдел, Принимающий отдел, процент денежных средств от денег отдела по данному виду работ)
А вот теперь постановка задачи:
На этапе создания Задания должно произойти следующее:
1) Найти деньги полученные именно этим отделом.
2) Расчитать их в соответствии с процентом по данному заданию (это легко)
3) Далее выделить количество месяцев между датой выдачи и датой сдачи ( тоже легко)
4) Поделить полученные деньги на количество месяцев ( опять таки легко)
А вот теперь самое сложное и интересное:
5) Каждому месяцу (году тоже) в соответствии с отделом отнести деньги.
6) собрать отчет за месяц, за год, на текущий период ( по горизонтали месяца, по вертикали названия отделов).

Я создал папку год в которой лежит 12 месяцев. А вот что дальше как это все правильно вычислить и отнести в нужное место я пока не придумал. Конечно можно тупо писать циклы и проверки, но представляется какое огромное и медленное действие получиться... Вот интересно что скажет наше сообщество...

Добавлено: 04 июл 2007, 20:42
Старик Крупский
П.1. остался без комментариев - решена ли задача? Я бы код денежного атрибута записал в объект подразделения и когда его выбираешь из оргструктуры, то считываешь этот код и по нему находишь деньги отдела.
Непонятен пункт 5. Деньги надо именно хранить по месяцам? А зачем тогда пункт 4? В отчете не получается посчитать? Наверняка можно.
Пункт 6 - что такое "текущий период"? Количество колонок в отчете должно быть определено конечным числом.
Отчет за месяц - несложно, за год тоже не очень, просто будет много вычисляемых полей с if'ами.

Добавлено: 05 июл 2007, 06:51
Александр
мне кажется что объект график стоит не на своем месте - график это то к чему мы должны прийти в конце
я бы сделал так
1Отделы
1.1 Отдел
1.1.1 Виды работ
1.1.1.1 Работа
1.1.1.1.1 Задания
1.1.1.1.1.1 Задание
т.е. основной объект - Задание
Задание имеет:
-какие то свои атрибуты
-избыточные атрибуты содержащие все ключевые позиции истории т.е. в данном случае адрес/название работы и отдела

мысль такая - объект для анализа должен содержать в себе все для анализа если не непосредственно-то косвенно в виде адресов ввода вывода или избыточных атрибутов содержащих значения связанных объектов :wink: -чтобы почти не отвлекаться на сторону :wink: :wink:

теперь анализ/график и отчеты
по одому отделу
-диаграмма в действии Делаем 12 запросов count(*) в секции WHERE которых стоит фильтр по типу задание+ фильтр на месяц(атрибут)+ фильтр на отдел(атрибут) все запросы пройдут приемлемо быстро
-отчет делаем связанный отчет 1е-пользовательский отчет на запросе выбирающий все id нужных объектов с тем же фильтром (без вывода атрибутов)+2е- обычный отчет с источником данных по выделенному объекту уже с выводом атрибутов выделенных объектов
(здесь теряем скорость только в случае вывода атрибутов-по возможности атрибуты необходимо сократить до минимума)

по всем отделам сразу
в принципе тоже самое но тут уже нужна группировка -которой не владею :cry: может Андрей поможет
http://www.lplm.ru/phpBB2/viewtopic.php?t=261

PS но создавать основную структуру по месяцам - это все таки неверно - главное данные а их анализ представление и отчеты с привязкой к чему угодно - уже вторично

Добавлено: 05 июл 2007, 07:20
Александр
а теперь посмотрим с твоей стороны :wink:
'главный' объект - диаграмма :wink: ну тут вообще все просто
заводим в ней (диаграмме) nx12 атрибутов по месяцам
n - атрибут отдел,деньги,работы,задания и т.д.

вешаем этот объект над (у тебя подчиенные объекты-не знаю что это такое - предпочитаю независимые объекты) предложенной выше структурой отделов
и по мере добавления отделов,работ,заданий,денег - отмечаем все это в данном объекте, т.е. nx12 счетчиков (может атрибуты поекта? не знаю не пользовался - предпочитаю обычные атрибуты)

тогда ты имеешь всегда самые актуальные данные -БЕЗ ЗАПРОСОВ т.е. МГНОВЕННО да еще и в виде ГРАФИКА на атрибутивной форме
(кстати ты можешь совместить (добавить атрибуты) объект график с объектом отдел и иметь актуальные графики по каждому отделу отдельно и по всем отделам сразу (объект - отделы) - а можешь и не совмещать и вообще не показывать данный объект (доступ) - хранить его в тайне :wink: и использовать для МГНОВЕННЫХ отчетов поражая окружающих возможностями Лоции :wink:)

единственный минус- если кто-то запорет пару атрибутов из этого объекта - то все рухнет НО можно сделать тяжелое действие которое бы восстанавливало бы этот объект на запросах
так что так тоже ничего

ps Мы придерживаемся первого избыточного варианта (он более надежен, хотя и не мгновенен в плане анализа- но быстрее чем в Лоции), но возможно, для оценки, задействуем и второй способ - используя специальные объекты содержащие статистические данные того или иного дерева проекта :wink: :wink: :wink: ... именно специальный объект а не формы дочерних объектов так любимые Андреем и Крупским :lol: :lol: :lol: :lol:

Добавлено: 05 июл 2007, 09:32
Alexey
Спасибо большое Александр за идейный подход к решению моей проблемы, очень даже интересно получилось, но как всегда бывает опишешь задачу которая не может решиться и она мгновенно решается сама, ну вот что и получилось. Теперь осталось составить только отчет и все будет хорошо.