Эмуляция системы электронного документооборота
Основные подходы к решению проблем управления электронным документооборотом. Разработка информационной системы для работы с базой данных (БД). Проектирование логической структуры БД, программная реализация. Тестирование и отладка программного средства.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 06.01.2013 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- 1. Постановка задачи
- 2. Описание и анализ предметной области
- 2.1 Описание предметной области
- 2.2 Анализ существующего информационного обеспечения
- 2.3 Формирование и анализ требований
- 3. Построение концептуальной модели
- 4. Проектирование логической структуры БД
- 5. Программная реализация
- 5.1 Выбор программного средства
- 5.2 Организация редактирования данных
- 5.3 Разграничение прав пользователей
- 6. Тестирование и отладка программного средства
- Заключение
- Список литературы
- Приложения
Введение
Документ является основным способом представления информации на любом современном предприятии. Неоспорима важность сохранности и умелого использования информационных ресурсов предприятия для успешного ведения бизнеса. Способность принять верное решение и вовремя отреагировать на ситуацию, гибко реагировать на все изменения рынка зависит не только от таланта и опыта руководителей. Эффективность управления предприятием зависит и от того, насколько разумно в организовано управление документооборотом. Фактически, малоэффективное использование накопленной информации (или, еще хуже, ее утрата) может привести к потере всего бизнеса. Ведь вовремя не полученная информация или документ это, прежде всего, потерянные деньги, время и упущенные возможности. Вследствие этого, на любом предприятии, где ведется активная работа с различными документами, рано или поздно встает проблема систематизации, обработки и безопасного хранения значительных объемов информации. Важную роль в оптимизации деятельности предприятия любого размера и профиля деятельности играют современные системы электронного документооборота.
Значительную часть своего рабочего времени специалисты предприятий тратят как на поиск необходимой им информации, так и на создание и отправку документов. Существуют оценки, что секретарь-референт тратит до 75% своего времени на работу с документами, у руководителей на работу с документами уходит до 45% рабочего времени, а у рядовых сотрудников предприятия до 30% времени.
Следует отметить, что потоки корпоративной бизнес-информации чрезвычайно разнообразны по источникам и формам ее представления.
Однако их можно условно классифицировать по форме хранения: на электронные документы и бумажные. Существует мнение, что в настоящее время только около 30% всей корпоративной информации хранится в электронном виде (как в структурированном в базах данных, так и в неструктурированном). Вся остальная информация (около 70%) хранится на бумаге, создавая немалые трудности при ее поиске. Тем не менее, это соотношение постепенно меняется в пользу электронной формы хранения (в частности, через развитие электронных архивов). Вряд ли, конечно, когда-нибудь все документы станут только электронными, однако, несомненно, что электронная форма хранения документов будет преобладать. При этом под термином электронный документ в рассматриваемом контексте обычно понимается текстовый файл, документ MS Word, электронная таблица MS Excel, графический файл, несколько взаимосвязанных файлов разных форматов (так называемый составной документ) и др.
1. Постановка задачи
Требуется спроектировать в выбранной интегрированной среде разработки информационную систему для работы с базой данных по конкретной предметной области. Разрабатываемое программное средство должно удовлетворять следующим требованиям:
1. Удобный, понятный, компактный интерфейс.
2. Наличие форм для ввода, вывода данных.
3. Возможность инсталляции приложения.
2. Описание и анализ предметной области
2.1 Описание предметной области
В настоящее время существует немало подходов к решению проблем управления электронным документооборотом. Кроме так называемых универсальных систем электронного документооборота (EDMS) решить задачу управления документами можно при помощи следующих основных видов программных средств:
ь средств групповой;
ь систем управления особыми видами документов (в частности, PDM-систем);
ь специальных модулей управления документооборотом в составе корпоративных информационных систем для предприятий.
Важным свойством универсальных систем электронного документооборота является то, что они предоставляют возможность решения большого числа задач управления документами. Тем не менее, следует отметить, что полностью все задачи управления документооборотом они все равно не смогут решить (из-за их динамически меняющегося и, практически, неисчерпаемого многообразия). Кроме того, внедрение специализированного ПО может оказаться дешевле и эффективней.
2.2 Анализ существующего информационного обеспечения
Рассмотрим несколько систем электронного документооборота, уже существующих и пользующихся популярностью.
1С: Документооборот 8
Интерфейс программы представлен на рис. 1.
Программа 1С: Документооборот 8 позволяет реализовывать:
· работу с системой через веб-браузер;
· упорядоченную работу сотрудников с документами, исключить возможность утери версий или пересечения фрагментов при одновременной работе;
· сократить время поиска нужной информации и суммарное время коллективной обработки документов;
· повысить качество готового материала (проектов, документации и пр.) за счет решения большого количества спорных вопросов и упорядочивания работы пользователей.
Рис.1 Интерфейс 1С: Документооборот 8
IBMLotusNotes
Интерфейс программы представлен на рис.2.
Основные функции, входящие в базовую поставку LotusNotes/DominoStandard версии 8.5:
· среда исполнения приложений автоматизации групповой деятельности
· криптозащита (шифрование и электронная подпись)
· персональный и групповой календари, планировщик задач
электронный документооборот программное база
· набор офисных приложений IBM LotusSymphony (текстовый редактор, электронные таблицы, подготовка презентаций)
· клиент среды обмена мгновенными сообщениями (Instantmessenger) LotusSametime (сервер Sametime является самостоятельным продуктом)
· веб-браузер
· веб-сервер
· сервер каталогов LDAP
· сервер приложений
· службы интеграции данных DECS (Domino Enterprise connection services)
Рис. 2. Интерфейс программы IBMLotusNotes
МОТИВ
Интерфейс программы представлен на рис.3.
Российские специалисты, основываясь на собственном опыте управления компанией и внедрения корпоративного ПО, разработали комплексный продукт для построения единого информационного пространства предприятия под названием МОТИВ, который призван помочь руководителям контролировать бизнес-процессы компании, а так же максимально эффективно выстроить взаимодействие сотрудников в рамках работы над проектами и задачами.
Некоторые возможности, которые дает МОТИВ
§ создание иерархической структуры взаимодействия руководящего персонала с подчиненными
§ коллективная работа над проектами и документами
§ получение регулярных отчетов о ходе выполнения задач по проектам
§ возможность коллективной работы над документами
§ улучшение контроля над исполнением документов
§ повышение безопасности документов
§ повышение сохранности документов
Рис.3. Интерфейс программы МОТИВ
DocsVision
Интерфейс программы представлен на рис.4.
Система DocsVision - платформа для автоматизации управления документами и бизнес-процессами предприятий российской разработки, активно внедряемая на предприятиях бывшего СССР с 2005 года
Система DocsVision предназначена для создания гибких, настраиваемых решений в следующих областях:
· создание электронных архивов
· автоматизация делопроизводства и контроля исполнительской дисциплины
· автоматизация управления деловыми и организационными бизнес-процессами (создание электронных регламентов)
· интеграции различных информационных систем предприятия на базе сквозных бизнес процессов
Рис.4. Интерфейс программы DocsVision
2.3 Формирование и анализ требований
Проанализируем поставленную задачу с учётом всех требований, предъявляемых к работе:
1. Интерфейс разрабатываемого программного средства не должен быть излишне перегружен в целях повышения удобства использования. На экране должны быть только те элементы управления, отображения информации, которые необходимы для выполняемой в данный момент задачи. Компактность достигается не в ущерб понятности интерфейса и функциональности.
2. Отдельные формы для ввода, вывода данных обеспечивают дифференцирование рабочего пространства в целях облегчения доступа к элементам интерфейса и избегания путаницы, когда пользователь неправильно понимает назначение элементов управления.
3. Необходимо распространять программу в виде инсталлятора, который добавит все требуемые для работы файлы в соответствующие директории и создаст ярлыки.
При рассмотрении заданной предметной области в связи с возможной функциональностью разрабатываемой системы можно выдвинуть ещё один ряд требований, конкретизирующий уже перечисленные требования:
а) Разграничение прав групп пользователей
б) Отправка документов на утверждение.
в) Возможность утверждения пришедшего документа либо отклонение документа с комментариями
г) Должны быть часы
д) Экспорт и импорт данных
3. Построение концептуальной модели
ER-диаграмма (entity-relationshipdiagram) - или диаграмма сущность-связь - позволяет описывать концептуальные модели структур данных. Построение диаграммы осуществляется при помощи графических примитивов: блоков для описания сущностей и соединительных линий для описания связей. При описании концептуальной модели используют ряд понятий, отражающих принцип построения ER-диаграммы.
ER-диаграмма разрабатываемой информационной системы приведена на рис.5.
Рис.5. ER-диаграмма информационной системы
"Эмуляция СЭД"
4. Проектирование логической структуры БД
В качестве среды для создания базы данных компьютеров, программного обеспечения и периферийного оборудования был выбран MS Access 2010. Вместе с последними версиями MS Windows устанавливается и драйвер для доступа к базам этого типа.
Рассмотрим подробно каждую из сущностей спроектированной базы дан-ных и опишем их.
Users - зарегистрированные пользователи
DocUsers - документы пользователей
Documents - документы
Task - поручения секретарю
5. Программная реализация
5.1 Выбор программного средства
Создание базы данных будет осуществляться в среде MSAccess 2010. Такой выбор был сделан ввиду большой распространённости пакета MSOffice, с которым поставляется Access, простоты проектирования баз данных при сохранении широты возможностей.
Для написания приложения была выбрана среда BorlandDelphi 7, так как она имеет большое количество инструментов для работы с базами данных.
Средства Delphi, предназначенные для работы с БД, можно разделить на 2 категории: инструментарий и компоненты. Инструментарий включает в себя ряд дополнительных программ, входящих в поставку Delphi и предназначенных для работы с БД. Что касается компонентов, то в VCL имеется множество специализированных компонент, предназначенных для работы с БД.
Хотя Delphi и не является СУБД в классическом понимании этого термина, в частности, у нее нет собственного формата баз данных, она поддерживает как собственные сразу несколько форматов.
5.2 Организация редактирования данных
Основным действием в программе является отправка документа на утверждение, которая производится в окнах показанном ниже.
Рис. 6. Отправка документа на утверждение
При нажатии на кнопку Создать заполняются соответствующие поля в БД
В таблице Documents создаётся запись информации о документе, а в таблице DocUsers заполняется информация о том кому этот документ отсылается на утверждение.
Код выполняющийся при нажатии на кнопку "Создать":
s: =ExtractFilePath (paramstr (0));
w: =CreateOleObject ('Word. Application');
w. visible: =true;
w. Documents. add;
w. ActiveDocument. SaveAs (s+'\'+edit1. Text+'. doc');
MainFormSek. ADOQuery3. Insert;
MainFormSek. ADOQuery3 ['Name_Doc']: =edit1. Text;
MainFormSek. ADOQuery3 ['Type_Doc']: =ComboBox1. Text;
MainFormSek. ADOQuery3 ['Primechanie']: =Memo1. Text;
MainFormSek. ADOQuery3 ['Date_Create']: =strtoDateTime (Edit2. Text);
MainFormSek. ADOQuery3 ['Srok']: =strtoDate (MaskEdit1. Text);
MainFormSek. ADOQuery3 ['Path']: =s+'\'+edit1. Text+'. doc';
MainFormSek. ADOQuery3 ['Stat']: ='Неутверждён';
MainFormSek. ADOQuery3 ['ID_Sek']: =AuthForm. KeyUser;
MainFormSek. ADOQuery3. Post;
for i: = 0 to (CheckListBox1. Items. Count - 1) do
if (CheckListBox1. Checked [i]) then
begin
ADOTable2. Insert;
if ADOTable3. Locate ('Login',CheckListBox1. Items. Strings [i], []) then
begin
ADOTable2 ['id_user']: = ADOTable3 ['id_user'];
ADOQuery1. Close;
ADOQuery1. SQL. Clear;
ADOQuery1. SQL. Append ('SELECT Top 1 Key ' +
'FROM Documents ' +
'Order by Key Desc');
ADOQuery1. Open;
ADOQuery1. Open;
ADOTable2 ['id_document']: = inttostr (ADOQuery1 ['Key']);
ADOTable2 ['Status']: = '1';
ADOTable2. Post;
end;
end;
MainFormSek. ADOQuery3. Active: =false;
MainFormSek. ADOQuery3. Active: =true;
MainFormSek. ADOQuery3. Fields [0]. Visible: =false;
MainFormSek. ADOQuery3. Fields [6]. Visible: =false;
MainFormSek. ADOQuery3. Fields [7]. Visible: =false;
MainFormSek. ADOQuery3. Fields [1]. DisplayWidth: =20;
MainFormSek. ADOQuery3. Fields [2]. DisplayWidth: =20;
MainFormSek. ADOQuery3. Fields [3]. visible: =false;
MainFormSek. ADOQuery3. Fields [4]. DisplayWidth: =20;
MainFormSek. ADOQuery3. Fields [5]. DisplayWidth: =20;
MainFormSek. ADOQuery3. Fields [8]. DisplayWidth: =20;
Далее заходим под одним из руководителей, которым был отослан документ на утверждение:
Рис.7. Главное окно руководителя 1
Делаем двойной щелчок на "Принятые”:
Рис. 8. Главное окно руководителя 2
Делаем двойной щелчок по полю с информацией о принятом документе, в появившемся окне предоставляется возможности:
§ Открыть документ для просмотра
§ Утвердить
§ Отклонить с указанием комментарием к доработке
Рис. 9. Информация о документе
Код, выполняющийся по нажатии на кнопку Утвердить
ADOQuery1. Close;
ADOQuery1. SQL. Clear;
ADOQuery1. Parameters. Add;
ADOQuery1. Parameters [0]. Name: ='p';
ADOQuery1. Parameters [0]. Value: =MainFormRuk. ADOQuery3 ['Key'];
ADOQuery1. Parameters. Add;
ADOQuery1. Parameters [1]. Name: ='p2';
ADOQuery1. Parameters [1]. Value: =AuthForm. KeyUser;
ADOQuery1. SQL. Add ('Select * From DocUsers Where (id_document=: p) and (id_user=: p2) ');
ADOQuery1. Open;
ADOQuery1. Edit;
ADOQuery1 ['Status']: ='0';
ADOQuery1. Post;
MainFormRuk. ListBoxLoad;
При нажатии на кнопке Отклонить открывается следующее окно:
Рис.10. Причина отклонения
Код, выполняющийся при нажатии кнопки ОК:
Form1. ADOQuery1. Close;
Form1. ADOQuery1. SQL. Clear;
Form1. ADOQuery1. Parameters. Add;
Form1. ADOQuery1. Parameters [0]. Name: ='p';
Form1. ADOQuery1. Parameters [0]. Value: =MainFormRuk. ADOQuery3 ['Key'];
Form1. ADOQuery1. Parameters. Add;
Form1. ADOQuery1. Parameters [1]. Name: ='p2';
Form1. ADOQuery1. Parameters [1]. Value: =AuthForm. KeyUser;
Form1. ADOQuery1. SQL. Add ('Select * From DocUsers Where (id_document=: p) and (id_user=: p2) ');
Form1. ADOQuery1. Open;
Form1. ADOQuery1. Edit;
Form1. ADOQuery1 ['Status']: ='2';
Form1. ADOQuery1 ['PrichOtkl']: =Memo1. Text;
Form1. ADOQuery1. Post;
MainFormRuk. ListBoxLoad;
Close;
5.3 Разграничение прав пользователей
В данной программе реализовано разграничение прав на два типа пользователей:
§ Руководитель
§ Секретарь
При выборе типа пользователя и вводе соответствующего пароля открываются различные окна:
Рис.11. Главное окно руководителя
Рис.12. Главное окно секретаря
6. Тестирование и отладка программного средства
Отладка и верификация программы представляют собой очень важную часть процесса разработки программы. Отладка заключается в устранении ошибок программирования, ошибок перевода алгоритма на язык программирования. Отладка - это деятельность, направленная на обнаружение и исправление ошибок в программе с использованием процессов выполнения его программ. Тестирование программы - это процесс выполнения его программ на некотором наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ. Указанный набор данных называется тестовым или просто тестом. Таким образом, отладку можно представить в виде многократного повторения трех процессов: тестирования, в результате которого может быть констатировано наличие в ПС ошибки, поиска места ошибки в программах и документации ПС и редактирования программ и документации с целью устранения обнаруженной ошибки. Другими словами: Отладка = Тестирование + Поиск ошибок + Редактирование. Верификация - это доказательство того, что программа работает "правильно", дает правильный результат. Для этого разрабатывается система тестов, которые могут представлять собой специально подобранные наборы параметров, для которых задача может быть решена точно. Это могут быть, например, какие-нибудь предельные случаи. Если результат, полученный с помощью программы, с ожидаемым, есть основание полагать, что программа работает корректно.
Отладка в среде BorlandDelphi производилась на всех этапах разработки. Организация редактирования данных потребовала учесть нюансы совместимости форматов, проверки заполнения обязательных полей, удаления пустых строк. Работа со встроенным отладчиком помогла обнаружить связанные с обработкой данных ошибки и выполнить оптимизацию алгоритмов.
Необходимо отметить, что даже теперь, когда результат, полученный с помощью созданной программы, совпадает с точными значениями, нельзя полностью утверждать, что программа работает корректно, так как тестирование программы не может доказать полную правильность её работоспособности.
Заключение
Сложившиеся формы и методы работы с документацией в организациях в рамках традиционного делопроизводства и документационного обеспечения управления не отвечают современным условиям. Глобальная информатизация общества, широкое распространение новых информационных и коммуникационных технологий, постепенное внедрение рыночных механизмов и современного менеджмента привели к усилению роли информации в социально-экономических процессах и осознанию ее как важнейшего стратегического ресурса. В связи с тем, что основную часть информационного ресурса составляет документация, можно считать, что на современном этапе созрели необходимые предпосылки для перехода к концептуально новому способу работы с документами в организациях - управлению документацией на методологии информационного менеджмента. Автоматизация систем управления документацией требует особого внимания к следующим моментам:
1. Изучение информации как научной категории, познание законов и закономерностей информационных процессов методологически приближает к пониманию вопросов управления документацией.
2. Для управленческого документа существенным является носитель информации.
3. Существует специфика электронных документов, особенно в части юридической силы, подлинности, способов хранения, применения открытых форматов и стандартов записи для обмена электронными документами.
Однако наряду с вышеперечисленными положительными сторонами систем электронного документооборота имеются и отрицательные:
1. Переобучение персонала.
2. Увеличение объема документооборота.
Комплексное научное решение этих проблем является одной из самых актуальных задач автоматизации документоведения и архивоведения.
Список литературы
1. Бекаревич Ю.Б. MSAccess 2000 за 30 занятий: практ. Пособие. - СПб.: БХВ - Петербург, 2000. - 492 с.
2. Флёнов М.Е. Библия Delphi. - СПб.: БХВ - Петербург, 2004. - 880с.
3. Хомоненко А.Д. и др. Delphi 7. - СПб.: БХВ - Петербург, 2008. - 1216 с.: ил.
4. Корняков В.Н. Программирование документов и приложений MSOffice в Delphi. - СПб.: БХВ - Петербург, 2005. - 496с.: ил.
5. ГрибачевК.Г. Delphi и Model Driven Architecture. Разработака приложений БД. - СПб.: Питер, 2004. - 348с.: ил.
Приложения
Приложение 1
Руководство пользователя
После запуска приложения необходимо выбрать свою должность, логин из списков и ввести пароль:
Далее, в зависимости от вашей должности, открывается окно программы:
либо
В окне Руководителя слева отображаются документы: принятые (новые входящие) и утверждённые (те документы, которые уже были просмотрены, утверждены или отклонены). При двойном щелчке мыши в поле, где отображается информация о документе, откроется окно, где можно просмотреть текст документа, информацию о нём, а также утвердить или отклонить документ.
В окне Секретаря есть таблица, в которой отображаются документы, созданные данным секретарём. Щёлкнув правой кнопкой мыши в этом поле, можно просмотреть рекомендации руководителей к исправлению документов.
Приложение 2
Текст основных программных модулей
unit Authorization;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, XPMan;
type
TAuthForm = class (TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
StatCmB: TComboBox;
LogCmB: TComboBox;
PassEdit: TEdit;
SavePasChBox: TCheckBox;
Button1: TButton;
Button2: TButton;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
XPManifest1: TXPManifest;
procedureSavePasChBoxClick (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedureFormCreate (Sender: TObject);
procedureStatCmBChange (Sender: TObject);
procedure Button2Click (Sender: TObject);
procedureLogCmBChange (Sender: TObject);
private
{ Private declarations }
public
KeyUser: integer;
{ Public declarations }
end;
var
AuthForm: TAuthForm;
implementation
usesMainRuk, MainSek, ChangePassword;
{$R *. dfm}
procedureTAuthForm. SavePasChBoxClick (Sender: TObject);
begin
if (SavePasChBox. Checked = True) then
PassEdit. PasswordChar: = #0
else
PassEdit. PasswordChar: = '*';
end;
procedure TAuthForm. Button1Click (Sender: TObject);
var
SavePassword, Password: string;
begin
aDOQuery1. Close;
AdoQuery1. SQL. Clear;
AdoQuery1. Parameters. Add;
AdoQuery1. Parameters [0]. Name: ='p';
AdoQuery1. Parameters [0]. Value: =KeyUser;
AdoQuery1. SQL. Add ('Select * From Users Where id_user=: p');
AdoQuery1. Open;
Password: =AdoQuery1 ['Password'];
if (PassEdit. Text = Password) then
begin
if statCmb. Text='Руководитель' then
begin
Application. CreateForm (TMainFormRuk, MainFormRuk);
MainFormRuk. StartMes. Caption: =AdoQuery1 ['Login'];
MainFormRuk. Show;
AuthForm. Hide;
end
else
begin
Application. CreateForm (TMainFormSek, MainFormSek);
MainFormSek. StartMes. Caption: =AdoQuery1 ['Login'];
MainFormSek. Show;
AuthForm. Hide;
end;
end
else
Showmessage ('Неверныйпароль');
end;
{begin
If (StatCmB. Text = '') then
ShowMessage ('Введите исходные данные! ')
else
AuthForm. Visible: = False;
If (StatCmB. Text = 'Руководитель') then
begin
MainFormRuk. Visible: = True;
MainFormRuk. StartMes. Caption: = 'Пользователь: ';
If (AuthForm. LogCmB. Text = 'ЗиминН.В. ') then
MainFormRuk. StartMes. Caption: = MainFormRuk. StartMes. Caption + 'ЗиминНиколайВладимирович';
If (AuthForm. LogCmB. Text = 'ЛожкинА.М. ') then
MainFormRuk. StartMes. Caption: = MainFormRuk. StartMes. Caption + 'ЛожкинАлександрМихайлович';
If (AuthForm. LogCmB. Text = 'СидоровД.Ю. ') then
MainFormRuk. StartMes. Caption: = MainFormRuk. StartMes. Caption + 'СидоровДенисЮрьевич';
end;
If (StatCmB. Text = 'Секретарь') then
begin
MainFormSek. Visible: = True;
MainFormSek. StartMes. Caption: = 'Пользователь: ';
If (AuthForm. LogCmB. Text = 'ИвановаЛ.И. ') then
MainFormSek. StartMes. Caption: = MainFormSek. StartMes. Caption + 'ИвановаЛарисаИвановна';
If (AuthForm. LogCmB. Text = 'ПетроваМ.Н. ') then
MainFormSek. StartMes. Caption: = MainFormSek. StartMes. Caption + 'ПетроваМаринаНиколаевна';
end;
end; }
procedureTAuthForm. FormCreate (Sender: TObject);
var s: string;
begin
StatCmB. Items. Add ('Руководитель');
StatCmB. Items. Add ('Секретарь');
{AuthForm. ADOConnection1. Close;
s: =ExtractFilePath (paramstr (0));
AuthForm. ADOConnection1. ConnectionString: ='Provider=Microsoft. Jet. OLEDB.4.0; '+
'User ID=Adminata Source='+
s+'\Users. mdb'+
'; Mode=Share Deny None; Extended'+
' Properties=""; Jet OLEDB: System' +
' database=""; Jet OLEDB: Registry '+
'Path=""; JetOLEDB: Database '+
'Password=""; JetOLEDB: Engine '+
'Type=5; JetOLEDB: Database Locking '+
'Mode=1; JetOLEDB: Global Partial Bulk '+
'Ops=2; JetOLEDB: Global Bulk Transactions=1; '+
'Jet OLEDB: New Database Password=""; Jet OLEDB: Create '+
'System Database=False; JetOLEDB: Encrypt Database=False; '+
'Jet OLEDB: Don''t Copy Locale on Compact=False; Jet OLEDB: '+
'Compact Without Replica Repair=False; Jet OLEDB: SFP=False';
AuthForm. ADOConnection1. Open; }
end;
procedureTAuthForm. StatCmBChange (Sender: TObject);
begin
LogCmB. Clear;
ADOQuery1. Close;
ADOQuery1. SQL. Clear;
ADOQuery1. Parameters. Add;
ADOQuery1. Parameters [0]. name: = 'p';
ADOQuery1. parameters [0]. value: = StatCmB. text;
AdoQuery1. sql. add ('Select Login From Users Where Status =: p');
Adoquery1. Open;
while not AdoQuery1. Eof do
begin
LogCmB. Items. Add (AdoQuery1 ['Login']);
AdoQuery1. next;
end;
LogCmB. ItemIndex: = 0;
end;
procedure TAuthForm. Button2Click (Sender: TObject);
begin
if (LogCmB. Text = '') then
ShowMessage ('Выберитепользователя! ')
else
ChPassForm. Visible: = True
end;
procedureTAuthForm. LogCmBChange (Sender: TObject);
begin
KeyUser: = 0;
ADOQuery1. Close;
ADOQuery1. SQL. Clear;
ADOQuery1. Parameters. Add;
ADOQuery1. Parameters [0]. Name: ='p';
ADOQuery1. Parameters [0]. Value: =Logcmb. Text;
ADOQuery1. SQL. Add ('Select id_user From Users Where login=: p');
ADOQuery1. Open;
KeyUser: =AdoQuery1 ['id_user'];
end;
end.
--------------------------------------------------------------------
--------------------------------------------------------------------
unitMainRuk;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus, StdCtrls, XPMan, DB, ADODB, Grids, DBGrids;
type
TMainFormRuk = class (TForm)
TimePan: TPanel;
Timer1: TTimer;
MainMenu1: TMainMenu;
N1: TMenuItem;
F21: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
F11: TMenuItem;
N4: TMenuItem;
StartMes: TLabel;
ListBox1: TListBox;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
Button1: TButton;
XPManifest1: TXPManifest;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
procedure Timer1Timer (Sender: TObject);
procedure N2Click (Sender: TObject);
procedure F21Click (Sender: TObject);
procedure N4Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure ListBox1DblClick (Sender: TObject);
procedure DBGrid1DblClick (Sender: TObject);
Procedure ListBoxLoad;
procedureFormCreate (Sender: TObject);
procedure F11Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainFormRuk: TMainFormRuk;
implementation
uses Authorization, About, NewTask, Unit1, Help;
{$R *. dfm}
Procedure TMainFormRuk. ListBoxLoad;
varstr, str2: string;
begin
ListBox1. Clear;
ADOQuery1. Close;
ADOQuery1. SQL. Clear;
ADOQuery1. Prepared;
ADOQuery1. Parameters. Add;
ADOQuery1. Parameters [0]. Name: = 'p1';
ADOQuery1. Parameters [0]. Value: = AuthForm. KeyUser;
ADOQuery1. SQL. Add ('Select (count (*)) as ct ' +
'From DocUsers ' +
'Where id_user=: p1 and Status="0"');
ADOQuery1. Open;
str: = ADOQuery1 ['ct'];
ADOQuery1. Close;
ADOQuery1. SQL. Clear;
ADOQuery1. Prepared;
ADOQuery1. Parameters. Add;
ADOQuery1. Parameters [0]. Name: ='p1';
ADOQuery1. Parameters [0]. Value: =AuthForm. KeyUser;
ADOQuery1. SQL. Add ('Select (count (*)) as ct ' +
'From DocUsers ' +
'Where id_user=: p1 and Status ="1" ');
ADOQuery1. Open;
str2: =ADOQuery1 ['ct'];
ListBox1. Items. Add ('Принятые ('+str2+') ');
ListBox1. Items. Add ('Утвержденные ('+str+') ');
end;
procedure TMainFormRuk. Timer1Timer (Sender: TObject);
begin
Timepan. Caption: = TimeToStr (Time);
end;
procedure TMainFormRuk. N2Click (Sender: TObject);
begin
Application. Terminate
end;
procedure TMainFormRuk. F21Click (Sender: TObject);
begin
MainFormRuk. Visible: = False;
AuthForm. Visible: = True;
end;
procedure TMainFormRuk. N4Click (Sender: TObject);
begin
AbForm. Visible: = True;
end;
procedure TMainFormRuk. Button1Click (Sender: TObject);
begin
NewTaskForm. ADOQuery1. Close;
NewTaskForm. ADOQuery1. SQL. Clear;
NewTaskForm. ADOQuery1. SQL. Add ('Select * From Users Where Status="Секретарь"');
NewTaskForm. ADOQuery1. Open;
while not (NewTaskForm. ADOQuery1. Eof) do
begin
NewTaskForm. KomuCmB. Items. Add (NewTaskForm. ADOQuery1 ['Login']);
NewTaskForm. ADOQuery1. Next;
end;
NewTaskForm. KomuCmB. ItemIndex: =0;
NewTaskForm. Visible: = True;
end;
procedure TMainFormRuk. ListBox1DblClick (Sender: TObject);
begin
if ListBox1. Selected [0] then
begin
Form1. Button1. enabled: =true;
Form1. Button3. enabled: =true;
ADOQuery3. Close;
ADOQuery3. SQL. Clear;
ADOQuery3. Parameters. Add;
ADOQuery3. Parameters [0]. Name: ='p';
ADOQuery3. Parameters [0]. Value: =AuthForm. KeyUser;
ADOQuery3. SQL. Add ('Select * From Documents Where Key in (Select id_document ' +
'From DocUsers ' +
'Where id_User=: p and Status="1") ');
ADOQuery3. open;
ADOQuery3. Fields [0]. Visible: =false;
ADOQuery3. Fields [1]. DisplayWidth: =20;
ADOQuery3. Fields [2]. DisplayWidth: =20;
ADOQuery3. Fields [3]. visible: =false;
ADOQuery3. Fields [4]. DisplayWidth: =20;
ADOQuery3. Fields [5]. DisplayWidth: =20;
ADOQuery3. Fields [6]. Visible: =false;
end;
if ListBox1. Selected [1] then
begin
Form1. Button1. enabled: =false;
Form1. Button3. enabled: =false;
ADOQuery3. Close;
ADOQuery3. SQL. Clear;
ADOQuery3. Parameters. Add;
ADOQuery3. Parameters [0]. Name: ='p';
ADOQuery3. Parameters [0]. Value: =AuthForm. KeyUser;
ADOQuery3. SQL. Add ('Select * From Documents Where Key in (Select id_document ' +
'From DocUsers ' +
'Where id_User=: p and Status="0") ');
ADOQuery3. open;
ADOQuery3. Fields [0]. Visible: =false;
ADOQuery3. Fields [1]. DisplayWidth: =20;
ADOQuery3. Fields [2]. DisplayWidth: =20;
ADOQuery3. Fields [3]. visible: =false;
ADOQuery3. Fields [4]. DisplayWidth: =20;
ADOQuery3. Fields [5]. DisplayWidth: =20;
ADOQuery3. Fields [6]. Visible: =false;
end;
end;
procedure TMainFormRuk. DBGrid1DblClick (Sender: TObject);
begin
Form1. Edit1. text: =MainFormRuk. ADOQuery3 ['Name_Doc'];
Form1. Edit2. text: =MainFormRuk. ADOQuery3 ['Type_Doc'];
Form1. Edit3. text: =MainFormRuk. ADOQuery3 ['Date_Create'];
Form1. Edit4. text: =MainFormRuk. ADOQuery3 ['Srok'];
Form1. memo1. text: =MainFormRuk. ADOQuery3 ['Primechanie'];
Form1. ShowModal;
end;
procedureTMainFormRuk. FormCreate (Sender: TObject);
begin
ListBoxLoad;
end;
procedure TMainFormRuk. F11Click (Sender: TObject);
begin
HelpForm. Visible: = True;
end;
end.
-----------------------------------------------------------
-----------------------------------------------------------
unitMainSek;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus, StdCtrls, DB, ADODB, Grids, DBGrids, ShellApi,
XPMan, ComCtrls;
type
TMainFormSek = class (TForm)
TimePan: TPanel;
Timer1: TTimer;
MainMenu1: TMainMenu;
N1: TMenuItem;
F21: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
F11: TMenuItem;
N4: TMenuItem;
StartMes: TLabel;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
Button1: TButton;
XPManifest1: TXPManifest;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
ADOTable1: TADOTable;
DBGrid1: TDBGrid;
PopupMenu1: TPopupMenu;
N5: TMenuItem;
procedure F21Click (Sender: TObject);
procedure N2Click (Sender: TObject);
procedure N4Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure Timer1Timer (Sender: TObject);
procedureFormCreate (Sender: TObject);
procedure N5Click (Sender: TObject);
procedure F11Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainFormSek: TMainFormSek;
implementation
uses Authorization, About,NewDoc, Unit3, Help;
{$R *. dfm}
procedure TMainFormSek. F21Click (Sender: TObject);
begin
MainFormSek. Visible: = False;
AuthForm. Visible: = True;
end;
procedure TMainFormSek. N2Click (Sender: TObject);
begin
Application. Terminate;
end;
procedure TMainFormSek. N4Click (Sender: TObject);
begin
AbForm. Visible: = True;
end;
procedure TMainFormSek. Button1Click (Sender: TObject);
begin
frmNewDoc. Edit2. Text: =DateTimeToStr (Now);
frmNewDoc. ADOQuery1. Close;
frmNewDoc. ADOQuery1. SQL. Clear;
frmNewDoc. ADOQuery1. SQL. Add ('Select * From Users Where Status="Руководитель"');
frmNewDoc. ADOQuery1. Open;
while not (frmNewDoc. ADOQuery1. Eof) do
begin
frmNewDoc. CheckListBox1. Items. Add (frmNewDoc. ADOQuery1 ['Login']);
frmNewDoc. ADOQuery1. Next;
end;
frmNewDoc. showmodal;
end;
procedure TMainFormSek. Timer1Timer (Sender: TObject);
begin
TimePan. Caption: = TimeToStr (Time);
end;
procedureTMainFormSek. FormCreate (Sender: TObject);
varm,n,k: integer;
begin
ADOQuery3. Close;
ADOQuery3. SQL. Clear;
ADOQuery3. Prepared;
ADOQuery3. Parameters. Add;
ADOQuery3. Parameters [0]. Name: = 'p1';
ADOQuery3. Parameters [0]. Value: = AuthForm. KeyUser;
ADOQuery3. SQL. Add ('Select *' +
'From Documents ' +
'Where ID_Sek=: p1');
ADOQuery3. Open;
n: =0; k: =0; m: =0;
ADOQuery1. Close;
ADOQuery1. SQL. Clear;
ADOQuery1. Prepared;
ADOQuery1. Parameters. Add;
ADOQuery1. Parameters [0]. Name: = 'p1';
ADOQuery1. Parameters [0]. Value: = AuthForm. KeyUser;
ADOQuery1. SQL. Add ('Select *' +
'From Documents ' +
'Where ID_Sek=: p1');
ADOQuery1. Open;
while not ADOQuery1. Eof do
begin
ADOQuery2. Close;
ADOQuery2. SQL. Clear;
ADOQuery2. Parameters. Add;
ADOQuery2. Parameters [0]. Name: ='p';
ADOQuery2. Parameters [0]. Value: =ADOQuery1 ['Key'];
ADOQuery2. SQL. Add ('Select * From DocUsers Where id_document=: p');
ADOQuery2. Open;
while not ADOQuery2. Eof do
begin
if ADOQuery2 ['Status'] ='0' then
inc (m);
if ADOQuery2 ['Status'] ='1' then
inc (n);
if ADOQuery2 ['Status'] ='2' then
inc (k);
ADOQuery2. Next;
end;
ADOQuery1. Edit;
if (n+k) =0 then
ADOQuery1 ['Stat']: ='Утверждено'
else
ADOQuery1 ['Stat']: ='Неутверждено';
ADOQuery1. Post;
ADOQuery1. Next;
end;
ADOQuery3. Active: =false;
ADOQuery3. Active: =true;
ADOQuery3. Fields [0]. Visible: =false;
ADOQuery3. Fields [6]. Visible: =false;
ADOQuery3. Fields [7]. Visible: =false;
ADOQuery3. Fields [1]. DisplayWidth: =20;
ADOQuery3. Fields [2]. DisplayWidth: =20;
ADOQuery3. Fields [3]. visible: =false;
ADOQuery3. Fields [4]. DisplayWidth: =20;
ADOQuery3. Fields [5]. DisplayWidth: =20;
ADOQuery3. Fields [8]. DisplayWidth: =20;
end;
procedure TMainFormSek. N5Click (Sender: TObject);
begin
Form3. Memo1. Clear;
Form3. Memo1. Lines. Add ('Заметкиоставленныеруководителями');
Form3. ADOQuery1. Close;
Form3. ADOQuery1. SQL. Clear;
Form3. ADOQuery1. Prepared;
Form3. ADOQuery1. Parameters. Add;
Form3. ADOQuery1. Parameters [0]. Name: = 'p1';
Form3. ADOQuery1. Parameters [0]. Value: = AuthForm. KeyUser;
Form3. ADOQuery1. SQL. Add ('Select *' +
'From Documents ' +
'Where ID_Sek=: p1');
Form3. ADOQuery1. Open;
while not Form3. ADOQuery1. Eof do
begin
Form3. ADOQuery2. Close;
Form3. ADOQuery2. SQL. Clear;
Form3. ADOQuery2. Parameters. Add;
Form3. ADOQuery2. Parameters [0]. Name: ='p';
Form3. ADOQuery2. Parameters [0]. Value: =Form3. ADOQuery1 ['Key'];
Form3. ADOQuery2. SQL. Add ('Select * From DocUsers Where id_document=: p');
Form3. ADOQuery2. Open;
while not Form3. ADOQuery2. Eof do
begin
Form3. Memo1. Lines. Add (Form3. ADOQuery2 ['PrichOtkl']);
Form3. ADOQuery2. Next;
end;
Form3. ADOQuery1. Edit;
Form3. ADOQuery1. Next;
end;
Form3. ShowModal;
end;
procedure TMainFormSek. F11Click (Sender: TObject);
begin
HelpForm. Visible: = True;
end;
end.
-----------------------------------------------------------
-----------------------------------------------------------
unitNewDoc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, CheckLst, Mask, DB, ADODB, Buttons,ComObj;
type
TfrmNewDoc = class (TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
MaskEdit1: TMaskEdit;
Label5: TLabel;
Memo1: TMemo;
CheckListBox1: TCheckListBox;
Label6: TLabel;
ADOQuery1: TADOQuery;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ADOTable1: TADOTable;
ADOTable2: TADOTable;
ADOTable3: TADOTable;
procedure BitBtn1Click (Sender: TObject);
procedure BitBtn2Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmNewDoc: TfrmNewDoc;
implementation
Uses Authorization, MainSek;
{$R *. dfm}
procedure TfrmNewDoc. BitBtn1Click (Sender: TObject);
var w: variant;
i: integer;
s: string;
begin
s: =ExtractFilePath (paramstr (0));
w: =CreateOleObject ('Word. Application');
w. visible: =true;
w. Documents. add;
w. ActiveDocument. SaveAs (s+'\'+edit1. Text+'. doc');
MainFormSek. ADOQuery3. Insert;
MainFormSek. ADOQuery3 ['Name_Doc']: =edit1. Text;
MainFormSek. ADOQuery3 ['Type_Doc']: =ComboBox1. Text;
MainFormSek. ADOQuery3 ['Primechanie']: =Memo1. Text;
MainFormSek. ADOQuery3 ['Date_Create']: =strtoDateTime (Edit2. Text);
MainFormSek. ADOQuery3 ['Srok']: =strtoDate (MaskEdit1. Text);
MainFormSek. ADOQuery3 ['Path']: =s+'\'+edit1. Text+'. doc';
MainFormSek. ADOQuery3 ['Stat']: ='Неутверждён';
MainFormSek. ADOQuery3 ['ID_Sek']: =AuthForm. KeyUser;
MainFormSek. ADOQuery3. Post;
for i: = 0 to (CheckListBox1. Items. Count - 1) do
if (CheckListBox1. Checked [i]) then
begin
ADOTable2. Insert;
if ADOTable3. Locate ('Login',CheckListBox1. Items. Strings [i], []) then
begin
ADOTable2 ['id_user']: = ADOTable3 ['id_user'];
ADOQuery1. Close;
ADOQuery1. SQL. Clear;
ADOQuery1. SQL. Append ('SELECT Top 1 Key ' +
'FROM Documents ' +
'Order by Key Desc');
ADOQuery1. Open;
ADOQuery1. Open;
ADOTable2 ['id_document']: = inttostr (ADOQuery1 ['Key']);
ADOTable2 ['Status']: = '1';
ADOTable2. Post;
end;
end;
MainFormSek. ADOQuery3. Active: =false;
MainFormSek. ADOQuery3. Active: =true;
MainFormSek. ADOQuery3. Fields [0]. Visible: =false;
MainFormSek. ADOQuery3. Fields [6]. Visible: =false;
MainFormSek. ADOQuery3. Fields [7]. Visible: =false;
MainFormSek. ADOQuery3. Fields [1]. DisplayWidth: =20;
MainFormSek. ADOQuery3. Fields [2]. DisplayWidth: =20;
MainFormSek. ADOQuery3. Fields [3]. visible: =false;
MainFormSek. ADOQuery3. Fields [4]. DisplayWidth: =20;
MainFormSek. ADOQuery3. Fields [5]. DisplayWidth: =20;
MainFormSek. ADOQuery3. Fields [8]. DisplayWidth: =20;
end;
procedure TfrmNewDoc. BitBtn2Click (Sender: TObject);
begin
close;
end;
end.
Размещено на Allbest.ru
Подобные документы
Выбор физических параметров для проектирования локальной вычислительной сети. Разработка концептуальной и логической моделей системы управления документооборотом, ее предметного воплощения, создание баз данных в Ms Access и программного приложения.
курсовая работа [1,1 M], добавлен 19.11.2010Стадии обработки документов в туристическом агентстве, проектирование базы данных. Реализация программного продукта с помощью объектно-ориентированного языка программирования Borland Delphi 7.0. и системы управления базами данных Microsoft Access 2003.
дипломная работа [6,5 M], добавлен 22.01.2012Назначение создания информационной системы "Электронный журнал" для автоматизации контроля учебного процесса. Построение логической и реляционной моделей данных. Разработка клиент-серверного приложения для работы с базой данных; программная реализация.
дипломная работа [5,9 M], добавлен 19.01.2017Базовые принципы правового регулирования трудовых отношений. Проектирование автоматизированной информационной системы "Отдел кадров", программная реализация, тестирование. Состав базы данных, методы анализа надежности системы, руководство пользователя.
дипломная работа [3,6 M], добавлен 11.03.2010Характеристика организации обработки информации в информационной системе управления. Программная реализация и алгоритм решения комплекса задач по внедрению смарт-карт. Анализ и оценка эффективности информационных технологий управления документооборотом.
дипломная работа [2,3 M], добавлен 05.07.2010Анализ предметной области и разработка структуры информационой системы (ИС) "Кадры". Описание информационных процессов. Разработка структуры БД и структуры ИС. Разработка структуры базы данных и интерфейсов. Реализация и тестирование ИС "Кадры".
курсовая работа [1,2 M], добавлен 06.01.2008Задачи, функции и структура филиала университета. Оценка информационных потоков и UML-моделирование. Анализ структуры информационной системы и системы навигации. Проектирование базы данных, физическая реализация и тестирование информационной системы.
дипломная работа [6,0 M], добавлен 21.01.2012Задачи системы электронного документооборота. Анализ существующих информационных систем. Методы и средства инженерии программного обеспечения. Концептуальная модель данных в BPWin. Построение инфологической модели системы документооборота "Doc_Univer".
курсовая работа [56,1 K], добавлен 25.03.2014Появление системы управления базами данных. Этапы проектирования базы данных "Строительная фирма". Инфологическая и даталогическая модель данных. Требования к информационной и программной совместимости для работы с базой данных "Строительная фирма".
курсовая работа [93,0 K], добавлен 31.03.2010Аппаратные характеристики системы, использованной для разработки информационного ресурса "Сортировка слиянием". Проектирование логической и физической структуры ресурса, реализация его интерфейса. Основные функции программы, ее тестирование и отладка.
курсовая работа [2,1 M], добавлен 26.11.2012