Информационная система ООО "Завод автотехнологий"

Теоретические основы применения информационных технологий для поддержки принятия решений, роль информационных технологий в управлении. Назначение проектируемой информационной системы, обзор существующих программных средств поддержки принятия решений.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.