Информационная система ООО "Завод автотехнологий"
Теоретические основы применения информационных технологий для поддержки принятия решений, роль информационных технологий в управлении. Назначение проектируемой информационной системы, обзор существующих программных средств поддержки принятия решений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.02.2020 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
В настоящее время на рынке представлен огромный выбор СУБД и каждая СУБД «заточена» под определенный круг задач, которые она может выполнять. Проведем сравнительный анализ СУБД для разработки подсистемы.
Для сравнения выберем такие СУБД, как: MS Access [10], MySQL, Oracle и MS SQL Server [11]. Сравнительный анализ СУБД представлен в таблице 5.
Таблица 5 - Сравнение СУБД
Критерии оценки |
MS Access |
MySQL |
MS SQL Server |
Orcale |
|
1 |
2 |
3 |
4 |
||
Размер базы данных |
|||||
несколько Мб |
+ |
+ |
|||
до 100Мб |
+ |
+ |
|||
несколько ГБ |
+ |
+ |
+ |
||
100Гб и более |
+ |
+ |
|||
Количество одновременных пользователей, работающих с базой данных напрямую |
|||||
1 пользователь |
+ |
+ |
|||
до 10 |
+ |
+ |
|||
более 10 |
+ |
+ |
+ |
||
более 100 |
+ |
+ |
+ |
||
более 1000 |
+ |
+ |
|||
Стоимость лицензии |
|||||
бесплатно (только лицензия на пакет) |
+ |
+ |
|||
дешево |
|||||
дорого |
+ |
+ |
|||
очень дорого |
|||||
Платформа на которой способна работать СУБД |
|||||
Windows |
+ |
+ |
+ |
||
Unix/Linux |
+ |
||||
Windows+Linux |
+ |
+ |
|||
Кластеры |
+ |
||||
Встроенный язык программирования |
|||||
Microsoft |
+ |
+ |
|||
Языки для Linux |
+ |
||||
Тип программы |
|||||
Локальное приложение |
+ |
+ |
|||
WEB |
+ |
||||
Сложная система |
+ |
+ |
|||
Защита данных |
|||||
низкая |
|||||
слабая |
+ |
||||
сильная |
+ |
+ |
+ |
||
Мощность языка SQL и возможности СУБД |
|||||
очень слабые |
|||||
слабые |
+ |
||||
развитые |
+ |
||||
мощные |
+ |
+ |
|||
Требования к техническим характеристикам ПК |
|||||
неприхотливые |
+ |
+ |
|||
чувствительные |
|||||
необходимы мощные сервера |
+ |
+ |
|||
Возможные способы доступа к данным |
|||||
ODBC |
+ |
||||
OLEDB/ADO |
+ |
+ |
+ |
||
DAO |
+ |
||||
BDE |
|||||
Другое |
+ |
+ |
+ |
||
Сложность настройки и администрирования |
|||||
никаких сложностей |
+ |
||||
небольшие сложности |
|||||
необходимы специальные знания и помощь специалиста |
+ |
+ |
+ |
В качестве создания базы данных была выбрана СУБД Microsoft Access.
На сегодняшний день MS Access - наиболее популярная СУБД, используемая для разработки настольных баз данных (БД). Имеет богатый набор мастеров и построителей, благодаря чему полностью автоматизируется создание пользовательского интерфейса, а множество удобных средств разработки позволяют уменьшить время создания законченного приложения.
Популярность СУБД Microsoft Access объясняется следующими причинами:
- Access - одна из самых понятных и легкодоступных систем, как для профессионалов, так и для начинающих пользователей. Позволяет быстро освоить основные принципы работы с базами данных;
- система полностью русифицирована;
- благодаря идеологии Windows можно представить информацию наглядно и красочно;
- возможность использования OLE технологии;
- широкое и наглядное представление справочной системы.
Access специально спроектирован для создания многопользовательских приложений, где файлы базы данных являются разделяемыми ресурсами в сети. В Microsoft Access реализована надёжная система защиты от несанкционированного доступа к файлам.
3. Разработка информационной системы поддержки принятия решений
3.1 Алгоритмы работы системы
Для проектирования информационной системы рассмотрим алгоритм вычисления основных показателей, который приведен ниже.
Коэффициенты ликвидности и платежеспособности
А1 =(стр.250 + стр.260 формы №1) - наиболее ликвидные активы;
А2 = (стр. 240 + стр. 270 формы № 1) - быстрореализуемые активы;
А3 =(стр. 210 - стр.216 + стр. 220 + стр. 140 формы № 1) - медленно реализуемые активы (наименее ликвидные активы);
А4 =(стр. 110 + стр. 120 + стр. 130 + стр. 216 + стр. 230 формы № 1) - труднореализуемые активы.
П1 =(стр. 620 + стр. 660 формы № 1) - наиболее краткосрочные обязательства;
П2 =(стр. 610 формы № 1) - краткосрочные пассивы;
П3 =(стр. 510 + стр. 520 формы № 1) - долгосрочные пассивы;
П4 = (стр. 490 + стр. 630 + стр. 640 + стр. 650 формы № 1) - постоянные пассивы.
Баланс считается абсолютно ликвидным, если одновременно выполнены условия: А1 ? П1; А2 ? П2; АЗ ? ПЗ; А4 ? П4.
Если любое из неравенств имеет знак, противоположный зафиксированному в оптимальном варианте, то ликвидность баланса отличается от абсолютной.
Используемые показатели, формулы для их расчета приведены в приложении.
При определении типа финансовой устойчивости используют трехмерный показатель:
S = {S1(x1);S2(x2);S3(x3)},
где х1 = ДЕС; х2 = ДЕд; х3=ДЕ?, а функция S(x) определяется условиями: S(x) = 1, если х > 0; S(x) = 0, если х < 0.
1. Абсолютная устойчивость финансового состояния предприятия определяется следующими условиями: S ={1;1;1}, т. е. ДЕС> 0, ДЕд> 0, ДЕ?>0.
S = (1;1;1)
2. Нормальная финансовая устойчивость определяется условиями:
S ={0; 1; 1},т. е. ДЕС < 0, ДЕд > 0, ДЕ? >0. S= (0;1;1)
3. Неустойчивое финансовое состояние определяется условиями:
S ={0; 0; 1},т. е. ДЕС < 0, ДЕд < 0, ДЕ? >0. S= (0;0;1)
4. Кризисное (критическое) финансовое состояние определяется:
S ={0; 0; 0},т. е. ДЕС < 0, ДЕд < 0, ДЕ? <0. S= (0;0;0)
Рассмотрим порядок работы некоторых модулей системы, используя методологию UML [24].
Прецедент «Ввод записи в БД» активизируется субъектом ИС оператор. Данный прецедент описывает процесс ввода новых данных в БД. Этим занимается пользователь с ролью оператор. Данные вводятся в формы ввода на основании документов клиента, а также вся справочная информация, которая нужна в процессе работы с системой. На рис. 12, 13 представлены диаграмма последовательности и диаграмма действий данного прецедента.
Рисунок 12 - Диаграмма последовательности «Ввод записи в БД»
Прецедент «Редактирование БД» активизируется субъектом ИС оператор. Данный прецедент описывает процесс изменения и удаления данных в БД. Этим занимается пользователь с ролью оператор. Данные изменяются и удаляются в формах ввода данных документов, а также формах справочников. На рис. 14 представлена диаграмма последовательности данного прецедента.
Рисунок 13 - Диаграмма действий «Ввод записи в БД»
При разработке ИС, решающей задачи автоматизации экономических расчетов, важным этапом является описание иерархии функций управления и обработки данных разрабатываемого программного продукта.
Сценарий диалога представляет собой графическое изображение взаимосвязи диалоговых окон, выдаваемых программой пользователю, и отображает интерактивный режим работы программы. Технология работы с программой реализуется в виде меню и представляет собой последовательность предъявления меню. Также работа ведется в оконном режиме, а переход между режимами осуществляется посредством «кнопок», которые рассматриваются как отдельные пункты меню. Пользователь информируется о ходе решения задачи и может активно воздействовать на ход вычислительного процесса.
Сценарий диалога представлен на рисунке 16.
3.2 Проектирование базы данных
Для инфологического проектирования базы данных было выбрано CASE_средство Computer Associates ERwin 4.0.
В разрабатываемой системе можно выделить следующие сущности: СтрокиОПиУ, СтрокиБаланса, ОПиУ, Баланс. ER-диаграмма системы на логическом уровне представлена на рисунке 19.
Рисунок 19 - ER-диаграмма системы на логическом уровне
Этап физического проектирования базы данных предусматривает принятие разработчиком окончательного решения о способах реализации создаваемой базы. Поэтому физическое проектирование обязательно производится с учетом всех особенностей выбранной СУБД.
ER-диаграмма системы на физическом уровне представлена на рисунке 20.
Физическое описание модели удобнее всего представить в виде таблиц. База данных проекта содержит таблицы, названия которых соответствуют именам сущностей инфологической модели. Структура БД описана в таблице 6
Таблица 6 - Описание таблиц базы данных
Наименование таблицы |
Наименование поля |
Тип поля |
Первичный ключ |
Внешний ключ |
|
Баланс |
КодСтроки |
Integer |
Да |
Да |
|
Период1 |
Currency |
Нет |
Нет |
||
Период2 |
Currency |
Нет |
Нет |
||
Квартал |
Byte |
Да |
Нет |
||
Год |
Integer |
Да |
Нет |
||
ОПиУ |
КодСтроки |
Integer |
Да |
Да |
|
Период1 |
Currency |
Нет |
Нет |
||
Период2 |
Currency |
Нет |
Нет |
||
Квартал |
Byte |
Да |
Нет |
||
Год |
Integer |
Да |
Нет |
||
СтрокиБаланса |
Название |
Text(255) |
Нет |
Нет |
|
Код |
Integer |
Да |
Нет |
||
СтрокиОПиУ |
Название |
Text(255) |
Нет |
Нет |
|
Код |
Integer |
Да |
Нет |
Схема модели базы данных приведена на рисунке 21.
Рисунок 21 - Схема базы данных
В системе используется 4 вида кодирования, предназначенные для однозначной идентификации баланса, строк баланса, отчета о прибылях и убытках и его строк. Виды системы кодирования указаны в таблице 7.
Таблица 7 - Описание классификаторов
Кодируемоемножествообъектов |
Длина кода |
Мощность кода |
Система кодирования |
Система классификации |
Вид классификатора |
|
Баланс |
5 |
9999 |
порядковая |
иерархическая |
локальный |
|
Строки баланса |
5 |
9999 |
порядковая |
иерархическая |
локальный |
|
ОПиУ |
5 |
9999 |
порядковая |
иерархическая |
локальный |
|
Строки ОПиУ |
Все классификаторы ведутся сотрудником ИТ.
Классификатор баланса.
Структурная формула классификатора:
F = [Код]: [XXXXX] - код баланса
Пример заполнения - 001234
Классификатор строк баланса
Структурная формула классификатора:
F = [Наименование]:[ XXXXX] - код строки баланса
Пример заполнения - 00004
Классификатор ОПиУ
Структурная формула классификатора:
F = [Наименование]:[ XXXXX] - код ОПиУ
Пример заполнения - 00012.
3.3 Тестирование разработанной системы
Для установки системы необходимо скопировать установочные файлы в любую папку на компьютере пользователя.
Для запуска программы нужно дважды щелкнуть по ярлыку Analysis.exe. Далее следовать пользовательской инструкции.
В программе уже добавлены балансы и отчеты за предыдущие годы. Чтобы провести анализ по тем годам, необходимо выбрать нужный период интересующие коэффициенты.
Например, выберем баланс за 4-й квартал 2011 года и выберем «Редактировать».
Для расчета коэффициентов достаточно выбрать необходимый коэффициент, при этом откроется программа Excel с рассчитанными коэффициентами по выбранному периоду.
При необходимости можно изменить структуру баланса и ОПиУ(например, в случае изменения законодательства)
Анализ работает для любых трех периодов, поэтому выбираем из левого окошка нужный период и нажимаем кнопку со стрелкой вправо. После этого период попадает в анализ.
Чтобы убрать период из анализа, нужно выбрать его в правом окне и нажать кнопку влево.
Чтобы изменить баланс или ОПиУ, его надо выбрать в левом окне и нажать соответствующую кнопку, после чего откроется окно, в котором можно поменять любые данные.
Чтобы удалить баланс или ОПиУ, его надо выбрать в левом окне и нажать соответствующую кнопку.
Чтобы добавить баланс или ОПиУ, надо задать период в окне «Добавление новых данных» и нажать соответствующую кнопку, после чего откроется окно, в котором можно задать любые данные.
Заключение
информационный программный решение
Применение информационных систем способствует более эффективному решению задач управления на основе оперативного предоставления всей полноты информации, являющейся основой для принятия решений. Проектирование и построение информационной системы должны основываться на комплексном анализе предметной области. Существуют различные методики описания предметной области, среди которых мы выделили объектно-ориентированный подход к моделированию так как он обеспечивает наилучшую реализацию динамического поведения информационной системы.
В данной работе был проведён полный список работ по автоматизации бизнес-процессов в ООО «Завод Автотехнологий».
В работе рассмотрена проблема автоматизации экономических расчетов.
В первой главе рассмотрены теоретические основы применения информационных технологий, их роли в принятии решений и управлении организацией.
Во второй главе рассмотрено описание предметной области деятельности предприятия. Рассмотрена существующая технология организации бизнес-процессов проведения финансового анализа. При анализе бизнес-процессов было выявлено, что процессы финансового планирования являются трудоёмкими. Была проведена постановка задачи. Была выбрана СУБД MS Access. В качестве языка программирования был выбран Delphi.
В третьей главе было проведено проектирование программы. Разработаны новые формы и процедуры обработки. Описан контрольный пример реализации проекта, показывающий правильность функционирования информационной системы.
Результатом проделанной работы стал проект информационной системы автоматизации экономических расчетов на предприятии. В дальнейшем потребуется разработка и внедрение данной системы.
Список использованной литературы
1. Агальцов, В.П. Базы данных. В 2-х т. Т. 2. Распределенные и удаленные базы данных: Учебник / В.П. Агальцов. - М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. - 272 c.
2. Бритов Г., Осипова Т. Моделирование бизнес-процессов. - М.:LAP, 2014. - 124 с.
3. Варфоломеева Е.В. Информационные системы в экономике: Учебное пособие / Е.В. Варфоломеева, Т.В. Воропаева и др.; Под ред. Д.В. Чистова - М.: НИЦ ИНФРА-М, 2015. - 234 с.
4. Вдовенко Л.А. Информационная система предприятия: Учебное пособие/Вдовенко Л. А. - 2 изд., перераб. и доп. - М.: Вузовский учебник, НИЦ ИНФРА-М, 2015. - 304 с.
5. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. - СПб.:Питер, 2015. - 368 с.
6. Гвоздева В.А. Базовые и прикладные информационные технологии: Учебник / Гвоздева В. А. - М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2015. - 384 с.
7. Гвоздева В.А. Информатика, автоматизированные информационные технологии и системы: Учебник / В.А. Гвоздева. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2015. - 544 с.
8. Голицына О.Л. Языки программирования: Учебное пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. - 3-e изд., перераб. и доп. - М.: Форум: ИНФРА-М, 2015. - 400 с.
9. Голицына, О.Л. Базы данных: Учебное пособие / О.Л. Голицына, Н.В. Максимов, И.И. Попов. - М.: Форум, 2012. - 400 c.
10. Грофф Д., Вайнберг П., Оппель Э. SQL. Полное руководство. - СПб.: Вильямс, 2014. - 960с.
11. Гудсон Д., Стюард Р. Практическое руководство по доступу к данным. - СПб.:БХВ-Петербург, 2013. - 304 с.
12. Дунаев В.В. Базы данных. Язык SQL для студента - Издательство: БХВ, 2013. - 196 с.
13. Душин, В.К. Теоретические основы информационных процессов и систем: учебник / В.К. Душин.-- 5-е изд. -- М.: ИТК "Дашков и К", 2014.-- 348с.
14. Дюваль Поль М. Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска - СПб: Вильямс, 2013. - 497 c.
15. Емельянова Н. З., Партыка Т. Л., И. И. Попов. Проектирование информационных систем. - М: Издательство «Форум», 2012.- 432 с.
16. Жук А.П. Защита информации: Учебное пособие / А.П. Жук, Е.П. Жук, О.М. Лепешкин, А.И. Тимошкин. - 2-e изд. - М.: ИЦ РИОР: НИЦ ИНФРА-М, 2015. - 392 с.
17. Заботина Н.Н. Проектирование информационных систем: Учебное пособие / Н.Н. Заботина. - М.: ИНФРА-М, 2011. - 331 с.
18. Затонский А.В. Информационные технологии: разработка информационных моделей и систем: Учеб. пос. / А.В.Затонский - М.: ИЦ РИОР: НИЦ ИНФРА-М, 2014 - 344с.
19. Илюшечкин В. Основы использования и проектирования баз данных. Учебник. - М.:Юрайт, 2014. - 214с.
20. Информационные системы в экономике: Учебник / К.В. Балдин, В.Б. Уткин. - 7-e изд. - М.: Дашков и К, 2012. - 395 с.
21. Исаев Г. Проектирование информационных систем. Учебное пособие. - М.: Омега-Л, 2015. - 432с.
22. Кабанов В.А. Кабанов, В. А. Практикум Access [Электронный ресурс] / В. А. Кабанов. - М.: Инфра-М; Znanium.com, 2015. - 55 с.
23. Карпова, И.П. Базы данных: Учебное пособие / И.П. Карпова. - СПб.: Питер, 2013. - 240 c.
24. Коваленко В.В. Проектирование информационных систем: Учебное пособие / В.В. Коваленко. - М.: Форум: НИЦ ИНФРА-М, 2014. - 320 с.
25. Марков А.С., Лисовский К.Ю. Базы данных. Введение в теорию и методологию: Учебник. - М.: Финансы и статистика, 2015. - 512 с.
26. Миков А. Информационные процессы и нормативные системы в IT. Математические модели. Проблемы проектирования. Новые подходы. - М.: Либроком, 2013. - 256с.
27. Набатов Д. Правовая защита баз данных и прав ее создателей по законодательству РФ. - М.:LAP, 2014. - 72с.
28. Наумов А.Н., Вендров А.М., Иванов В.К. и др. Системы управления базами данных и знаний - М.: Финансы и статистика, 2014. - 352 c.
29. Озкарахан Э. Машины баз данных и управление базами данных. - М.: Мир, 2013. - 551 c.
30. Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: Учебное пособие / В.Ю. Пирогов. - СПб.: БХВ-Петербург, 2014. - 528 c.
31. Проектирование информационных систем:Учебное пособие / Н.З. Емельянова, Т.Л. Партыка, И.И. Попов. - М.: Форум: НИЦ ИНФРА-М, 2014.-432с.
32. Редько В.Н., Бассараб И.А. Базы данных и информационные системы. - М.: Знание, 2015. - 602 c.
33. Советов, Б.Я. Базы данных: теория и практика: Учебник для бакалавров / Б.Я. Советов, В.В. Цехановский, В.Д. Чертовской. - М.: Юрайт, 2013. - 463 c.
34. Тоу Дэн Настройка SQL - СПб: Питер, 2013. - 539 c.
35. Туманов В.Е. Основы проектирования реляционных баз данных - М.: Бином, 2012. - 420 c.
36. Уорден К. Новые интеллектуальные материалы и конструкции. Свойства и применение; М.: Техносфера, 2012. - 456 c.
37. Уринцов А.И. Дик В.В. Системы поддержки принятия решений. - М.: МЭСИ, 2008. - 321 с.
38. Уткин В., Балдин К. Информационные системы в экономике. - М.: Academia, 2012. - 288с.
39. Федотова Е. Информационные технологии и системы: Учебное пособие / Е.Л. Федотова. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2014. - 352 с
40. Федотова Е.Л. Информационные технологии в профессиональной деятельности: Учебное пособие / Е.Л. Федотова. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2015. - 368 с.
41. Фейерштейн С., Прибыл Б. Oracle PL/SQL для профессионалов - СПб: Питер, 2012. - 540 c.
42. Фуфаев, Э.В. Базы данных: Учебное пособие для студентов учреждений среднего профессионального образования / Э.В. Фуфаев, Д.Э. Фуфаев. - М.: ИЦ Академия, 2012. - 320 c.
43. Хаббард Дж. Автоматизированное проектирование баз данных - М.: Мир, 2014. - 453 c.
44. Черников Б.В. Информационные технологии управления: Учебник / Б.В. Черников. - 2-e изд., перераб. и доп. - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2014. - 368 с.
45. Шаймарданов Р.Б. Моделирование и автоматизация проектирования структур баз данных - М.: Юнити, 2016. - 469 c.
46. Шишов О.В. Современные технологии и технические средства информатизации: Учебник / О.В. Шишов. - М.: НИЦ Инфра-М, 2012. - 462 с.
Приложение
Исходный текст программы
Программный модуль Analysis.dpr
program Analysis;
uses
Forms,
uMain in 'uMain.pas' {fmMain},
uBalanceStructure in 'uBalanceStructure.pas' {fmBalanceStructure},
uDM in 'uDM.pas' {DM: TDataModule},
uOPUStructure in 'uOPUStructure.pas' {fmOPUStructure},
uOPU in 'uOPU.pas' {fmOPU},
uBalance in 'uBalance.pas' {fmBalance},
uRep in 'uRep.pas';
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TfmMain, fmMain);
Application.CreateForm(TfmBalanceStructure, fmBalanceStructure);
Application.CreateForm(TDM, DM);
Application.CreateForm(TfmOPUStructure, fmOPUStructure);
Application.CreateForm(TfmOPU, fmOPU);
Application.CreateForm(TfmBalance, fmBalance);
Application.Run;
end.
Программный модуль uBalance.pas
unit uBalance;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, Grids, DBGrids;
type
TfmBalance = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmBalance: TfmBalance;
implementation
uses uDM;
{$R *.dfm}
procedure TfmBalance.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstBalance.Close;
end;
procedure TfmBalance.FormShow(Sender: TObject);
begin
DM.dstBalance.Sort:= 'КодСтроки';
end;
end.
Программный модуль uBalanceStructure.pas
unit uBalanceStructure;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, Buttons;
type
TfmBalanceStructure = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmBalanceStructure: TfmBalanceStructure;
implementation
uses uDM;
{$R *.dfm}
procedure TfmBalanceStructure.FormShow(Sender: TObject);
begin
DM.dstBalanceStr.Open;
DM.dstBalanceStr.Sort:= 'Код';
end;
end.
Программный модуль uDM.pas
unit uDM;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDM = class(TDataModule)
ADOConnection1: TADOConnection;
dstBalanceStr: TADODataSet;
dsBalanceStr: TDataSource;
dstOPUStr: TADODataSet;
dsOPUStr: TDataSource;
dstOPUStrDSDesigner: TSmallintField;
dstOPUStrDSDesigner2: TWideStringField;
dstBalance: TADODataSet;
dsBalance: TDataSource;
dstBalanceDSDesigner: TSmallintField;
dstBalanceDSDesigner2: TWordField;
dstBalanceDSDesigner3: TSmallintField;
dstBalanceDSDesigner1: TBCDField;
dstBalanceDSDesigner22: TBCDField;
dstBalanceField: TStringField;
dstBalanceField2: TIntegerField;
qrNewBalance: TADOQuery;
dstPeriodList: TADODataSet;
dsBalanceList: TDataSource;
qrDelBalance: TADOQuery;
qrNewOPU: TADOQuery;
qrDelOPU: TADOQuery;
dstOPU: TADODataSet;
SmallintField1: TSmallintField;
WordField1: TWordField;
SmallintField2: TSmallintField;
BCDField1: TBCDField;
BCDField2: TBCDField;
StringField1: TStringField;
IntegerField1: TIntegerField;
dsOPU: TDataSource;
qrGetBalValue: TADOQuery;
qrGetOPUValue: TADOQuery;
procedure DataModuleDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function GetBalValue(Year, Quarter, Row, Period: Integer): Real;
function GetOPUValue(Year, Quarter, Row, Period: Integer): Real;
var
DM: TDM;
implementation
uses Forms, Windows;
{$R *.dfm}
procedure TDM.DataModuleDestroy(Sender: TObject);
begin
ADOConnection1.Close;
end;
//Получение значения из указанной строки баланса за заданный год и квартал:
function GetBalValue(Year, Quarter, Row, Period: Integer): Real;
begin
DM.qrGetBalValue.Parameters.ParamByName('pYear').Value:= Year;
DM.qrGetBalValue.Parameters.ParamByName('pQuarter').Value:= Quarter;
DM.qrGetBalValue.Parameters.ParamByName('pRow').Value:= Row;
DM.qrGetBalValue.Open;
if DM.qrGetBalValue.RecordCount <= 0 then
begin
Application.MessageBox (PChar('Данные баланса за ' + IntToStr(Quarter) + '-й квартал ' +
IntToStr(Year) + ' года не внесены в базу данных, либо в данном балансе не внесено '+
' значение для ' + IntToStr(Row) + ' строки!'), 'Ошибка', MB_OK+MB_ICONERROR);
DM.qrGetBalValue.Close;
raise Exception.Create('');
end;
if Period = 1 then
//Берутся данные на начало отчетного года:
Result:= DM.qrGetBalValue.FieldByName('Период1').AsFloat
else
//Берутся данные на конец отчетного периода:
Result:= DM.qrGetBalValue.FieldByName('Период2').AsFloat;
DM.qrGetBalValue.Close;
end;
//Получение значения из указанной строки баланса за заданный год и квартал:
function GetOPUValue(Year, Quarter, Row, Period: Integer): Real;
begin
DM.qrGetOPUValue.Parameters.ParamByName('pYear').Value:= Year;
DM.qrGetOPUValue.Parameters.ParamByName('pQuarter').Value:= Quarter;
DM.qrGetOPUValue.Parameters.ParamByName('pRow').Value:= Row;
DM.qrGetOPUValue.Open;
if DM.qrGetOPUValue.RecordCount <= 0 then
begin
Application.MessageBox (PChar('Данные ОПиУ за ' + IntToStr(Quarter) + '-й квартал ' +
IntToStr(Year) + ' года не внесены в базу данных, либо в данном ОПиУ не внесено '+
' значение для ' + FormatFloat('000', Row) + ' строки!'), 'Ошибка', MB_OK+MB_ICONERROR);
DM.qrGetOPUValue.Close;
raise Exception.Create('');
end;
if Period = 1 then
//Берутся данные за отчетный период:
Result:= DM.qrGetOPUValue.FieldByName('Период1').AsFloat
else
//Берутся данные за аналогичный период предыдущего года:
Result:= DM.qrGetOPUValue.FieldByName('Период2').AsFloat;
DM.qrGetOPUValue.Close;
end;
end.
Программный модуль uMain.pas
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids, DBGrids, ActnList, StdActns, ImgList,
ActnMan, ToolWin, ActnCtrls, ActnMenus, XPStyleActnCtrls, XPMan;
type
TfmMain = class(TForm)
bbtEditBalance: TBitBtn;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
bbtNewBalance: TBitBtn;
DBGrid1: TDBGrid;
bbtNewOPU: TBitBtn;
bbtDelBalance: TBitBtn;
bbtEditOPU: TBitBtn;
bbtDelOPU: TBitBtn;
cbYear: TComboBox;
cbQuarter: TComboBox;
sgPeriods: TStringGrid;
bbtAdd: TBitBtn;
bbtDel: TBitBtn;
ActionManager1: TActionManager;
ImageList1: TImageList;
FileExit1: TFileExit;
acEditBalance: TAction;
acDelBalance: TAction;
acNewBalance: TAction;
acNewOPU: TAction;
acEditOPU: TAction;
acDelOPU: TAction;
acStructBal: TAction;
acStructOPU: TAction;
acTables1: TAction;
BitBtn1: TBitBtn;
acTables2: TAction;
BitBtn2: TBitBtn;
acTables3: TAction;
BitBtn3: TBitBtn;
acTables4: TAction;
BitBtn6: TBitBtn;
acTables5: TAction;
BitBtn7: TBitBtn;
ActionMainMenuBar1: TActionMainMenuBar;
XPManifest1: TXPManifest;
procedure FormShow(Sender: TObject);
procedure bbtAddClick(Sender: TObject);
procedure bbtDelClick(Sender: TObject);
procedure acNewBalanceExecute(Sender: TObject);
procedure acEditBalanceExecute(Sender: TObject);
procedure acDelBalanceExecute(Sender: TObject);
procedure acNewOPUExecute(Sender: TObject);
procedure acEditOPUExecute(Sender: TObject);
procedure acDelOPUExecute(Sender: TObject);
procedure acStructBalExecute(Sender: TObject);
procedure acStructOPUExecute(Sender: TObject);
procedure acTables1Execute(Sender: TObject);
procedure acTables2Execute(Sender: TObject);
procedure acTables3Execute(Sender: TObject);
procedure acTables4Execute(Sender: TObject);
procedure acTables5Execute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
uses uBalanceStructure, uOPUStructure, uDM, uBalance, DB, uOPU, uRep;
{$R *.dfm}
procedure TfmMain.FormShow(Sender: TObject);
begin
DM.dstPeriodList.Open;
sgPeriods.Cells[0,0]:= 'Период';
sgPeriods.Cells[1,0]:= 'Год';
sgPeriods.Cells[2,0]:= 'Квартал';
sgPeriods.Cells[0,1]:= ' n-2';
sgPeriods.Cells[0,2]:= ' n-1';
sgPeriods.Cells[0,3]:= ' n';
end;
//Добавление в список анализируемых кварталов нового квартала:
procedure TfmMain.bbtAddClick(Sender: TObject);
var
i, Goal: Integer;
Flag: Boolean;
Year, Quarter: string;
begin
Year:= DM.dstPeriodList.FieldByName('Год').AsString;
Quarter:= DM.dstPeriodList.FieldByName('Квартал').AsString;
Goal:= -1;
Flag:= False;
for i:=1 to sgPeriods.RowCount-1 do
begin
//Проверка, включен ли уже выбранный квартал в список анализируемых кварталов:
if (sgPeriods.Cells[1,i] = Year) and (sgPeriods.Cells[2,i] = Quarter) then
Flag:= True;
//Определение номера первой пустой строки:
if (Goal < 0) and (sgPeriods.Cells[1,i] = '') and (sgPeriods.Cells[2,i] = '') then
Goal:= i;
end;
if not Flag and (Goal > 0) then
begin
sgPeriods.Cells[1, Goal]:= Year;
sgPeriods.Cells[2, Goal]:= Quarter;
end
end;
//Удаление из списка анализируемых кварталов выбранного квартала:
procedure TfmMain.bbtDelClick(Sender: TObject);
begin
sgPeriods.Cells[1,sgPeriods.Row]:= '';
sgPeriods.Cells[2,sgPeriods.Row]:= '';
end;
//Добавление нового баланса:
procedure TfmMain.acNewBalanceExecute(Sender: TObject);
begin
if (Trim(cbYear.Text)='') or (Trim(cbQuarter.Text)='') then
Application.MessageBox('Укажите период!', 'Ошибка', MB_ICONERROR+MB_OK)
else
begin
DM.qrNewBalance.Parameters.ParamByName('pYear').Value:= StrToInt(cbYear.Text);
DM.qrNewBalance.Parameters.ParamByName('pQuarter').Value:= StrToInt(cbQuarter.Text);
try
DM.qrNewBalance.ExecSQL;
DM.dstBalance.Filter:= '(Год = ' + cbYear.Text + ') and (Квартал = ' + cbQuarter.Text + ')';
DM.dstBalance.Open;
fmBalance.Caption:= 'Баланс (форма №1) за ' + cbQuarter.Text + ' квартал ' + cbYear.Text + ' г.';
fmBalance.ShowModal;
DM.dstPeriodList.Requery;
except
Application.MessageBox('Баланс за данный период уже создан. Выберите этот период из таблицы' +
' и нажмите кнопку "Редактировать".', 'Информация', MB_ICONINFORMATION+MB_OK);
end;
end;
end;
//Редактирование баланса за выбранный период:
procedure TfmMain.acEditBalanceExecute(Sender: TObject);
var
Year, Quarter: string;
begin
Year:= DM.dstPeriodList.FieldByName('Год').AsString;
Quarter:= DM.dstPeriodList.FieldByName('Квартал').AsString;
DM.dstBalance.Filter:= '(Год = ' + Year + ') and (Квартал = ' + Quarter + ')';
DM.dstBalance.Open;
if DM.dstBalance.RecordCount > 0 then
begin
fmBalance.Caption:= 'Баланс (форма №1) за ' + Quarter + ' квартал ' + Year + ' г.';
fmBalance.ShowModal;
end
else
if Application.MessageBox('Баланс за данный период еще не создан. Создать баланс?',
'Вопрос', MB_ICONQUESTION+MB_YESNO) = IDYES then
begin
//Добавление баланса, если его за выбранный квартал еще нет:
DM.dstBalance.Close;
DM.qrNewBalance.Parameters.ParamByName('pYear').Value:= Year;
DM.qrNewBalance.Parameters.ParamByName('pQuarter').Value:= Quarter;
DM.qrNewBalance.ExecSQL;
DM.dstBalance.Open;
fmBalance.Caption:= 'Баланс за ' + Quarter + ' квартал ' + Year + ' г.';
fmBalance.ShowModal;
end;
end;
//Удаление баланса за выбранный период:
procedure TfmMain.acDelBalanceExecute(Sender: TObject);
begin
if Application.MessageBox('Удалить баланс за выбранный период?', 'Вопрос',
MB_ICONQUESTION+MB_YESNO) = IDYES then
begin
DM.qrDelBalance.Parameters.ParamByName('pYear').Value:= DM.dstPeriodList.FieldByName('Год').AsString;
DM.qrDelBalance.Parameters.ParamByName('pQuarter').Value:= DM.dstPeriodList.FieldByName('Квартал').AsString;
DM.qrDelBalance.ExecSQL;
Application.MessageBox('Баланс за выбранный период удален.', 'Информация',
MB_ICONINFORMATION+MB_OK);
DM.dstPeriodList.Requery;
end;
end;
//Добавление нового ОПиУ:
procedure TfmMain.acNewOPUExecute(Sender: TObject);
begin
if (Trim(cbYear.Text)='') or (Trim(cbQuarter.Text)='') then
Application.MessageBox('Укажите период!', 'Ошибка', MB_ICONERROR+MB_OK)
else
begin
DM.qrNewOPU.Parameters.ParamByName('pYear').Value:= StrToInt(cbYear.Text);
DM.qrNewOPU.Parameters.ParamByName('pQuarter').Value:= StrToInt(cbQuarter.Text);
try
DM.qrNewOPU.ExecSQL;
DM.dstOPU.Filter:= '(Год = ' + cbYear.Text + ') and (Квартал = ' + cbQuarter.Text + ')';
DM.dstOPU.Open;
fmOPU.Caption:= 'Отчет о прибылях и убытках (форма №2) за ' + cbQuarter.Text + ' квартал ' + cbYear.Text + ' г.';
fmOPU.ShowModal;
DM.dstPeriodList.Requery;
except
Application.MessageBox('ОПиУ за данный период уже создан. Выберите этот период из таблицы' +
' и нажмите кнопку "Редактировать".', 'Информация', MB_ICONINFORMATION+MB_OK);
end;
end;
end;
//Редактирование ОПиУ за выбранный период:
procedure TfmMain.acEditOPUExecute(Sender: TObject);
var
Year, Quarter: string;
begin
Year:= DM.dstPeriodList.FieldByName('Год').AsString;
Quarter:= DM.dstPeriodList.FieldByName('Квартал').AsString;
DM.dstOPU.Filter:= '(Год = ' + Year + ') and (Квартал = ' + Quarter + ')';
DM.dstOPU.Open;
if DM.dstOPU.RecordCount > 0 then
begin
fmOPU.Caption:= 'Отчет о прибылях и убытках (форма №2) за ' + Quarter + ' квартал ' + Year + ' г.';
fmOPU.ShowModal;
end
else
if Application.MessageBox('ОПиУ за данный период еще не создан. Создать ОПиУ?',
'Вопрос', MB_ICONQUESTION+MB_YESNO) = IDYES then
begin
//Добавление ОПиУ, если его за выбранный квартал еще нет:
DM.dstOPU.Close;
DM.qrNewOPU.Parameters.ParamByName('pYear').Value:= Year;
DM.qrNewOPU.Parameters.ParamByName('pQuarter').Value:= Quarter;
DM.qrNewOPU.ExecSQL;
DM.dstOPU.Open;
fmOPU.Caption:= 'Отчет о прибылях и убытках (форма №2) за ' + Quarter + ' квартал ' + Year + ' г.';
fmOPU.ShowModal;
end;
end;
//Удаление ОПиУ за выбранный период:
procedure TfmMain.acDelOPUExecute(Sender: TObject);
begin
if Application.MessageBox('Удалить ОПиУ за выбранный период?', 'Вопрос',
MB_ICONQUESTION+MB_YESNO) = IDYES then
begin
DM.qrDelOPU.Parameters.ParamByName('pYear').Value:= DM.dstPeriodList.FieldByName('Год').AsString;
DM.qrDelOPU.Parameters.ParamByName('pQuarter').Value:= DM.dstPeriodList.FieldByName('Квартал').AsString;
DM.qrDelOPU.ExecSQL;
Application.MessageBox('ОПиУ за выбранный период удален.', 'Информация',
MB_ICONINFORMATION+MB_OK);
DM.dstPeriodList.Requery;
end;
end;
procedure TfmMain.acStructBalExecute(Sender: TObject);
begin
fmBalanceStructure.Show;
end;
procedure TfmMain.acStructOPUExecute(Sender: TObject);
begin
fmOPUStructure.Show;
end;
//Формирование таблиц "Коэффициенты ликвидности и платежеспособности"
procedure TfmMain.acTables1Execute(Sender: TObject);
begin
if (sgPeriods.Cells[1,1] = '') or (sgPeriods.Cells[1,2] = '') or (sgPeriods.Cells[1,3] = '') then
Application.MessageBox('Не выбран один или несколько периодов!', 'Предупреждение', MB_OK+MB_ICONEXCLAMATION)
else
Rep_Tables1(StrToInt(sgPeriods.Cells[1,1]), StrToInt(sgPeriods.Cells[2,1]),
StrToInt(sgPeriods.Cells[1,2]), StrToInt(sgPeriods.Cells[2,2]),
StrToInt(sgPeriods.Cells[1,3]), StrToInt(sgPeriods.Cells[2,3]));
end;
//Формирование таблиц "Показатели финансовой устойчивости":
procedure TfmMain.acTables2Execute(Sender: TObject);
begin
if (sgPeriods.Cells[1,1] = '') or (sgPeriods.Cells[1,2] = '') or (sgPeriods.Cells[1,3] = '') then
Application.MessageBox('Не выбран один или несколько периодов!', 'Предупреждение', MB_OK+MB_ICONEXCLAMATION)
else
Rep_Tables2(StrToInt(sgPeriods.Cells[1,1]), StrToInt(sgPeriods.Cells[2,1]),
StrToInt(sgPeriods.Cells[1,2]), StrToInt(sgPeriods.Cells[2,2]),
StrToInt(sgPeriods.Cells[1,3]), StrToInt(sgPeriods.Cells[2,3]));
end;
//Формирование таблиц "Показатели рентабельности и деловой активности":
procedure TfmMain.acTables3Execute(Sender: TObject);
begin
if (sgPeriods.Cells[1,1] = '') or (sgPeriods.Cells[1,2] = '') or (sgPeriods.Cells[1,3] = '') then
Application.MessageBox('Не выбран один или несколько периодов!', 'Предупреждение', MB_OK+MB_ICONEXCLAMATION)
else
Rep_Tables3(StrToInt(sgPeriods.Cells[1,1]), StrToInt(sgPeriods.Cells[2,1]),
StrToInt(sgPeriods.Cells[1,2]), StrToInt(sgPeriods.Cells[2,2]),
StrToInt(sgPeriods.Cells[1,3]), StrToInt(sgPeriods.Cells[2,3]));
end;
//Формирование таблицы "Сводный сравнительный аналитический баланс предприятия":
procedure TfmMain.acTables4Execute(Sender: TObject);
begin
if (sgPeriods.Cells[1,1] = '') or (sgPeriods.Cells[1,2] = '') or (sgPeriods.Cells[1,3] = '') then
Application.MessageBox('Не выбран один или несколько периодов!', 'Предупреждение', MB_OK+MB_ICONEXCLAMATION)
else
Rep_Tables4(StrToInt(sgPeriods.Cells[1,1]), StrToInt(sgPeriods.Cells[2,1]),
StrToInt(sgPeriods.Cells[1,2]), StrToInt(sgPeriods.Cells[2,2]),
StrToInt(sgPeriods.Cells[1,3]), StrToInt(sgPeriods.Cells[2,3]));
end;
//Формирование таблицы "Анализ прибыли (убытка) предприятия":
procedure TfmMain.acTables5Execute(Sender: TObject);
begin
if (sgPeriods.Cells[1,1] = '') or (sgPeriods.Cells[1,2] = '') or (sgPeriods.Cells[1,3] = '') then
Application.MessageBox('Не выбран один или несколько периодов!', 'Предупреждение', MB_OK+MB_ICONEXCLAMATION)
else
Rep_Tables5(StrToInt(sgPeriods.Cells[1,1]), StrToInt(sgPeriods.Cells[2,1]),
StrToInt(sgPeriods.Cells[1,2]), StrToInt(sgPeriods.Cells[2,2]),
StrToInt(sgPeriods.Cells[1,3]), StrToInt(sgPeriods.Cells[2,3]));
end;
end.
Программный модуль uOPU.pas
unit uOPU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, Grids, DBGrids;
type
TfmOPU = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmOPU: TfmOPU;
implementation
uses uDM;
{$R *.dfm}
procedure TfmOPU.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstOPU.Close;
end;
procedure TfmOPU.FormShow(Sender: TObject);
begin
DM.dstOPU.Sort:= 'КодСтроки';
end;
end.
Программный модуль uOPUStructure.pas
unit uOPUStructure;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, Grids, DBGrids;
type
TfmOPUStructure = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmOPUStructure: TfmOPUStructure;
implementation
uses uDM;
{$R *.dfm}
procedure TfmOPUStructure.FormShow(Sender: TObject);
begin
DM.dstOPUStr.Open;
DM.dstOPUStr.Sort:= 'Код';
end;
end.
Программный модуль uRep.pas
unit uRep;
//Модуль для формирования отчетов
interface
uses
Windows, SysUtils, Classes, ComObj, DB, Controls, Forms, ADODB, Math, DBGrids;
procedure Rep_Tables1(Year1, Quarter1, Year2, Quarter2, Year3, Quarter3: Integer);
procedure Rep_Tables2(Year1, Quarter1, Year2, Quarter2, Year3, Quarter3: Integer);
procedure Rep_Tables3(Year1, Quarter1, Year2, Quarter2, Year3, Quarter3: Integer);
procedure Rep_Tables4(Year1, Quarter1, Year2, Quarter2, Year3, Quarter3: Integer);
procedure Rep_Tables5(Year1, Quarter1, Year2, Quarter2, Year3, Quarter3: Integer);
implementation
uses
uDM, DateUtils, Dialogs;
//Формирование таблиц "Коэффициенты ликвидности и платежеспособности":
procedure Rep_Tables1(Year1, Quarter1, Year2, Quarter2, Year3, Quarter3: Integer);
var
Excel: Variant;
WorkbookName: string;
begin
//Шаблон хранится в папке Шаблоны:
WorkbookName:= GetCurrentDir + '\Шаблоны\' + '1 Коэффициенты ликвидности и платежеспособности.xlt';
Excel:= CreateOleObject('Excel.Application');
Screen.Cursor:= crHourGlass;
try
try
Excel.Workbooks.Open(WorkbookName);
Excel.Worksheets[1].Select;
//Заголовок таблицы абс. показателей:
Excel.Cells[1,1]:= string(Excel.Cells[1,1]) +
IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г., ' +
IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г., ' +
IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г. ';
//Шапка таблицы абс. показателей:
Excel.Cells[3,2]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г.';
Excel.Cells[3,3]:= IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г.';
Excel.Cells[3,4]:= IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
Excel.Cells[3,6]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г.';
Excel.Cells[3,7]:= IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г.';
Excel.Cells[3,8]:= IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
Excel.Cells[4,9]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г.';
Excel.Cells[4,10]:= IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г.';
Excel.Cells[4,11]:= IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
Excel.Cells[4,12]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г.';
Excel.Cells[4,13]:= IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г.';
Excel.Cells[4,14]:= IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
//наиболее ликвидные активы (А1):
Excel.Cells[5,2]:= GetBalValue(Year1, Quarter1, 250, 2) + GetBalValue(Year1, Quarter1, 260, 2);
Excel.Cells[5,3]:= GetBalValue(Year2, Quarter2, 250, 2) + GetBalValue(Year2, Quarter2, 260, 2);
Excel.Cells[5,4]:= GetBalValue(Year3, Quarter3, 250, 2) + GetBalValue(Year3, Quarter3, 260, 2);
//быстрореализуемые активы (А2):
Excel.Cells[6,2]:= GetBalValue(Year1, Quarter1, 240, 2) + GetBalValue(Year1, Quarter1, 270, 2);
Excel.Cells[6,3]:= GetBalValue(Year2, Quarter2, 240, 2) + GetBalValue(Year2, Quarter2, 270, 2);
Excel.Cells[6,4]:= GetBalValue(Year3, Quarter3, 240, 2) + GetBalValue(Year3, Quarter3, 270, 2);
//медленно реализуемые активы (наименее ликвидные активы)(А3):
Excel.Cells[7,2]:= GetBalValue(Year1, Quarter1, 210, 2) - GetBalValue(Year1, Quarter1, 216, 2) +
GetBalValue(Year1, Quarter1, 220, 2) + GetBalValue(Year1, Quarter1, 140, 2);
Excel.Cells[7,3]:= GetBalValue(Year2, Quarter2, 210, 2) - GetBalValue(Year2, Quarter2, 216, 2) +
GetBalValue(Year2, Quarter2, 220, 2) + GetBalValue(Year2, Quarter2, 140, 2);
Excel.Cells[7,4]:= GetBalValue(Year3, Quarter3, 210, 2) - GetBalValue(Year3, Quarter3, 216, 2) +
GetBalValue(Year3, Quarter3, 220, 2) + GetBalValue(Year3, Quarter3, 140, 2);
//труднореализуемые активы (А4):
Excel.Cells[8,2]:= GetBalValue(Year1, Quarter1, 110, 2) + GetBalValue(Year1, Quarter1, 120, 2) +
GetBalValue(Year1, Quarter1, 130, 2) + GetBalValue(Year1, Quarter1, 216, 2) +
GetBalValue(Year1, Quarter1, 230, 2);
Excel.Cells[8,3]:= GetBalValue(Year2, Quarter2, 110, 2) + GetBalValue(Year2, Quarter2, 120, 2) +
GetBalValue(Year2, Quarter2, 130, 2) + GetBalValue(Year2, Quarter2, 216, 2) +
GetBalValue(Year2, Quarter2, 230, 2);
Excel.Cells[8,4]:= GetBalValue(Year3, Quarter3, 110, 2) + GetBalValue(Year3, Quarter3, 120, 2) +
GetBalValue(Year3, Quarter3, 130, 2) + GetBalValue(Year3, Quarter3, 216, 2) +
GetBalValue(Year3, Quarter3, 230, 2);
//наиболее краткосрочные обязательства (П1):
Excel.Cells[5,6]:= GetBalValue(Year1, Quarter1, 620, 2) + GetBalValue(Year1, Quarter1, 660, 2);
Excel.Cells[5,7]:= GetBalValue(Year2, Quarter2, 620, 2) + GetBalValue(Year2, Quarter2, 660, 2);
Excel.Cells[5,8]:= GetBalValue(Year3, Quarter3, 620, 2) + GetBalValue(Year3, Quarter3, 660, 2);
//краткосрочные пассивы (П2):
Excel.Cells[6,6]:= GetBalValue(Year1, Quarter1, 610, 2);
Excel.Cells[6,7]:= GetBalValue(Year2, Quarter2, 610, 2);
Excel.Cells[6,8]:= GetBalValue(Year3, Quarter3, 610, 2);
//долгосрочные пассивы (П3):
Excel.Cells[7,6]:= GetBalValue(Year1, Quarter1, 510, 2) + GetBalValue(Year1, Quarter1, 520, 2);
Excel.Cells[7,7]:= GetBalValue(Year2, Quarter2, 510, 2) + GetBalValue(Year2, Quarter2, 520, 2);
Excel.Cells[7,8]:= GetBalValue(Year3, Quarter3, 510, 2) + GetBalValue(Year3, Quarter3, 520, 2);
//постоянные пассивы (П4):
Excel.Cells[8,6]:= GetBalValue(Year1, Quarter1, 490, 2) + GetBalValue(Year1, Quarter1, 630, 2) +
GetBalValue(Year1, Quarter1, 640, 2) + GetBalValue(Year1, Quarter1, 650, 2);
Excel.Cells[8,7]:= GetBalValue(Year2, Quarter2, 490, 2) + GetBalValue(Year2, Quarter2, 630, 2) +
GetBalValue(Year2, Quarter2, 640, 2) + GetBalValue(Year2, Quarter2, 650, 2);
Excel.Cells[8,8]:= GetBalValue(Year3, Quarter3, 490, 2) + GetBalValue(Year3, Quarter3, 630, 2) +
GetBalValue(Year3, Quarter3, 640, 2) + GetBalValue(Year3, Quarter3, 650, 2);
Excel.Visible:= True;
Excel.Worksheets[2].Select;
//Заголовок таблицы отн. показателей:
Excel.Cells[1,1]:= string(Excel.Cells[1,1]) +
IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г., ' +
IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г., ' +
IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г. ';
//Шапка таблицы отн. показателей:
Excel.Cells[3,3]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г.';
Excel.Cells[3,4]:= IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г.';
Excel.Cells[3,5]:= IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
Excel.Cells[4,6]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г. от ' +
IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г.';
Excel.Cells[4,7]:= IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г. от ' +
IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
Excel.Cells[4,8]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г. от ' +
IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
except
Excel.Quit;
end;
finally
Screen.Cursor:= crDefault;
end;
end;
//Формирование таблиц "Показатели финансовой устойчивости":
procedure Rep_Tables2(Year1, Quarter1, Year2, Quarter2, Year3, Quarter3: Integer);
var
Excel: Variant;
WorkbookName: string;
begin
//Шаблон хранится в папке Шаблоны:
WorkbookName:= GetCurrentDir + '\Шаблоны\' + '2 Показатели финансовой устойчивости.xlt';
Excel:= CreateOleObject('Excel.Application');
Screen.Cursor:= crHourGlass;
try
try
Excel.Workbooks.Open(WorkbookName);
//Вывод данных на первую закладку шаблона (абс. показатели):
Excel.Worksheets[1].Select;
//Заголовок таблицы абс. показателей:
Excel.Cells[1,1]:= string(Excel.Cells[1,1]) +
IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г., ' +
IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г., ' +
IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г. ';
//Шапка таблицы абс. показателей:
Excel.Cells[3,2]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г.';
Excel.Cells[3,3]:= IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г.';
Excel.Cells[3,4]:= IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
Excel.Cells[4,5]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г. от ' +
IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г.';
Excel.Cells[4,6]:= IntToStr(Quarter2) + ' кв. ' + IntToStr(Year2) + ' г. от ' +
IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
Excel.Cells[4,7]:= IntToStr(Quarter1) + ' кв. ' + IntToStr(Year1) + ' г. от ' +
IntToStr(Quarter3) + ' кв. ' + IntToStr(Year3) + ' г.';
//Источники собственных средств:
Excel.Cells[5,2]:= GetBalValue(Year1, Quarter1, 490, 2) + GetBalValue(Year1, Quarter1, 640, 2) +
GetBalValue(Year1, Quarter1, 650, 2);
Excel.Cells[5,3]:= GetBalValue(Year2, Quarter2, 490, 2) + GetBalValue(Year2, Quarter2, 640, 2) +
GetBalValue(Year2, Quarter2, 650, 2);
Excel.Cells[5,4]:= GetBalValue(Year3, Quarter3, 490, 2) + GetBalValue(Year3, Quarter3, 640, 2) +
GetBalValue(Year3, Quarter3, 650, 2);
//Основные средства и вложения:
Excel.Cells[6,2]:= GetBalValue(Year1, Quarter1, 190, 2);
Excel.Cells[6,3]:= GetBalValue(Year2, Quarter2, 190, 2);
Подобные документы
Методы решения проблем, возникающих на стадиях и этапах процесса принятия решений, их реализация в информационных системах поддержки принятия решений (СППР). Назначение СППР, история их эволюции и характеристика. Основные типы СППР, области их применения.
реферат [389,3 K], добавлен 22.11.2016Определение сущности, функций, задач и видов информационных технологий. Характеристика информационных технологий обработки данных, управления, автоматизированного офиса и поддержки принятия решений. Анализ современных видов информационного обслуживания.
презентация [866,0 K], добавлен 30.11.2014Разработка и внедрение программного модуля поддержки принятия управленческих решений для информационной системы медицинского предприятия ООО "Центр эндохирургических технологий". Эффективность применения модуля, полученные с его помощью результаты.
дипломная работа [1,9 M], добавлен 11.04.2013Классификация систем поддержки принятия решений. Сравнительный анализ методик для оценки рисков розничного кредитования. Структура системы поддержки принятия решений, формирование начальной базы знаний. Проектирование базы данных информационной системы.
дипломная работа [1,9 M], добавлен 10.07.2017Исследование автоматизированных информационных технологий, применяемых в управлении организацией. Формирование системы поддержки принятия решений в рекламном агентстве, анализ и оценка ее практической эффективности, направления и цели оптимизации.
курсовая работа [90,4 K], добавлен 03.10.2013Типы административных информационных систем: системы генерации отчетов, системы поддержки принятия решений, системы поддержки принятия стратегических решений. Сортировка и фильтрация списков в Microsoft Excel. Работа с базами данных в Microsoft Access.
контрольная работа [6,0 M], добавлен 19.11.2009Информационная технология обработки данных, автоматизированного офиса, поддержки принятия решений, экспертных систем и управления, примеры их внедрения. Биллинговые системы, условия повышения эффективности аудиоконференций, интерфейс пользователя.
курсовая работа [950,9 K], добавлен 14.02.2011Обслуживание двух встречных потоков информации. Структура информационных систем. Разработка структуры базы данных. Режимы работы с базами данных. Четыре основных компонента системы поддержки принятия решений. Выбор системы управления баз данных.
курсовая работа [772,0 K], добавлен 21.04.2016Организационно-правовые основы развития информационных технологий. Государственные программы информатизации общества. Система оказания государственных услуг в электронной форме. Система информационных технологий "Центр социальной поддержки населения".
дипломная работа [188,2 K], добавлен 15.06.2012Информационные технологии в управлении: комплекс методов переработки исходных данных в оперативную информацию механизма принятия решений с помощью аппаратных и программных средств с целью достижения оптимальных рыночных параметров объекта управления.
контрольная работа [24,1 K], добавлен 15.03.2013Анализ существующих решений системы поддержки принятия решений для корпоративной сети. Многоагентная система. Разработка концептуальной модели. Структура базы знаний. Разработка модели многоагентной системы на базе сетей Петри. Методика тестирования.
дипломная работа [5,1 M], добавлен 19.01.2017Концепция систем поддержки принятия решений. Диапазон применения Analytica 2.0. Программное обеспечение количественного моделирования. Графический интерфейс для разработки модели. Основные способы моделирования. Диаграмма влияния и дерево решений.
контрольная работа [1,1 M], добавлен 08.09.2011Классификация задач системы поддержки принятия решений, их типы и принципы реализации при помощи программы "Выбор". Обзор современных систем автоматизированного проектирования "Компас", "AutoCad", "SolidWorks", оценка преимуществ и недостатков программ.
курсовая работа [1,4 M], добавлен 22.07.2014Принцип работы и назначение обучаемых информационных систем, их классификация по различным критериям, разновидности и отличия. Характеристика систем поддержки принятия решений. Механизм и основные этапы проектирования информационной обучаемой системы.
реферат [23,9 K], добавлен 22.11.2009Основные черты современных информационных технологий. Цель применения информационных технологий - снижение трудоемкости использования информационных ресурсов. Использованные программные средства для разработки информационной системы для продажи книг.
курсовая работа [1,2 M], добавлен 27.06.2014Основные понятия и определения информационных технологий, их классификация, техническое и программное обеспечение. Роль глобальных информационных сетей и интернета. Сущность автоматизации процессов принятия решений, использование компьютерных технологий.
тест [34,6 K], добавлен 10.12.2011Рассмотрение понятия и истории возникновения систем поддержки принятия решения. Приспособленность информационных систем к задачам повседневной управленческой деятельности. Понятие термина "интеллектуальный анализ данных". Методика извлечения знаний.
реферат [79,8 K], добавлен 14.04.2015Экономические и социальные цели информатизации. Классификация задач по степени их формализованности и задания, решаемые разными группами работников. Этапы развития информационных технологий. Стратегии внедрения системы поддержки и принятия решений.
реферат [22,5 K], добавлен 02.12.2010Понятие информационных технологий, этапы их развития, составляющие и основные виды. Особенности информационных технологий обработки данных и экспертных систем. Методология использования информационной технологии. Преимущества компьютерных технологий.
курсовая работа [46,4 K], добавлен 16.09.2011Информационные системы и технологии, их особенности и классификация в организационном управлении. Локальная вычислительная сеть средних организаций. Основы теории экономического управления предприятием. Оперативный (операционный) уровень принятия решений.
реферат [35,6 K], добавлен 27.06.2014