Разработка автоматизированного рабочего места секретаря ОАО "Ярославльтелесеть"

Структура организации, ER–диаграмма и описание датологической модели. Выбор средств разработки, сущность предметной области, сценарий работы приложения и листинг. Преимущества использования вычислительной техники при работе с документами и данными.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 15.11.2011
Размер файла 991,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

НЕГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МЕЖДУНАРОДНАЯ АКАДЕМИЯ БИЗНЕСА

И НОВЫХ ТЕХНОЛОГИЙ (МУБиНТ)»

Кафедра Информационно-компьютерных технологий

Курсовая работа

по дисциплине

Проектирование экономических информационных систем

Тема:

Разработка автоматизированного рабочего места секретаря ОАО «Ярославльтелесеть»

Выполнил: студент группы 134 ПИ-41

Руководитель:

Вейцман В,М.

Ярославль, 2010

Содержание

Введение

1.Теоретическая часть

1.1 Краткие сведения о структуре организации

1.2 ER - диаграмма

1.3 Описание датологической модели

2. Проектная часть

2.1 Выбор средств разработки

2.2 Описание предметной области

2.3 Сценарий работы приложения

Заключение

Список литературы

Приложения

Введение

программа приложение листинг вычислительный датологический

В настоящее время все большее и большее распространение, как в производстве, так и в документообороте предприятий находит компьютерная техника, все шире и шире становится перечень охватываемых ею задач. Постоянно растет объем и сложность обрабатываемой информации, требуются все новые и новые виды ее представления. Как показывает практика, большинство пользователей уже не представляет себе, как бы они выполняли свою работу, с которой прекрасно справлялись еще пять-десять лет назад, без помощи компьютера. Вот только некоторые из преимуществ использования вычислительной техники при работе, с какими-либо данными, документами:

сразу после ввода, данные могут участвовать в различных операциях;

возможность одновременного доступа к информации нескольких пользователей;

возможность быстрого получения необходимых отчетов;

необходимая информация, поиск которой в обычной папке с документами затруднен, может быть быстро найдена;

существенная экономия времени и людских ресурсов при выполнении операций, связанных с обработкой информации;

позволяет быстро и в наиболее подходящем для конкретного человека виде просмотреть данные, что повышает их восприятие.

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

Данный программный продукт разработан для сотрудника предприятия занимающего должность секретаря.

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

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

1. Теоретическая часть

1.1 Краткие сведения о структуре организации

Рисунок 1.1 - Структурная схема предприятия ОАО «Ярославльтелесеть»

Предприятие «Ярославльтелесеть» создано в июне 1998 года. Учредителем является Комитет по управлению муниципальным имуществом мэрии г. Ярославль.

Руководитель - директор Яблочкин Анатолий Юрьевич

Предприятие владеет: приемно-передающим центром MMDS; коаксиальными и оптоволоконными системами связи; телевизионной студией.

Основными видами деятельности предприятия являются:

- трансляция телевизионных программ по эфиру и кабельным сетям;

- оказание телекоммуникационных услуг (интернет и т.д.);

- размещение региональной рекламы на телевизионных каналах;

- телевизионное вещание собственного телевизионного канала;

- строительно-монтажные работы по монтажу и проектированию телекоммуникационных систем.

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

1.2 ER - диаграмма

Рисунок 1.2 - ER - диаграмма

1.3 Описание датологической модели

База данных разработана на основе Borland Database Engenee (BDE) с использованием таблиц Paradox v7. Для создания БД использовались следующие инструменты: BDE Administrator v5.01 и Database Desktop v7, входящие в комплект поставки Borland Delphi 7.

Таблица 1.1

EMPLOYEES (Справочник сотрудников)

Ключ

Имя поля

Обязательные поля

Тип поля

Длина поля

Комментарий

* (PK)

ID_EMPLOYEE

NOT NULL

+ (Autoincement)

Идентификатор

FIO

NOT NULL

A (Alpha)

63

ФИО сотрудника

DATIVE_CASE

NOT NULL

A

63

ФИО сотрудника в дательном падеже (кому)

DESCRIPTION

A

255

Примечание

Таблица 1.2

SENDERS (Справочник отправителей/получателей)

Ключ

Имя поля

Обязательные поля

Тип поля

Длина поля

Комментарий

* (PK)

ID_SENDER

NOT NULL

+

Идентификатор

SENDER

NOT NULL

A

127

Наименование

DESCRIPTION

A

255

Примечание

Таблица 1.3

OUT_DOCS (Журнал исходящих документов)

Ключ

Имя поля

Обязательные поля

Тип поля

Длина поля

Комментарий

* (PK)

ID_OUT_DOCS

NOT NULL

+

Идентификатор

DATE

NOT NULL

@ (Timestamp)

Дата документа

FK

ID_ADDRESSEE

NOT NULL

I (Long Integer)

Идентификатор получателя - ключ на таблицу SENDERS

MAINTENANCE

NOT NULL

A

255

Содержание

FK

ID_EXECUTOR

NOT NULL

I

Идентификатор сотрудника (отправителя) - ключ на таблицу EMPLOYEES

SCAN

G (Blob Graphic)

Графическое изображение документа (сканированная копия)

Таблица 1.4

IN_DOCS (Журнал входящих документов)

Ключ

Имя поля

Обязательные поля

Тип поля

Длина поля

Комментарий

* (PK)

ID_IN_DOCS

NOT NULL

+

Идентификатор

DATE

NOT NULL

@

Дата регистрации документа

REF_NUM

NOT NULL

A

15

Исходящий №

SUMMARY

NOT NULL

A

127

Краткое содержание

FK

ID_SENDER

NOT NULL

I

Идентификатор отправителя - ключ на таблицу SENDERS

FK

ID_EXECUTOR

NOT NULL

I

Идентификатор сотрудника (получателя) - ключ на таблицу EMPLOYEES

NOTE

A

255

Примечания

DATE_GET

NOT NULL

D (Date)

Дата получения

SCAN

G

Графическое изображение документа (сканированная копия)

2. Проектная часть

2.1 Выбор средств разработки

ОС Microsoft Windows предоставляет пользователям оболочку графического интерфейса (GUI), которая обеспечивает стандартную среду пользователя и программиста. GUI предлагает более сложное и дружелюбное окружение пользователя, чем, например, командно-управляемый интерфейс DOS. Работа в Windows основана на интуитивно понятных принципах. Очень легко переключиться с задачи на задачу и осуществлять обмен информацией между ними. Однако разработчики приложений традиционно сталкиваются с трудностями программирования, поскольку организация среды Windows является чрезвычайно сложной.

Delphi - язык и среда программирования, относящаяся к классу RAD- (Rapid Application Development _ «Средство быстрой разработки приложений») средств CASE - технологии. Delphi сделала разработку мощных приложений Windows быстрым процессом, доставляющим удовольствие. Приложения Windows, для создания которых требовалось большое количество человеческих усилий например в С++, теперь могут быть написаны одним человеком, использующим Delphi.

Интерфейс Windows обеспечивает полное перенесение CASE-технологий в интегрированную систему поддержки работ по созданию прикладной системы на всех фазах жизненного цикла работы и проектирования системы.

Delphi обладает широким набором возможностей, начиная от проектировщика форм и заканчивая поддержкой всех форматов популярных баз данных. Среда устраняет необходимость программировать такие компоненты Windows общего назначения, как метки, пиктограммы и даже диалоговые панели. Работая в Windows, можно увидеть одинаковые «объекты» во многих разнообразных приложениях. Диалоговые панели (например Choose File и Save File) являются примерами многократно используемых компонентов, встроенных непосредственно в Delphi, который позволяет приспособить эти компоненты к имеющийся задаче, чтобы они работали именно так, как требуется создаваемому приложению. Также здесь имеются предварительно определенные визуальные и невизуальные объекты, включая кнопки, объекты с данными, меню и уже построенные диалоговые панели. С помощью этих объектов можно, например, обеспечить ввод данных просто несколькими нажатиями кнопок мыши, не прибегая к программированию. Это наглядная реализация применений CASE-технологий в современном программировании приложений. Та часть, которая непосредственно связана с программированием интерфейса пользователя системой, получила название визуальное программирование

Выгоды от проектирования Подсистемы в среде Windows с помощью Delphi:

Устраняется необходимость в повторном вводе данных;

Обеспечивается согласованность проекта и его реализации;

Увеличивается производительность разработки и переносимость программ.

Визуальное программирование как бы добавляет новое измерение при создании приложений, давая возможность изображать эти объекты на экране монитора до выполнения самой программы. Без визуального программирования процесс отображения требует написания фрагмента кода, создающего и настраивающего объект «по месту». Увидеть закодированные объекты было возможно только в ходе исполнения программы. При таком подходе достижение того, чтобы объекты выглядели и вели себя заданным образом, становится утомительным процессом, который требует неоднократных исправлений программного кода с последующей прогонкой программы и наблюдения за тем, что в итоге получилось.

Благодаря средствам визуальной разработки можно работать с объектами, держа их перед глазами и получая результаты практически сразу. Способность видеть объекты такими, какими они появляются в ходе исполнения программы, снимает необходимость проведения множества операций вручную, что характерно для работы в среде, не обладающей визуальными средствами -- вне зависимости от того, является она объектно-ориентированной или нет. После того, как объект помещен в форму среды визуального программирования, все его атрибуты сразу отображаются в виде кода, который соответствует объекту как единице, исполняемой в ходе работы программы.

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

Три основные части разработки интерфейса следующие: проектирование панели, проектирование диалога и представление окон. Для Общего Пользовательского Доступа также должны учитываться условия применения Архитектуры Прикладных Систем.

2.2 Описание предметной области

Для того, чтобы правильно спроектировать информационную систему нужно рассмотреть сам процесс работы секретаря. При проектировании информационной системы использованы компьютерные CASE-технологии, так как современные CASE - технологии охватывают обширную область поддержки многочисленных технологий проектирования информационных систем: от простых средств анализа и документирования до полномасштабных средств автоматизации. CASE-технологии представляют собой совокупность методов проектирования информационных систем, а также набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область, анализировать эту модель на всех стадиях разработки. Большинство существующих CASE-систем ориентировано на автоматизацию проектирования программного обеспечения и основано на методологиях структурного или объектно-ориентированного проектирования и программирования, использующих спецификации в виде диаграмм или текстов для описания системных требований, связей между моделями системы, динамики поведения системы и архитектуры программных средств.

Существуют много различных CASE-средств, таких как: Rational Rose, BPWin, Silverrun, Oracle Designer, JAM, Vantage Team Builder (Westmount I-CASE), esigner/2000 + Developer/2000 и. т. д. Для проектирования выбраны такие CASE-продукт, как Rational Rose и BPWin. Они занимают особое место в ряду CASE-продуктов визуального моделирования сложных программных систем, и обладают преимуществами в плане развития продукта.

Для того чтобы правильно реализовать поставленную задачу нужно рассмотреть модель работы секретаря по подсистемам. Это лучше всего сделать графически с помощью инструментального CASE-средства разработки Rational Rose. В рамках Rational Rose все представления о модели сложной системы фиксируются в виде специальных графических конструкций, получивших название диаграмм. Перечень этих диаграмм и их названия являются каноническими в том смысле, что представляют собой неотъемлемую часть графической нотации. При этом совокупность построенных диаграмм является самодостаточной в том смысле, что в них содержится вся информация, которая необходима для реализации проекта сложной системы. Каждая из диаграмм Rational Rose детализирует и конкретизирует различные представления о модели сложной системы. При этом диаграмма вариантов использования представляет собой наиболее общую концептуальную модель сложной системы. Суть диаграммы вариантов использования состоит в следующем: проектируемая система представляется в виде множества сущностей или актеров, взаимодействующих с системой с помощью так называемых вариантов использования. При этом актером или действующим лицом называется любая сущность, взаимодействующая с системой извне. В свою очередь, вариант использования служит для описания сервисов, которые система предоставляет актеру. Другими словами, каждый вариант использования определяет некоторый набор действий, совершаемый системой при диалоге с актером.

Рисунок 2.1 Диаграмма вариантов использования

На рисунке 2.1 представлено взаимодействие между вариантами использования и действующими лицами - актерами.

Рисунок 2.2 Диаграмма последовательностей действий

Рисунок 2.3 Диаграмма классов

Для того чтобы более тщательно проанализировать модель работы секретаря, определить входные и выходные данные и документы, используем другое инструментальное CASE-средство BPwin. Посредством набора графических инструментов для отображения действий и объектов, BPwin позволяет легко построить схему процесса, на которой показаны исходные данные, результаты операций, ресурсы, необходимые для их выполнения, управляющие воздействия, взаимные связи между отдельными работами. Интерактивное выделение объектов обеспечивает постоянную визуальную обратную связь при построении модели. BРwin поддерживает ссылочную целостность, не допуская определения некорректных связей и гарантируя непротиворечивость отношений между объектами при моделировании. BPwin предлагает средство для сбора всей необходимой информации о работе секретаря и графического изображения этой информации в виде целостной и непротиворечивой модели.

Первая диаграмма в иерархии диаграмм IDEF0 всегда изображает функционирование системы в целом.

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

Контекстная диаграмма будет выглядеть следующим образом (Рис. 2.4):

Рисунок 2.4 - Контекстная диаграмма

Двумя наиболее важными компонентами, из которых построена контекстная диаграмма, являются работа (представленная на диаграмме в виде прямоугольника) и объекты (изображаемые в виде стрелок).

Рисунок 2.5 Диаграмма декомпозиции

Рисунок 2.6 Диаграмма IDEF0 - потоков данных

2.3 Сценарий работы приложения

Работа приложения начинается с главной формы проекта, изображенной на рисунке 2.7.

Далее пользователь может выбрать посредством Меню, с чем на данный момент он хочет работать. В пункте меню Документы можно выбрать исходящий или входящий документ, т.е. документ который необходимо обработать (рис. 2.8)

Рисунок 2.8. - Форма Входящий документ

В меню Справочники пользователь может выбрать Отправителя/Получателя, Сотрудника (рис. 2.9).

Рисунок 2.9 - Форма Сотрудники компании

В меню Отчеты можно сформировать отчет по исходящей и входящей документации (рис. 2.10).

Рисунок 2.10 - Форма отчет по исходящим документам

Заключение

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

В результате курсовой работы была разработана программа «АРМ Секретаря».

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

У данного приложения удобный интерфейс, рассчитанный на не подготовительного пользователя.

Список литературы

Никитина Т.П. Введение в базы данных: учебное пособие / Т.П. Никитина ; Международный университет бизнеса и новых технологий /институт/. - Ярославль : РИЦ МУБиНТ, 2007. - 165 с.

Вейцман ВМ. Проектирование экономических информационных систем: Учебное пособие. - Яр.: МУБиНТ, 2002, - 213 с., ил.

Приложения

Листинг программы

unit MainUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, XPMan, Menus, ImgList, ComCtrls, ToolWin, Buttons, DBGrids,

ClipBrd, DB, COMObj, Excel97, ShellApi, CoolTrayIcon, IniFiles, DateUtils;

type

TMainForm = class(TForm)

XPM: TXPManifest;

MMenu: TMainMenu;

MenuIconsIL: TImageList;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

MainStatusBar: TStatusBar;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

MainToolBar: TToolBar;

N20: TMenuItem;

N21: TMenuItem;

N22: TMenuItem;

N23: TMenuItem;

mainPopupMenu: TPopupMenu;

N24: TMenuItem;

N25: TMenuItem;

N26: TMenuItem;

N27: TMenuItem;

N28: TMenuItem;

N29: TMenuItem;

N30: TMenuItem;

N31: TMenuItem;

N32: TMenuItem;

N33: TMenuItem;

N34: TMenuItem;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

ToolButton7: TToolButton;

ToolButton8: TToolButton;

ToolButton9: TToolButton;

ToolButton10: TToolButton;

ToolButton11: TToolButton;

ToolButton12: TToolButton;

ToolButton13: TToolButton;

ToolButton14: TToolButton;

ToolButton15: TToolButton;

ToolButton16: TToolButton;

ToolButton17: TToolButton;

ToolButton18: TToolButton;

ToolButton19: TToolButton;

ToolButton20: TToolButton;

ToolButton21: TToolButton;

ToolButton22: TToolButton;

cti: TCoolTrayIcon;

TIPopupMenu: TPopupMenu;

N35: TMenuItem;

N36: TMenuItem;

N37: TMenuItem;

N38: TMenuItem;

N39: TMenuItem;

N40: TMenuItem;

N41: TMenuItem;

ToolButton23: TToolButton;

ToolButton24: TToolButton;

ToolButton25: TToolButton;

N42: TMenuItem;

procedure N4Click(Sender: TObject);

procedure N8Click(Sender: TObject);

function IsMDIChildOpen(const AMDIChildName: string): Boolean;

procedure N2Click(Sender: TObject);

procedure CloseAllMDIChild(Sender: TObject);

procedure MinimizedAllMDIChild(Sender: TObject);

procedure MaximizedAllMDIChild(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N23Click(Sender: TObject);

procedure N22Click(Sender: TObject);

procedure N25Click(Sender: TObject);

procedure N27Click(Sender: TObject);

procedure N28Click(Sender: TObject);

procedure N29Click(Sender: TObject);

procedure N30Click(Sender: TObject);

procedure N32Click(Sender: TObject);

procedure N33Click(Sender: TObject);

procedure N34Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure N35Click(Sender: TObject);

procedure N36Click(Sender: TObject);

procedure ctiDblClick(Sender: TObject);

procedure N38Click(Sender: TObject);

procedure SaveSettings;

procedure LoadSettings;

procedure FormCreate(Sender: TObject);

procedure N42Click(Sender: TObject);

private

public

{ Public declarations }

end;

var

MainForm: TMainForm;

grd: TDBGrid;

CloseFromTray: Boolean;

implementation

uses AboutF, GloVars, misc, EmpUnit, SndUnit, Math, sGrid2Excel, ODUnit,

IDUnit, EmployeeUnit, OptUnit, SenderUnit, ODocUnit, ROUnit, IDocUnit,

DMUnit, SCUnit;

{$R *.dfm}

// Распахнуть все дочерние окна

procedure TMainForm.MaximizedAllMDIChild(Sender: TObject);

var

i: Integer;

begin

with MainForm do

for i := MDIChildCount - 1 downto 0 do

MDIChildren[i].WindowState := wsMaximized;

end;

// Минимизировать все дочерние окна

procedure TMainForm.MinimizedAllMDIChild(Sender: TObject);

var

i: Integer;

begin

with MainForm do

for i := MDIChildCount - 1 downto 0 do

MDIChildren[i].WindowState := wsMinimized;

end;

// Процедура закрытия всех дочерних окон

procedure TMainForm.CloseAllMDIChild(Sender: TObject);

var

i: Integer;

begin

with MainForm do

for i := MDIChildCount - 1 downto 0 do

MDIChildren[i].Close;

end;

// Функция, которая проверяет открыто ли указанное дочернее окно

function TMainForm.IsMDIChildOpen(const AMDIChildName: string): Boolean;

var

i: integer;

begin

Result := False;

with MainForm do

for i := Pred(MDIChildCount) DownTo 0 do

if MDIChildren[i].Name = AMDIChildName then

begin

Result := True;

Break;

end;

end;

// Закрыть программу

procedure TMainForm.N4Click(Sender: TObject);

begin

CloseFromTray := false;

Close;

end;

// Показать сведения о программе

procedure TMainForm.N8Click(Sender: TObject);

begin

ShowAbout

end;

// Закрыть активное дочернее окно

procedure TMainForm.N2Click(Sender: TObject);

begin

if ActiveMDIChild <> nil then

ActiveMDIChild.Close

end;

// Расположить дочерние окна каскадом

procedure TMainForm.N16Click(Sender: TObject);

begin

Cascade

end;

// Расположить дочерние окна вертикально

procedure TMainForm.N17Click(Sender: TObject);

begin

TileMode := tbVertical;

Tile;

end;

// Расположить дочерние окна горизонтально

procedure TMainForm.N18Click(Sender: TObject);

begin

TileMode := tbHorizontal;

Tile;

end;

// Показать/скрыть строку состояния

procedure TMainForm.N11Click(Sender: TObject);

begin

MainStatusBar.Visible := N11.Checked

end;

// Показать/скрыть панель инструментов

procedure TMainForm.N10Click(Sender: TObject);

begin

MainToolBar.Visible := N10.Checked

end;

// Открытие формы со списком сотрудников

procedure TMainForm.N21Click(Sender: TObject);

begin

if IsMDIChildOpen('EmpForm') then

EmpForm.Show

else

EmpForm := TEmpForm.Create(Owner);

end;

// Изменение доступности пункта меню "Закрыть окно" в зависимости

// от того, активно ли какое-либо дочернее окно

procedure TMainForm.N1Click(Sender: TObject);

var

i: Integer;

begin

N2.Enabled := (MainForm.ActiveMDIChild <> nil);

N22.Enabled := false;

N24.Enabled := false;

N25.Enabled := false;

grd := nil;

if MainForm.ActiveMDIChild <> nil then

for i := 0 to MainForm.ActiveMDIChild.ComponentCount - 1 do

if MainForm.ActiveMDIChild.Components[i].ClassName = 'TDBGrid' then

begin

grd := (MainForm.ActiveMDIChild.Components[i] as TDBGrid);

N22.Enabled := true;

N24.Enabled := true;

N25.Enabled := true;

Break;

end;

end;

// Изменение доступности пунктов подменю "Окна..." в зависимости

// от того, открыто ли хотя бы одно дочернее окно

procedure TMainForm.N13Click(Sender: TObject);

var

flag: Boolean;

i: Integer;

begin

flag := (MainForm.MDIChildCount > 0);

for i := 14 to 19 do

(FindComponent('N' + IntToStr(i)) as TMenuItem).Enabled := flag

end;

// Открытие формы со списком отправителей

procedure TMainForm.N23Click(Sender: TObject);

begin

if IsMDIChildOpen('SndForm') then

SndForm.Show

else

SndForm := TSndForm.Create(Owner);

end;

// Сохранение в файл таблицы данных

procedure TMainForm.N22Click(Sender: TObject);

var

ExcelApp: Variant;

begin

if grd <> nil then

try

ExcelApp := CreateOleObject('Excel.Application');

ExcelApp.Visible := False;

ExcelApp.WorkBooks.Add(xlWBatWorkSheet);

ExcelApp.DisplayAlerts := False;

ExcelApp.WorkBooks[1].WorkSheets[1].name := grd.DataSource.DataSet.Name;

if CopyGRDToClb(grd) then

begin

ExcelApp.Workbooks[1].WorkSheets[grd.DataSource.DataSet.Name].Paste;

ExcelApp.Visible := true;

end;

ExcelApp := Unassigned;

except on E: Exception do

begin

ExcelApp := Unassigned;

Application.MessageBox(PChar(E.Message), 'Ошибка выгрузки!', MB_ICONERROR);

end;

end;

end;

// Копирование таблицы в буфер обмена

procedure TMainForm.N25Click(Sender: TObject);

begin

if grd <> nil then

CopyGRDToClb(grd)

end;

// Открытие журнала исходящих документов

procedure TMainForm.N27Click(Sender: TObject);

begin

if IsMDIChildOpen('ODForm') then

ODForm.Show

else

ODForm := TODForm.Create(Owner);

end;

// Открытие журнала входящих документов

procedure TMainForm.N28Click(Sender: TObject);

begin

if IsMDIChildOpen('IDForm') then

IDForm.Show

else

IDForm := TIDForm.Create(Owner);

end;

// Отображение окна с информацией по отдельной записи данных

procedure TMainForm.N29Click(Sender: TObject);

begin

if MainForm.ActiveMDIChild <> nil then

begin

if MainForm.ActiveMDIChild.Name = 'EmpForm' then

EmployeeForm.ShowModal

else if MainForm.ActiveMDIChild.Name = 'SndForm' then

SenderForm.ShowModal

else if MainForm.ActiveMDIChild.Name = 'ODForm' then

ODocForm.ShowModal

else if MainForm.ActiveMDIChild.Name = 'IDForm' then

IDocForm.ShowModal;

end;

end;

// Вызов окна настроек программы

procedure TMainForm.N30Click(Sender: TObject);

begin

OptForm.ShowModal

end;

// Вызов окна настроек отчёта

procedure TMainForm.N32Click(Sender: TObject);

begin

ROForm.RadioGroup1.Visible := true;

ROForm.RadioGroup2.Visible := false;

ROForm.Caption := 'Журнал документов';

ROForm.ShowModal;

end;

// Вызов окна настроек отчёта

procedure TMainForm.N33Click(Sender: TObject);

begin

ROForm.RadioGroup1.Visible := false;

ROForm.RadioGroup2.Visible := true;

ROForm.RadioGroup2.Items[0] := 'по исполнителям';

ROForm.RadioGroup2.Items[1] := 'по отправителям';

ROForm.Caption := 'Входящие документы';

ROForm.ShowModal;

end;

// Вызов окна настроек отчёта

procedure TMainForm.N34Click(Sender: TObject);

begin

ROForm.RadioGroup1.Visible := false;

ROForm.RadioGroup2.Visible := true;

ROForm.RadioGroup2.Items[0] := 'по исполнителям';

ROForm.RadioGroup2.Items[1] := 'по получателям';

ROForm.Caption := 'Исходящие документы';

ROForm.ShowModal;

end;

// При закрытии приложения

procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

if (ToTrayOnClose) and (not CloseFromTray) then

begin

CanClose := false;

N36Click(Sender);

end

else

if Application.MessageBox('Вы уверены, что хотите завершить работу?', 'Внимание!', MB_YESNO + MB_ICONINFORMATION) = idYes then

begin

SaveSettings;

CanClose := true;

end

else

CanClose := false;

end;

// Показ из трэя

procedure TMainForm.N35Click(Sender: TObject);

begin

cti.ShowMainForm;

N36.Enabled := true;

end;

// Сворачивание в трэй

procedure TMainForm.N36Click(Sender: TObject);

begin

Application.Minimize;

cti.HideMainForm;

N36.Enabled := false;

end;

// Двойное нажатие в трэе

procedure TMainForm.ctiDblClick(Sender: TObject);

begin

if N36.Enabled then

N36Click(Sender)

else

N35Click(Sender)

end;

// При закрытии программы из трэя

procedure TMainForm.N38Click(Sender: TObject);

begin

CloseFromTray := true;

Close

end;

// Загрузка настроек из ini-файла

procedure TMainForm.LoadSettings;

var

ini: TIniFile;

y: Integer;

begin

y := YearOf(Now);

ToTrayOnClose := true;

ini := TIniFile.Create(optFile);

try

y := ini.ReadInteger('Main', 'Year', y);

if y < 0 then

y := YearOf(Now);

ToTrayOnClose := ini.ReadBool('Main', 'ToTrayOnClose', true);

finally

ini.Free;

end;

while not awpsDM.Years.Eof do

begin

if awpsDM.Yearsdd.AsInteger = y then

break;

awpsDM.Years.Next;

end;

if awpsDM.Yearsdd.IsNull then

begin

y := YearOf(Now);

awpsDM.Years.First;

while not awpsDM.Years.Eof do

begin

if awpsDM.Yearsdd.AsInteger = y then

break;

awpsDM.Years.Next;

end;

end;

end;

// Сохранение настроек приложения

procedure TMainForm.SaveSettings;

var

ini: TIniFile;

begin

if not FileExists(optFile) then

FileClose(FileCreate(optFile));

ini := TIniFile.Create(optFile);

try

if not awpsDM.Yearsdd.IsNull then

ini.WriteInteger('Main', 'Year', awpsDM.Yearsdd.AsInteger);

ini.WriteBool('Main', 'ToTrayOnClose', ToTrayOnClose);

finally

ini.Free;

end;

end;

// При создании главной формы

procedure TMainForm.FormCreate(Sender: TObject);

begin

CloseFromTray := false;

LoadSettings;

end;

// Настройка видимости колонок таблицы

procedure TMainForm.N42Click(Sender: TObject);

var

i: Integer;

begin

if grd <> nil then

with SCForm do

begin

CheckListBox1.Clear;

for i := 0 to grd.Columns.Count - 1 do

begin

CheckListBox1.Items.Add(grd.Columns[i].Title.Caption);

CheckListBox1.Checked[CheckListBox1.Items.Count - 1] :=

grd.Columns[i].Visible;

end;

ShowModal;

end;

end;

end.

Размещено на Allbest.ru


Подобные документы

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