Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке

Дипломная работа на тему «Структурированная система хранения документов предприятия»

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

Реферат

 

Пояснительная записка к дипломной работе бакалавра на тему «Структурированная система хранения документов предприятия» оформлена на 134 страницах, содержит 14 рисунков, 26 таблиц.

Ключевыми словами в данной работе являются: документ, каталог, документооборот, учет, хранение, сканирование, отчеты.

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

В результате разработана структурированная система хранения документов предприятия, которая позволяет:

создавать документы определенных типов;

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

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

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

прикреплять изображения к документу;

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

вести поиск по различным параметрам документа;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

помещать документы в архив;

распечатывать копию документа;

создавать и загружать резервные копии базы.

Система успешно внедрена и используется в полной мере.

Содержание

Введение

1. Разработка структурированной системы хранения документов предприятия

1.1 Обоснование целесообразности разработки системы

1.1.1 Назначение объекта автоматизации

1.1.2 Обоснование цели создания системы

1.1.3 Обоснование состава автоматизируемых задач, комплексов задач

1.2 Аналитический обзор

1.2.1 Программа «Документ плюс»

1.2.2 Программа «Архив документов»

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

1.2.3 Программа «ДокПартнер 2012»

1.2.4 Выводы по аналитическому обзору

1.3 Основные требования к системе

1.3.1 Цель создания системы и критерии эффективности её функционирования

1.3.2 Функциональное назначение системы

1.3.3 Требование к функциональной структуре системы

1.3.4 Состав типовых проектных решений и пакетов прикладных программ, применяемых в системе

1.3.5 Требования к техническому обеспечению

1.3.6 Требования к информационному обеспечению

1.3.7 Требования к программному обеспечению

1.3.8 Перспективность системы, возможность ее развития

1.4 Основные технические решения проекта системы

1.4.1 Описание организации информационной базы

1.4.2 Описание системы программного обеспечения

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

2. Разработка задачи структрированной системы хранения документов предприятия

2.1 Описание постановки задачи

2.1.1 Характеристика задачи

2.1.2 Описание выходной информации

2.1.3 Математическая постановка задачи

2.2 Описание алгоритма добавления документа

2.2.1 Назначение и характеристика

2.2.2 Используемая информация

2.2.3 Результаты решения

2.2.4 Математическое описание

2.2.5 Алгоритм решения

2.3 Описание алгоритма изменения документа

2.3.1 Назначение и характеристика

2.3.2 Используемая информация

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

2.3.3 Результаты решения

2.3.4 Математическое описание

2.3.5 Алгоритм решения

2.4 Описание алгоритма помещения документа в корзину

2.4.1 Назначение и характеристика

2.4.2 Используемая информация

2.4.3 Результаты решения

2.4.4 Математическое описание

2.4.5 Алгоритм решения

2.5 Описание алгоритма очистки корзины

2.5.1 Назначение и характеристика

2.5.2 Используемая информация

2.5.3 Результаты решения

2.5.4 Математическое описание

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

2.5.5 Алгоритм решения

2.6 Описание программы структурированной системы хранения документов предприятия

2.6.1 Функциональное назначение

2.6.2 Описание информации

2.6.3 Используемые подпрограммы

2.6.4 Описание логики

2.7 Описание контрольного примера

2.7.1 Назначение

2.7.2 Исходные данные

2.7.3 Результаты расчета

2.7.4 Результаты испытания программы структурированной системы хранения документов предприятия

3. Организационно-экономическая часть

3.1 Обоснование необходимости разработки структурированной системы хранения документов предприятия

3.2 Перечень этапов работ

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

3.3 Нормирование работ

3.4 Расчет сметной стоимости на разработку ПП

3.5 Расчёт срока окупаемости единовременных затрат и экономической выгоды от внедрения программного продукта на предприятии

3.6 Результат по организационно-экономической части

4. Охрана труда

4.1 Обеспечение безопасных условий труда инженера-разработчика

4.2 Расчет искусственного освещения рабочего места

Заключение

Список использованных источников

Приложение 1. Тексты программ

Приложение 2. Результаты работы программ

Приложение 3. Руководство оператора структурированной системы хранения документов предприятия

Введение

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

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

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

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

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

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

Основные задачи, решенные в представленной работе:

проработка логики управления документами;

разработка гибкой структуры базы данных, которая позволяет вести быстрый поиск по разным документам;

обеспечение простоты эксплуатации системы и настройки системы;

разработка механизма резервного копирования.

электронная база хранение документ
1. Разработка структурированной системы хранения документов предприятия
1.1 Обоснование целесообразности разработки системы
1.1.1 Назначение объекта автоматизации

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

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

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

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

Приведем список наиболее частых операций при работе с бумажной документацией:

ввод нового документа в системы. В него входят создание и заполнение карточки документа, а так же сканирование с бумажного носителя;

поиск документа в картотеке. Кроме названия, поиск может осуществляться по другим параметрам документа;

печать копии документа.

Таким образом, анализ предметной области [1] определил, что система хранения документов предприятия должна позволять следующее:

создавать документы определенных типов;

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

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

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

прикреплять изображения к документу;

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

вести поиск по различным параметрам документа;

помещать документы в архив;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

распечатывать копию документа;

создавать и загружать резервные копии базы.   1.2 Аналитический обзор

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

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

Таблица 1.1

Сводная таблица характеристик программ-аналогов

1.2.1 Программа «Документ плюс»

Программа встречает пользователя нагромождением таблиц и форм. Очень сложно освоиться в такой программе, поэтому потребуется продолжительное обучение сотрудника [2].

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

Недостатки: перегруженный интерфейс, ограниченный набор типов документов, не настраиваемая электронная карточка документов.   1.2.2 Программа «Архив документов»

Программа встречает пользователя стандартным строгим оформлением, о котором нельзя сказать ничего положительного и ничего отрицательного.

Главная проблема программы в том, что она все время напоминает сотруднику, что он работает с базой данных и, соответственно, требует определенной квалификации. Чтобы добавить новый тип документов, нужно буквально создать таблицу в базе; чтобы отфильтровать документы, нужно построить запрос по SQL-правилам. Это хорошая система, но ориентирована только на программистов [3].

Недостатки: сложное развертывание системы, для настройки программы требуется специалист.   1.2.3 Программа «ДокПартнер 2012»

Интерфейс программы выполнен в непонятной синеватой цветовой гамме и выглядит очень пусто [4].

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

В программе нет возможности настраивать карточки типов документов (единственное, что можно изменить — имя типа документов), и она не позволяет делать выборки документов по специфичным критериям. Это очень простая программа с очень скромными возможностями.

Недостатки: не интуитивный интерфейс, не настраиваемая форма ввода документа, универсальная карточка для всех разновидностей документов.   1.2.4 Выводы по аналитическому обзору

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

Основными преимуществами разрабатываемой структурированной системы хранения документов предприятия являются:

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

—        простота внедрения и эксплуатации системы. Для установки и поддержания в рабочем состоянии системы не требуется вмешательство специалиста;

удобство и лаконичность интерфейса, что, во-первых, обеспечивает быструю адаптацию сотрудника к системе, а, во-вторых, увеличивает скорость обработки документа.   1.3 Основные требования к системе
1.3.1 Цель создания системы и критерии эффективности её функционирования

Целью создания системы является увеличение производительности труда при обработке бумажных документов.

Критериями эффективности данной системы являются:

скорость и удобство ввода нового документа в систему;

скорость поиска документов, а так же количество критериев для поиска;

гибкость настройки системы под существующие бизнес-процессы в организации;

надежность хранения информации в системе;

простота внедрения системы и затраты на обучение сотрудников;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

простота эксплуатации.   1.3.2 Функциональное назначение системы

Структурированная система хранения документов предприятия предназначена для хранения и поиска документов, предоставляет следующие функции:

создание документов определенных типов (договора, приказы, свидетельства);

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

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

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

прикрепление изображения к документу;

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

поиск по различным параметрам документа;

перемещение документов в архив;

распечатка копии документа;

создание и загрузка резервных копий базы.   1.3.3 Требование к функциональной структуре системы

Структурная схема структурированной системы хранения документов предприятия представлена на рис.1.1.

Структурированная система хранения документов предприятия подразделяется на следующие подсистемы:

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

подсистема обслуживания приложения. Состоит из модулей: модуль резервного копирования (позволяет сохранить текущее состояние базы данных и хранилища файлов и восстановить его) и модуль обновления структуры базы данных (изменяет структуру базы данных для совместимости с новой версией приложения);

подсистема управления документами. Состоит их модулей: модуль логики обработки документов (инкапсулирует в себе правила обращения с документами — ввод нового документа, поиск, удаление) и модуль печати и сканирования документов (обеспечивает взаимодействие с принтером и сканером пользователя);

подсистема обращения к источникам данных. Состоит из модулей: модуль хранения прикрепленных файлов (позволяет хранить прикрепленные файлы в одном общем хранилище) и модуль обращения к базе данных (обеспечивает связь приложения с базой данных).

В целом система предоставляет следующие основные функциональные возможности:

) Заведение документа

Входные данные: описание документа по атрибутам.

Выходные данные: электронная карточка документа, записанная в базу данных;

) Поиск документа

Входные данные: критерии поиска.

Выходные данные: список найденных документов;

) Сканирование документа

Входные данные: изображение со сканера.

Выходные данные: прикрепленное к документу изображение записывается в хранилище файлов;

) Прикрепление файла к документу

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Входные данные: выбранный пользователь файл.

Выходные данные: прикрепленный файл записывается в хранилище файлов;

) Уведомление о документах с истекающим сроком

Входные данные: заведенные в базе данных электронные карточки документов.

Выходные данные: список документов с истекающим сроком;

) Подключение модуля расширения состава документов

Входные данные: файл модуля, помещенный в специальную папку.

Выходные данные: изменение структуры базы данных, добавление нового типа документов в систему;

) Резервное копирование

Входные данные: база данных и хранилище файлов

Выходные данные: сжатый файл — резервная копия.  
1.3.4 Состав типовых проектных решений и пакетов прикладных программ, применяемых в системе

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

В качестве базы данных была выбрана SQLite — эффективное решение, не требующее наличия выделенного сервера.   1.3.5 Требования к техническому обеспечению

Для работы структурированной системы хранения документов предприятия требуется персональный компьютер со следующими характеристиками и устройствами:

процессор: 1 ГГц (или выше);

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

ОЗУ: 1024 Мб (или выше);

жесткий диск: 10 Гб (или выше);

видеоадаптер;

монитор;

клавиатура;

мышь.

Для доступа к функциям печати и сканирования требуются соответствующие устройства.   1.3.6 Требования к информационному обеспечению

Во время работы структурированная система хранения документов предприятия использует базу данных SQLite (main. db);

Основные требования к базе данных:

надежность хранения данных;

развитая система транзакций;

большая скорость выполнения сложных запросов выбора;

отсутствие необходимости в выделенном сервере;

наличие развитых средств управления и проектирования базой данных;

наличие обширной документации.   1.3.7 Требования к программному обеспечению

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

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

Операционная система: Windows XP SP 3, Windows Vista, Windows 7 (или выше)

.net Framework 4.5 Client Profile;Installer 3.1 (или выше).

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

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

Дальнейшее развитие системы будет включать в себя:

разработку многопользовательской версии приложения;

разграничение прав доступа пользователей;

добавление истории операций над документами;

развитие пользовательского интерфейса;

работу с электронными документами (создание по шаблону, электронно-цифровая подпись)

добавление интеграции с существующими CRM-системами.   1.4 Основные технические решения проекта системы   1.4.1 Описание организации информационной базы

База данных организована с помощью СУБД SQLite.

Для описания ключей таблиц использованы следующие сокращения:

) ПК — первичный ключ;

) ВК — внешний ключ.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Таблица document содержит базовую информацию о документе. Структура таблицы приведена в табл. 1.2.

Таблица 1.2

Структура таблицы document

 

Таблица doc_type содержит информацию о подключенных типах документов. Структура таблицы приведена в табл. 1.3.

Таблица 1.3

Структура таблицы doc_type

 

Таблица doc_file_folder содержит данные о прикрепленных к документу папках. Структура таблицы приведена в табл. 1.4.

Таблица 1.4

Структура таблицы doc_file_folder

 

Таблица doc_file содержит данные о прикрепленных к документу файлах. Структура таблицы приведена в табл. 1.5.

Таблица 1.5

Структура таблицы doc_file

 

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Таблица search_tag содержит теги для быстрого поиска. Структура таблицы приведена в табл. 1.6.

Таблица 1.6

Структура таблицы search_tag

 

Таблица lnk_document_and_search_tag обеспечивает связь тегов с документами. Структура таблицы приведена в табл. 1.7.

Таблица 1.7

Структура таблицы lnk_document_and_search_tag

Таблица card_case содержит данные о ящиках в картотеке. Структура таблицы приведена в табл. 1.8.

Таблица 1.8

Структура таблицы card_case

 

Таблица card_folder содержит данные о папках в картотеке. Структура таблицы приведена в табл. 1.9.

Таблица 1.9

Структура таблицы card_folder

 

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Таблица 1.10

Структура таблицы concrete_doc1

 

Приведенная структура показывает возможность зависимости дополнительных таблиц относительно друг друга. Например, таблица concrete_doc1 зависит от словаря cd1_additonal со структурой, представленной в табл. 1.12.

Таблица 1.11

Структура таблицы cd1_additonal

 

Структура и связи между таблицами представлена на рис. 1.2.

Структура базы данных   1.4.2 Описание системы программного обеспечения

Для функционирования разрабатываемой системы необходимо следующее программное обеспечение:

Операционная система: Windows XP SP 3, Windows Vista, Windows 7 (или выше);

.net Framework 4.5 Client Profile;Installer 3.1 (или выше).

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

В качестве языка программирования был выбран C# — современный быстроразвивающийся язык, который несет в себе высокую скорость разработки приложений, строгий однозначный синтаксис и обширную документацию [5]. Этот язык компилируется в управляемый код и работает под управлением среды.net Framework, при этом немногим теряя в скорости выполнения.

В качестве СУБД используется SQLite, которая не требует наличия выделенного сервера. В этой базе данных хорошо сочетаются скорость доступа к информации, поддержка возможностей языка SQL и простота использования [6]. Библиотека SQLite является свободно распространяемой и может поставляться вместе с программным продуктом.

2. Разработка задачи структрированной системы хранения документов предприятия
2.1 Описание постановки задачи
2.1.1 Характеристика задачи

Структурированная система хранения документов предприятия предназначена для хранения и поиска документов, предоставляет возможности для сканирования и печати документов и обеспечивает резервное копирование данных.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

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

Задача включает в себя следующие подзадачи:

разработка структуры базы данных;

разработка пользовательских форм;

разработка классов доступа к базе данных.

Подзадача «Разработка структуры базы данных» заключается в организации структуры базы данных, создании таблиц и связей между ними.

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

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

Входной информацией являются:

события пользовательского интерфейса;

вводимые пользователем атрибуты документов. Каждый подключаемый тип документов может иметь свой набор атрибутов. Перечень общих атрибутов представлен в табл. 2.1;

прикрепляемые файлы.

Таблица 2.1

Общие атрибуты документа

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

2.1.2 Описание выходной информации

Выходной информацией являются: список документов; сводная информация о документе, которая кроме общих атрибутов документа (см. табл. 2.1) включает и специфичные для каждого типа документов поля; прикрепленные файлы.   2.1.3 Математическая постановка задачи

Каждый документ может быть описан ограниченным множеством параметров [7]. Представим документ как набор его атрибутов:

где Рс — набор атрибутов, характерных для каждого документа,

Рs — набор атрибутов, характерных для конкретного типа документа.

Документы одного и того же типа могут быть объединены в соответствующие множества вида:

где Ci — множество документов i-го типа,- количество документов i-го типа.

Введем на множествах  операцию добавления документа:

Все введенные в систему документы могут быть объедены в универсальное множество:

где C1 — универсальное множество документов, Ci — множество документов i-го типа, k — количество типов документов.

Выделим на множестве и подмножества. Очевидно, что:

Введем на множествах операцию поиска по фильтру:

Кроме этого, введем операцию удаления документов:   2.2 Описание алгоритма добавления документа
2.2.1 Назначение и характеристика

Алгоритм предназначен для добавления документа в базу данных.   2.2.2 Используемая информация

В качестве входной информации используются введенные пользователем данные с форм.

Кроме общих атрибутов (см. табл. 2.1) каждый тип документов может иметь набор специфичных полей.   2.2.3 Результаты решения

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

Если к документу были прикреплены файлы, то так же обновляются таблицы doc_file и doc_file_folder, а так же хранилище файлов.

В случае возникновения ошибки пользователю выводится сообщение. Перечень сообщений представлен в таблице 2.2.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Таблица 2.2

Перечень сообщений алгоритма добавления документа

2.2.4 Математическое описание

Алгоритм реализует операцию добавления документа в множество документов заданного типа, которая определена в формуле (2.4)   2.2.5 Алгоритм решения

Алгоритм представлен графически в виде схемы на рис. 2.1.

Схема алгоритма добавления документа
2.3 Описание алгоритма изменения документа   2.3.1 Назначение и характеристика

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

В качестве входной информации используются:

идентификатор редактируемого документа;

данные из таблиц: document, doc_file, doc_file_folder и других, специфичных для каждого типа документов

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

Результатом решения алгоритма является изменение записи в таблице document, а так же в других таблицах, связанных с конкретным типом документов.

Если к документу были прикреплены файлы, то так же обновляются таблицы doc_file и doc_file_folder, а так же хранилище файлов.

В случае возникновения ошибки пользователю выводится сообщение. Перечень сообщений представлен в табл. 2.3.

Таблица 2.3

Перечень сообщений алгоритма изменения документа

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

2.3.4 Математическое описание

Операция изменения документа может быть представлена следующим образом:

  2.3.5 Алгоритм решения

Алгоритм представлен графически в виде схемы на рис. 2.2.

Схема алгоритма изменения документа. 2.4 Описание алгоритма помещения документа в корзину
2.4.1 Назначение и характеристика

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

В качестве входной информации выступает идентификатор помещаемого в корзину документа.   2.4.3 Результаты решения

Результатом решения является установка признака помещения в корзину у записи в таблице document.   2.4.4 Математическое описание

Основываясь на формуле 2.8, операция помещения документа в корзину можно выразить следующим образом:
2.4.5 Алгоритм решения

Алгоритм представлен графически в виде схемы на рис. 2.3.

Схема алгоритма помещения документа в корзину   2.5 Описание алгоритма очистки корзины
2.5.1 Назначение и характеристика

Алгоритм предназначен для корректного безвозвратного удаления документов, помещенных в корзину.  
2.5.2 Используемая информация

Алгоритм использует информацию из таблицы document.   .5.3 Результаты решения

Результатом работы алгоритма является исключение из таблицы document (и связанных с конкретным документом таблиц) записей, помеченных как помещенные в корзину.   2.5.4 Математическое описание

Используя формулы (2.4), (2.6) и (2.7) алгоритм можно описать так:
2.5.5 Алгоритм решения

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Алгоритм представлен графически в виде схемы на рис. 2.4.

Схема алгоритма очистки корзины:   .6 Описание программы структурированной системы хранения документов предприятия
2.6.1 Функциональное назначение

Программа StructDoc предназначена для ведения электронного учета бумажной документации. Ее функции включают:

добавление, изменение и удаление документов;

поиск документов;

прикрепление файлов к документам;

архивация и восстановление базы данных;

сканирование документов;

печать документов.  
2.6.2 Описание информации

Программа использует файлы: documents. sqlite (база данных); storage. ind и storage. dat (хранилище файлов); user. config (файл настроек).

Кроме этого, к входной информации можно отнести: события пользовательского интерфейса; вводимые пользователем атрибуты документов. Кроме общих атрибутов (см. табл. 2.1) каждый подключаемый тип документов может иметь свой набор атрибутов.

прикрепляемые файлы.

К выходной информации можно отнести:

список документов;

сводная информация о документе, которая кроме общих атрибутов документа (см. табл. 2.1) включает и специфичные для каждого типа документов поля;

прикрепленные файлы.   .6.3 Используемые подпрограммы

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Программа разбита на классы:- стартовая точка приложения;- класс базы данных, содержит базовые функции работы с базой и механизм расширения функциональности по средствам включения модулей;- базовый класс для всех фильтров документов;- фильтр документа по общим свойствам;- вспомогательный класс обращения к базе данных. Все запросы к базе данных проходят через него;- класс конструирования запросов;- класс, представляющий схему базы данных (набор таблиц и связей между ними);- класс, представляющий таблицу в схеме базы данных;- класс, представляющий связи между таблицами в схеме базы данных;- базовый класс для модулей — дополнительных функций работы с базой;- модуль логики, реализующий функции печати;- модуль логики, реализующий функции сканирования;- класс, реализующий функции взаимодействия приложения с хранилищем файлов;- класс вызова функций библиотеки, которая позволяет обратиться к TWAIN-драйверу (для сканирования на старых устройствах);- класс, предоставляющий функции обработки изображений;- класс, реализующий обращение либо к интерфейсу WIA, либо к TWAIN-драйверу;   .6.4 Описание логики

Логика описана в виде схемы работы системы на рис. 2.5.

Схема работы системы:
2.7 Описание контрольного примера
2.7.1 Назначение

Контрольный пример предназначен для проверки правильности работы следующих функций структурированной системы хранения документов предприятия:

добавление документа;

редактирование документа;

прикрепление к документу файла с диска;

прикрепление к документу отсканированного изображения;

поиск документов;

удаление документа;

печать документа;

архивация базы данных;

восстановление базы данных.   2.7.2 Исходные данные

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Тест 1 «Добавление документов». В структурированную систему хранения документов предприятия вводятся 4 документа. Их параметры представлены в табл. 2.4.

Таблица 2.4

Первоначальный перечень документов

 

Тест 2 «Редактирование документа». Параметры документа «Договор аренды 2» корректируются согласно табл. 2.5.

Таблица 2.5

Редактирование параметров документа «Договор аренды 2»

 

Тест 3 «Поиск документов». Выполняются 2 запроса поиска:

все договора;

договора с суммой больше 500 000 руб и все приказы.

Тест 4 «Удаление документа». Удаляется документ «Договор аренды 3».

Тест 5 «Печать документа». Сводная информация о документе «Приказ 4» выводится на печать.

Тест 6 «Архивация и восстановление базы». База сохраняется в файл «backup. bkp», удаляются все договора и затем база восстанавливается из архива «backup. bkp».   2.7.3 Результаты расчета

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Результат выполнения теста 1 «Добавление документов» представлен на рис. 2.6.

Результат выполнения теста 1 «Добавление документов»

Результат выполнения теста 2 «Редактирование документа» представлен на рис. 2.7.

Результат выполнения теста 2 «Редактирование документа»

Результат выполнения теста 3 «Поиск документов» представлен на рис. 2.8 (запрос 1: все договора) и рис. 2.9 (запрос 2: договора с суммой больше 500 000 руб и все приказы).

Результат выполнения теста 3 «Поиск документов» для запроса 1

Результат выполнения теста 3 «Поиск документов» для запроса 2

Результат выполнения теста 4 «Удаление документа» представлен на рис. 2.10.

Результат выполнения теста 4 «Удаление документа»

Результатом выполнения теста 5 «Печать документа» является печать документа представленного рис. 2.11.

Результат выполнения теста 5 «Печать документа»

Результатом выполнения теста 6 «Архивация и восстановление базы» является создание резервной копии базы (файл backup. bkp) и последующее восстановление базы из этой копии.   .7.4 Результаты испытания программы структурированной системы хранения документов предприятия

Фактические результаты испытания программы структурированной системы хранения документов предприятия совпали с ожидаемыми.

Следовательно, программа работает правильно и может быть внедрена в реальные организации.

3. Организационно-экономическая часть
3.1 Обоснование необходимости разработки структурированной системы хранения документов предприятия

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

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

Структурированная система хранения документов предприятия предназначена для хранения и поиска документов, предоставляет возможности для сканирования и печати документов и обеспечивает резервное копирование данных.

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

Разработка задачи предусматривает несколько этапов. Порядок разработки программного обеспечения приведен в табл. 3.1.

Таблица 3.1

Перечень этапов работ

  3.3 Нормирование работ

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

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

В данной работе приводится расчет трудоемкости разработки, методом экспертных оценок.

С помощью формул, принятых в системе сетевого планирования и управления (СПУ), определяется ожидаемая трудоемкость выполнения работы:

где

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

 — наиболее вероятная трудоемкость работы;

 — максимально возможная трудоемкость работы при наиболее неблагоприятных условиях ее выполнения.

Здесь i — номер (обозначение) работы или этапа;- условный номер специалиста — эксперта.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Далее определяется среднее значение трудоемкости каждой i-ой этапа:

где n — количество человек, входящих в группу экспертов.

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

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

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

Таблица 3.2

Экспертные оценки трудоемкости работ

 

Таким образом, плановые трудозатраты на реализацию всего программного продукта составляют 551,7 н/часа.

Продолжительность выполнения работ по каждому этапу приведена в табл. 3.3 В графе «Трудозатраты» приведены рассчитанные в п.3.3 трудозатраты. В графе «Продолжительность» приведена примерная продолжительность выполнения каждого этапа в рабочих днях, рассчитанная по формуле:

где P — продолжительность выполнения этапа;- трудозатраты на выполнение этапа.

Таблица 3.3

Продолжительность выполнения этапов работ


3.4 Расчет сметной стоимости на разработку ПП

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Расчет затрат на разработку системы состоит из следующих статей:

Статья: «Материальные расходы»

К статье «Материальные расходы» относятся покупные изделия, необходимые для выполнения работы, они перечислены в табл. 3.4.

Таблица 3.4

Материальные расходы

 

Статья: «Расходы на оплату труда с учётом отчислений»

Заработная плата складывается из двух составляющих: основной заработной платы и дополнительной.

Основная заработная плата рассчитывается по формуле (3.4):

tΣ — суммарные затраты труда, вычисляемые по формуле (3.2),ср — среднее число дней в месяце, равно 21 дню, умножается на количество часов в рабочем дне — 8,

ТС — тарифная ставка.

Тарифная ставка представляет собой МРОТ, увеличенный в зависимости от тарифного коэффициента, соответствующего данному виду работ. Для 12-го разряда работ, который соответствует работе программиста, тарифный коэффициент равен 2,423.

Таким образом, основная заработная плата будет составлять:

Дополнительная заработная плата составляет 20% от основной заработной платы, рассчитывается по формуле (3.5):

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Суммарная заработная плата (или фонд заработной платы, ФЗП) вычисляется как сумма основной и дополнительной заработных плат по формуле (3.6):

Отчисления на социальное страхование составляют 34% от всей заработной платы, вычисляются по формуле (3.7):

Статья: «Расходы на амортизацию»

Стоимость оборудования хоть и не включается в себестоимость разработки программного обеспечения, но все же используется при расчете некоторых других дополнительных статей расходов. При написании программы на ЭВМ в качестве оборудования предполагается персональный компьютер, а также необходим системный блок, клавиатура, мышь и монитор, стоимость которых составляет: .

Амортизационные отчисления, процесс постепенного перенесения стоимости средств труда по мере их физического и морального износа на стоимость производимых с их помощью продукции в целях аккумуляции денежных средств для последующего полного восстановления. Амортизационные отчисления производятся по установленным нормам амортизации, выражаются, в процентах к балансовой стоимости оборудования и рассчитываются по формуле (3.8):

Где Cобор — стоимость компьютера,

Тнорм — нормативный срок службы (для персонального компьютера примем Тнорм = 6 [лет]. Таким образом, получаем:

Статья: «Накладные расходы»

Накладные расходы, связанные с управлением и обслуживанием, содержанием и эксплуатацией оборудования и прочими дополнительными затратами на обеспечение процессов производства и обращения, составляют 50% от фонда заработной платы, вычисляются по формуле (3.9):

Таблица 3.5

3.5 Расчёт срока окупаемости единовременных затрат и экономической выгоды от внедрения программного продукта на предприятии

Рассчитаем экономию от внедрения программного продукта на предприятии.

Расчет трудоемкости до и после внедрения ПП представлен в таблице 3.6.

Таблица 3.6

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Трудоемкость до и после внедрения ПП

Результаты расчета затрат на оплату труда ПП приведены в таблице 3.7.

Таблица 3.7

Расходы на оплату труда до и после внедрения ПП

 

Экономия от обслуживания одного документа составила 157,49 руб.

Внедрение ПП предположительно снизит затраты на обработку одного документа до внедрения на 53.86%. Предприятие обычно обрабатывает около 200 документов в месяц, что составляет 2400 в год. Таким образом, годовая экономия затрат от внедрения ПП составляет:

Эгод = 157,49* 2400 = 377,976 руб.

Рассчитаем срок окупаемости ПП:
3.6 Результат по организационно-экономической части

В ходе проведенного маркетингового исследования программного продукта были исполнены следующие пункты:

определены основные технические и потребительские отличительные свойства системы;

произведен расчет сметы затрат на разработку;

рассчитана годовая экономия от внедрения программного продукта на предприятии.

Срок окупаемости продукта составил чуть больше 2 месяцев, что указывает на целесообразность внедрения ПП на предприятии.

4. Охрана труда
4.1 Обеспечение безопасных условий труда инженера-разработчика

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Одним из основных направлений научно технического прогресса является развитие электронной вычислительной техники и ее широкое применение в производстве, научно-исследовательских и проектно-конструкторских работах, плановых расчетах и сфере управления. Уменьшение стоимости, габаритов, потребляемой энергии вместе с ростом вычислительных возможностей позволяет использовать ЭВМ в гораздо более широких масштабах и существенно улучшить условия труда обслуживающего персонала. Охрана труда выявляет и изучает опасные и вредные производственные факторы, степень их воздействия на работающих с ЭВМ. Разрабатывает организационные и технические мероприятия, направленные на профилактику производственного травматизма и профессиональных заболеваний. Охрана труда создает технические средства защиты, устраняющие или уменьшающие воздействие на работающих этих факторов окружающей среды, предупреждает несчастные случаи, создает высокопроизводительные, здоровые и безопасные условия труда в ВЦ (вычислительный центр) /7,8,9,10/.

На организм человека и работу оборудования ВЦ большое влияние оказывает относительная влажность воздуха. При влажности воздуха до 40% выходит из строя изоляция проводов, а также возникает статическое электричество при движении носителей информации на ЭВМ. При относительной влажности воздуха более 75-80% снижается сопротивление изоляции, изменяются рабочие характеристики элементов ЭВМ, возрастает интенсивность отказов элементов ЭВМ.

Оптимальные и допустимые микроклиматические параметры должны учитывать специфику технологического процесса в ВЦ, в частности, условия по обеспечению надежной работы ЭВМ. Поэтому действующие санитарные нормы для ВЦ устанавливают конкретные оптимальные и допустимые значения температуры, относительной влажности для рабочей зоны машинного зала ВЦ (табл. 4.1).

Таблица 4.1

Нормы температуры и относительной влажности воздуха в рабочей зоне машинного зала ВЦ

 

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

К современному освещению помещений, где работают с вычислительной техникой, предъявляют высокие требования как гигиенического, так и технического характера. Правильно спроектированное и выполненное освещение обеспечивает высокий уровень работоспособности, оказывает положительное психологическое воздействие, способствует повышению производительности труда. Условия деятельности пользователя в системе «человек-машина» связаны с явным преобладанием зрительной информации — до 90% общего объема. Режим освещения, его нормы регламентируются согласно СНиП РФ 23-5-95 «Естественное и искусственное освещение. Нормы проектирования».

В помещениях с компьютерной техникой применяется совмещенная система освещения. К этим системам предъявляют следующие требования:

)        соответствие уровня освещенности рабочих мест характеру выполняемых зрительных работ;

2)      достаточно равномерное распределение яркости на рабочих поверхностях и в окружающем пространстве;

)        отсутствие резких теней, прямой и отраженной блеклости;

)        постоянство освещенности во времени;

)        оптимальная направленность излучаемого осветительными приборами светового потока;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

)        долговечность, экономичность, электро- и пожаробезопасность, эстетичность, удобство и простота эксплуатации.

Для искусственного освещения помещений с вычислительной техникой следует использовать главным образом люминесцентные лампы. У этих ламп высокая световая отдача (до 75 лм/Вт и более), продолжительный срок службы (до 10 000 ч), малая яркость светящейся поверхности, близкий к естественному спектр излучения, что обеспечивает хорошую цветопередачу. Наиболее приемлемыми являются люминесцентные лампы белого света и тепло-белого света мощностью 20, 40, 80 Вт.

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

Для обеспечения оптимальных условий зрительных работ пользователей с дисплейными устройствами, необходима определенная световая отделка помещения. Рекомендуемая освещенность для работы с экраном дисплея составляет 150 лк, а при работе с экраном в сочетании с работой над документами — 300 лк.

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

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

В соответствии с ГОСТ 12.1.003-83 «Шум, общие требования безопасности» уровень шума на рабочем месте операторов видеотерминалов не должен превышать 50дБ, а в помещениях, где работают инженерно-технические работники, осуществляющие лабораторный, аналитический и измерительный контроль — 60дБ.

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

Нормальная продолжительность рабочего времени на предприятиях не может превышать 40 ч. в неделю. Основным режимом работы является пятидневная рабочая неделя с двумя выходными днями. Продолжительность ежедневной работы определяется правилами внутреннего трудового распорядка или графиками сменности.

Графики сменности регламентируют время начала и окончания рабочего дня (дня смены), перерывов для отдыха и питания, порядок чередования смен.

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

Согласно СанПиН 2.2.2.542-96, в зависимости от вида работ выделяют три группы работ с видеотерминалами:

.        работа по считыванию информации с экрана ЭВМ с предварительным запросом;

2.      работа по вводу информации;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

.        творческая работа в режиме диалога с ЭВМ.

Для видов трудовой деятельности, связанной с работой на ЭВМ устанавливается три категории тяжести и напряженности работы с ЭВМ. Для первой группы определяются по суммарному числу считываемых знаков, но не более 60000, для второй группы — по суммарному числу введенных знаков, но не более 40000 и для третьей группы — по суммарному времени работы за смену, но не более 6 часов.

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

Всем работникам ежегодно предоставляется отпуск с сохранением места работы (должности) и среднего заработка. Право на ежегодный отпуск (за первый год работы) они приобретают по истечении 11 месяцев непрерывной работы на данном предприятии. Очередные отпуска (за второй и последующие годы работы) предоставляются в любое время рабочего года в соответствии с графиками отпусков.

Таким образом, рациональная организация рабочего времени позволит сохранить работоспособность человека и сбережет его здоровье.

Для наиболее эффективной защиты здоровья и жизни работающих в ВЦ людей необходимо выполнять общие требования безопасности:

)        к эксплуатации персональных компьютеров допускаются лица, прошедшие инструктаж по технике безопасности;

2)      все пользователи персональных компьютеров (ПК), находясь в компьютерном классе, обязаны:

—       использовать только исправные ПК, указанные преподавателем или дежурным оператором;

—       соблюдать тишину, чистоту и порядок как на рабочем месте, так и в компьютерном классе;

—       соблюдать правила пожарной безопасности, а при возгорании вызвать пожарную охрану;

—       работать на ПК не более 4-х часов в день, с 15-минутными перерывами через каждый час работы.

3)      пользователям ПК запрещается:

—       вносить без разрешения системного администратора какие-либо изменения в настройке ПК;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

—       самостоятельно устранять сбои в работе ПК;

—       самостоятельно производить изменения в конфигурации периферийных устройств ПК (принтера, монитора, клавиатуры);

—       курить в помещении компьютерного класса.

4)      обслуживание и ремонт ПК:

—       техническое обслуживание и ремонт производится персоналом с соответствующей подготовкой;

—       мониторы обеспечиваются защитными экранами при их несоответствии санитарным нормам;

—       во время технических перерывов класс должен проветриваться.

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

6)      пользователь должен убедиться в том, что ПК находится в состоянии готовности к работе, а именно:

—       соединительные кабеля не имеют повреждений;

—       корпус ПК закрыт.

7)      включение ПК осуществляется в следующей последовательности:

—       включить стабилизатор напряжения (если ПК подключен через него);

—       включить принтер (если он нужен);

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

—       включить монитор (если включается отдельно);

—       включить ПК переключателем на его корпусе.

8)      категорически запрещается:

—       производить изменение в конфигурации периферийных устройств ПК (принтера, монитора, клавиатуры) во время его работы;

—       вскрывать корпус ПК, если он находится во включенном состоянии.

9)      перед тем, как выключить компьютер надо завершить выполнение всех загруженных программ;

10)    при коротком замыкание, перегреве или при возникновении других отклонений от нормального режима работы ПК, необходимо обесточить компьютер и обратиться к дежурному оператору;

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

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

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

В современных ЭВМ очень высокая плотность размещения элементов электронных схем. В непосредственной близости друг от друга располагаются соединительные провода, коммуникационные кабели. При протекании по ним электрического тока выделяется значительное количество тепла, что может привести к повышению температуры отдельных узлов до 80-100°С. При этом возможно оплавление изоляции проводов, их оголение, и как следствие, короткое замыкание, которое сопровождается искрением, ведет к перегрузкам элементов электронных схем.

Для отвода избыточной теплоты от ЭВМ служат системы вентиляции и кондиционирования воздуха. Однако постоянно действующие системы вентиляции и кондиционирования представляют дополнительную пожарную опасность для ВЦ.

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

Для ликвидации пожаров в машинных залах недопустимо применять такие первичные средства пожаротушения, как вода и пенные огнетушители. В этом случае существует опасность повреждения или полного выхода из строя ЭВМ и другого дорогостоящего оборудования. Для тушения пожаров на ВЦ наиболее эффективно применение порошковых огнетушителей типа ОП-5-01. Преимуществом использования данного средства пожаротушения является также и то, что в момент тушения пожара устройство может находиться под напряжением.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Таким образом, производственная среда, являющаяся предметным окружением человека, должна сочетать в себе рациональное архитектурно-планировочное решение, оптимальные санитарно-гигиенические условия (микроклимат, освещение, отопление, вентиляция и другие). Должна обеспечиваться надежность и безопасность оборудования и приборов в эксплуатации, а также должны проводиться мероприятия по предотвращению пожаров. Рассмотренное рабочее место пользователя ВЦ практически полностью соответствует вышеперечисленным нормам. Создание и поддержание оптимального микроклимата на рабочем месте, выполнение условий электро- и пожаробезопасности, соблюдение необходимых мер предосторожности при работе с техникой позволяет увеличить трудоспособность, снизить риск возникновения различных заболеваний и травматизм.   4.2 Расчет искусственного освещения рабочего места

Как уже было сказано выше, освещение является одним из важнейших факторов, от которого зависит здоровье работника. Поэтому необходимо правильно и точно произвести расчет искусственного освещения на рабочем месте. При расчете освещенности обязательно необходимо учесть наименьший размер объекта различения, характеристику фона, контраст объекта различия с фоном; нужно определить разряд и подразряд зрительной работы, нормируемый уровень минимальности освещённости на рабочем месте.

Наименьший размер объекта размещения = 2 мм., контраст объекта с общим фоном — большой, характеристика фона — светлый, характеристика зрительной работы высокой точности. Основываясь на этих характеристиках, делаем вывод, разряд зрительной работы — 3, подразряд — Г. Следовательно, нормам проектирования искусственного освещения комбинированное освещение — 400 лм., общее освещение — 200 лм.

Рассчитаем число светильников N. Равномерное освещение горизонтальной поверхности достигается при определённом отношении расстояния между центрами светильников L, м (L = 1,75Н) к высоте их подвеса над рабочей поверхностью Нр, м (в расчётах Нр = Н). Число светильников с люминесцентными лампами, которые приняты в качестве источника света:

где S — площадь помещения, м2, L — расстояния между центрами светильников, м, М — расстояние между параллельными рядами, м.

В соответствии с рекомендациями

М ≥ 0,6Нр.

Оптимальное значение М = 2.3 м. Для достижения равномерной освещённости светильники с люминесцентными лампами рекомендуется располагать сплошными рядами, параллельными стенам с окнами или длинным сторонам помещения.

Площадь помещения:

S = a*b,

где а — длина помещения, м, b — ширина помещения, м, а = 8м, b = 5м,

= 8*5 = 40 м2.

Расстояние между опорами светильников: L = 1,75Н при Нp = 4, L = 1,75 * 4 = 7 м.

Вычисляем расстояние между параллельными рядами:

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

М ≥ 0,6 * 4 = 2,4 м.

Число светильников:

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

Расчетный световой поток для группы светильников с люминесцентными лампами, лм:

где Ен — нормированная минимальная освещённость, лк, S — площадь помещения, м2, Z — коэффициент минимальной освещённости, , для люминесцентных ламп Z = 1,1.

К — коэффициент запаса (значение зависит от характеристики помещения), для помещения с малым выделением тепла К = 1,5,  — коэффициент использования светового потока ламп,  = 0,3.

По полученному значению светового потока, подбираем лампы, учитывая, что в светильнике с люминесцентными лампами может быть больше одной лампы, т.е. n может быть равно 2 или 4. В этом случае, световой поток группы люминесцентных ламп необходимо уменьшить в 2 или 4 раза. Световой поток выбранной лампы должен соответствовать соотношению Фл. расч. = (0,9.1,2) Фл. табл., где Фл. расч. — расчётный световой поток, лм, Фл. табл. — световой поток, определённый по табличным значениям, лм.

В соответствии с проведенными расчетами выбираем лампу (4070 лм.) ЛДЦ 80.

Рассчитаем потребляемую мощность осветительной установки.

Р = p*N*n,

где р — мощность лампы, Вт, N — число светильников, шт., n — число ламп в светильнике, для люминесцентных ламп n = 2, 4.

Потребляемая мощность:

Р = 80*3*2 = 480 Вт.

Для данного помещения требуются 3 светильника с люминесцентными лампами, в каждом по 2 лампы. Тип и мощность лампы — ЛДЦ80. Общая потребляемая мощность осветительной установки — 480 Вт.

Заключение

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

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

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

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

Дальнейшее развитие системы будет включать в себя:

разработку многопользовательской версии приложения;

разграничение прав доступа пользователей;

добавление истории операций над документами;

развитие пользовательского интерфейса;

работу с электронными документами (создание по шаблону, электронно-цифровая подпись)

добавление интеграции с существующими CRM-системами.

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

1.      Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. — СПб.: Питер, 2002. — 496 с: ил.

2.      Документ Плюс — URL: http://www.documentplus.ru/ (дата обращения: 11.11.2012)

.        Программа «Архив документов» — URL: http://www.simple-soft.ru/DocumentsCount. htm (дата обращения: 11.11.2012)

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

.        Докпартнер 2012 — URL: http://docpartner.ru/ (дата обращения: 11.11.2012)

.        Мак-Дональд М. WPF 4: Windows Presentation Foundation в.net 4.0 с примерами на С# 2010 для профессионалов.: Пер. с англ. — М.: ООО «И.Д. Вильяме», 2011. — 1024 c.

.        Jay Kreibich. Using SQLite — O’Reilly Media, 2010 — 528 с.

.        А.И. Мальцев. Алгебраические системы, — М., Наука, 1970 г., 392 стр. с илл.

.        М.А. Сенилов, С.В. Почерняев, И.В. Килин Методические указания по дипломному проектированию. — Ижевск: Изд-во ИжГТУ, 2000.

.        Соболева В.П. Методические указания по оформлению курсовых и дипломных работ. — Ижевск: Изд-во ИжГТУ, 2008. — 25с.

.        ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

.        ГОСТ 19.505-79 ЕСПД. Руководство оператора. Требования к содержанию и оформлению.
Приложение 1. Тексты программ

Файл AppManager. cppSystem;System. Collections. Generic;System. Linq;System. Text;System. Reflection;DKCore. DataBase;DKCore. DataBase. Objects;DKCore. ConcreteDocuments. Interfaces;DKCore. FormsI;System. Windows;DKCore

{class AppManager

{static bool IsInited { get; private set; }

// Классы комплексных функций системыstatic Dictionary<Type, APIBase> apiObjects;

// Объект приложенияstatic ApplicationI appObject;

// Свойства приложенияstatic object applicationPropertiesObject;

{{ return db; }

}

// Дополнительные типы документовstatic Dictionary<string, CDocAddinBase> concreteDocAddins;static Dictionary<string, CDocAddinBase> ConcreteDocAddins

{{ return concreteDocAddins; }

}AppManager ()

{= new Dictionary<string, CDocAddinBase> ();= new Dictionary<Type, APIBase> ();

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

// Инициализирует менеджер приложенияpublic void Init (ApplicationI app, object application_properties)

{= application_properties;= app;

// = new DBDocuments ( (string) getApplicationProperty («DBConnectionString»));. Init ();. CheckVersion ();

// Инициализация загруженных объектов(var api_object in apiObjects)

{_object. Value. Init ();

}

// Плагины(! PluginManager. LoadInstalledPlugins ())

{res = MessageBox. Show («Некоторые дополнительные типы документов не могут быть загружены. Хотите изменить настройки? (Нет — продолжить работу)», «Ошибка загрузки дополнений», MessageBoxButton. YesNo);(res == MessageBoxResult. Yes)

{. ShowPluginSettingsForm ();;

}

}

// (var addin in ConcreteDocAddins)

{. Value. Init ();

}= true;

}

// Возвращает значение свойства приложения по имени

// Если свойство не задано, кидает исключениеpublic object getApplicationProperty (string property)

{prop = applicationPropertiesObject. GetType (). GetProperty (property);(prop! = null) return prop. GetValue (applicationPropertiesObject, null);throw new Exception («Trying read not defined proprty ‘» + property + «‘»);

}

// Открывают форму ошибкиstatic void ShowExceptionForm (Exception e)

{. ShowExceptionForm (e);

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

}

// Создать форму изменения списка объектов (связанных с доп. типами)static EditListFormI CreateEditListForm (EditListSettingsBase settings, string title)

{appObject. createEditListForm (settings, title);

}

// Регистрирует новый дополнительный тип документовstatic void RegisterConcreteDocAddin (CDocAddinBase addin)

{. Add (addin. Name, addin);(IsInited) addin. Init ();

}

// Возвращает указанный дополнительный тип документовstatic CDocAddinBase Addin (string name, bool quiet = false)

{(concreteDocAddins. ContainsKey (name)) return concreteDocAddins [name];if (quiet) return null;throw new Exception («Доступ к несуществующему дополнительному типу документов»);

}static CDocAddinBase Addin (DBO_DocType doctype, bool quiet = false)

{Addin (doctype. Name, quiet);

}static CDocAddinBase AddinByDocTypeID (long? doctype_id, bool quiet = false)

{(var addin in concreteDocAddins)

{(addin. Value. DocTypeDBO. ID == doctype_id) return addin. Value;

}(quiet) return null;throw new Exception («Доступ к несуществующему дополнительному типу документов»);

}static bool IsAddinExist (DBO_DocType doctype)

{concreteDocAddins. ContainsKey (doctype. Name);

}

// Регистрирует новый дополнительный тип документовstatic void RegisterAPI (APIBase api_object)

{. Add (api_object. GetType (), api_object);(IsInited) api_object. Init ();

}

// Возвращает apistatic APIObject API () where APIObject: APIBase

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

{(apiObjects. ContainsKey (typeof (APIObject))) return (APIObject) apiObjects [typeof (APIObject)];return null;

}

// Перезапустить приложениеstatic void RestartApplication ()

{. Diagnostics. Process. Start (Application. ResourceAssembly. Location);. Current. Shutdown ();

}

}

}

Файл ApplicationI. csSystem;System. Collections. Generic;System. Linq;System. Text;DKCore. FormsI;System. Windows;DKCore

{

// Интерфейс для WPF-шного приложения, с которым взаимодействует AppManagerinterface ApplicationI

{

// Отобразить форму ошибкиShowExceptionForm (Exception e);

// Отобразить форму настройки плагиновShowPluginSettingsForm ();

// Создать форму изменения списка объектов (связанных с доп. типами)createEditListForm (EditListSettingsBase settings, string title);

// Проверка версии базыCheckVersion ();

// Завершить работуShutdown ();

}

}

Файл DBHelper. csSystem;System. Collections. Generic;System. Linq;System. Text;System. Collections. ObjectModel;System. Reflection;System. Data. SQLite;System. Windows;DKCore. DataBase. Attributes;DKCore. DataBase

{class DBHelper: IDisposable

{conn;transact;throwExceptions;

//

// throw_exeptions — если false — подавлять исключения

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

// DBHelper (bool throw_exceptions = false)

{= null;= null;= throw_exceptions;

}

// Открыть соединение с базой

// connection_string — строка подключения

// is_transaction — запустить транзакциюvoid Open (string connection_string, bool is_transaction = false)

{

{= new SQLiteConnection (connection_string);. Open ();= (is_transaction)? conn. BeginTransaction (): null;

}(Exception e)

{(e);

}

}

// Обрабатывает возникшее исключениеvoid handleException (Exception e)

{

#if DEBUG. Diagnostics. Debugger. Break ();

#endif(throwExceptions) throw e;AppManager. ShowExceptionForm (e);

}

// Подтвердить, если была запущена транзакцияvoid Commit ()

{(transact! = null) transact.commit ();

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

// Отменить, если была запущена транзакцияvoid Rollback ()

{(transact! = null) transact. Rollback ();

}void Dispose ()

{(conn! = null) conn. Close ();(transact! = null) transact. Dispose ();

}

// Возвращает названия полей, ассоцированных со свойствами объекта db_object, значения которых не равно null (если skip_null = true)

// Если задан field, составляет список из свойств этого объекта ({ PropertyField = ,. })

// = «column_name»: берется указанное поле

// = null — берется из атрибутов

// Если задано must_be_primary, включает в себя поля только из свойств, помеченных атрибутом как ключевые

// Dictionary<string, PropertyInfo> getInsertingFields (object db_object, object fields = null, bool skip_null = true, bool? must_be_primary = null)

{result = new Dictionary<string, PropertyInfo> ();type = db_object. GetType ();(fields! = null)

{

// Заданы конкретные поля[] fields_props = fields. GetType (). GetProperties (BindingFlags. Public | BindingFlags. Instance);(var fprop in fields_props)

{tprop = type. GetProperty (fprop. Name);(tprop! = null)

{fprop_val = fprop. GetValue (fields, null) as string;(fprop_val == null)

{

// Имя столбца таблицы взять из атрибутовres = getInsertingFields_OneProperty (db_object, tprop, false, null);(res! = null) result. Add (res, tprop);

}

{. Add (fprop_val, tprop);

}

}

}

}

{

// Получить поля из атрибутов[] target_props = type. GetProperties (BindingFlags. Public | BindingFlags. Instance);(var tprop in target_props)

{res = getInsertingFields_OneProperty (db_object, tprop, skip_null, must_be_primary);(res! = null) result. Add (res, tprop);

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

}result;

}string getTablePostfix (Type type)

{attributes = type. GetCustomAttributes (typeof (DBTableNameAttribute), false);(attributes. Length > 0) return ( (DBTableNameAttribute) attributes [0]). TablePostfix;return null;

}string getInsertingFields_OneProperty (object db_object, PropertyInfo tprop, bool skip_null = true, bool? must_be_primary = null)

{attributes = tprop. GetCustomAttributes (typeof (DBFieldNameAttribute), false);(attributes. Length > 0)

{attr = (DBFieldNameAttribute) attributes [0];(must_be_primary == null || must_be_primary == attr. IsPrimaryKey)

{(skip_null == false || tprop. GetValue (db_object, null)! = null)

{field_name = attr. FieldName;(attr. UsePostfix) field_name += «_» + getTablePostfix (db_object. GetType ());field_name;

}

}

}null;

}

// Выбирает все записи по запросу и заполняет объектами T результирующий список

// com — sql-запрос у базе

// fields — поля, которые будут заполнены у элемента типа T.

// Должен быть представлен обхектом вида: { PropertyField = «column_name»,. }

// Если only_first = true, возвращает список, состоящи только из первого элемента

// ObservableCollection fetchAll (DBCommand com, object fields = null, bool only_first = false) where T: class, new ()

{result = new ObservableCollection ();

{. Connection = conn;. Transaction = transact;(var reader = new DBHelperReader (com. ExecuteReader ()))

{

// MessageBox. Show («a1»);

// Получаем список запрашиваемых полей и связанных с ними свойст Tretrieve_fields = reader. getRetrievedFields (typeof (T), fields);

// MessageBox. Show («a2»);

// Записываем данные в список результа(reader. Read ())

{elem = new T ();(var field in retrieve_fields)

{. Value. SetValue (elem, reader. readFieldWithType (field. Key, field. Value. PropertyType), null);

}. Add (elem);(only_first) break;

}

}

// MessageBox. Show («a3»);

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

}(Exception e)

{(e);

}result;

}T fetchOne (DBCommand com, object fields = null) where T: class, new ()

{list = fetchAll (com, fields, true);(list. Count > 0)? list [0]: null;

}T getByID (long? id, string table = null, string id_field_name = null) where T: class, new ()

{[] class_attrs = typeof (T). GetCustomAttributes (typeof (DBTableNameAttribute), false);

// Имя таблицы(table == null)

{(class_attrs. Length > 0) table = ( (DBTableNameAttribute) class_attrs [0]). TableName;throw new Exception («Ошибка вставки: невозможно определить таблицу: в атрибутах не указано имя таблицы»);

}

// Имя поля id(id_field_name == null)

{id_prop = typeof (T). GetProperty («ID», BindingFlags. Public | BindingFlags. Instance);(id_prop! = null)

{[] id_attrs = id_prop. GetCustomAttributes (typeof (DBFieldNameAttribute), false);(id_attrs. Length > 0)

{_field_name = ( (DBFieldNameAttribute) id_attrs [0]). FieldName;( ( (DBFieldNameAttribute) id_attrs [0]). UsePostfix)

{(class_attrs. Length > 0) id_field_name += «_» + ( (DBTableNameAttribute) class_attrs [0]). TablePostfix;throw new Exception («Ошибка вставки: невозможно определить поле ID: постфикс таблицы не указан»);

}

}throw new Exception («Ошибка вставки: невозможно определить поле ID: в атрибутах не указано поле в таблице»);

}throw new Exception («Ошибка вставки: невозможно определить таблицу: не найдено свойство ID»);

}(var com = new DBCommand («SELECT * FROM » + table + » WHERE » + id_field_name + » = @» + id_field_name))

{. Parameters. AddWithValue («@» + id_field_name, id);fetchOne (com);

}

}

// Вставляет объект db_object в базу данных:

// Если указан table, в таблицу table (иначе берется из атрибутов)

// Если указан fields — вставляются только указанные свойства (иначе свойства, которые не равны null)

// void insert (T db_object, string table = null, object fields = null) where T: class, new ()

{

{

// Имя таблицы(table == null)

{[] attributes = typeof (T). GetCustomAttributes (typeof (DBTableNameAttribute), false);(attributes. Length > 0) table = ( (DBTableNameAttribute) attributes [0]). TableName;throw new Exception («Ошибка вставки: невозможно определить таблицу: в атрибутах не указано имя таблицы»);

}

// inserting_fields = getInsertingFields (db_object, fields);(DBCommand com = new DBCommand ())

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

{. Connection = conn;. Transaction = transact;(inserting_fields. Count > 0)

{query = «INSERT INTO » + table + » («;values = » VALUES («;first = true;(var field in inserting_fields)

{(first) first = false;

{+=», «;+=», «;

}+= field. Key;+= «@» + field. Key;. Parameters. AddWithValue («@» + field. Key, field. Value. GetValue (db_object, null));

}.commandText = query + «)» + values + «)»;

}com.commandText = «INSERT INTO » + table + » DEFAULT VALUES»;. ExecuteNonQuery ();

}

}(Exception e)

{(e);

}

}

// Формирует и выполняет запрос на вставку в таблицу table из полей и значений словаря field_values

// Если values = null вставляет запись со значениями по умолчанию

// void insertValues (string table, Dictionary<string, object> field_values = null)

{

{(DBCommand com = new DBCommand ())

{. Connection = conn;. Transaction = transact;(field_values! = null && field_values. Count > 0)

{query = «INSERT INTO » + table + » («;values = » VALUES («;first = true;(var field in field_values)

{(first) first = false;

{+=», «;+=», «;

}+= field. Key;+= «@» + field. Key;. Parameters. AddWithValue («@» + field. Key, field. Value);

}.commandText = query + «)» + values + «)»;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

}com.commandText = «INSERT INTO » + table + » DEFAULT VALUES»;. ExecuteNonQuery ();

}

}(Exception e)

{(e);

}

}

// Удаляет объект db_object в базу данных:

// Если указан table, из таблицы table (иначе берется из атрибутов)

// Если указан keys — ключевые поля берутся из него

// void delete (T db_object, string table = null, object keys = null) where T: class, new ()

{

{

// Имя таблицы(table == null)

{[] attributes = typeof (T). GetCustomAttributes (typeof (DBTableNameAttribute), false);(attributes. Length > 0) table = ( (DBTableNameAttribute) attributes [0]). TableName;throw new Exception («Ошибка вставки: невозможно определить таблицу: в атрибутах не указано имя таблицы»);

}

// key_fields = getInsertingFields (db_object, keys, false, true);(key_fields. Count > 0)

{(DBCommand com = new DBCommand ())

{. Connection = conn;. Transaction = transact;query = «DELETE FROM » + table + » WHERE «;first = true;(var field in key_fields)

{(first) first = false;query +=», «;+= field. Key + » = » + «@» + field. Key;. Parameters. AddWithValue («@» + field. Key, field. Value. GetValue (db_object, null));

}.commandText = query;. ExecuteNonQuery ();

}

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

}(Exception e)

{(throwExceptions) throw e;MessageBox. Show (e. ToString ());

}

}

// Обновляет объект db_object в базу данных:

// Если указан table, в таблицу table (иначе берется из атрибутов)

// Если указан keys — ключевые поля берутся из него

// Если указан fields — обновляются только указанные свойства (иначе все свойства)

// void update (T db_object, object fields = null, string table = null, object keys = null) where T: class, new ()

{

{

// Имя таблицы(table == null)

{[] attributes = typeof (T). GetCustomAttributes (typeof (DBTableNameAttribute), false);(attributes. Length > 0) table = ( (DBTableNameAttribute) attributes [0]). TableName;throw new Exception («Ошибка вставки: невозможно определить таблицу: в атрибутах не указано имя таблицы»);

}

// key_fields = getInsertingFields (db_object, keys, false, true);data_fields = getInsertingFields (db_object, fields, false, false);(data_fields. Count > 0)

{(DBCommand com = new DBCommand ())

{. Connection = conn;. Transaction = transact;query = «UPDATE » + table + » SET «;first = true;(var field in data_fields)

{(first) first = false;query +=», «;+= field. Key + » = » + «@» + field. Key;. Parameters. AddWithValue («@» + field. Key, field. Value. GetValue (db_object, null));

}+= » WHERE «;= true;(var field in key_fields)

{(first) first = false;query +=», «;+= field. Key + » = » + «@» + field. Key;. Parameters. AddWithValue («@» + field. Key, field. Value. GetValue (db_object, null));

}.commandText = query;. ExecuteNonQuery ();

}

}

}(Exception e)

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

{(throwExceptions) throw e;MessageBox. Show (e. ToString ());

}

}

// Возвращает id, сгенерированное последим запросом на вставку

// table — имя таблицы, куда вставлялась запись

// id_field_name — имя ключевого поля (должно быть autoincrement)

// long? getLastInsertedID (string table, string id_field_name)

{

{(var com = new DBCommand («SELECT last_insert_rowid ()», conn, transact))

{com. ExecuteScalar () as long?;

}

}(Exception e)

{(e);null;

}

}

// Выполнить команду в текущей транзакции

// void executeNonQuery (DBCommand com)

{

{. Connection = conn;. Transaction = transact;. ExecuteNonQuery ();

}(Exception e)

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

{(throwExceptions) throw e;MessageBox. Show (e. ToString ());

}

}

// Выполнить команду в текущей транзакции и получить reader для прочтения возвращенных запросом данных

// DBHelperReader executeReader (DBCommand com)

{

{. Connection = conn;. Transaction = transact;new DBHelperReader (com. ExecuteReader ());

}(Exception e)

{(e);null;

}

}

}

// /

// / Предоставляет упрощенный доступ к полям

// /

class DBHelperReader: IDisposable

{reader;DBHelperReader (SQLiteDataReader rd)

{= rd;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

}void Dispose ()

{. Close ();

}

// Читает поле с именем col_name из reader как значение типа T

// T readField (string col_name)

{col_index = reader. GetOrdinal (col_name);readField (col_index);

}

// T readField (int col_index)

{(T) readFieldWithType (col_index, typeof (T));

}

// Читает поле с именем col_name из reader как значение типа type

// object readFieldWithType (string col_name, Type type)

{col_index = reader. GetOrdinal (col_name);readFieldWithType (col_index, type);

}

// Читает поле с индексом col_index из reader как значение типа type

// object readFieldWithType (int col_index, Type type)

{is_nullable = false; // Может ли принимать nullrtype = type; // Если type — Nullable, значение равно будет типу, переданному в шаблон Nullable(type. IsGenericType && type. GetGenericTypeDefinition () == typeof (Nullable<>))

{_nullable = true;= Nullable. GetUnderlyingType (type);

}is_nullable = type. IsClass;

// Если значение в базе равно NULL и тип переменной Nullable

// Возвращаем null(reader. IsDBNull (col_index) && is_nullable) return null;

// В любом другом случае:

// type_code = Type. GetTypeCode (rtype);(type_code)

{TypeCode. Boolean: return Convert. ToBoolean (reader. GetValue (col_index));TypeCode. Decimal: return reader. GetDecimal (col_index);TypeCode. DateTime: return reader. GetDateTime (col_index);TypeCode. Int16: return Convert. ToInt16 (reader. GetValue (col_index));TypeCode. Int32: return Convert. ToInt32 (reader. GetValue (col_index));TypeCode. Int64: return Convert. ToInt64 (reader. GetValue (col_index));:

// Другие типыreader. GetValue (col_index);

}

}T readObject (object fields = null) where T: class, new ()

{retrieve_fields = getRetrievedFields (typeof (T), fields);elem = new T ();(var field in retrieve_fields)

{. Value. SetValue (elem, readFieldWithType (field. Key, field. Value. PropertyType), null);

}elem;

}

// Возвращает список индексов полей reader, которые нужно извлечь для объекта типа type

// Если задан field, составляет список из свойств этого объекта ({ PropertyField = «column_name»,. })

// иначе берет из атрибутов типа type (DBFieldNameAttribute, DBTableNameAttribute)

// Пример fields:

// new

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

// {

// ID = «id_doc_type»,

// Title = «title_doc_type»,

// Name = «name_doc_type»,

// CharPrefix = «char_doc_type»,

// IsDeleted = «is_deleted»

// }

// Dictionary<int, PropertyInfo> getRetrievedFields (Type type, object fields = null)

{result = new Dictionary<int, PropertyInfo> ();(fields! = null)

{

// Заданы конкретные поля[] fields_props = fields. GetType (). GetProperties (BindingFlags. Public | BindingFlags. Instance);(var fprop in fields_props)

{tprop = type. GetProperty (fprop. Name);(tprop! = null)

{

// try

// {field_index = reader. GetOrdinal ( (string) fprop. GetValue (fields, null));. Add (field_index, tprop);

// }

// NOTE:

// Возможно в этом случае переъватывать исключение не стоит

// catch (IndexOutOfRangeException) { }

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

}

}

{

// Получить поля из атрибутов[] attributes;= type. GetCustomAttributes (typeof (DBTableNameAttribute), false);(attributes. Length > 0)

{= tprop. GetCustomAttributes (typeof (DBFieldNameAttribute), false);(attributes. Length > 0)

{attr = (DBFieldNameAttribute) attributes [0];field_name = attr. FieldName;(attr. UsePostfix) field_name += «_» + postfix;

{field_index = reader. GetOrdinal (field_name);(field_index! = — 1) result. Add (field_index, tprop);

}(IndexOutOfRangeException) { }

}

}

}

}result;

}

// /

// / Читает следующую строку результата

// /

// /

// / Возвращает true, если данные считаны, false — если данных нет

// / bool Read ()

{reader. Read ();

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

}

}

Файла DBEntityObjectBaseSystem;System. Collections. Generic;System. Linq;System. Text;System.componentModel;DKCore. DataBase. Attributes;DKCore. DataBase

{public class DBEnityObjectBase: INotifyPropertyChanged

{DBEnityObjectBase (long id)

{= id;

}DBEnityObjectBase ()

{= null;

}bool existInDB

{{ return ID! = null; }

}

//

// Поля:

// long? id;

[DBFieldName («id», true, true)]long? ID

{{ return id; }

{= value;(new PropertyChangedEventArgs («ID»));

}

}

//

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

// Уведомление об изменениях (INotifyPropertyChanged)

// event PropertyChangedEventHandler PropertyChanged;void OnPropertyChanged (PropertyChangedEventArgs e)

{(PropertyChanged! = null) PropertyChanged (this, e);

}

}

}

Файл DBDocumentsSystem;System. Collections. Generic;System. Text;System. Data. SQLite;System. Windows;System. Collections. ObjectModel;System. Reflection;System. Data;DKCore. DataBase. Objects;DKCore. DataBase

{class DBDocuments

{string connectionStr;

// Инициализирован?bool isInited;bool IsInited

{{ return isInited; }

}

// Подключенные к базе модулиDictionary<Type, DBModuleBase> modules;

// Схема базыDBSchema schema;DBSchema Schema

{{ return schema; }

}DBDocuments (string connection_string)

{= false;= new Dictionary<Type, DBModuleBase> ();= connection_string;. RegisterFunction (typeof (SQLiteCaseInsensitiveCollation));. RegisterFunction (typeof (SQLiteRusUpper));

// Схема базы (заполняется модулями)= new DBSchema ();

// Модули:(new Modules. DBModule_CardCase ());(new Modules. DBModule_Documents ());(new Modules. DBModule_Files ());(new Modules. DBModule_FastSearch ());

}

// Подготавливает базу для работы

// Загружает наиболее часто используемые данныеvoid Init ()

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

{(var module in modules)

{. Value. Init ();

}= true;

}

// Регистрирует новый модуль DBModule для работы с базой

// void RegisterModule (DBModuleBase module)

{(! modules. ContainsKey (module. GetType ()))

{. Add (module. GetType (), module);

// module. GrantBeginTransaction (BeginTransaction);. DB = this;(IsInited) module. Init ();

}

}

// Возвращает объект модуля базы или false

// DBModule Module () where DBModule: DBModuleBase

{(modules. ContainsKey (typeof (DBModule))) return (DBModule) modules [typeof (DBModule)];return null;

}

// Запускает транзакцию для обращения к базе

// Возвращает объект DBHelper:

// Чтобы подтвердить транзакцию необъодимо вызвать DBHelper.commit ();

// Чтобы откатить транзакуию, необходимо вызвать DBHelper. Rollback ();

// DBHelper BeginTransaction (bool transaction_mode = false, bool throw_exception = false)

{dbhelper = new DBHelper (throw_exception);. Open (connectionStr, transaction_mode);dbhelper;

}

// Возвращает версию подсистемыstring getSysVersion (string subsystem, DBHelper dbhelper)

{(var com = new DBCommand («SELECT version FROM sys_versions WHERE subsystem = @subsystem»))

{. Parameters. AddWithValue («@subsystem», subsystem);(var reader = dbhelper. executeReader (com))

{(reader. Read ()) return reader. readField («version»);return null;

}

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

}string getSysVersion (string subsystem)

{(var dbhelper = BeginTransaction ())

{getSysVersion (subsystem, dbhelper);

}

}

// Загружает объект с заданным idT loadByID (long? id) where T: DBEnityObjectBase, new ()

{(var dbhelper = BeginTransaction ())

{dbhelper. getByID (id);

}

}

}

}

Файла DBDocumentSelector. csSystem;System. Collections. Generic;System. Linq;System. Text;System.componentModel;System. Data. SQLite;DKCore. ConcreteDocuments. Interfaces;DKCore. ConcreteDocuments. Interfaces. DB;DKCore. DataBase. Objects;DKCore. DataBase

{class DBDocumentSelector

{DBDocumentSelector ()

{= new Dictionary<DBO_DocType, DBConcreteInfoFilter> ();

}

// Фильтр 1 (по документам в целом)DBDocumentFilter DocumentFilter { get; set; }

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

// Фильтр 1 (по документам в целом)DBCommonInfoFilter CommonInfoFilter { get; set; }

// Фильтры по каждому из типов документовDictionary<DBO_DocType, DBConcreteInfoFilter> ConcreteDocFilters { get; set; }

}

}

Файл DBCompleFieldAttributeSystem;System. Collections. Generic;System. Linq;System. Text;DKCore. DataBase. Attributes

{

// /

// / Атрибут указывает, что при извлечении объекта из источника (базы) значение этого свойства

// / должно так же интерпретироваться как объект базы, поля которого рекурсивно заполняются

// / из источника с добавлением префикса

// /

[AttributeUsage (AttributeTargets. Property, Inherited = true, AllowMultiple = false)]class DBComplexField: System. Attribute

{DBComplexField (string _prefix = «»)

{= _prefix;

}

// Префикс к полямstring prefix;string Prefix

{{ return prefix; }

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

}

}

Файл DBFieldNameAttributeSystem;System. Collections. Generic;System. Linq;System. Text;DKCore. DataBase. Attributes

{

[AttributeUsage (AttributeTargets. Property, Inherited = true, AllowMultiple = false)]class DBFieldNameAttribute: System. Attribute

{DBFieldNameAttribute (string field_name, bool use_postfix = false, bool is_primary_key = false)

{= field_name;= use_postfix;= is_primary_key;

}

// Имя поля в базеstring fieldName;string FieldName

{{ return fieldName; }

}

// Использовать постфикс к полям таблицыbool usePostfix;bool UsePostfix

{{ return usePostfix; }

}

// Это поле ключевоеbool isPrimaryKey;bool IsPrimaryKey

{{ return isPrimaryKey; }

}

}

}

Фала DBTableName. csSystem;System. Collections. Generic;System. Linq;System. Text;DKCore. DataBase. Attributes

{

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

[AttributeUsage (AttributeTargets. Class, Inherited = false, AllowMultiple = false)]class DBTableNameAttribute: System. Attribute

{DBTableNameAttribute (string table_name, string table_postfix)

{= table_name;= table_postfix;

}

// Имя таблицы в базеstring tableName;string TableName

{{ return tableName; }

}

// Префикс к полям таблицыstring tablePostfix;string TablePostfix

{{ return tablePostfix; }

}

}

}

Файл DBModule_DocumentsSystem;System. Collections. Generic;System. Linq;System. Text;System. Data. SQLite;System. Windows;System. Collections. ObjectModel;System. Reflection;System. Data;DKCore. DataBase. Objects;DKCore. DataBase;DKCore. DataBase. Attributes;DKCore. DataBase. Modules

{class DBModule_Documents: DBModuleBase

{

// Типы документов

// Загружаются при старте программы (init)Dictionary<string, DBO_DocType> docTypes; // Имя типа => типDictionary<long?, DBO_DocType> docTypesByID; // ID типа => типObservableCollection docTypeList; // Список типовpublic void Init ()

{

// Тип документа. Schema. addTable (new DBTable («doc_type», «id_doc_type»));

// Картотека. Schema. addTable (new DBTable («card_case», «id_card_case»));table = DB. Schema. addTable (new DBTable («card_folder», «id_card_folder»));. addForeignKey (new DBForeighLink («id_card_case», DB. Schema. getTable («card_case»), «id_card_case»));

// Документ= DB. Schema. addTable (new DBTable («document», «id_document»));. addForeignKey (new DBForeighLink («id_d_type», DB. Schema. getTable («doc_type»), «id_doc_type»));. addForeignKey (new DBForeighLink («id_card_folder», DB. Schema. getTable («card_folder»), «id_card_folder»));

// Получение списка типов документов(var dbhelper = BeginTransaction ())(var com = new DBCommand («SELECT * FROM v_notdel_doc_type»))

{= dbhelper. fetchAll (com);= new Dictionary<string, DBO_DocType> ();= new Dictionary<long?, DBO_DocType> ();(var dt in docTypeList)

{. Add (dt. Name, dt);. Add (dt. ID, dt);

}

}

}

// FoundedCount getFoundedCount (DBDocumentFilter doc_filter, DBO_DocType doc_type)

{(var dbhelper = BeginTransaction ())

{

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

// query = new DBQueryBuilder (DB. Schema);. SELECT («COUNT (*) count»). FROM («document»). LIMIT (1);_filter. apply (query);

// (var com = new DBCommand (query. BuildQuery ()))

{_filter. passParams (com);

// (var reader = dbhelper. executeReader (com))

{(reader. Read ())

{res = new FoundedCount ();. DocType = doc_type;. Count = reader. readField («count»);res;

}return null;

}

}

}

}

// Возвращает список годов, которые присуствует в архиве (+days дней от текущего момента)ObservableCollection getArchiveYears (int days)

{(var dbhelper = BeginTransaction ())

{ result = new ObservableCollection ();(var com = new DBCommand ())

{(DBDocumentFilter. IsAutoArchiveEnabled)

{.commandText =

«SELECT ifnull (elapsing_year, force_year) AS elapsing_year, ifnull (force_year, elapsing_year) AS force_year » +

«FROM v_documents_year » +

«WHERE elapsing_min IS NOT NULL AND elapsing_min < date (CURRENT_TIMESTAMP, ‘-» + days. ToString () + » days’) OR » +

«force_min IS NOT NULL » +

«ORDER BY elapsing_year DESC, force_year DESC»;

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

{.commandText =

«SELECT DISTINCT force_year AS elapsing_year, force_year AS force_year » +

«FROM v_documents_year » +

«WHERE force_min IS NOT NULL » +

«ORDER BY elapsing_year DESC, force_year DESC»;

}(var reader = dbhelper. executeReader (com))

{last_year = int. MaxValue;(reader. Read ())

{elapsing_year = reader. readField («elapsing_year»);force_year = reader. readField («force_year»);year = (elapsing_year > force_year)? force_year: elapsing_year;(year < last_year)

{. Add (year);_year = year;

}

}

}

}result;

}

}

// Удалить все документы, удовлетворяющие фильтру

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

// Связанные файлы НЕ удаляютсяvoid deleteAllDocWithFilter (DBDocumentFilter filter, DBHelper dbhelper)

{query = new DBQueryBuilder (DB. Schema);. FROM («document»);. apply (query);(var com = new DBCommand («DELETE» + query. BuildQuery ()))

{. passParams (com);. executeNonQuery (com);

}

}void deleteAllDocWithFilter (DBDocumentFilter filter)

{(var dbhelper = BeginTransaction ())

{(filter, dbhelper);

}

}

// Поместить в корзину документ docvoid throwDocumentToBin (DBO_Document doc)

{(var dbhelper = BeginTransaction ())(var com = new DBCommand («UPDATE document SET is_in_recycle_bin = 1 WHERE id_document = @id_document»))

{. Parameters. AddWithValue («@id_document», doc. ID);. IsInRecycleBin = true;. executeNonQuery (com);

}

}

// Принудительно поместить документ в архивvoid forcePutInArchive (DBO_Document doc)

{(var dbhelper = BeginTransaction ())(var com = new DBCommand («UPDATE document SET force_close_time = @force_close_time WHERE id_document = @id_document»))

{close_time = DateTime. Now;. Parameters. AddWithValue («@force_close_time», close_time);. Parameters. AddWithValue («@id_document», doc. ID);. ForceCloseDate = close_time;. executeNonQuery (com);

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

}

// Отменить принудительное помещение в архивvoid forceGetFromArchive (DBO_Document doc)

{(var dbhelper = BeginTransaction ())(var com = new DBCommand («UPDATE document SET force_close_time = @force_close_time WHERE id_document = @id_document»))

{. Parameters. AddWithValue («@force_close_time», null);. Parameters. AddWithValue («@id_document», doc. ID);. ForceCloseDate = null;. executeNonQuery (com);

}

}

// Восстановить из корзины документ docvoid restoreDocumentFromBin (DBO_Document doc)

{(var dbhelper = BeginTransaction ())(var com = new DBCommand («UPDATE document SET is_in_recycle_bin = 0 WHERE id_document = @id_document»))

{. Parameters. AddWithValue («@id_document», doc. ID);. IsInRecycleBin = false;. executeNonQuery (com);

}

}

// Возвращает список документов указнного типа в выбранный периодObservableCollection getDocumentsWithFilter (DBDocumentFilter filter, DBHelper dbhelper)

{query = new DBQueryBuilder (DB. Schema);. SELECT («*»). FROM («document», «d»). JOIN («doc_type», «t»). WHERE (» [is_deleted] = 0″, «doc_type»). ORDER_BY («name_document»);. apply (query);(var com = new DBCommand (query. BuildQuery ()))

{. passParams (com);dbhelper. fetchAll (com);

}

}ObservableCollection getDocumentsWithFilter (DBDocumentFilter filter)

{(var dbhelper = BeginTransaction ())

{getDocumentsWithFilter (filter, dbhelper);

}

}

// Возвращает список типов документа в выбранный период

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

// (либо за указанный год в архиве, когда year! = null, либо +days дней от текущего момента)ObservableCollection getDocTypesWithFilter (DBDocumentFilter filter)

{(var dbhelper = BeginTransaction ())

{query = new DBQueryBuilder (DB. Schema);. SELECT («t. *»). FROM («document», «d»). JOIN («doc_type», «t»). WHERE (» [is_deleted] = 0″, «doc_type»). GROUP_BY (» [id_doc_type]», «doc_type»);. apply (query);(var com = new DBCommand (query. BuildQuery ()))

{. passParams (com);dbhelper. fetchAll (com);

}

}

}

// Возаращет тип документа с заданным именемDBO_DocType getDocTypeWithName (string name)

{(docTypes. ContainsKey (name)) return docTypes [name];return null;

}

// Возаращет тип документа с заданным IDDBO_DocType getDocTypeWithID (long? id)

{(docTypesByID. ContainsKey (id)) return docTypesByID [id];return null;

}

// Возвращает все типы документовObservableCollection getDocTypes ()

{docTypeList;

}

}

}

Файл DBModule_CardCase. csSystem;System. Collections. Generic;System. Linq;System. Text;System. Data. SQLite;System. Windows;System. Collections. ObjectModel;System. Reflection;System. Data;DKCore. DataBase. Objects;DKCore. DataBase;DKCore. DataBase. Attributes;DKCore. DataBase. Modules

{class DBModule_CardCase: DBModuleBase

{public void Init ()

{

// Картотека. Schema. addTable (new DBTable («card_case», «id_card_case»));table = DB. Schema. addTable (new DBTable («card_folder», «id_card_folder»));. addForeignKey (new DBForeighLink («id_card_case», DB. Schema. getTable («card_case»), «id_card_case»));

}

// Возвращает все ящики в картотекеObservableCollection getCardCases ()

{(var dbhelper = BeginTransaction ())(var com = new DBCommand («SELECT * FROM v_notdel_card_case»))

{dbhelper. fetchAll (com);

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

}

// Удаляет.

// Физически запись не удаляетсяbool deleteCardCase (DBO_CardCase obj)

{(var dbhelper = BeginTransaction ())

{. IsDeleted = true;. update (obj, new { IsDeleted = 0 });

}true;

}

// Переименовывает ящик

// Возвращает false, если ящик с таким именем уже существуетbool renameCardCase (DBO_CardCase obj, string new_name)

{(var dbhelper = BeginTransaction (true, true))

{

{already_exist = false;

// Проверка на повтор(var com_sel = new DBCommand («SELECT 1 FROM v_notdel_card_case WHERE title_card_case = @title_card_case»))

{_sel. Parameters. AddWithValue («@title_card_case», new_name);(var reader = dbhelper. executeReader (com_sel)) already_exist = reader. Read ();

}(! already_exist)

{

// Изменение в базе(var com_upd = new DBCommand («UPDATE card_case SET title_card_case = @title_card_case WHERE id_card_case = @id_card_case»))

{_upd. Parameters. AddWithValue («@title_card_case», new_name);_upd. Parameters. AddWithValue («@id_card_case», obj. ID);. executeNonQuery (com_upd);.commit ();. Title = new_name;true;

}

}return false;

}(Exception e)

{. Rollback ();. Show (e. ToString ());false;

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

}

}

// Возвращает все отсортированные по имениObservableCollection getCardCasesSortedByTitle ()

{(var dbhelper = BeginTransaction ())(var com = new DBCommand («SELECT * FROM v_notdel_card_case ORDER BY title_card_case»))

{dbhelper. fetchAll (com);

}

}

// Добавление нового

// dbhelper — объект текущей транзакцииbool addCardCase (DBO_CardCase obj, DBHelper dbhelper)

{. insert (obj);. ID = dbhelper. getLastInsertedID («card_case», «id_card_case»);true;

}bool addCardCase (DBO_CardCase obj)

{(var dbhelper = BeginTransaction ())

{addCardCase (obj, dbhelper);

}

}

// Возвращает все ящики в картотекеObservableCollection getCardFolders (DBO_CardCase card_case)

{(var dbhelper = BeginTransaction ())(var com = new DBCommand («SELECT * FROM v_notdel_card_folder WHERE id_card_case = @id_card_case»))

{. Parameters. AddWithValue («@id_card_case», card_case. ID);dbhelper. fetchAll (com);

}

}

// Возвращает все отсортированные по имениObservableCollection getCardFoldersSortedByTitle (DBO_CardCase card_case)

{(var dbhelper = BeginTransaction ())(var com = new DBCommand («SELECT * FROM v_notdel_card_folder WHERE id_card_case = @id_card_case ORDER BY title_card_folder»))

{. Parameters. AddWithValue («@id_card_case», card_case. ID);dbhelper. fetchAll (com);

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

}

// Добавление нового

// dbhelper — объект текущей транзакцииbool addCardFolder (DBO_CardFolder obj, DBHelper dbhelper)

{. insert (obj);. ID = dbhelper. getLastInsertedID («card_folder», «id_card_folder»);true;

}bool addCardFolder (DBO_CardFolder obj)

{(var dbhelper = BeginTransaction ())

{addCardFolder (obj, dbhelper);

}

}

// Удаляет.

// Физически запись не удаляетсяbool deleteCardFolder (DBO_CardFolder obj)

{(var dbhelper = BeginTransaction ())

{. IsDeleted = true;. update (obj, new { IsDeleted = 0 });

}true;

}

// Переименовывает папку в ящике

// Возвращает false, если ящик с таким именем уже существуетbool renameCardFolder (DBO_CardFolder obj, string new_name)

{(var dbhelper = BeginTransaction (true, true))

{

{already_exist = false;

// Проверка на повтор(var com_sel = new DBCommand («SELECT 1 FROM v_notdel_card_folder WHERE id_card_case = @id_card_case AND title_card_folder = @title_card_folder»))

{_sel. Parameters. AddWithValue («@title_card_folder», new_name);_sel. Parameters. AddWithValue («@id_card_case», obj. CardCaseID);(var reader = dbhelper. executeReader (com_sel)) already_exist = reader. Read ();

}(! already_exist)

{

{_upd. Parameters. AddWithValue («@title_card_folder», new_name);_upd. Parameters. AddWithValue («@id_card_folder», obj. ID);. executeNonQuery (com_upd);.commit ();. Title = new_name;true;

}

}return false;

}(Exception e)

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

{. Rollback ();. Show (e. ToString ());false;

}

}

}

// Возвращает «Пустую запись»DBO_CardFolder whitespaceCardFolder;DBO_CardFolder getWhiteSpaceCardFolder (DBHelper dbhelper)

{(whitespaceCardFolder == null)

{(var com = new DBCommand («SELECT * FROM card_folder WHERE title_card_folder = » LIMIT 1″))

{= dbhelper. fetchOne (com);(whitespaceCardFolder == null)

{= new DBO_CardFolder () { Title = «», IsDeleted = true };(whitespaceCardFolder, dbhelper);

}

}

}whitespaceCardFolder;

}

}

}

Файл DBModule_FastSearch. csSystem;System. Collections. Generic;System. Linq;System. Text;System. Data. SQLite;System. Windows;System. Collections. ObjectModel;System. Reflection;System. Data;DKCore. DataBase. Objects;DKCore. DataBase;DKCore. DataBase. Attributes;DKCore. DataBase. Modules

{class DBModule_FastSearch: DBModuleBase

{public void Init ()

{

// Поисковый тег. Schema. addTable (new DBTable («search_tag», «id_search_tag»));

// Связь документов и тегов:table = DB. Schema. addTable (new DBTable («lnk_document_and_search_tag», «id_document»));. addForeignKey (new DBForeighLink («id_document», DB. Schema. getTable («document»)));. addForeignKey (new DBForeighLink («id_search_tag», DB. Schema. getTable («search_tag»)));

}

// Быстрый поиск текст search_text, возвращающий count результатовObservableCollection fastSearch (string search_text, int count)

{(var dbhelper = BeginTransaction ())

{query = new DBQueryBuilder (DB. Schema);. SELECT_DISTINCT (» [*]», «document»)

. FROM («document», «d»). JOIN_LEFT («lnk_document_and_search_tag», «lnk»). JOIN_LEFT («search_tag», «s»)

. WHERE («UnicodeUpper ([1. title_search_tag]) LIKE @tag_like OR UnicodeUpper ([2. name_document]) LIKE @name_like», «search_tag», «document»)

. ORDER_BY (» [updated_time]», true, «document»)

. LIMIT (count);(var com = new DBCommand (query. BuildQuery ()))

{. Parameters. AddWithValue («@tag_like», «%» + search_text. ToUpper () + «%»);. Parameters. AddWithValue («@name_like», search_text. ToUpper () + «%»);dbhelper. fetchAll (com);

}

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

}

// Добавляет тег поиска search_tag к документу documentvoid addSearchTag (DBO_Document document, string search_tag, DBHelper dbhelper)

{(search_tag! = null)

{(var com = new DBCommand («SELECT * FROM search_tag WHERE title_search_tag = @title_search_tag»))

{. Parameters. AddWithValue («@title_search_tag», search_tag);st = dbhelper. fetchOne (com);(st == null)

{= new SearchTag () { Title = search_tag };. insert (st);. ID = dbhelper. getLastInsertedID («search_tag», «id_search_tag»);

}. insertValues

(

«lnk_document_and_search_tag»,Dictionary<string, object> () { { «id_document», document. ID }, { «id_search_tag», st. ID } }

);

}

}

}

// Добавляет информацию для поиска, специфичную documentvoid addDocumentSearchInfo (DBO_Document document, DBHelper dbhelper)

{

// addSearchTag (document, document. Name, dbhelper);

}

// Удаление старых поисковых тегов для докумета с ID = idvoid clearSearchInfo (long? id, DBHelper dbhelper)

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

{(var com = new DBCommand («DELETE FROM lnk_document_and_search_tag WHERE id_document = @id_document»))

{. Parameters. AddWithValue («@id_document», id);. executeNonQuery (com);

}

}

}

}

Файл DBModule_FIles. csSystem;System. Collections. Generic;System. Linq;System. Text;System. Data. SQLite;System. Windows;System. Collections. ObjectModel;System. Reflection;System. Data;DKCore. DataBase. Objects;DKCore. DataBase;DKCore. DataBase. Attributes;DKCore. DataBase. Modules

{class DBModule_Files: DBModuleBase

{public void Init ()

{

// Файлы:table = DB. Schema. addTable (new DBTable («doc_file», «id_doc_file»));. addForeignKey (new DBForeighLink («id_document», DB. Schema. getTable («document»)));

// Кол-во файлов в документе= DB. Schema. addTable (new DBTable («v_documents_file_count», «id_document»));. addForeignKey (new DBForeighLink («id_document», DB. Schema. getTable («document»)));

}

// Добавление нового файла в базу, назначение ему IDbool addDocFile (DBO_DocFile file, DBHelper dbhelper)

{. insert (file);. ID = dbhelper. getLastInsertedID («doc_file», «id_doc_file»);true;

}

// Добавление новой папки в базу, назначение ей IDbool addDocFileFolder (DBO_DocFileFolder folder, DBHelper dbhelper)

{. insert (folder);. ID = dbhelper. getLastInsertedID («doc_file_folder», «id_doc_file_folder»);true;

}

// Обновление пути файла в хранилищеvoid updateStoragePath (DBO_DocFile file, DBHelper dbhelper)

{. update (file, new { StoragePath = 0 });

}

// Обновление данных файлаvoid updateFileInfo (DBO_DocFile file)

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

{(var dbhelper = BeginTransaction ())

{. update (file);

}

}

// Обновление данных папкиvoid updateFolderInfo (DBO_DocFileFolder file)

{(var dbhelper = BeginTransaction ())

{. update (file);

}

}

// Возвращает все файлы, связанные с документомObservableCollection getDocFiles (DBO_Document doc)

{(var dbhelper = BeginTransaction ())(var com = new DBCommand («SELECT * FROM v_notdel_doc_file WHERE id_document = @id_document»))

{. Parameters. AddWithValue («@id_document», doc. ID);dbhelper. fetchAll (com);

}

}

// Возвращает все файлы, связанные с документом, находящиеся в заданной папкеObservableCollection getDocFiles (DBO_Document doc, long? folder_id)

{getDocFiles (doc. ID, folder_id);

}ObservableCollection getDocFiles (long? doc_id, long? folder_id)

{folder_id_query = «parent_id_doc_file_folder = @folder_id»;(folder_id == null) folder_id_query = «parent_id_doc_file_folder IS NULL»;(var dbhelper = BeginTransaction ())(var com = new DBCommand («SELECT * FROM v_notdel_doc_file WHERE id_document = @id_document AND » + folder_id_query))

{. Parameters. AddWithValue («@id_document», doc_id);. Parameters. AddWithValue («@folder_id», folder_id);dbhelper. fetchAll (com);

}

}

// Возвращает все папки, находящиеся в указаннойObservableCollection getDocFolders (DBO_Document doc, long? folder_id)

{getDocFolders (doc. ID, folder_id);

}ObservableCollection getDocFolders (long? doc_id, long? folder_id)

{folder_id_query = «parent_id_doc_file_folder = @folder_id»;(folder_id == null) folder_id_query = «parent_id_doc_file_folder IS NULL»;(var dbhelper = BeginTransaction ())(var com = new DBCommand («SELECT * FROM v_notdel_doc_file_folder WHERE id_document = @id_document AND » + folder_id_query))

{. Parameters. AddWithValue («@id_document», doc_id);. Parameters. AddWithValue («@folder_id», folder_id);dbhelper. fetchAll (com);

}

}

// Удалитьвсе записи о прикрепленных файлах для документаvoid deleteAllFiles (DBO_Document doc, DBHelper dbhelper)

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

{(var com = new DBCommand («DELETE FROM doc_file WHERE id_document = @id_document»))

{. Parameters. AddWithValue («@id_document», doc. ID);. executeNonQuery (com);

}

}

// Удалитьвсе записи о прикрепленных папках для документаvoid deleteAllFolders (DBO_Document doc, DBHelper dbhelper)

{(var com = new DBCommand («DELETE FROM doc_file_folder WHERE id_document = @id_document»))

{. Parameters. AddWithValue («@id_document», doc. ID);. executeNonQuery (com);

}

}

}

}

Файла AddDocument. xaml. csSystem;System. Collections. Generic;System. Linq;System. Text;System. Windows;System. Windows. Controls;System. Windows. Data;System. Windows. Documents;System. Windows. Input;System. Windows. Media;System. Windows. Media. Imaging;System. Windows. Shapes;System. Collections. ObjectModel;System.runtime. Serialization;System.runtime. Serialization. Formatters;System.runtime. Serialization. Formatters. Binary;DKCore. DataBase. Objects;DKeeper. Logic. API;DKeeper. Forms. EditListForm;DKCore. ConcreteDocuments. Interfaces. Forms;DKeeper. Forms.common;DKCore. DataBase. Modules;DKCore. FormsI;DKeeper. Forms. AddDocument

{

// /

// / Interaction logic for AddDocument. xaml

// /

partial class AddDocument: Window

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

{Dictionary<DBO_DocType, ICDocAddPage> recentDocTypes;ICDocAddPage currentDocPage;ObservableCollection editedFiles;ObservableCollection editedFolders;DBO_Document CurrentDocument

{{ return DataContext as DBO_Document; }

}bool OpenAfterClose { get; set; }AddDocument ()

{= new Dictionary<DBO_DocType, ICDocAddPage> ();= new DBO_Document ();= new ObservableCollection ();= new ObservableCollection ();();

// lstAttachedFiles. ItemsSource = attachedFiles;= false;

}void Window_Loaded (object sender, RoutedEventArgs e)

{

// Загрузка типов документовdoctype_list = new ObservableCollection ();(var addin in App. ConcreteDocAddins)

{_list. Add (addin. Value. DocTypeDBO);

}. ItemsSource = doctype_list;. ItemsSource = App. DB. Module (). getCardCasesSortedByTitle ();

}

// Смена типа документовvoid cmbDocTypes_SelectionChanged (object sender, SelectionChangedEventArgs e)

{_DocType selected = ( (ComboBox) sender). SelectedItem as DBO_DocType;page = null;(selected! = null)

{(recentDocTypes. ContainsKey (selected)) page = recentDocTypes [selected];

{(App. ConcreteDocAddins. ContainsKey (selected. Name))

{= App. ConcreteDocAddins [selected. Name]. getNewAddPage ();[selected] = page;

}

}

}(page! = null)

{. Navigate (page);= page;

}

}void insertToDB ()

{

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

{card_case = cmbxCardCase. SelectedItem as DBO_CardCase;(card_case == null)

{(cmbxCardCase. Text! = «») card_case = new DBO_CardCase () { Title = cmbxCardCase. Text };

}card_folder = cmbxCardFolder. SelectedItem as DBO_CardFolder;(card_folder == null)

{(cmbxCardFolder. Text! = «») card_folder = new DBO_CardFolder () { Title = cmbxCardFolder. Text };

}

// MessageBox. Show («-3»);

// Сам документfull_doc_info = new DBO_FullDocInfo ();_doc_info.commonInfo = CurrentDocument;_doc_info. CardCase = card_case;_doc_info. CardFolder = card_folder;result = currentDocPage. insertConcreteDocToDB (full_doc_info);(result)

{

// MessageBox. Show («-2»);

// Прикрепленные файлы= result && App. API (). addAttachedFolders (CurrentDocument, editedFolders);= result && App. API (). addAttachedFiles (CurrentDocument, editedFiles);(! result)

{. Show («Документ #» + CurrentDocument. ID + » был добавлен, » +

«однако в процессе создания возникли ошибки и не все данные были сохранены.» +

«Рекомендуется повторно отредактировать документ»);

}= result;();

}

}(Exception e)

{. Show (e. ToString ());

}

}void OK_Click (object sender, RoutedEventArgs e)

{();

}void Cancel_Click (object sender, RoutedEventArgs e)

{= false;();

}void cmbxCardCase_SelectionChanged (object sender, SelectionChangedEventArgs e)

{card_case = cmbxCardCase. SelectedItem as DBO_CardCase;. Text = «»;(card_case! = null)

{. ItemsSource = App. DB. Module (). getCardFoldersSortedByTitle (card_case);

}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

{. ItemsSource = null;

}

}void btnCardCase_Click (object sender, RoutedEventArgs e)

{editlist = new EditListForm. EditListForm ();settings = new EditListSettings ();. GetElemsFunc = App. DB. Module (). getCardCasesSortedByTitle;. AddElemFunc = App. DB. Module (). addCardCase;. DeleteElemFunc = App. DB. Module (). deleteCardCase;. EditListSettings = settings;. SelectingObjTitle = «Картотека — ящик»;res = editlist. ShowDialog ();(editlist. ListWasChanged)

{

// Обновление списка. ItemsSource = App. DB. Module (). getCardCases ();

}(res == true)

{sel = (DBO_CardCase) editlist. SelectedItem;_CardCase lst_sel = null;(var item in cmbxCardCase. Items)

{as_dbo = item as DBO_CardCase;(as_dbo! = null && sel. ID == as_dbo. ID)

{_sel = as_dbo;;

}

}. SelectedItem = lst_sel;

}

}void btnCardFolder_Click (object sender, RoutedEventArgs e)

{card_case = cmbxCardCase. SelectedItem as DBO_CardCase;(card_case! = null)

{editlist = new EditListForm. EditListForm ();settings = new EditListSettings ();. GetElemsFunc = ( () => App. DB. Module (). getCardFoldersSortedByTitle (card_case));. AddElemFunc = ( (card_folder) => { card_folder. CardCaseID = card_case. ID; return App. DB. Module (). addCardFolder (card_folder); });. DeleteElemFunc = App. DB. Module (). deleteCardFolder;. EditListSettings = settings;. SelectingObjTitle = «Картотека — папка»;res = editlist. ShowDialog ();(editlist. ListWasChanged)

{

// Обновление списка. ItemsSource = App. DB. Module (). getCardFolders (card_case);

}(res == true)

{sel = (DBO_CardFolder) editlist. SelectedItem;_CardFolder lst_sel = null;(var item in cmbxCardFolder. Items)

{as_dbo = item as DBO_CardFolder;(as_dbo! = null && sel. ID == as_dbo. ID)

{_sel = as_dbo;;

}

}. SelectedItem = lst_sel;

}

}

}void Window_Closed (object sender, EventArgs e)

{

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

// Удаление временных файлов(var file in editedFiles)

{(file. IsTemporary)

{{ System. IO. File. Delete (file. LocalPath); }(Exception) { }

}

}

}void AddFile_Click (object sender, RoutedEventArgs e)

{

// var open_dialog2 = new Ookii. Dialogs. Wpf. VistaOpenFileDialog ();files = App. API (). openFileDialog (true);(files! = null)

{(var filepath in files)

{file = new DBO_DocFile ();. LocalPath = filepath. ToString ();. OrigName = System. IO. Path. GetFileName (filepath);. Title = System. IO. Path. GetFileName (filepath);(file);(file, SelectedDocFolderTreeItem);

}

}

}void ScanFile_Click (object sender, RoutedEventArgs e)

{title = String. Format («Изображение{0}. jpg», editedFiles. Count + 1);file = App. API (). OpenScanDocDialog (title);(file! = null)

{. OrigName = System. IO. Path. GetFileName (title);(file);(file, SelectedDocFolderTreeItem);

}

}void AddFolder_Click (object sender, RoutedEventArgs e)

{folder = new DBO_DocFileFolder ();. Title = String. Format («Новая папка{0}», editedFolders. Count + 1);(folder);(folder, SelectedDocFolderTreeItem);

}TreeViewItem bubbleToTreeViewItem (object source)

{obj = (DependencyObject) source;(obj! = null && obj! = treeDocFiles && obj is Visual)

{(obj is TreeViewItem)

{(TreeViewItem) obj;

}= VisualTreeHelper. GetParent (obj);

}null;

}void DeleteAttachedFile_Executed (object sender, ExecutedRoutedEventArgs e)

{node = bubbleToTreeViewItem (e. Parameter);(node is DocFileTreeItem)

{( (DocFileTreeItem) node);

}if (node is DocFileFolderTreeItem)

{( (DocFileFolderTreeItem) node);

}

}

/*void lstAttachedFiles_MouseDoubleClick (object sender, MouseButtonEventArgs e)

{file = lstAttachedFiles. SelectedItem as DBO_DocFile;(file! = null && file. LocalPath! = null)

{. API (). openAttachedFile (file);

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

}

}

*/void Window_Closing (object sender, System.componentModel. CancelEventArgs e)

{

}DocFileFolderTreeItem SelectedDocFolderTreeItem

{

{selected = treeDocFiles. SelectedItem;(selected is DocFileTreeItem)

{ftree = (DocFileTreeItem) selected;ftree. Parent as DocFileFolderTreeItem;

}

{selected as DocFileFolderTreeItem;

}

}

}

// Удаляет узел из дереваvoid deleteNodeFromDocFileTree (TreeViewItem item)

{(item. Parent == treeDocFiles)

{. Items. Remove (item);

// Осталась только надпись «Файлы: «(treeDocFiles. Items. Count == 1) treeDocFiles. Items. RemoveAt (0);

}

{parent = item. Parent as TreeViewItem;(parent! = null) parent. Items. Remove (item);

}

}void deleteFromDocFiles (object item, bool quite = false)

{(item is DocFileFolderTreeItem) deleteFromDocFiles ( (DocFileFolderTreeItem) item, quite);if (item is DocFileTreeItem) deleteFromDocFiles ( (DocFileTreeItem) item, quite);

}void deleteFromDocFiles (DocFileFolderTreeItem folder_item, bool quite = false)

{folder = folder_item. Folder;(folder! = null)

{(! quite && folder. IsDeleted! = true && folder_item. Items. Count > 0)

{res = MessageBox. Show («Удалить папку ‘» + folder. Title + «‘ и все ее содержимое?», «Подтверждение удаления», MessageBoxButton. OKCancel);(res == MessageBoxResult. Cancel) return; // Отмена

}(folder. IsDeleted! = true)

{

// Удаление потомков

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

// var children = new List ();// foreach (var ch in folder_item. Items) children. Add (ch);// foreach (var ch in children) deleteFromDocFiles (ch, true);(int i = folder_item. Items. Count — 1; i >= 0; i—){(folder_item. Items [i], true);}// Удаление узла(folder. existInDB || folder_item. Items. Count > 0){(folder);. IsDeleted = true;}{(folder. IsChanged) editedFolders. Remove (folder);(folder_item);}}folder. IsDeleted = false;}}void deleteFromDocFiles (DocFileTreeItem file_item, bool quite = false){file = file_item. File;(file! = null){(file. IsDeleted! = true){(file. existInDB){(file);. IsDeleted = true;}{(file. IsTemporary){{ System. IO. File. Delete (file. LocalPath); }(Exception) { }}(file. IsChanged) editedFiles. Remove (file);(file_item);}}{// Восстановлениеparent = file_item. Parent as DocFileFolderTreeItem;(parent! = null){. Folder. IsDeleted = false;}}}}void addToDocFiles (DBO_DocFileFolder folder, DocFileFolderTreeItem parent_folder){tree_item = new DocFileFolderTreeItem ();_item. Folder = folder;(parent_folder == null){. ParentDocFolder = null;(treeDocFiles. Items. Count == 0){dummy = new TreeViewItem ();. Header = «Файлы: «;. Items. Add (dummy);}. Items. Add (tree_item);}{. ParentDocFolder = parent_folder. Folder;_folder. IsExpanded = true;_folder. Items. Add (tree_item);}}void setDocFileAsEdited (object file_or_folder){(file_or_folder is DBO_DocFile) setDocFileAsEdited ( (DBO_DocFile) file_or_folder);if (file_or_folder is DBO_DocFileFolder) setDocFileAsEdited ( (DBO_DocFileFolder) file_or_folder);}void setDocFileAsEdited (DBO_DocFile file){(file. IsChanged! = true){. Add (file);. IsChanged = true;}}void setDocFileAsEdited (DBO_DocFileFolder folder){(folder. IsChanged! = true){. Add (folder);. IsChanged = true;}}void addToDocFiles (DBO_DocFile file, DocFileFolderTreeItem parent_folder){tree_item = new DocFileTreeItem ();_item. File = file;(parent_folder == null){. ParentDocFolder = null;(treeDocFiles. Items. Count == 0){dummy = new TreeViewItem ();. Header = «Файлы: «;. Items. Add (dummy);}. Items. Add (tree_item);}{. ParentDocFolder = parent_folder. Folder;_folder. IsExpanded = true;_folder. Items. Add (tree_item);}}void treeDocFiles_Expanded (object sender, RoutedEventArgs e){folder_item = e. Source as DocFileFolderTreeItem;(folder_item! = null){(folder_item. Items. Count == 1 && folder_item. Items [0] == null){_item. Items. Clear ();(folder_item. Folder. existInDB){folders = App. DB. Module (). getDocFolders (CurrentDocument, folder_item. Folder. ID);(var f in folders) addToDocFiles (f, folder_item);files = App. DB. Module (). getDocFiles (CurrentDocument, folder_item. Folder. ID);(var f in files) addToDocFiles (f, folder_item); }}}}void treeDocFiles_MouseDoubleClick (object sender, MouseButtonEventArgs e){item = bubbleToTreeViewItem (e. OriginalSource) as DocFileTreeItem;(item! = null){file = item. File;(file! = null && file. LocalPath! = null){. API (). openAttachedFile (file); }}}void treeDocFiles_KeyUp (object sender, KeyEventArgs e){}void treeDocFiles_Renamed (object o, DKCustomControls. RenamingRoutedEventArgs e){. NewName = e. NewName. Trim ();. Cancel = true;// Определение объектаitem = bubbleToTreeViewItem (e. OriginalSource);obj_title = «файла»;(item is DocFileFolderTreeItem) obj_title = «папки»;(String. IsNullOrEmpty (e. NewName)) MessageBox. Show («Имя » + obj_title + » не задано»);if (e. NewName ==».» || e. NewName ==». «) MessageBox. Show («Недопустимое имя » + obj_title);if (e. NewName. IndexOfAny (System. IO. Path. GetInvalidFileNameChars ())! = — 1) MessageBox. Show («Недопустимые символы в имени » + obj_title);if (item is DocFileTreeItem){(System. IO. Path. GetExtension (e. NewName)! = System. IO. Path. GetExtension (e. OldName)){res = MessageBox. Show («Вы действительно хотите изменить расширение файла?», «Переименование файла», MessageBoxButton. YesNo);. Cancel = res == MessageBoxResult. No;}e. Cancel = false;}e. Cancel = false;(e. Cancel == false){(item is DocFileFolderTreeItem){folder = (DocFileFolderTreeItem) item;. Folder. Title = e. NewName;(folder. Folder);}{file = (DocFileTreeItem) item;. File. Title = e. NewName;(file. File);}}}[Serializable]class DragDataItem: ISerializable{TreeViewItem Item { get; set; }DragDataItem (){{}void GetObjectData (SerializationInfo info, StreamingContext context){}}startPoint;void treeDocFiles_MouseLeftButtonDown (object sender, MouseButtonEventArgs e){= e. GetPosition (null);}void treeDocFiles_MouseMove (object sender, MouseEventArgs e){(e. LeftButton == MouseButtonState. Pressed){mousePos = e. GetPosition (null);diff = startPoint — mousePos;(Math. Abs (diff. X) > SystemParameters. MinimumHorizontalDragDistance || Math. Abs (diff. Y) > SystemParameters. MinimumVerticalDragDistance){tree_item = bubbleToTreeViewItem (e. OriginalSource);(Mouse. Captured == null && tree_item! = null && (tree_item is DocFileFolderTreeItem || tree_item is DocFileTreeItem)){dr = new DragDataItem ();. Item = tree_item;{. DoDragDrop (treeDocFiles, dr, DragDropEffects. Move);}(Exception) { }}}}}bool checkCanDrop (TreeViewItem tree_item, TreeViewItem dragged){(tree_item == null || tree_item is DocFileTreeItem) return false;(tree_item is DocFileFolderTreeItem){folder_item = (DocFileFolderTreeItem) tree_item;own_id = folder_item. Folder. ID;(folder_item! = null){(folder_item. Folder. IsDeleted == true) return false;(folder_item == dragged) return false;if (own_id! = null && folder_item. Folder. ParentDocFolderID == own_id) return false;_item = folder_item. Parent as DocFileFolderTreeItem;}}true;}void treeDocFiles_DragOver (object sender, DragEventArgs e){tree_item = bubbleToTreeViewItem (e. OriginalSource);dragged_tm = null;{_tm = e. Data. GetData (typeof (DragDataItem)) as DragDataItem;}(Exception) { }(dragged_tm! = null){dragged = dragged_tm. Item;(! checkCanDrop (tree_item, dragged)){. Effects = DragDropEffects. None;}}. Handled = true;}void treeDocFiles_Drop (object sender, DragEventArgs e){. Effects = DragDropEffects. None;. Handled = true;tree_item = bubbleToTreeViewItem (e. OriginalSource);dragged_tm = null;{_tm = e. Data. GetData (typeof (DragDataItem)) as DragDataItem;}(Exception) { }(dragged_tm! = null){dragged = dragged_tm. Item;(dragged! = tree_item && checkCanDrop (tree_item, dragged)){par = dragged. Parent as ItemsControl;. Items. Remove (dragged);_item. IsExpanded = true;_DocFileFolder folder = null;// (tree_item is DocFileFolderTreeItem){_item. Items. Add (dragged);= ( (DocFileFolderTreeItem) tree_item). Folder;}treeDocFiles. Items. Add (dragged);// drag_file = dragged as DocFileTreeItem;drag_folder = dragged as DocFileFolderTreeItem;(drag_file! = null){_file. File. ParentDocFolder = folder;(drag_file. File);}if (drag_folder! = null){_folder. Folder. ParentDocFolder = folder;(drag_folder. Folder);}}}}}}Файл AddDocument. xaml </ResourceDictionary. MergedDictionaries> </Window. Resources> </Grid. RowDefinitions>Добавить документ<! — Тип документа — -> </Grid. ColumnDefinitions>  </Grid. RowDefinitions><! — Область для полей конкретных типов документов — -> <! — ——> </Grid. RowDefinitions> </Grid. ColumnDefinitions>   </Grid. ColumnDefinitions>  

</Button. Style> 

</DockPanel. Style>   <! — —> <! — Общая информация документов — -> Прикрепить:     <! — — </Grid. ColumnDefinitions> </Grid. RowDefinitions> Прикрепить файл  —><! — —  

</Style. Resources>  </Setter. Value>  </Style. Triggers></ListBox. Style> </Grid. ColumnDefinitions></dkctrls: RenamingTextBox>      </ControlTemplate. Triggers> </Button. Template>     </DataTemplate. Triggers> </ListBox. ItemTemplate> —>  <! — —    </Grid. ColumnDefinitions> </Grid. RowDefinitions>Имя: Документы: Добавить:      >   <! — Диалоговые кнопки — -> </Grid. ColumnDefinitions>Открыть по завершении     
Приложение 3. Руководство оператора структурированной системы хранения документов предприятия П.3.1 Назначение программыСистема предназначена для ведения архива документов, предосталяет возможности поиска и печати.П.3.2 Условия выполнения программыДля работы структурированной системы хранения документов предприятия требуется персональный компьютер со следующими характеристиками и устройствами:процессор: 1 ГГц (или выше);ОЗУ: 1024 Мб (или выше);жесткий диск: 10 Гб (или выше);видеоадаптер;монитор;клавиатура;мышь.Для доступа к функциям печати и сканирования требуются соответствующие устройства.Кроме того, должно быть установлено следующее программное обеспечение:Операционная система: Windows XP SP 3, Windows Vista, Windows 7 (или выше).net Framework 4.5 Client Profile;Installer 3.1 (или выше).Для доступа к функциям печати и сканирования требуется установка драйверов соответствующих устройств.П.3.3 Пуск программыДля пуска программы необходимо открыть файл docstruct. exeП.3.4 Команды оператораОпреатор может выполнять следующие команды:) Документы. — > Добавить — добавление нового документа;) Документы. — > Изменить — изменение текущего документа;) Документы. — > Удалить — удаление текущего документа;) Документы. — > Поместить в архив — помещение текущего документа в архив;) Документы. — > Извлечь из архива — извлечение текущего документа их архива;) Картотека — показ позиции документов в картотеке;) Отчеты — > Истекающие документы — показ списка документов с истекающим сроком;) Найти… — открыть форму поиска;) Настройки — настройки программы (пути до базы данных, автоматическое помещение документов в архив);) Файл — > Создать резервную копию — создание резервной копии базы данных;) Файл — > Восстановить базу данных — восстановление базы данных из ранее созданных резервных копий;) Файл — > Закрыть — выход и из программы

Средняя оценка 0 / 5. Количество оценок: 0

Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

519

Закажите такую же работу

Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке

Помощь в написании работы