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

Разработка базы данных "Аптека" для ГУЗ НО "Медицинский информационно-аналитический центр"

Работа из раздела: «Программирование, компьютеры и кибернетика»

/

Аннотация

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

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

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

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

Пояснительная записка к дипломному проекту содержит ___ листов, в которые входят 51 таблица, 43 рисунка.

Весь материал изложен в виде 4 глав:

1) Расчетно-теоретическая часть

2) Технологическая часть

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

4) Безопасность и экологичность проекта

Содержание

Введение

Данная работа посвящена проектированию базы данных 'Аптека' для учета лекарственных средств и изделий медицинского назначения, предназначенной для использования в аптеках стационаров лечебно-профилактических учреждений (ЛПУ) Нижегородской области и Нижнего Новгорода.

Заказчиком данного проекта является Министерство здравоохранения Нижегородской области. Основанием для создания базы данных стала в главной степени необходимость контроля за движением лекарственных средств и изделий медицинского назначения в аптеках стационаров лечебно-профилактических учреждений.

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

база программный продукт аптека

1. Расчетно-теоретическая часть

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

1.1.1 Наименование программного продукта

База данных 'Аптека'.

1.1.2 Назначение разработки

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

1.1.3 Область применения

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

1.1.4 Общие требования к программному продукту

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

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

ускорение и упрощение формирования необходимой отчетности;

контроль за движением лекарственных средств.

1.1.5 Требования к надежности

Надежное (устойчивое) функционирование программы должно быть обеспечено выполнением Заказчиком совокупности организационно-технических мероприятий, перечень которых приведен ниже:

организация бесперебойного питания технических средств;

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

регулярное выполнение рекомендаций Министерства труда и социального развития РФ, изложенных в Постановлении № 28 от 23 июля 1998 г. 'Об утверждении межотраслевых типовых норм времени на работы по сервисному обслуживанию ПЭВМ и оргтехники и сопровождению программных средств';

регулярное выполнение требований ГОСТ 51188-98 'Испытания программных средств на наличие компьютерных вирусов'.

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

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

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

Удовлетворение требованиям выбранных программных средств.

Минимальная стоимость.

1.1.7 Требования к программным средствам

Ориентирование на модификацию и расширение.

Высокая эффективность и надежность.

Обеспечение целостности данных.

Обеспечение ограничения доступа к данным.

Удобство пользовательского интерфейса.

1.1.8 Требования к функциональным характеристикам

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

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

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

Ведение базы расходных документов с указанием номера документа, даты ввода, типа расходного документа, затребовавшего подразделения ЛПУ, затребовавшего лица, основания; информацией о номенклатуре, серии, сертификате, поставщике, цене поставки; данных о текущем остатке отпускаемой номенклатуры, её цене и количестве, сумме без НДС и сумме с НДС; итоговая сумма без НДС и с НДС по всем номенклатурам, указанным в расходном документе.

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

Получение информации о движении препарата в аптеке стационара ЛПУ за определенный период с указанием данных о препарате (наименование, форма выпуска, серия, сертификат, срок действия сертификата, производитель, срок годности, единица измерения) и текущем остатке.

Формирование отчетной документации:

Книга протаксированных накладных.

Приход.

Расход:

Отпущено отделениям и кабинетам.

Списано по актам, счетам и другим документам.

Всего расход. Остаток с учетом расхода.

Остатки на первое января:

Вся информация.

Прайс-лист.

Остатки по группам предметно-количественного учета (ПКУ).

Остатки по группам учета.

Приход с остатками.

Расход с остатками.

Формирование ведомостей за определенный период в разрезе источников финансирования, групп препаратов, позиции по номенклатурному номеру.

1.1.9 Требование к графическому интерфейсу

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

Панель меню главного окна системы (главное меню) должна предоставлять доступ с помощью клавиатуры или манипулятора типа 'мышь' ко всем инструментам настройки и управления системы.

Меню главного окна должно содержать следующие пункты:

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

Карточка - просмотр данных о движении каждой номенклатуры, сроке годности и текущем остатке; осуществление печати карточки.

Приход - ввод, просмотр и редактирование приходных документов; возможность печати товарной накладной и счет-фактуры.

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

Остаток на дату - просмотр остатков по номенклатурам; возможность печати данных об остатках.

Ввод остатков прошлого года - начальная установка остатков номенклатур (функция администратора).

Отчеты - пункт меню предназначен для работы с отчетными документами. Содержит следующие пункты подменю:

Ведомость - осуществляется формирование ведомости, а также печать стеллажной карточки (по Форме № АП-73, утвержденной приказом Министерства здравоохранения СССР от 8 января 1988 г. №14) и сличительная ведомость (по Форме № АП-43, утвержденной приказом Министерства здравоохранения СССР от 8 января 1988 г. №14).

Отчет - формирует книгу протаксированных накладных (по Форме № 7-МЗ, утвержденной приказом Министерства здравоохранения СССР от 30 декабря 1987 г. №1337), отчет по приходным накладным, по расходным накладным, остаткам на первое января текущего года, формирует прайс-лист, отчеты по остаткам по группам предметно-количественного учета, по остаткам групп учета, по приходу с остатками, по расходу с остатками.

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

Отделения - справочник отделений по каждому ЛПУ.

Банки - справочник банков для контрагентов.

Контрагенты и производители - справочник наименований контрагентов и производителей, также содержит реквизиты их банковских счетов.

Группы предметно-количественного учета - справочник групп ПКУ.

Фармакологические группы - справочник фармакологических групп.

Номенклатура - справочник номенклатур.

Дозировки - справочник дозировок.

Единицы измерения - справочник единиц измерения.

Источники финансирования - справочник видов источников финансирования.

Органы сертификации - справочник наименований органов сертификации.

Виды расходных операций - справочник видов расходных операций.

Страны - справочник стран - импортеров.

Сервисные функции - пункт меню предназначен для начальной настройки программы (функция администратора).

Реквизиты аптеки - заполнение данных об аптеке.

Настройка - настройки аптеки 'по умолчанию'.

Выход - выход из программы.

1.1.10 Требования к техническим средствам

Наличие сети между сервером и клиентской станцией.

Типовая конфигурация сервера представлена в таблице 1.1:

Таблица 1.1 - Типовая конфигурация сервера

Шасси

Intel 5500 чипсет, QPI 4.8/5.86/6.4 GT/sec, до 2 CPU Multi-Core Intel® Xeon® 5500/5600 семейства, до 24GB DDR3-1066/1333 ECC Unbuffered / Registered SDRAM, по 3 канала памяти на процессор (6 DIMM слотов, по 3 на процессор), 2 слота полной высоты PCI-E 2.0 x8 1 слот полной высоты PCI-E 2.0 x4 1 слот полной высоты PCI-E x4 2 слота полной высоты PCI 32bit / 33MHz (3.3 V)

Процессор

Quad-Core Intel Xeon E5506, 2,13 GHz, cache 4 Mb, QPI 4.8 GT/sec

Видеоконтроллер

Интегрированный Matrox G200eW, 16MB DDR SDRAM

Сетевой адаптер

Интегрированный 2-канальный Intel PRO/1000 T Server Adapter (i82574L), 10/100/1000 Mbit/s

SATA-контроллер

Интегрированный 6 портов SATA 3 Gbps, поддержка уровней RAID 0, 1,5,10 (программный)

Оперативная память

RAM 2 GB DDR2-667 Fully Buffered ECC

Жесткие диски

HDD SATA 500GB 7200 rpm

Операционная система

Microsoft Windows Server 2003 R2 Standard x64 Edition RUS c 5-ю клиентскими лицензиями (OEM)

Терминальные лицензии

RUS, CAL (Win2008) *5

Корпус

Настольный

Источники питания

865W, фиксированный

Гарантия

1-3-ий год OS 4-5-ый год Std

Клавиатура

Windows PS/2, черная

Мышь

Оптическая 2-кнопочная с колесом, PS/2, черная

Типовая конфигурация клиентской станции представлена в таблице 1.2.

Таблица 1.2 - Типовая конфигурация клиентской станции

Корпус

Ego Корпус DEPO MN

Операционная система

Windows 7 Pro 7 32-bit Russian Single packageDSP OEI DVD

Процессор

Intel Core i3 Processor 530 (2-Cores, 2.93GHz, 2.5 GT/s, 4Mb)

Оперативная память

2GB DDR3-1333 Single Channel (1 x 2GB)

Жесткий диск

500GB SATA hard drive (7200rpm)

Накопитель 5.25'

DVD+RW/CD-RW/DVD 16x4x/5xDL/16x4x/16x/48x/24x/48x

Видеокарта

Видеокарта ATI RadeonT HD 5750 (1024Mb, PCI-E DVI+HDMI+DP)

Звуковая карта

Интегрированный восьмиканальный звук

Сетевая карта

Интегрированная Gigabit Ethernet 10/100/1000Base-TX

Клавиатура

Keyboard Black PS/2 Russian

Мышь

Mouse Optical USB Black

Монитор

Acer V173

Рекомендуемая конфигурация клиентской станции:

процессор не хуже Intel Pentium Dual Core E5400 (2.7 GHz, 2Mb, 800MHz);

оперативная память не менее 512 Mb;

жесткий диск не менее 1 GB.

1.1.11 Требования к климатическим условиям эксплуатации

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

1.1.12 Требования к квалификации и численности персонала

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

Численность и квалификация пользователей клиентской части приложения определяется руководителем лечебно-профилактического учреждения. Рекомендуемым работником на одно рабочее место является один оператор ПК.

1.2 Информационная модель

1.2.1 Выбор способа организации данных

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Реляционная база данных представляет собой хранилище данных, содержащее набор двухмерных таблиц. Набор средств для управления подобным хранилищем называется реляционной системой управления базами данных (РСУБД). РСУБД может содержать утилиты, приложения, сервисы, библиотеки, средства создания приложений и другие компоненты.

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

каждое значение, содержащееся на пересечении строки и колонки, должна быть атомарным (т.е. не расчленяемым на несколько значений);

значения данных в одной и той же колонке должны принадлежать к одному и тому же типу, доступному для использования в данной СУБД;

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

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

последовательность полей в таблице несущественна;

последовательность записей также несущественна;

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

каждое не ключевое поле функционально полно зависит от ключа.

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

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

Существует три принципиальных отличия между системами управления реляционными базами данных (СУРБД) и программами электронных таблиц:

Все СУРБД разрабатываются с целью обеспечения эффективной обработки больших объемов информации, намного больших, чем те, с которыми справляются электронные таблицы;

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

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

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

На сегодняшний день существует большое количество СУБД, однако наиболее популярными, являются MySQL, Interbase, MS Access, PostgreSQL, DB/2, MS SQL Server, XML, Oracle.

Для разработки базы данных для учета лекарственных средств и изделий медицинского назначения для аптек стационаров ЛПУ использовалась СУБД Interbase, т.к. она отвечает следующим требованиям к разрабатываемому программному продукту:

позволяет создавать базы, состоящие из гигабайтов данных;

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

платформа Windows (или Linux);

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

сильная защита данных;

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

1.2.2 Моделирование данных

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

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

Модели данных позволяют представить информацию определенным образом. При этом можно разрабатывать базу данных снизу вверх и начинать с просмотра данных на дисплее и (или) в напечатанном виде. Такой подход применяется для создания прикладной базы данных.

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

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

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

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

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

1.2.3 Анализ таблиц базы данных

База данных для учета лекарственных средств и изделий медицинского назначения в аптеках стационаров содержит в себе 24 таблицы. Таблицы - это основные объекты любой базы данных, они построены на основе следующей ER-диаграммы:

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

Основные объекты системы.

В системе имеются следующие объекты:

Аптека - объект, соответствующий реальной аптеке стационара.

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

Контрагент - объект, соответствующий контрагенту - изготовителю, продавцу или покупателю.

Номенклатура - объект, предназначенный для хранения данных о номенклатурах.

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

Расход - объект, предназначенный для хранения данных обо всех расходных операциях аптеки.

Остатки - объект, предназначенный для хранения данных об остатках номенклатур.

Рассмотрим таблицы подробнее.

Данные об аптеке стационара описаны таблицей Apteka, представленной таблицей 1.3:

Таблица 1.3 - Таблица Apteka

Поле

Тип данных

Описание

1

2

3

AptID

Числовой

Идентификационный номер аптеки стационара

SkladID

Числовой

Идентификационный номер склада аптеки

FamOfKlad

Текстовый

Фамилия кладовщика

FamOfTov

Текстовый

Фамилия товароведа

FamOfBuh

Текстовый

Фамилия бухгалтера

FamOfGlVrach

Текстовый

Фамилия главного врача

DolzhOfOtv

Текстовый

Должность ответственного лица

FamOfOtv

Текстовый

Фамилия ответственного лица

FamOfPerv

Текстовый

Фамилия первого лица

DolzhOfPerv

Текстовый

Должность первого лица

NamePredpr

Текстовый

Псевдоним предприятия

AdresPredpr

Текстовый

Адрес предприятия

UrNamePredpr

Текстовый

Юридическое наименование предприятия

UrAdress

Текстовый

Юридический адрес

INN

Текстовый

ИНН

KPP

Текстовый

КПП

OKONH

Текстовый

ОКОНХ

OKPO

Текстовый

ОКПО

MFO

Текстовый

МФО

RKC

Текстовый

РКЦ

OGRN

Текстовый

ОГРН

PhonePredpr

Текстовый

Телефон предприятия

Fax

Текстовый

Факс

BankID

Числовой

Идентификационный номер банка

OsnSchet

Текстовый

Основной счёт предприятия

KorrSchet

Текстовый

Корреспондирующий счет предприятия

License

Текстовый

Лицензия

DataLicense

Дата

Дата лицензии

DataLastInvent

Дата

Дата последней инвентаризации

Данные о настройках по умолчанию для аптеки содержатся в таблице Nastroiki, вид которой представлен в таблице 1.4:

Таблица 1.4 - Таблица Nastroiki

Поле

Тип данных

Описание

AptID

Числовой

Идентификационный номер аптеки

DefDateOfZapret

Дата

Дата запрета редактирования

DefNDS

Числовой

Ставка НДС

NamePredpr

Числовой

Псевдоним предприятия

KontragID

Числовой

Идентификационный номер поставщика

OrganSertID

Числовой

Идентификатор органа сертификации

EdIzmID

Текстовый

Идентификатор единицы измерения

IstFinansirID

Числовой

Источник финансирования

DefYear

Числовой

Текущий год

Nacenka

Числовой

Наценка при продаже

Таблица DicOtdelenie содержит данные об отделениях ЛПУ, которому принадлежит аптека. Вид таблицы DicOtdelenie представлен таблицей 1.5:

Таблица 1.5 - Таблица DicOtdelenie

Поле

Тип данных

Описание

OtdelenieID

Числовой

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

AptID

Числовой

Идентификационный номер аптеки

NameOfOtdelenie

Текстовый

Наименование отделения

FamOfOtdelenie

Текстовый

Фамилия материально-ответственного лица

Таблица DicBank является справочником банков и показана в таблице 1.6:

Таблица 1.6 - Таблица DicBank

Поле

Тип данных

Описание

BankID

Числовой

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

NameOfBank

Текстовый

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

GorodOfBank

Текстовый

Отделение банка (город)

Таблица DicCountry является справочником стран-импортеров. Ее вид представлен таблицей 1.7:

Таблица 1.7 - Таблица DicCountry

Поле

Тип данных

Описание

CountryID

Числовой

Код страны

NameOfCountry

Текстовый

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

Таблица DicKontragent содержит данные о контрагентах (изготовителях, поставщиках, покупателях) и имеед вид, показанный в таблице 1.8:

Таблица 1.8 - Таблица DicKontragent

Поле

Тип данных

Описание

1

2

3

KontrID

Числовой

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

NameOfKontr

Текстовый

Полное наименование контрагента

KorotkoNameOfKontr

Текстовый

Сокращенное наименование предприятия

TypeOfKontragent

Числовой

Тип контрагента

PriznakPostav

Числовой

Признак принадлежности к поставщикам

PriznakPokup

Числовой

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

PriznakIzgot

Числовой

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

KontrINN

Текстовый

ИНН

CountryID

Числовой

Код страны

KontrAdress

Текстовый

Адрес

KontrPhone

Текстовый

Телефон

KontrFax

Текстовый

Факс

KontrEmail

Текстовый

E-mail

KontrContact

Текстовый

Контактное лицо

KontrKPP

Текстовый

КПП

KontrOKONH

Текстовый

ОКОНХ

KontrOKPO

Текстовый

ОКПО

Таблица BankSchetOfKontr содержит данные о банковских счетах контрагентов. Вид таблицы представлен таблицей 1.9:

Таблица 1.9 - Таблица BankSchetOfKontr

Поле

Тип данных

Описание

KontrID

Числовой

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

BankID

Числовой

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

SchetOfKontr

Текстовый

Счет контрагента

KorrSchetOfKontr

Текстовый

Корреспондентный счет предприятия

KontrBIK

Текстовый

БИК

Таблица DicFarmGruppa является справочником фармакологических групп и имеед вид, показанные в таблице 1.10:

Таблица 1.10 - Таблица DicFarmGruppa

Поле

Тип данных

Описание

FarmGrID

Числовой

Идентификатор фармакологической группы

NameOfFarmGruppa

Текстовый

Наименование фармакологической группы

KratkoFarmGruppa

Текстовый

Краткое наименование

Таблица DicGruppaPKU является справочником групп предметно-количественного учета. Таблица 1.11 представляет вид DicGruppaPKU:

Таблица 1.11 - Таблица DicGruppaPKU

Поле

Тип данных

Описание

GruppaPKUID

Числовой

Идентификатор группы учета

NameOfGPKU

Текстовый

Полное наименование

KratkoGPKUName

Текстовый

Краткое наименование

PriznakMed

Числовой

Признак медикамента

Таблица DicFarmPreparat, показанная в таблице 1.12, является справочником фармакологических препаратов:

Таблица 1.12 - Таблица DicFarmPreparat

Поле

Тип данных

Описание

FarmPrepID

Числовой

Идентификатор фарм. препарата

NameOfFarmPrep

Текстовый

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

MezрdNameOfPrep

Текстовый

Международное наименование

FarmGrID

Числовой

Фарм. группа

GruppaPKUID

Числовой

Группа ПКУ

ObschPerechenZhizn

Числовой

Общий перечень жизненно важных преп.

RegPerechenZhizn

Числовой

Региональный перечень жизненно важных

VenAnaliz

Текстовый

Вен. анализ

Таблица DicDozirovka является справочником дозировок и имеет вид, представленный таблицей 1.13:

Таблица 1.13 - Таблица DicDozirovka

Поле

Тип данных

Описание

DozirID

Числовой

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

NameOfDozir

Текстовый

Дозировка

Таблица DicEdIzmereniya является справочником единиц измерений. Ее вид представлен таблицей 1.14:

Таблица 1.14 - Таблица DicEdIzmereniya

Поле

Тип данных

Описание

EdIzmID

Числовой

Идентификатор единицы измерения

NameOfEdIzmereniya

Текстовый

Единица измерения

KratkoEdIzmereniya

Текстовый

Краткое наименование

Таблица DicOrganSertif, вид которой показан в таблице 1.15, является справочником органов сертификации:

Таблица 1.15 - Таблица DicOrganSertif

Поле

Тип данных

Описание

OrganSertID

Числовой

Идентификатор органа сертификации

NameOfOrganSert

Текстовый

Наименование органа сертификации

Таблица 1.16 представляет собой вид таблицы DicFormVipuska, являющейся справочником форм выпуска:

Таблица 1.16 - Таблица DicFormVipuska

Поле

Тип данных

Описание

FormVypID

Числовой

Идентификатор формы выпуска

FormVypID

Текстовый

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

Таблица Nomenklatura содержит данные обо всех номенклатурах. Вид таблице представлен таблицей 1.17:

Таблица 1.17 - Таблица Nomenklatura

Поле

Тип данных

Описание

1

2

3

NomenklID

Числовой

Идентификационный номер номенклатуры

NumOfNomenkl

Текстовый

Номенклатурный номер

NameOfNomenkl

Текстовый

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

FarmPrepID

Числовой

Идентификатор фарм. препарата

FormVypID

Числовой

Идентификатор формы выпуска

DozirID

Числовой

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

Fasovka

Текстовый

Фасовка

EdIzmID

Числовой

Идентификатор единицы измерения

NumOfSertif

Текстовый

Номер сертификата

RegNumOfSertif

Текстовый

Рег. номер сертификата

SertDate

Дата

Дата выдачи сертификата

SrokDeistvSertif

Дата

Срок действия сертификата

OrganSertID

Числовой

Орган, выдавший сертификат

PriznakIspolzovaniya

Числовой

Признак использования

PriznakKolichUch

Числовой

Признак количественного учета

PriznakObyazAsortim

Числовой

Обязательный ассортимент

PriznakReceptUch

Числовой

Признак рецептурного учета

PriznakVnutrProizv

Числовой

Признак внутреннего производства

Таблица Seria содержит данные о сериях номенклатур и имеет вид, представленный таблицей 1.18:

Таблица 1.18 - Таблица Seria

Поле

Тип данных

Описание

SeriaID

Числовой

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

NumSeria

Текстовый

Номер серии

NomenklID

Числовой

Идентификационный номер номенклатуры

ProizvID

Числовой

Идентификатор производителя

SrokGodnosti

Дата

Срок годности

IzyatayaSeria

Числовой

Изъятая серия

Таблица DicIstFinansir, вид которой показан в таблице 1.19 является справочником источников финансирования:

Таблица 1.19 - Таблица DicIstFinansir

Поле

Тип данных

Описание

IstFinansirID

Числовой

Идентиф. номер источника финансирования

NameOfIstFinansir

Текстовый

Наименование источника финансирования

Таблица PrixodDoc содержит данные о приходных документах. Вид таблицы указан в таблице 1.20:

Таблица 1.20 - Таблица PrixodDoc

Поле

Тип данных

Описание

PrihID

Числовой

Идентиф. номер приходного документа

NumPrih

Текстовый

Номер приходного документа в аптеке

DatePrih

Дата

Дата приходного документа в аптеке

NumPrihPost

Текстовый

Номер приходного документа поставщика

DatePrihPost

Дата

Дата приходного документа поставщика

IstFinansirID

Числовой

Идентиф. номер источника финансирования

PostID

Числовой

Идентификатор поставщика

Year

Числовой

Текущий год

Таблица PrixodDannie содержит данные обо всех пришедших номенклатурах по каждому приходному документу. Ее вид представлен таблицей 1.21:

Таблица 1.21 - Таблица PrixodDannie

Поле

Тип данных

Описание

PrihID

Числовой

Идентиф. номер приходного документа

NomenklID

Числовой

Идентификационный номер номенклатуры

SeriaID

Числовой

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

Vozvrat

Числовой

Возврат

PrihDocCount

Текстовый

Количество по документу

PrihFaktCount

Текстовый

Количество фактическое

PrihCenaIzgot

Текстовый

Цена изготовителя

PrihCena

Текстовый

Цена поставщика без НДС

PrihCenaNDS

Текстовый

Цена поставщика с НДС

PrihStavkaNDS

Текстовой

Ставка НДС

PrihSummaNDS

Текстовый

Сумма НДС

PrihProcent

Текстовый

Процент

PrihAkciz

Текстовый

Акциз

Таблица DicVidOperacii - справочник типов расходных операций. Вид данной таблице показан в таблице 1.22:

Таблица 1.22 - Таблица DicVidOperacii

Поле

Тип данных

Описание

RashOperID

Числовой

Идентификатор расходной операции

NameOfRashOper

Текстовый

Наименование операции

Таблица RashodDoc содержит данные о расходных документах и имеет вид, показанный в таблице 1.23:

Таблица 1.23 - Таблица RashodDoc

Поле

Тип данных

Описание

RashID

Числовой

Идентификац. номер расходного документа

AptID

Числовой

Идентификационный номер аптеки

NumRashDoc

Текстовый

Номер расходного докуммента

DateRash

Дата

Дата ввода расходного документа

RashOperID

Числовой

Идентификатор расходной операции

OtdelenieID

Числовой

Идентификационный номер отделения

PokupID

Числовой

Идентификатор покупателя

DopInfo

Текстовый

Дополнительная информация

Year

Числовой

Текущий год

Таблица RashodDannie, показанная в таблице 1.24, содержит данные о каждой отпущенной номенклатуре в каждом расходном документе:

Таблица 1.24 - Таблица RashodDannie

Поле

Тип данных

Описание

RashID

Числовой

Идентиф. номер расходного документа

NomenklID

Числовой

Идентиф. номер номенклатуры

SeriaID

Числовой

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

Vozvrat

Числовой

Возврат

IstFinansirID

Числовой

Идентиф. номер источника финансирования

PostID

Числовой

Идентификатор поставщика

PrihCena

Текстовый

Цена поставщика без НДС

RashDocCount

Текстовый

Количество по документу

RashCena

Текстовый

Цена отпуска без НДС

RashCenaNDS

Текстовый

Цена отпуска с НДС

RashStavkaNDS

Текстовый

Ставка НДС

RashSummaNDS

Текстовый

Сумма НДС

RashAkciz

Текстовый

Акциз

Таблица OstatkiDoc содержит данные об общих остатках аптеки во временном разрезе и представленная таблицей 1.25:

Таблица 1.25 - Таблица OstatkiDoc

Поле

Тип данных

Описание

OstID

Числовой

Идентификационный номер документа

AptID

Числовой

Идентификационный номер аптеки

MonthOfOst

Числовой

Месяц остатка

YearOfOst

Числовой

Год остатка

Таблица OststkiDannie содержит данные об остатках по каждой номенклатуре. Вид таблицы показан в таблице 1.26:

Таблица 1.26 - Таблица OststkiDannie

Поле

Тип данных

Описание

OstID

Числовой

Идентификационный номер документа

IstFinansirID

Числовой

Идентиф. номер источника финансирования

PostID

Числовой

Идентификатор поставщика

NomenklID

Числовой

Идентификационный номер номенклатуры

SeriaID

Числовой

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

KolichOfOst

Текстовой

Количество фактическое

PrihCenaIzgot

Текстовой

Цена изготовителя

PrihCena

Текстовой

Цена поставщика без НДС

PrihCenaNDS

Текстовой

Цена поставщика с НДС

PrihStavkaNDS

Текстовой

Ставка НДС

PrihSummaNDS

Текстовой

Сумма НДС

PrihProcent

Текстовой

Процент

PrihAkciz

Текстовой

Акциз

1.2.4 Типы отношений

Отношение 'один-к-одному' - это самое простое отношение между таблицами. В таком отношении одной строке первой таблицы соответствует только одна запись во второй. Таблицы, связанные отношением 'один-к - одному', можно объединить в одну таблицу, которая состоит из полей обоих таблиц.

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

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

1.2.5 Схема данных

В разработке автоматизированной системы управления деятельностью компании используется база данных GDB СУБД Interbase. Ее таблицы служат хранилищем всех данных системы. Схема данных показана на рисунке 1.2.

Рисунок 1.2 - Схема данных

1.2.6 Диаграмма форм

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

/

Рисунок 1.3 - Диаграмма форм

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

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

Карточка - форма для работы с карточками товаров.

Приход - форма для работы с приходными накладными.

Расход - форма для работы с расходными документами.

Остаток на дату - форма для работы с документами об остатках препаратов, находящихся на складе аптеки.

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

Ведомость - форма для формирования ведомостей и стеллажной карточки товара.

Отчет - форма для формирования различных отчетов и книги протаксированных накладных.

Реквизиты аптеки - форма, необходимая для установки юридических данных об аптеке ЛПУ.

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

Отделения - справочник отделений ЛПУ.

Банки - справочник банков.

Контрагенты и производителей - справочник, содержащий данные о контрагентах и производителях, включая реквизиты их банковских счетов.

Группы предметно-количественного учета (ПКУ) - справочник групп ПКУ.

Фармакологические группы - справочник фармакологических групп.

Номенклатуры - справочник номенклатур.

Дозировки - справочник дозировок лекарственных средств.

Единицы измерения - справочник единиц измерения лекарственных средств.

Источники финансирования - справочник источников финансирования закупок и продаж.

Органы сертификации - справочник органов сертификации лекарственных средств и препаратов медицинского назначения.

Виды списания - справочник видов списания.

Виды расходных операций - справочник видов расходных операций.

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

2. Технологическая часть

2.1 Архитектура базы данных

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

Клиент-серверная информационная система состоит в простейшем случае из трех основных компонентов:

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

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

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

Приложение-клиент формирует запрос к серверу, на котором расположена БД, на структурном языке запросов SQL. Удаленный сервер принимает запрос и переадресует его SQL-серверу БД. SQL-сервер - это специальная программа, управляющая удаленной базой данных. SQL-сервер обеспечивает интерпретацию запроса, его выполнение в базе данных. Формирование результата выполнения запроса и выдачу его приложению-клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом выполнении запроса; клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и представляет пользователю. Так как клиентскому приложению посылается результат выполнения запроса, по сети передаются только те данные, которые необходимы клиенту. В итоге снижается нагрузка на сеть. Поскольку выполнение запроса происходит там же, где хранятся данные (на сервере), нет необходимости в пересылке больших пакетов данных. Кроме того, SQL-сервер, если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен в минимальное время с наименьшими накладными расходами.

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

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

посылка к серверу запросов;

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

реализация интерфейса пользователя.

SQL-сервер - это программа, расположенная на компьютере сетевого сервера. SQL-сервер должен быть загружен на момент принятия запроса от клиента. Функциями сервера БД являются:

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

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

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

Использование архитектуры 'клиент-сервер':

резко уменьшает сетевой трафик;

понижает сложность приложений-клиентов (поскольку тем уже нет необходимости обеспечивать целостность и безопасность БД и следить за параметрами многопользовательской работы с БД);

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

повышает надежность БД, ее целостность, безопасность и секретность.

Блок-схема работы разрабатываемой базы данных представлена на рисунке 2.1.

/

Рисунок 2.1 - Блок-схема работы базы данных

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

Программа предназначена для работы в операционной системе Windows и имеет стандартный для данной системы оконный интерфейс.

2.2.1 Начало работы с приложением

При запуске приложения появляется окно 'Регистрация', представленное на рисунке 2.2.

Рисунок 2.2 - Окно 'Регистрация'

После корректного ввода пользователем своего логина и пароля, ранее выданных системным администратором, откроется окно 'Аптека', являющееся главным окном программы. Данное окно показано на рисунке 2.3.

Рисунок 2.3 - Окно 'Аптека'

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

Движение;

Отчеты;

Справочники;

Сервисные функции;

Выход - выход из программы.

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

2.2.2 Движение

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

Содержит следующие подменю:

Карточка;

Приход;

Расход;

Остаток на дату;

Ввод остатков прошлого года.

Вид меню 'Движение' с подменю представлен на рисунке 2.4.

Рисунок 2.4 - Меню 'Движение' с подменю

Карточка

Вид окна 'Выбор карточки' представлен на рисунке 2.5.

Рисунок 2.5 - Окно 'Выбор карточки'

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

Верхнее меню окна состоит из следующих частей.

- показать карточку товара. По нажатию кнопки откроется окно 'Карточка товара', показанное на рисунке 2.6 Также это окно можно вызвать, дважды щелкнув на нужной строке таблицы.

Рисунок 2.6 - Окно 'Карточка товара'

В верхней части окна расположены следующие кнопки:

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

Рисунок 2.7 - Вид карточки товара, подготовленной к печати

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

Рисунок 2.8 - Выпадающий календарь.

- кнопка 'Ведомость'. Описание работы с ведомостями находится в пункте 2.2.3.1.

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

по номенклатурному номеру;

наименованию препарата;

производителю.

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

- кнопка 'Выход'.

Приход

Окно 'Приходная накладная' изображено на рисунке 2.9.

Рисунок 2.9 - Окно 'Приходная накладная'

Окно позволяет осуществлять ввод, просмотр и редактирование приходных документов; также возможно произвести печать товарной накладной и счет-фактуры.

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

Рисунок 2.10 - Окно 'Приходные накладные'

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

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

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

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

- кнопка выбора номенклатуры. Открывает справочник номенклатур. Вид окна представлен на рисунке 2.11.

Рисунок 2.11 - Окно 'Приходные накладные' с открытым справочником номенклатур

Работа с данным окном аналогична работе с окном 'Приходные накладные', описанным выше.

- кнопка печати. Позволяет вывести подготовленную для печати товарную накладную или счет-фактуру. Вид товарной накладной представлен на рисунке 2.12, вид счет-фактуры соответствует рисунку 2.13.

Рисунок 2.12 - Товарная накладная

Рисунок 2.13 - Счет-фактура

Расход

Окно 'Расход' представлено на рисунке 2.14.

Рисунок 2.14 - Окно 'Расход'

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

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

Остаток на дату

Вид окна 'Остаток на дату' представлен на рисунке 2.15.

Рисунок 2.15 - Окно 'Остатки на указанную дату'

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

- кнопка 'Сформировать'. Формирует список номенклатур в соответствии с критериями отбора, указанными в правой части окна.

- кнопка печати. Выводит список остатков на предпечатный просмотр, показанный на рисунке 2.16.

Рисунок 2.16 - Предпечатный просмотр списка текущих остатков

Ввод остатков прошлого года

Вид окна 'Ввод остатков прошлого года' представлен на рисунке 2.17.

Рисунок 2.17 - Окно 'Ввод остатков прошлого года'

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

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

- кнопка 'Корректировка'. Позволяет откорректировать указанную запись.

- кнопка 'Удалить'. Служит для удаления выбранной записи.

Отчеты

Пункт меню предназначен для работы с отчетными документами. Содержит следующие пункты подменю:

Ведомость;

Отчет.

Вид меню 'Отчеты' с подменю представлен на рисунке 2.18.

Рисунок 2.18 - Меню 'Отчеты' с подменю

Ведомость

Вид окна 'Формирование ведомости' представлен на рисунке 2.19.

Рисунок 2.19 - Окно 'Формирование ведомости'

Предоставляет пользователю возможность формирования ведомости, а также печати стеллажной карточки (по Форме № АП-73, утвержденной приказом Министерства здравоохранения СССР от 8 января 1988 г. №14) и сличительной ведомости (по Форме № АП-43, утвержденной приказом Министерства здравоохранения СССР от 8 января 1988 г. №14).

- кнопка 'Сформировать'. Позволяет сформировать ведомость в соответствии с указанными критериями.

- кнопка 'Остатки'. Выводит окно 'Ведомость. Остатки', представленное на рисунке 2.20.

Рисунок 2.20 - Окно 'Ведомость. Остатки'

- кнопка 'Сумма'. Отображает окно с информацией о суммах, представленное на рисунке 2.21.

Рисунок 2.21 - Вид окна, вызываемого кнопкой 'Сумма'

- кнопка печати. Позволяет производить предпечатный просмотр сличительной ведомости и стеллажной карточки. Вид данных документов показан на рисунках 2.22 и 2.23 соответственно.

Рисунок 2.22 - Предпечатный просмотр сличительной ведомости

Рисунок 2.23 - Предпечатный просмотр стеллажной карточки

2.2.3 Отчет

Окно 'Формирование отчета' изображено на рисунке 2.24.

Рисунок 2.24 - Окно 'Формирование отчета'

Позволяет сформировать книгу протаксированных накладных (по Форме № 7-МЗ, утвержденной приказом Министерства здравоохранения СССР от 30 декабря 1987 г. №1337), отчет по приходным накладным, по расходным накладным, остаткам на первое января текущего года, прайс-лист, отчеты по остаткам по группам предметно-количественного учета, по остаткам групп учета, по приходу с остатками, по расходу с остатками.

- кнопка 'Сформировать'. Позволяет сформировать отчеты, список которых выпадает по нажатию на данную кнопку, в соответствии с заданными критериями.

Вид книги протаксированных накладных показан на рисунке 2.25.

Рисунок 2.25 - Окно 'Книга протаксированных накладных'

Окно 'Приход', отображающее информацию о пришедших номенклатурах по различным критериям отбора, показано на рисунке 2.26.

Рисунок 2.26 - Окно 'Приход'

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

Рисунок 2.27 - Окно 'Отпущено по отделениям'

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

Рисунок 2.28 - Окно 'Списано по актам, счетам и другим документам'

Окно 'Прайс-лист' позволяет просматривать данные о цене и текущем остатке той или иной номенклатуры с различными критериями отбора. Вид окна представлен на рисунке 2.29.

Рисунок 2.29 - Окно 'Прайс-лист'

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

Рисунок 2.30 - Окно 'Остатки по группам ПКУ'

Окно 'Остатки по группам учета' содержит информацию о стоимости товаров, объединенных по группам учета. Вид окна представлен на рисунке 2.31.

Рисунок 2.31 - Окно 'Остатки по группам учета'

Справочники

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

Отделения - справочник отделений по каждому ЛПУ.

Банки - справочник банков для контрагентов.

Контрагенты и производители - справочник наименований контрагентов и производителей, также содержит реквизиты их банковских счетов.

Группы предметно-количественного учета - справочник групп ПКУ.

Фармакологические группы - справочник фармакологических групп.

Номенклатура - справочник номенклатур.

Дозировки - справочник дозировок.

Единицы измерения - справочник единиц измерения.

Источники финансирования - справочник видов источников финансирования.

Органы сертификации - справочник наименований органов сертификации.

Виды расходных операций - справочник видов расходных операций.

Страны - справочник стран-импортеров.

Вид меню 'Справочники' с подменю представлен на рисунке 2.32.

Рисунок 2.32 - Меню 'Справочники' с подменю

В связи с тем, что справочники 'Отделения', 'Банки', 'Группы предметно-количественного учета', 'Фармакологические группы', 'Дозировки', 'Единицы измерения', 'Источники финансирования', 'Органы сертификации', 'Виды расходных операций', 'Страны' имеют схожую структуру представляется возможным для примера работы со справочниками рассмотреть подробно лишь один из них. Справочники 'Контрагенты и производители' и 'Номенклатура' по своей организации несколько отличаются от перечисленных выше справочников, поэтому будут рассмотрены на примере справочника 'Контрагенты и производители'.

Работа со справочниками на примере справочника 'Фармакологические группы'

Вид справочника 'Фармакологические группы' представлен на рисунке 2.33.

Рисунок 2.33 - Справочник 'Фармакологические группы'

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

Рисунок 2.34 - Вид формы для добавления новой записи в справочник 'Фармакологические группы'

- кнопка 'Редактирование'. Позволяет отредактировать указанную запись справочника.

- кнопка 'Удалить'. Служит для удаления выбранной записи.

2.2.4 Работа со справочниками на примере справочника 'Контрагенты и производители'

Вид справочника показан на рисунке 2.35.

Рисунок 2.35 - Справочник 'Контрагенты и производители'

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

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

Рисунок 2.36 - Вид формы для добавления новой записи в справочник 'Контрагенты и производители'

Форма ввода новой записи имеет две вкладки. Вторая вкладка показана на рисунке 2.37.

Рисунок 2.37 - Вид вкладки 'Расчетный счет' справочника 'Контрагенты и производители'

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

- кнопка 'Редактирование'. Позволяет отредактировать указанную запись справочника.

- кнопка 'Удалить'. Служит для удаления выбранной записи.

Сервисные функции

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

Реквизиты аптеки;

Настройка.

Вид меню 'Сервисные функции' с подменю представлен на рисунке 2.32.

Рисунок 2.38 - Меню 'Сервисные функции' с подменю

Реквизиты аптеки

Вид окна 'Реквизиты аптеки' показан на рисунке 2.39.

Рисунок 2.39 - Окно 'Реквизиты аптеки'

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

2.2.5 Настройка

Окно 'Настройки' представлено на рисунке 2.40.

Рисунок 2.40 - Окно 'Настройки'

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

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

3.1 Технико-экономическое обоснование

3.1.1 Актуальность разработки

В настоящее время расходы на лекарственное обеспечение составляют 25-40% бюджета стационара, поэтому реализация централизованного учета лекарственных средств является важной задачей для лечебно-профилактических учреждений. Взаимосвязь аптеки стационара с отделениями лечебно-профилактического учреждения (ЛПУ) определяет необходимость контроля за движением лекарственных средств и, соответственно, требует ведения отчетности.

До настоящего времени в аптеках стационаров ЛПУ существовало три варианта учета лекарственных средств:

ручная обработка данных, при которой составление необходимой отчетности связано с большими трудозатратами и высокой вероятностью ошибок (37 из 80 ЛПУ Нижегородской области и Нижнего Новгорода);

использование дорогостоящих коммерческих программных продуктов, доступных лишь единичным ЛПУ ('1С: Медицина. Больничная аптека' используют 3 из 80 ЛПУ);

использование устаревшей автоматизированной информационно-поисковой системы, работа с которой сложна для пользователей, имеющих лишь элементарные навыки работы с ПК (основанием для разработки является приказ директора департамента Нижегородской области № 23-В от 3 февраля 1992 г.; реализована на языке СУБД FOXPRO для операционной системы MS DOS) (40 из 80 ЛПУ).

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

3.1.2 Обзор существующих альтернатив решения задачи

Можно выделить две альтернативы решения поставленной задачи:

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

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

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

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

Таблица 3.1 - Системы учета лекарственных средств и изделий медицинского назначения в аптеках стационаров лечебно-профилактических учреждений. (1 - самостоятельная настройка; 2 - быстрота и легкость обучения пользователей; 3 - централизованное хранение информации.)

Название

Краткая характеристика

Функции

Цена

1

2

3

1

2

3

4

5

6

1С: Медицина. Больничная аптека

Программный продукт '1C: Медицина. Больничная аптека' предназначен для детального аналитического учета аптечных товаров в больничной аптеке и отделениях медицинской организации, бюджетной или хозрасчетной (независимо от системы бухгалтерского учета). Программа поддерживает многопользовательскую работу в локальной сети или через Интернет, в том числе и через веб-браузеры.

-

-

+

28000 руб.

+

стоимость дополни-тельных рабочих мест

Автоматизиро-ванная информационно-поисковая система 'Аптека'

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

+

-

-

Распространяется бесплатно (в настоящее время

поддержка системы прекращена).

База данных 'Аптека'

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

+

+

+

Распространяется бесплатно (только для бюджетных учреждений Нижегородской области

и Нижнего Новгорода).

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

3.1.3 Расчет экономической эффективности внедрения разработки

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

Основными экономическими показателями являются:

экономия эксплуатационных расходов;

капитальные вложения;

срок окупаемости.

Расчет экономии эксплуатационных расходов основан на сравнении двух вариантов: базового и машинного. Для данного проекта базовым вариантом является ручной способ составления отчетности. Отчеты составляются ежемесячно. На составление всей отчетной документации ручным способом в среднем тратится 5 рабочих дней (40 часов из них 2 часа на проверку и 4 часа на возможную корректировку), при этом учитывается время на сбор всех необходимых приходных и расходных документов, хранящихся в бумажном виде. Как правило, формированием отчетов занимается один провизор, имеющий соответствующую квалификацию. Кроме того, при ручном способе возникают ошибки, исправление которых занимает в среднем занимает 8 часов. Трудоемкость работ по составлению отчетных документов ручным способом в год составит 576 человеко-часов.

На подготовку ежемесячных отчетных документов машинным способом в среднем тратится 1,5 часа (включая 0,5 часа на формирование и печать отчетов, 0,5 часа на проверку и 0,5 часа на возможную корректировку), при условии своевременного и методичного ввода в систему данных из приходных и расходных документов (2 часа в день, 40 часов в месяц). Получением отчетов машинным способом может быть осуществлено одним оператором имеющим низкую квалификацию. Трудоемкость работ по составлению отчетных документов машинным способом в год составит 498 человеко-часов.

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

Исходные данные для расчета основных экономических показателей приведены в таблице 3.2.

Таблица 3.2 - Исходные данные

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

Обозначение

Единицы измерения

До внедрения

После внедрения

Время ввода приходной и

расходной документации

Тп/рд

час

0

30

Время составления отчетной документации

Тод

час

34

0,5

Время на проверку

Тп

час

2

0,5

Время на возможную корректировку

Тк

час

4

0,5

Количество работников, составляющих отчеты

j

чел.

1

1

Месячный оклад

О

руб.

10 000,00

4 000,00

Экономический эффект от внедрения проекта определяется по формуле:

Э=С12,

где С1 и С2 - затраты соответственно базового (ручного) и нового (машинного) способа решения задачи.

Затраты для базового способа рассчитываются по формуле:

С1з+Ccаэл,

где Сз - заработная плата работников; Cc - затраты на социальные нужды; Са - амортизационные отчисления на компьютер; Сэл - затраты на электроэнергию. Заработная плата работников определяется по формуле:

,

где О - должностной оклад специалиста за месяц;

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

- количество рабочих часов в месяц.

При 5-дневной рабочей неделе и 8-часовом рабочем дне:

руб.

Затраты на социальные нужды:

Ccз * i,

где Сз - затраты на оплату труда;

i - ставка единого социального налога.

руб.

Амортизационные отчисления:

Са = (Ск / Та) * Тисп

где Та - период амортизации в часах;

Тисп - время использования в часах;

Ск - стоимость ЭВМ в руб.

Таблица 3.3 - Стоимость одного рабочего места

Модуль

Стоимость, руб.

Корпус

Ego Корпус DEPO MN

11 748,00

Операционная система

Windows 7 Pro 7 32-bit Russian Single packageDSP OEI DVD

Процессор

IntelR CoreT i3 Processor 530 (2-Cores, 2.93GHz, 2.5 GT/s, 4Mb)

Оперативная память

2GB DDR3-1333 Single Channel (1 x 2GB)

Жесткий диск

500GB SATA hard drive (7200rpm)

Накопитель 5.25'

DVD+RW/CD-RW/DVD 16x4x/5xDL/16x4x/16x/48x/24x/48x

Видеокарта

Видеокарта ATI RadeonT HD 5750 (1024МБ, PCI-E DVI+HDMI+DP)

Звуковая карта

Интегрированный восьмиканальный звук

Сетевая карта

Интегрированная Gigabit Ethernet 10/100/1000Base-TX

Клавиатура

Keyboard Black PS/2 Russian

Мышь

Mouse Optical USB Black

Монитор

Acer V173

5 159,00

Итого:

16 907,00

Компьютер используется для составления отчетной документации: 40 часов в месяц, 576 часов в год.

Та = 5 лет, период амортизации в часах составляет 10080 часов.

Тисп = 576 часов

Ск = 16907 руб.

Са = (16907/10080) * 576 ? 966 руб.

Затраты на электроэнергию:

Сэл = k * S * j

где k - количество кВт/час, затраченное на составление отчетов ручным способом.

S - стоимость 1 кВт/час. Персональный компьютер потребляет 0,25 кВт/час. S = 3,5 руб.

Сэл = 0,25 * 576 * 3,5 * 1 ? 504 руб.

Полные затраты на составление отчетов ручным способом составят:

С1 = 34286 + 8915 + 966 + 504 = 44671 руб.

Затраты для решения задачи машинным способом рассчитываются по формуле:

C2з+Ccаэл

где Сз - заработная плата работников;

Cc - затраты на социальные нужды;

Са - амортизационные отчисления;

Сэл - затраты на электроэнергию.

Заработная плата работников:

где О - должностной оклад специалиста за месяц;

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

- количество рабочих часов в месяц.

При 5-дневной рабочей неделе и 8-часовом рабочем дне:

Затраты на социальные нужды:

Ccз * i,

где Сз - затраты на оплату труда;

i - ставка единого социального налога.

Cc=11857*0,26 ? 3083 руб.

Амортизационные отчисления:

Са = (Ск / Та) * Тисп

где Та - период амортизации в часах;

Тисп - время использования в часах;

Ск - стоимость ЭВМ в руб.

Компьютер используется 41,5 часов в месяц, 498 часов в год.

Та = 5 лет, период амортизации в часах составляет 10080 часов.

Тисп = 498 часов

Ск = 16907 руб.

Са = (16907/10080) * 498 ? 835 руб.

Затраты на электроэнергию:

Сэл = 0,25 * 498 * 3,5 * 1 ? 435 руб.

Затраты при предлагаемом способе решения задачи составляют:

С2 = 11857 + 3083 + 835 + 435 = 16210 руб.

Экономия эксплуатационных затрат определяется путем сопоставления базового и нового способов решения задачи:

Э = 44671 - 16210 = 28461 руб.

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

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

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

Тоб = Тз + Ти + Та + Тбс + Тп + Тот + Тд,

где Тоб - общая трудоемкость разработки темы;

Тз - трудоемкость постановки задачи;

Ти - трудоемкость изучения и описания задачи;

Та - трудоемкость разработки алгоритма;

Тбс - трудоемкость разработки блок-схемы;

Тп - трудоемкость написания программы;

Тот - трудоемкость отладки;

Тд - трудоемкость оформления документации.

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

словное число операторов определяется по формуле:

Q = q * c * (1+p)

где q - предполагаемое число операторов;

c - коэффициент сложности программы;

p - коэффициент коррекции программы в ходе ее разработки.

Коэффициент сложности программы характеризует относительную сложность программы задачи по отношению к типовой задаче, сложность которой равна 1 (принимается от 1.25 до 2). Примем c = 1,25.

Предполагаемое число операторов в программе q =1250.

Коэффициент коррекции характеризует увеличение объема работ за счет внесения изменений в алгоритм или программу решения задачи по результатам уточнения постановки и описания задачи, изменения состава и структуры информации, а также уточнений, вносимых разработчиком для улучшения качества самой программы без изменения постановки задачи. Каждая коррекция ведет к переработке 5 - 10% готовой продукции (т.е. р = 0,05.0,1). Выберем p=0,1.

Q = 1250 * 1,25 * (1 + 0,1) = 1719

При расчете полной трудоемкости по статистическим данным принимается То=8.

B - коэффициент, характеризующий качество описания задачи (практика показывает, что в большинстве случаев этот коэффициент в зависимости от сложности задачи принимается от 1.2 до 1.5). Примем B = 1,2.

k - степень подготовленности специалиста к порученной ему работе (определяется в зависимости от стажа работы и принимается от 0,8 до 1,6); k = 1. Составляющие трудоемкости определяются по следующим формулам:

Ти = Q * В / 85 * k; Та = Q / 25 * k;

Тбс = Q * В / 15 * k; Тп = Q / 25 * k;

Тот = Q / 5 * k; Тд = Q / 20 * k.

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

Ти = 1719 * 1,2/85 * 1 = 24,3 чел/час;

Та = 1719/25 * 1 = 68,8 чел/час;

Тбс = 1719 * 1,2/15 * 1 = 137,5 чел/час;

Тп = 1719/25 * 1 = 68,8 чел/час;

Тот = 1719/5 * 1 = 343,8 чел/час;

Тд = 1719/20 * 1 = 86 чел/час.

Tоб = 8 + 24,3 + 68,8 + 137,5 + 68,8 + 343,8 + 86 = 737,2 чел/час (92 дня).

Определение численности исполнителей производится по формуле:

,

где Ф - фонд времени одного специалиста (общее число рабочих дней (часов) за весь срок разработки проекта). Ф = 81 дней.

Расчетное число исполнителей - 1,1 чел.

Над проектом работали 2 человека.

Оперативно-календарный план

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

Стадии, этапы и содержание работ:

Техническое задание (ТЗ).

Составление ТЗ на разработку программы.

Изучение состояния вопроса.

Технологическое проектирование (ТП).

Разработка общего описания алгоритма программы.

Разработка ТЭО задачи.

Расчет ожидаемого экономического эффекта.

Рабочий проект (РП).

Разработка структурной схемы системы.

Определение формы представления входных и выходных данных.

Разработка функциональной схемы системы.

Написание программы.

Отладка программы.

Внедрение (ВН).

Испытание программы на реальной (имитационной) задаче.

Разработка документации.

Оперативно-календарный план выполнения работы представлен в таблице 3.4.

Таблица 3.4 - Оперативно-календарный план

Этапы и стадии разработки

Исполни-тель

Сроки выполнения

Трудоемкость

Этапы

С Стадии

чел/дн

%

чел/дн

%

a) (ТЗ)

ИП - ТР

06.09.10 - 15.09.10

11

12

1)

ИП - ТР

06.09.10 - 10.09.10

8

73

2)

ИП

13.09.10 - 15.09.10

3

27

b) (ТП)

ИП - ТР

16.09.10 - 01.10.10

16

17,4

1)

ИП - ТР

16.09.10 - 17.09.10,20.09.10 - 24.09.10

8

50

2)

ИП - ТР

27.09.10 - 28.09.10

4

25

3)

ИП - ТР

29.09.10 - 01.10.10

4

25

c) (РП)

ИП - ТР

04.10.10 - 13.12.10

52

56,6

1)

ИП - ТР

04.10.10 - 08.10.10

7

13,5

2)

ИП

11.10.10 - 15.10.10

5

9,6

3)

ИП

18.10.10 - 22.10.10

5

9,6

4)

ИП

25.10.10 - 29.10.10,01.11.10 - 03.11.10,08.11.10 - 13.11.10,15.11.10 - 19.11.10,22.11.10 - 26.11.10,29.11.10 - 01.12.10

27

51,9

5)

ИП

02.12.10 - 03.12.10,06.12.10 - 10.12.10,13.12.10

8

15,4

d) (ВН)

ИП - ТР

14.12.10 - 28.12.10

13

14

1)

ИП

14.12.10 - 17.12.10, 20.12.10 - 23.12.10

8

61,5

2)

ИП - ТР

24.12.10,27.12.10 - 28.12.10

5

38,5

Итого:

06.09.10 - 28.12.10

92

100

92

Ленточный график ОКП представляет собой таблицу, где перечислены наименования видов работ, должности исполнителей, трудоемкость, численность исполнителей и длительность каждого вида работ. Ленточный график представлен в таблице 3.5.

Таблица 3.5 - Ленточный график оперативно-календарного плана

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

Расчет сметной стоимости программного обеспечения

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

Заработная плата.

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

Затраты на заработную плату:

,

где О - должностной оклад специалиста за месяц;

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

- количество рабочих дней в месяц.

Таблица 3.6 - Заработная плата

Должность

Должностной оклад, руб.

Занятость в разработке проекта, дней

Заработная плата, руб.

Инженер-программист

4682

81

18 059,00

Технический руководитель

4682

11

2 453,00

Итого

20 512,00

Единый социальный налог.

ЕСН = ЗП * i,

где ЗП - затраты на оплату труда (заработная плата);

i - ставка единого социального налога.

ЕСН = 20512 * 0.26 ? 5333 руб.

Оплата электроэнергии.

Затраты на электроэнергию формируются исходя из стоимости 1 кВт/ч и количества потребляемой электроэнергии в течение рабочего времени.

,

где - стоимость электроэнергии: 3,5 руб. за 1 кВт/ч; Wi - потребляемая мощность: ЭВМ - 350 ВТ; ТР - время разработки программного продукта: 92 дня. Затраты на оплату электроэнергии составляют:

ЗЭЭ = 3,5 * 92*8 * 0,35 ? 902 руб.

Амортизационные отчисления.

Амортизационные отчисления определяются следующим образом:

За = Зк + ЗПО

где Зк - амортизационные отчисления на компьютер;

ЗПО - амортизационные отчисления на ПО (СУБД Borland InterBase 7.5 стоимостью 4700 руб., Borland Delpi 7 Professional стоимостью 27640 руб., FastReport VCL 4 Basic Edition стоимостью 1490 руб.).

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

Таблица 3.7 - Стоимость и продолжительность использования оборудования

Модуль

Стоимость, руб.

Корпус

Ego Корпус DEPO MN

11 748,00

Операционная система

Windows 7 Pro 7 32-bit Russian Single packageDSP OEI DVD

Процессор

IntelR CoreT i3 Processor 530 (2-Cores, 2.93GHz, 2.5 GT/s, 4Mb)

Оперативная память

2GB DDR3-1333 Single Channel (1 x 2GB)

Жесткий диск

500GB SATA hard drive (7200rpm)

5 159,00

Накопитель 5.25'

DVD+RW/CD-RW/DVD 16x4x/5xDL/16x4x/16x/48x/24x/48x

Видеокарта

Видеокарта ATI RadeonT HD 5750 (1024МБ, PCI-E DVI+HDMI+DP)

Звуковая карта

Интегрированный восьмиканальный звук

Сетевая карта

Интегрированная Gigabit Ethernet 10/100/1000Base-TX

Клавиатура

Keyboard Black PS/2 Russian

Мышь

Mouse Optical USB Black

Монитор

Acer V173

Итого:

16 907,00

Рассчитаем амортизационные отчисления на ЭВМ:

Зк = (Ск / Та) * Тисп,

где Та - период амортизации в часах;

Тисп - время использования в часах;

Ск - стоимость ЭВМ в руб.

Та = 5 лет (10080 часов).

Тисп = 92 дня.

Ск = 16907 руб.

Зк = (16907/10080) *92*8 ? 1235 руб.

Аналогично вычисляем амортизационные отчисления на ПО:

ЗПО = (СПО / Та) * Тисп

ЗПО = (4700+27640+1490/10080) * 92*8 ? 2470 руб.

Полные амортизационные отчисления:

За = 1235 + 2470 = 3705 руб.

Расходные материалы

Затраты на расходные материалы примем в размере 4% от фонда заработной платы.

Зрм = Ззп * 0,04.

Зрм = 20512* 0,04 = 820 руб.

Накладные расходы

Накладные расходы примем в размере 20% от фонда заработной платы.

ЗНР = Ззп * 0,2. ЗНР = 20512 * 0,2 = 4102 руб.

Таблица 3.8 - Смета затрат

п/п

Наименование статей

Сметная стоимость, руб

1

Фонд заработной платы

20 512,00

2

Отчисления в соц. фонд

5 333,00

3

Затраты на электроэнергию

902,00

4

Амортизационные отчисления

3 705,00

5

Затраты на расходные материалы

820,00

6

Накладные расходы

4 102,00

Итого:

35 374,00

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

3.3.4 Технико-экономические показатели

Технико-экономические показатели программного продукта приведены в таблице 3.9.

Таблица 3.9 - Технико-экономические показатели

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

Значение показателя

Экономические показатели

Годовой экономический эффект

28 461,00 руб.

Затраты на разработку

31 146,00 руб.

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

1,1 года

Технические показатели

Средство разработки

Borland Delpi 7 Professional, Borland InterBase 7.5, FastReport VCL 4 Basic Edition

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

Процессор

Intel Pentium 4, 2GHz или соответствующий от AMD

Оперативная память

GB

Жесткий диск

2 GB

Операционная система

Windows 2000/XP/Vista

Требования к аппаратному и программному обеспечению клиента (типовое)

Процессор

IntelR CoreT i3 Processor 530 (2-Cores, 2.93GHz, 2.5 GT/s, 4Mb)

Оперативная память

2GB DDR3-1333 Single Channel (1 x 2GB)

Жесткий диск

500GB SATA hard drive (7200rpm)

Накопитель 5.25'

DVD+RW/CD-RW/DVD 16x4x/5xDL/16x4x/16x/48x/24x/48x

Видеокарта

Видеокарта ATI RadeonT HD 5750 (1024МБ, PCI-E DVI+HDMI+DP)

Звуковая карта

Интегрированный восьмиканальный звук

Сетевая карта

Интегрированная Gigabit Ethernet 10/100/1000Base-TX

Операционная система

Windows 7 Pro 7 32-bit Russian Single packageDSP OEI DVD

4. Безопасность и экологичность проекта

Темой дипломного проекта является разработка базы данных 'Аптека' для учета лекарственного обеспечения лечебно-профилактических учреждений.

Все работы по выполнению данного дипломного проекта происходили в помещении ГУЗ НО 'Медицинский информационно-аналитический центр', занимающего второй этаж здания ГУЗ 'НОКДЦ' (Нижегородский областной клинико-диагностический центр). Разработка и эксплуатация программы осуществлялась на стационарной персональной электронной вычислительной машине (ПЭВМ). В состав используемой ПЭВМ входили:

жидкокристаллический монитор LG FLATRON L1942S TCO'03;

системный блок с процессором AMD Phenom II X2 545 с тактовой частотой 3ГГц;

клавиатура Genius KB-06X2/XE;

манипулятор типа мышь Genius NetScroll 100.

Помещение, в котором разрабатывался проект, имеет следующие размеры: ширина - 6 метров, длина - 6 метров, высота - 3,5 метра. В комнате находится мебель: 6 столов, 5 стульев, 1 тумбочка, 2 шкафа для бумаг, и оборудование: 5 ПЭВМ, кондиционер. Данная комната оборудована на 5 рабочих места программиста. В ней постоянно работают 5 человек.

/

Рисунок 4.1 - Схема помещения

4.1 Оценка безопасности и экологичности проекта

При внедрении проекта на предприятии, согласно ГОСТ 12.0.003-74 'Опасные и вредные производственные факторы. Классификация', можно выделить следующие опасные и вредные производственные факторы:

Физические:

повышенное значение напряжения в электрической цепи, замыкание которой может произойти через тело человека;

повышенный уровень шума на рабочем месте;

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

повышенная или пониженная влажность воздуха;

повышенная или пониженная подвижность воздуха;

отсутствие или недостаток естественного света;

недостаточная освещенность рабочей зоны;

пониженная контрастность;

повышенная яркость света;

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

повышенная пульсация светового потока;

повышенный уровень статического электричества;

повышенный уровень электромагнитных излучений;

повышенная напряженность электрического поля;

повышенная напряженность магнитного поля;

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

физические перегрузки (статические);

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

4.2 Микроклимат

Микроклимат - комплекс физических факторов внутренней среды помещений, оказывающий влияние на тепловой обмен организма и здоровье человека. Оптимальные и допустимые параметры воздуха рабочей зоны в помещениях определяются по СанПиН 2.2.4.548-96 'Санитарно-гигиенические требования к микроклимату производственных помещений'. Микроклимат в помещении характеризуется температурой воздуха tв,°C, относительной влажностью , % и скоростью движения воздуха V, м/с, температурой поверхностей tп,°C, интенсивностью теплового излучения, Вт/м2.

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

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

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

Согласно СанПиН 2.2.2/2.4.1340-03 'Гигиенические требования к персональным электронно-вычислительным машинам и организации работы' в таблице 4.1 приведены оптимальные параметры микроклимата на рабочем месте (для данной категории работ), которые соответствуют параметрам в рассматриваемом помещении.

Таблица 4.1 - Допустимые и оптимальные величины показателей микроклимата на рабочих местах производственных помещений.

Период

года

Температура,

С

Влажность,

%

Скорость движ. воздуха, м/с

Оптималь-ная

Допусти - мая

Оптималь-ная

Допусти-мая

Оптималь - ная

Допусти-мая

Холодный

(tср <=10oC)

22-24

20 - 25

60-40

15-75

0,1

0,1

Теплый

(tср >10oC)

23-25

21 - 28

60-40

15-75

0,1

0,2

Параметры микроклимата поддерживаются отоплением и сплит-системой кондиционирования согласно СНиП 41-01-2003 'Отопление, вентиляция и кондиционирование'. Система отопления в помещении водяная, согласно таблице 4.2.

Таблица 4.2 - Система отопления, приложение Б СНиП 41-01-2003

Помещения

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

Б.1. Общественные и административно-бытовые

Водяная с радиаторами, панелями и конвекторами при температуре теплоносителя для двухтрубных систем - не более 95°С.

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

Уровни положительных и отрицательных аэроионов в воздухе помещения с ПЭВМ соответствую СанПиН 22.2.4.1294-03 'Санитарно-гигиенические нормы допустимых уровней ионизации воздуха', приведенным в таблице 4.3.

Таблица 4.3 - Уровни положительных и отрицательных аэроионов в воздухе помещений с ВДТ и ПЭВМ.

Число ионов в 1 см3 воздуха (N+, N-)

N+

N-

Минимально необходимые

400

600

Оптимальные

1500-3000

3000-5000

Максимально допустимые

50000

50000

4.3 Производственное освещение

Освещение рабочего места должно удовлетворять нормам, представленным в СанПин 2.2.2/2.4.1340-03 'Гигиенические требования к персональным электронно-вычислительным машинам и организации работы'. Требования по освещенности, предъявляемые к помещениям, оборудованным ПЭВМ:

помещения для эксплуатации ПЭВМ должны иметь естественное и искусственное освещение.

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

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

для внутренней отделки интерьера помещений, где расположены ПЭВМ, должны использоваться диффузно-отражающие материалы с коэффициентом отражения для потолка - 0,7 - 0,8; для стен - 0,5 - 0,6; для пола - 0,3 - 0,5.

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

освещенность на поверхности стола в зоне размещения рабочего документа должна быть 300 - 500 лк. Освещение не должно создавать бликов на поверхности экрана. Освещенность поверхности экрана не должна быть более 300 лк;

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

следует ограничивать отраженную блесткость на рабочих поверхностях (экран, стол, клавиатура и др.) за счет правильного выбора типов светильников и расположения рабочих мест по отношению к источникам естественного и искусственного освещения, при этом яркость бликов на экране ПЭВМ не должна превышать 40 кд/м2 и яркость потолка не должна превышать 200 кд/м2;

показатель ослепленности для источников общего искусственного освещения в производственных помещениях должен быть не более 20. Показатель дискомфорта в административно-общественных помещениях не более 40;

яркость светильников общего освещения в зоне углов излучения от 50 до 90 градусов с вертикалью в продольной и поперечной плоскостях должна составлять не более 200 кд/м2, защитный угол светильников должен быть не менее 40 градусов;

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

следует ограничивать неравномерность распределения яркости в поле зрения пользователя ПЭВМ, при этом соотношение яркости между рабочими поверхностями не должно превышать 3: 1 - 5: 1, а между рабочими поверхностями и поверхностями стен и оборудования 10: 1;

для освещения помещений с ПЭВМ следует применять светильники с зеркальными параболическими решетками, укомплектованными электронными пускорегулирующими аппаратами (ЭПРА).

в качестве источников света при искусственном освещении следует применять преимущественно люминесцентные лампы типа ЛБ и компактные люминесцентные лампы (КЛЛ). В светильниках местного освещения допускается применение ламп накаливания, в том числе галогенных;

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

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

коэффициент пульсации не должен превышать 5%;

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

гигиенические требования к естественному, искусственному и совмещенному освещению соответствуют СанПиН 2.2.1/2.1.1.1278-03 'Гигиенические требования к естественному, искусственному и совмещенному освещению жилых и общественных зданий' и приведены в таблице 4.4.

Таблица 4.4 - Гигиенические требования к естественному, искусственному и совмещенному освещению жилых и общественных зданий

Рабочая поверхность и плоскость нормирования КЕО и освещенности (Г - горизонтальная,

В - вертикальная) и высота плоскости над полом, м

Естественное освещение

Совмещенное освещение

Искусственное освещение

КЕО ен, %

КЕО ен, %

при верхнем или комбинированном освещении

при боковом освещении

при верхнем или комбинированном освещении

при боковом освещении

Освещенность, лк

Показатель дискомфорта М,

не

более

Коэффици-ент пульса-ции осве-щенности, Кп, %, не более

при комбини-рованном освещении

при общем освещении

всего

от обще-го

Г - 0,8

Экран дисплея:

В-1

3,5

1,2

2,1

0,7

500

300

400

200

15

10

4.4 Шум и вибрация

Шум в рассматриваемом помещении создается внутренними источниками:

вентилятор охлаждения блока питания;

жесткий диск;

вентилятор охлаждения процессора;

люминесцентные лампы;

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

широкополосный (по спектральному составу);

непостоянный (по временным характеристикам).

Источники шума и классы производимых ими шумов представлены в таблице 4.5.

Таблица 4.5 - Источники шума и классы производимых ими шумов

Класс шума

Источник шума

Механический

жесткий диск, вентилятор охлаждения блока питания, вентилятор охлаждения процессора, клавиатура.

Электромагнитный

люминесцентные лампы, блок питания

Аэродинамический

вентиляция

Допустимые уровни звукового давления и уровней звука на рабочем месте для помещения вычислительного центра согласно СН 2.2.4/2.1.8.562-96 'Шум на рабочих местах, в помещениях жилых, общественных зданий и на территории жилой застройки' приведены в таблице 4.6 Допустимый уровень звукового давления и уровень звука определяется в зависимости от характеристики шума и назначения помещения.

Таблица 4.6 - Допустимые значения уровней звукового давления в октавных полосах частот

Вид трудовой деятель-ности

Уровни звукового давления (дБ) в октавных полосах со среднегеометрическими частотами, Гц

Уровень звука в дБА

31,5

63

125

250

500

1000

2000

4000

8000

Эксплу-атация ПЭВМ

86

71

61

54

49

45

42

40

38

50

Предельно допустимые величины нормируемых параметров вибрации рабочих мест при длительности вибрационного воздействия 480 мин (8 ч) приведены в таблице 4.7 Согласно СанПин 2.2.2/2.4.1340-03 'Гигиенические требования к персональным электронно-вычислительным машинам и организации работы' при выполнении работ с использованием ПЭВМ в производственных помещениях уровень вибрации не должен превышать допустимых значений вибрации для рабочих мест (категория 3, тип 'в', технологическая вибрация на рабочих местах в помещениях для работников умственного труда) в соответствии с СН 2.2.4/2.1.8.566-96 'Производственная вибрация, вибрация в помещениях жилых и общественных зданий'.

Таблица 4.7 - Предельно допустимые величины нормируемых параметров вибрации рабочих мест при длительности вибрационного воздействия 480 мин

Среднегеометрические частоты полос, ГЦ

1,0

2,0

4,0

8,0

16,0

31,5

63,0

Корректированные и эквивалентные корректированные значения и их уровни

Предельно допустимые значения виброскорости, дБ

91

82

76

75

75

75

75

4.5 Электромагнитное излучение

Источниками излучений при работе с ПЭВМ являются:

системный блок;

соединительные кабели;

монитор с электронно-лучевой трубкой (ЭЛТ).

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

Рекомендуется находиться не ближе 1,2 м от задних и боковых поверхностей видеотерминалов (как можно дальше от трансформатора строчной развертки) и 70 см от экрана, если это не вредит зрению.

Временные допустимые уровни электромагнитного поля, создаваемые ПЭВМ на рабочих местах (СанПин 2.2.2/2.4.1340-03 'Гигиенические требования к персональным электронно-вычислительным машинам и организации работы') представлены в таблице 4.8.

Таблица 4.8 - Временные допустимые уровни ЭМП на рабочих местах.

Наименование параметра

Временное допустимое значение

Напряженность электромагнитного поля на расстоянии 0,5 м от видеодисплейного терминала по электрической составляющей:

в диапазоне частот 5 Гц - 2 кГц;

в диапазоне частот 2 - 400 кГц.

25 В/м

2,5 В/м

Плотность магнитного потока:

в диапазоне частот 5 Гц - 2 кГц;

в диапазоне частот 2 - 400 кГц.

250 нТл

25 нТл

Напряженность электростатического поля

15 кВ/м

4.6 Безопасность технологических процессов и оборудования

Требования безопасности перед началом работы:

привести в порядок одежду;

осмотреть рабочее место, убрать все мешающие работе предметы;

протереть рабочую поверхность клавиатуры, очистить экран;

визуально проверить правильность подключения ПЭВМ к электросети;

Требования безопасности во время работы:

убедиться в работоспособности ПЭВМ после выключения питающего напряжения электросети;

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

запрещается трогать кабели и провода, соединяющие блоки ПЭВМ, перемещать устройства, находящиеся под напряжением;

не оставлять без присмотра включенные ПЭВМ и отдельные устройства;

запрещается производить самостоятельно любые виды ремонта и устранение неисправностей;

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

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

Требования безопасности в аварийных ситуациях:

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

при временном отключении электроэнергии тумблера электропитания должны быть выключены;

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

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

Требования безопасности по окончании работы:

отключить ПЭВМ от сети;

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

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

Основным оборудованием, используемым в данном проекте, является ЭВМ. Данное оборудование удовлетворяет требованиям ГОСТ 12.2.003-91 'Оборудование производственное. Общие требования безопасности'. ПРТО, ЭВМ, материалы и конструкции не оказывают опасного и вредного воздействия на организм человека на всех заданных режимах работы и предусмотренных условиях эксплуатации; отсутствуют движущиеся части; элементы конструкции не имеют острых углов, кромок: отсутствуют выбросы вредных веществ и т.п.

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

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

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

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

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

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

4.7 Электробезопасность

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

В рассматриваемом помещении находится следующее электрооборудование (классификация согласно ГОСТ 12.2.007.0-75 ССБТ 'Изделия электротехнические. Общие требования безопасности'):

электротехнические изделия с классом защиты I: 4 ПЭВМ с видео дисплеями, принтер, ПРТО;

элеткротехнические изделия с классом защиты 0: осветительные приборы.

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

Поражение человека электрическим током в данном помещении может произойти по следующим причинам:

прикосновение к сетевому шнуру с поврежденной изоляцией;

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

неисправность проводки, выключателей, розеток.

Электробезопасность, в соответствии с ГОСТ 12.1.019-79 ССБТ 'Электробезопасность. Общие требования', должна обеспечиваться:

конструкцией электроустановок;

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

организационными и техническими мероприятиями.

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

номинального напряжения, рода и частоты тока электроустановки (220В, частота переменного тока 50Гц);

способа электроснабжения (от стационарной сети);

режима нейтрали (глухозаземленная нейтраль);

вида исполнения (стационарные);

условий внешней среды (помещения без повышенной опасности);

характера возможного прикосновения человека к элементам цепи тока (однофазное прикосновение, прикосновение к металлическим нетоковедущим частям, оказавшимся под напряжением);

видов работ (эксплуатация).

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

безопасное расположение токоведущих частей (внутри корпуса);

изоляция токоведущих частей, сопротивление изоляции питающего шнура должно быть не менее 0,5 МОм;

защитное отключение (защита от перегрузок и коротких замыканий);

малые напряжения (клавиатура, мышь);

предупредительная сигнализации (зеленая лампа на системном блоке).

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

защитное зануление;

защитное отключение.

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

4.8 Пожарная безопасность

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

бумага;

мебель;

полиматериалы (пластмассовые корпуса ПЭВМ).

Наиболее вероятные причины возникновения пожара в рассматриваемом помещении:

короткое замыкание;

нарушение правил пожарной безопасности;

нарушение изоляции токонесущих частей;

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

Согласно НПБ 105-03 'Определение категорий помещений и зданий по взрывопожарной и пожарной опасности', данное помещение относится к категории 'В'.

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

Таблица 4.9 - Категории помещений в зависимости от удельной пожарной нагрузки

Категория помещения

Удельная пожарная нагрузка g на участке, МДж/м-2

В1

Более 2200

В2

1401 - 2200

В3

181 - 1400

В4

1 - 180

(4.1)

где - количество i-го материала пожарной нагрузки, кг;

- низшая теплота сгорания i-го материала пожарной нагрузки, МДж/кг.

Удельная пожарная нагрузка , МДж /, определяется из соотношения:

(4.2)

где - площадь размещения пожарной нагрузки, (но не менее 10 ).

Таким образом .

Получается, что помещение относится к категории B3 по количеству и пожароопасным свойствам, находящихся в помещении веществ и материалов. Возможный пожар следует отнести к классу А (пожары твердых веществ, в основном органического происхождения, горение которых сопровождается тлением), В (горючие жидкости и плавящиеся при нагревании материалы) и Е (оборудование под напряжением).

Пожарная безопасность обеспечивается согласно ГОСТ 12.1.004-91 ССБТ 'Пожарная безопасность':

предотвращение пожара должно достигаться предотвращением образования горючей среды и (или) предотвращением образования в горючей среде (или внесения в нее) источников зажигания;

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

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

применением технологического процесса и оборудования, удовлетворяющего требованиям электростатической искробезопасности по ГОСТ 12.1.018;

устройством молниезащиты зданий, сооружений и оборудования.

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

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

Применением средств пожаротушения.

При защите от пожара помещений, оборудованных ПЭВМ, рекомендуется применять хладоновые и углекислотные огнетушители с учетом предельно допустимой концентрации огнетушащего вещества. Для защиты рассматриваемого помещения используются огнетушители ОУ-5. На этаже, где расположено рассматриваемое помещение имеется два ручных углекислотных огнетушителя типа ОУ-5. Расстояние от возможного очага пожара до места размещения огнетушителя не должно превышать 30 м (так как помещение категории В).

Применением автоматических установок пожарной сигнализации и пожаротушения.

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

Таблица 4.10 - Перечень помещений, подлежащих защите АУПТ и АУПС

Объект защиты

АУПТ

АУПС

Помещения связи

Помещение для размещения персональных ЭВМ на рабочих столах пользователей

Независимо от площади

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

В таблице 4.11 указаны различные параметры для производственных зданий согласно СНиП 31-03-2001. Рассматриваемое здание относится к III степени огнестойкости.

Таблица 4.11 Производственные здания

Категория зданий или пожарных отсеков

Высота здания*, м

Степень огнестойкости зданий

Класс конструктивной пожарной опасности зданий

Площадь этажа, м2, в пределах

пожарного отсека зданий

одноэтажных

в два этажа

в три этажа и более

В

48

III

С0

25000

10400

5200

В таблице 4.12 указаны пределы огнестойкости строительных конструкций для рассматриваемого здания, согласно СНиП 21-01-97 'Пожарная безопасность зданий и сооружений'.

Таблица 4.12 Предел огнестойкости строительных конструкций.

Степень огнестой-кости здания

Предел огнестойкости строительных конструкций, не менее

Несущие элементы здания

Наружные ненесу-щие стены

Перекрытия междуэтажные,

(в т. ч. чердачные и над подвалами)

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

Лестничные клетки

Настилы

(в том числе с утепли-телем)

Фермы, балки, прого-ны

Внутренние стены

Мерши и площадки лестниц

III

R 15

RЕ 15

RЕI 15

RЕ 15

RЕ 15

RЕI 45

R З0

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

потери несущей способности (R);

потери целостности (Е);

потери теплоизолирующей способности (I).

В таблице 4.13 указаны конструктивные характеристики здания с III степенью огнестойкостью.

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

Степень огнестойкости

Конструктивные характеристики

III

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

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

Здание, где расположено рассматриваемое помещение, является лечебным учреждением (амбулаторно-поликлиническим), поэтому тип СОУЭ определяется, исходя из значения нормативного показателя, а именно посещений в смену. В соответствии с НПБ 104-03 'Проектирование систем оповещения людей о пожаре в зданиях и сооружениях' в этом здании установлена СОУЭ типа 3. Обоснование в таблице 4.14.

Таблица 4.14 Тип СОУЭ для зданий

Группа зданий, комплексов и сооружений (наименование нормативного показателя)

Значение нормативного показателя

Тип СОУЭ

Лечебные учреждения:

амбулаторно-поликлинические учреждения (посещения в смену, чел.)

90 и более

3

СОУЭ типа 3 обладает следующими характеристиками:

Способы оповещения.

Звуковой (сирена, тонированный сигнал и др.).

Речевой (передача специальных текстов).

Световой:

световые мигающие указатели;

световые оповещатели 'Выход';

статические указатели направления движения.

Разделение здания на зоны пожарного оповещения

Обратная связь зон оповещения с помещением пожарного поста диспетчерской.

Для обеспечения эвакуации предусмотрено:

2 эвакуационных выхода (на каждом этаже здания) шириной 1,2 м, и соответствующее конструктивное исполнение эвакуационных путей;

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

В таблице 4.15 представлены нормы на ширину эвакуационного выхода.

Таблица 4.15 Ширина эвакуационного выхода.

Категория наиболее пожароопасного помещения, выходящего в коридор

Степень огнестойкости здания

Класс конструктивной пожарной опасности здания

Количество людей на 1 м ширины эвакуационного выхода (двери) из коридора, чел.

В3

III

С0

183

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

Таблица 4.16 Нормы эвакуации

Объем помещения, тыс. м3

Категория помещения

Степень огнестой-кости зданий

Класс конструктивной пожарной опасности зданий

Расстояние, м, при плотности людского потока в общем проходе, чел/м

до 1

св.1 до 3

св.3 до 5

80 и более

В3

III

С0

240

140

100

Организационно-технические мероприятия должны включать:

организацию пожарной охраны;

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

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

В соответствии с ППБ 01-03 'Правила пожарной безопасности РФ' предъявляются следующие требования к работникам, помещениям и зданиям:

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

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

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

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

регламентированы:

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

действия работников при обнаружении пожара;

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

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

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

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

территории организаций должны иметь наружное освещение в темное время суток для быстрого нахождения пожарных гидрантов, наружных пожарных лестниц и мест размещения пожарного инвентаря. Места размещения (нахождения) средств пожарной безопасности и специально оборудованные места для курения должны быть обозначены знаками пожарной безопасности, в том числе знаком пожарной безопасности 'Не загромождать';

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

4.9 Организация рабочего места

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

В соответствии с СанПиН 2.2.2/2.4.1340-03 'Гигиенические требования к персональным электронно-вычислительным машинам и организации работы' и ГОСТ 12.2.032-78 'Рабочее место при выполнении работ сидя. Общие эргономические требования' рабочее место должно соответствовать:

при размещении рабочих мест с ПЭВМ расстояние между рабочими столами с видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора), должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м. Фактическое расстояние межу видеомониторами 1,3 м;

площадь на одно рабочее место пользователей ПЭВМ с ВДТ на базе электроннолучевой трубки (ЭЛТ) должна составлять не менее 6 м2, в помещениях культурно-развлекательных учреждений и с ВДТ на базе плоских дискретных экранов (жидкокристаллические, плазменные) - 4,5 м2.

при использовании ПЭВМ с ВДТ на базе ЭЛТ (без вспомогательных устройств - принтер, сканер и др.), отвечающих требованиям международных стандартов безопасности компьютеров, с продолжительностью работы менее 4-х часов в в день допускается минимальная площадь 4,5 м2 на одно рабочее место пользователя (взрослого и учащегося высшего профессионального образования).

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

экран видеомонитора должен находиться от глаз пользователя на расстоянии 600 - 700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов;

спинка стула должна быть изогнутой формы, повторяющей анатомический изгиб позвоночника в поясничном отделе, ее длина - 0,3 м, угол наклона - 10-30 градусов, стол расположен на расстоянии 0,65 м от стула. В рассматриваемом помещении используются стулья с возможностями вращения во круг оси, регулировки высоты сидения и угла наклона спинки.

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

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

Общие требования к организации рабочих мест пользователей ПЭВМ:

при размещении рабочих мест с ПЭВМ расстояние между рабочими столами с видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора), должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов не менее 1,2 м.

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

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

экран видеомонитора должен находиться от глаз пользователя на расстоянии 600-700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов.

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

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

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

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

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

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

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

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

рабочий стол должен иметь пространство для ног высотой не менее 600 мм, шириной - не менее 500 мм, глубиной на уровне колен - не менее 450 мм и на уровне вытянутых ног - не менее 650 мм.

Конструкция рабочего стула должна обеспечивать:

ширину и глубину поверхности сиденья не менее 400 мм;

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

регулировку высоты поверхности сиденья в пределах 400 - 550 мм и углам наклона вперед до 15 град., и назад до 5 град.;

высоту опорной поверхности спинки 300 ± 20 мм, ширину - не менее 380 мм и радиус кривизны горизонтальной плоскости - 400 мм;

угол наклона спинки в вертикальной плоскости в пределах ± 30 градусов;

регулировку расстояния спинки от переднего края сиденья в пределах 260 - 400 мм;

стационарные или съемные подлокотники длиной не менее 250 мм и шириной 50 - 70 мм;

регулировка подлокотников по высоте над сиденьем в пределах 230 ± 30 мм и внутреннего расстояния между подлокотниками в пределах 350 - 500 мм.

рабочее место пользователя ПЭВМ следует оборудовать подставкой для ног, имеющей ширину не менее 300 мм, глубину не менее 400 мм, регулировку по высоте в пределах до 150 мм и по углу наклона опорной поверхности подставки до 20 градусов. Поверхность подставки должна быть рифленой и иметь по переднему краю бортик высотой 10 мм.

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

4.10 Расчетная часть

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

Работа пользователя ЭВМ требует большой зрительной нагрузки, поэтому помимо естественного освещения приходиться использовать искусственное.

В помещении в светлое время суток используется естественное и искусственное освещение, в темное время суток - общее равномерное искусственное освещение.

При общем искусственном освещении: освещенность - 400 лк.

Согласно СанПиН 2.2.2.542-96 для освещения помещений с ВДТ и ПЭВМ следует применять светильники серии ЛПО. Группа светильников - 8.

Для искусственного освещения будем использовать светильники типа ЛПО 01-2х400/Д-01 по 2 лампы ЛБ 40 в каждом.

Определим количество светильников необходимое для освещения.

Световой поток лампы (ФЛ) в светильниках с люминесцентными лампами и при расположении светильников в ряд определяют по формуле:

(4.3)

где:

ЕН - нормированная освещенность, лк;

S - площадь освещаемого помещения, м2;

k - коэффициент запаса;

Z - коэффициент минимальной освещенности;

NP - количество рядов;

n1 - количество светильников в ряду;

n2 - количество ламп в светильнике;

- коэффициент использования светового потока;

Коэффициенты использования светового потока для принятого типа светильника определяют по индексу помещения i и коэффициентам отражения потолка, стен, и пола.

Индекс помещения определяется по формуле:

(4.4)

где:

А и Б соответственно длина и ширина помещения, м;

НР - высота подвеса светильников, м.

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

ширина - 6 м;

длинна - 6 м;

высота подвеса - 3,2 м

Определим индекс помещения:

(4.5)

Согласно СанПиН 2.2.2.542-96 для внутренней отделки интерьера помещений с ВДТ и ПЭВМ должны использоваться диффузно-отражающие материалы с коэффициентом отражения:

для потолка - 0,7;

для стен - 0,5;

для пола - 0,3.

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

= 38%;

Световой поток лампы ЛБ 40 равен 3120 лк. Коэффициент минимальной освещенности для люминесцентных ламп Z = 1,1. Согласно требованиям к освещению на рабочих местах, оборудованных ПЭВМ, коэффициент запаса (Кз) для осветительных установок общего освещения должен приниматься равным 1,4.

Определим количество светильников:

(4.6)

Таким образом, для обеспечения нормированной освещенности необходимо иметь 5 светильников типа ЛПО 01-2х400/Д-01 по 2 лампы типа ЛБ40 в каждом.

Заключение

Целью разработки является создание базы данных 'Аптека' для учета лекарственных средств и изделий медицинского назначения, предназначенной для использования в аптеках стационаров лечебно-профилактических учреждений (ЛПУ) Нижегородской области и Нижнего Новгорода.

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

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

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

1. Ковязин А., Востриков С., Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase / Firebird / Yaffil. - СПб.: Питер, 2007. - 496 с.: ил.

2. Дэйт К., Введение в системы баз данных. - К.: Вильямс, 2000. - 512 с.

3. Хелен Борри, Firebird: руководство разработчика баз данных. - СПб.: БХВ-Петербург, 2007. - 1104 с.

4. Хомоненко А., Гофман В., Мещеряков Е., Никифоров В., Delphi 7/Под общ. Ред.А.Д. Хомоненко. - СПб.: БХВ-Петербург, 2008. - 1216 с.: ил.

5. Гольцман В., MySQL 5.0. Библиотека программиста. - СПб.: Питер, 2010. - 256 с.: ил.

6. СТП 1-У-НГТУ-2004. Общие требования к оформлению пояснительных записок дипломных и курсовых проектов. - Н. Новгород, 2004. - 21 с.

Приложения

Приложение А

Часть кода программы

Otch_ved. pas - форма 'Формирование ведомости'

unit Otch_ved;

interface

uses

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

Dialogs, ToolWin, ComCtrls, StdCtrls, ExtCtrls, CheckLst, Mask, DB,

IBCustomDataSet, IBQuery, FR_DSet, FR_DBSet, FR_Class, Grids, DBGrids,

Menus;

type

TFormVed = class (TForm)

GroupBox1: TGroupBox;

IstFnBox: TCheckListBox;

StatusBar1: TStatusBar;

GroupBox2: TGroupBox;

GrupBox: TCheckListBox;

Panel1: TPanel;

Label1: TLabel;

DTPicker1: TDateTimePicker;

Label2: TLabel;

DTPicker2: TDateTimePicker;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

GroupBox3: TGroupBox;

Label3: TLabel;

FromPos: TMaskEdit;

Label4: TLabel;

ToPos: TMaskEdit;

IBQry1: TIBQuery;

VedGrid: TStringGrid;

ToolButton9: TToolButton;

ToolButton6: TToolButton;

ToolButton7: TToolButton;

Label5: TLabel;

Edit_poisk: TEdit;

ToolButton8: TToolButton;

frReport1: TfrReport;

frDBDataSet1: TfrDBDataSet;

R1: TCheckBox;

R2: TCheckBox;

PopupMenu1: TPopupMenu;

N2: TMenuItem;

procedure TBExit (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure ChBoxClick (Sender: TObject);

procedure TBVedom (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure FormCanResize (Sender: TObject; var NewWidth,

NewHeight: Integer; var Resize: Boolean);

procedure TBPrint (Sender: TObject);

procedure VedGridDrawCell (Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

procedure VedGridSelectCell (Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure TBOststkiDannie (Sender: TObject);

procedure TBSumm (Sender: TObject);

procedure TBPoisk (Sender: TObject);

procedure StatusBar1DrawPanel (StatusBar: TStatusBar;

Panel: TStatusPanel; const Rect: TRect);

procedure BoxDblClick (Sender: TObject);

private

QryText: string;

TabNam1, TabNam2, TabNam3: String;

mIstFin, mGrup, mRec: Array of Integer;

Date1, Date2: TDateTime;

RowN, Flag, IFFlag, GrupFl: Integer;

public

{ Public declarations }

end;

var

FormVed: TFormVed;

implementation

uses main, p_karta, VedOst1;

{$R *. dfm}

procedure TFormVed. FormCreate (Sender: TObject);

var I: Integer;

begin

Date1: =StrToDate ('01.01. '+IntToStr (MF. nastr_god));

Date2: =Now; Flag: =1;

DTPicker1. DateTime: =Date1;

DTPicker2. DateTime: =Date2;

QryText: = 'Select * From dicISTFIN Order by NameOfIstFinansir';

MF. OpenQry (QryText, MF. IBQuery1);

IstFnBox. Items. Clear; SetLength (mIstFin, 0); i: =0; IFFlag: =1;

while not MF. IBQuery1. Eof do

begin

IstFnBox. Items. Add (MF. IBQuery1. FieldByName ('NameOfIstFinansir'). asString);

Inc (i); SetLength (mIstFin, i);

mIstFin [i-1]: = MF. IBQuery1 ['ISTFINANSIRID'];

IstFnBox. Checked [i-1]: =True;

MF. IBQuery1. Next;

end;

QryText: = 'Select * From dicGruppa Order by NameOfGPKU';

MF. OpenQry (QryText, MF. IBQuery1);

GrupBox. Items. Clear; SetLength (mGrup, 0); i: =0; GrupFl: =1;

while not MF. IBQuery1. Eof do

begin

GrupBox. Items. Add (MF. IBQuery1. FieldByName ('NameOfGPKU'). asString);

Inc (i); SetLength (mGrup, i);

mGrup [i-1]: = MF. IBQuery1 ['GRUPPAPKUID'];

GrupBox. Checked [I-1]: =true;

MF. IBQuery1. Next;

end;

TabNam1: =MF.compN+'_ved1';

MF. IBTable1. Active: =False;

MF. IBTable1. TableName: =TabNam1;

TabNam2: =MF.compN+'_ved2';

MF. IBTable2. Active: =False;

MF. IBTable2. TableName: =TabNam2;

TabNam3: =MF.compN+'_ved3';

MF. IBTable3. Active: =False;

MF. IBTable3. TableName: =TabNam3;

If MF. exec_Tran. InTransaction then MF. exec_Tran.commit;

MF. exec_Tran. StartTransaction;

TRY

begin

If MF. IBTable1. Exists then

QryText: ='DELETE FROM '+TabNam1

else

QryText: ='CREATE TABLE '+TabNam1+

' (NomenklID int, SeriaID int, SumOst Numeric (11,3), SumPrih Numeric (11,3), '+

'SumRash Numeric (11,3), IstFinansirID int, PrihCenNDS Numeric (11,3)) ';

MF. ExecQry (QryText, MF. ExQuery2);

If MF. IBTable2. Exists then

QryText: ='DELETE FROM '+TabNam2

else

QryText: ='CREATE TABLE '+TabNam2+

' (NomenklID int, SeriaID int, SumOst Numeric (11,3), SumPrih Numeric (11,3), '+

'SumRash Numeric (11,3), IstFinansirID int, PrihCenNDS Numeric (11,3)) '; //

MF. ExecQry (QryText, MF. ExQuery2);

end;

MF. exec_Tran.commit;

EXCEPT

MF. exec_Tran. Rollback;

END;

VedGrid. Cells [0, 0]: ='№';

VedGrid. Cells [1, 0]: ='Наименование';

VedGrid. Cells [2, 0]: ='Цена,';

VedGrid. Cells [3, 0]: ='Остаток';

VedGrid. Cells [4, 0]: ='Приход';

VedGrid. Cells [5, 0]: ='Расход';

VedGrid. Cells [6, 0]: ='Остаток';

end;

procedure TFormVed. TBExit (Sender: TObject);

begin

SetLength (mIstFin, 0); SetLength (mGrup, 0);

Close

end;

procedure TFormVed. ChBoxClick (Sender: TObject);

var CLBox: TCheckListBox;

begin

CLBox: =IstFnBox;

If (Sender as TCheckBox). Name='CheckBox1' then CLBox: =IstFnBox

Else If (Sender as TCheckBox). Name='CheckBox2' then CLBox: =GrupBox;

If (Sender as TCheckBox). Checked then

CLBox. Enabled: =False

Else

CLBox. Enabled: =True;

end;

procedure TFormVed. TBVedom (Sender: TObject);

var D1, D2, OrderTxt, IFList, GPList, W1, W2, Pf, Fn, Gr: String;

I, F, T: Integer;

S1, S2, S3, S4: Real;

Sf1, Sf2, Sf3, Sf4: Real;

Sg1, Sg2, Sg3, Sg4: Real;

SS1, SS2, SS3, SS4: Real;

begin

If DTPicker1. DateTime > DTPicker2. DateTime then

begin

Application. MessageBox ('Первая дата больше второй! ', 'Ошибка!!! ', MB_OK);

exit;

end;

D1: =MF. MD (DateToStr (DTPicker1. DateTime));

D2: =MF. MD (DateToStr (DTPicker2. DateTime));

Flag: =0;

If MF. exec_Tran. InTransaction then MF. exec_Tran.commit;

MF. exec_Tran. StartTransaction;

TRY

begin

QryText: ='DELETE FROM '+TabNam1;

MF. ExecQry (QryText, MF. ExQuery2);

QryText: ='DELETE FROM '+TabNam2;

MF. ExecQry (QryText, MF. ExQuery2);

end;

MF. exec_Tran.commit;

EXCEPT

MF. exec_Tran. Rollback;

END;

If MF. exec_Tran. InTransaction then MF. exec_Tran.commit;

MF. exec_Tran. StartTransaction;

TRY

begin

QryText: ='Insert Into '+TabNam1+

' (NomenklID, SeriaID, SumOst, IstFinansirID, PrihCenNDS) '+

'Select NomenklID, SeriaID, Sum (OstCount) as SumOst, IstFinansirID, PrihCenNDS '+

'From OstatkiDoc O, OststkiDannie Os '+

'Where O. YearOfOst='+InttoStr (MF. nastr_god) +' and O. Ostid=Os. Ostid '+

'Group by NomenklID, SeriaID, IstFinansirID, PrihCenNDS';

MF. ExecQry (QryText, MF. ExQuery2);

QryText: ='Insert Into '+TabNam1+

' (NomenklID, SeriaID, SumPrih, IstFinansirID, PrihCenNDS) '+

'Select NomenklID, SeriaID, Sum (PrihFaktCount) as SumPrih, IstFinansirID, PrihCenNDS '+

'From PrixodDannie P2, PrixDoc PD2 '+

'Where P2. PrihID=PD2. PrihID and '+

'PD2. DatePrih between '+D1+' and '+D2+' '+

'Group by NomenklID, SeriaID, IstFinansirID, PrihCenNDS';

MF. ExecQry (QryText, MF. ExQuery2);

QryText: ='Insert Into '+TabNam1+

' (NomenklID, SeriaID, SumRash, IstFinansirID, PrihCenNDS) '+

'Select NomenklID, SeriaID, Sum (RasxCount) as SumRash, IstFinansirID, PrihCenNDS '+

'From RashodDannie R1, RashodDoc RD1 '+

'Where R1. RashID=RD1. RashID and '+

'RD1. DateRash between '+D1+' and '+D2+' '+

'Group by NomenklID, SeriaID, IstFinansirID, PrihCenNDS';

MF. ExecQry (QryText, MF. ExQuery2);

end;

MF. exec_Tran.commit;

EXCEPT

MF. exec_Tran. Rollback;

END;

QryText: ='Insert Into '+TabNam2+

' (NomenklID, SeriaID, SumOst, SumPrih, SumRash, IstFinansirID, PrihCenNDS) '+

'Select NomenklID, SeriaID, Sum (COALESCE (SumOst, 0)) as SumOst, Sum (COALESCE (SumPrih, 0)) as SumPrih, '+

'Sum (COALESCE (SumRash, 0)) as SumRash, IstFinansirID, PrihCenNDS '+

'From '+TabNam1+' '+

'Group by NomenklID, SeriaID, IstFinansirID, PrihCenNDS';

MF. ExecQryTr (QryText, MF. ExQuery2, MF. exec_Tran);

IFList: =''; GPList: =''; W1: =''; W2: ='';

IFList: =' (0';

For I: =0 To Length (mIstFin) - 1 Do

begin

If IstFnBox. Checked [I] then

IFList: =IFList+', '+IntToStr (mIstFin [I]);

end;

IFList: =IFList+') ';

W1: ='and IstFinansirID in '+IFList; // Where

GPList: =' (0';

For I: =0 To Length (mGrup) - 1 Do

begin

If GrupBox. Checked [I] then

GPList: =GPList+', '+IntToStr (mGrup [I]);

end;

GPList: =GPList+') ';

W2: =' and DP. GRUPPAPKUID in '+GPList;

If Trim (FromPos. Text) ='' then F: =0 Else F: =StrToInt (FromPos. Text);

If Trim (ToPos. Text) ='' then T: =0 Else T: =StrToInt (ToPos. Text);

QryText: ='Select distinct N. NOMENKLID, N. NumOfNomenkl, (Middle (N. NumOfNomenkl, '+IntToStr (F) +', '+IntToStr (T) +')) as Nom, N. NMNKLName, '+

'SrokDeistvSertif, NumOfSertif, SrokG, S. SeriaID, SeriaNom, NameOfKontr, '+

'IstFinansirID, NameOfIstFinansir, GRUPPAPKUID, GPLUName, EdIzmID, PrihCenNDS, '+

' (COALESCE (SumOst, 0)) as SumOst, (COALESCE (SumPrih, 0)) as SumPrih, '+

' (COALESCE (SumRash, 0)) as SumRash, '+

' (COALESCE (SumOst, 0) + COALESCE (SumPrih, 0) - COALESCE (SumRash, 0)) as SumOst2 '+

'From DicFarmPrep DP '+

'Inner join Nomenklat N on DP. FarmPrepID=N. FarmPrepID '+

'left join dicGruppa DG on DP. GRUPPAPKUID=DG. GRUPPAPKUID '+

'left join Seria S on N. NomenklID=S. NomenklID '+

'left join DicEdIzmereniya E on N. EIZID=E. EIZID '+

'left join DicKontragent K on S. Proizvid=K. kagid '+

'left join '+TabNam2+' T on (N. NomenklID=T. NomenklID and S. SeriaID=T. SeriaID) '+

'left join dicistfin DI on T. IstFinansirID=DI. IstFinansirID '+

'Where (COALESCE (SumOst, 0) <>0 or COALESCE (SumPrih, 0) <>0 or COALESCE (SumRash, 0) <>0 or '+

' (COALESCE (SumOst, 0) + COALESCE (SumPrih, 0) - COALESCE (SumRash, 0)) <>0) '+W1+W2+' ';

OrderTxt: ='Order BY ';

If R1. checked then OrderTxt: =OrderTxt+'NameOfIstFinansir, ';

If R2. checked then OrderTxt: =OrderTxt+'GPLUName, ';

OrderTxt: =OrderTxt+'Nom, NmnklName, SeriaNom';

MF. OpenQry (QryText+OrderTxt, IBQry1); // WhereTxt+

IBQry1. First; VedGrid. RowCount: =2; I: =1;

Fn: =''; Gr: =''; // Для хранения предыдущего значения ист. фин-я и группы

S1: =0; S2: =0; S3: =0; S4: =0; Sf1: =0; Sf2: =0; Sf3: =0; Sf4: =0;

Sg1: =0; Sg2: =0; Sg3: =0; Sg4: =0; SS1: =0; SS2: =0; SS3: =0; SS4: =0;

SetLength (mRec, 0); // отражает номер записи запроса в строке грида

VedGrid. Cells [0, 1]: ='';

VedGrid. Cells [1, 1]: ='';

VedGrid. Cells [2, 1]: ='';

VedGrid. Cells [3, 1]: ='';

VedGrid. Cells [4, 1]: ='';

VedGrid. Cells [5, 1]: ='';

VedGrid. Cells [6, 1]: ='';

While not IBQry1. Eof do

begin

If I>1 then VedGrid. RowCount: =VedGrid. RowCount+1;

If (I>1) and

( (VedGrid. Cells [0, I-1] <>IBQry1. FieldByName ('Nom'). asString) or

( (Fn<>IBQry1. FieldByName ('NameOfIstFinansir'). asString) and (R1. checked)) or

( (Gr<>IBQry1. FieldByName ('GPLUName'). asString) and (R2. checked))) then

Begin

VedGrid. RowCount: =VedGrid. RowCount+1; I: =I+1;

VedGrid. Cells [0, I-1]: ='';

VedGrid. Cells [1, I-1]: ='Итого по ''+VedGrid. Cells [0, I-2] +''';

VedGrid. Cells [2, I-1]: ='';

VedGrid. Cells [3, I-1]: =FloatToStr (S1); // 'Ост. на нач. ';

VedGrid. Cells [4, I-1]: =FloatToStr (S2); // 'Приход';

VedGrid. Cells [5, I-1]: =FloatToStr (S3); // 'Расход';

VedGrid. Cells [6, i-1]: =FloatToStr (S4); // 'Ост. на кон. ';

S1: =0; S2: =0; S3: =0; S4: =0;

If (Gr<>IBQry1. FieldByName ('GPLUName'). asString) and (R2. checked) then

begin

VedGrid. RowCount: =VedGrid. RowCount+1; I: =I+1;

VedGrid. Cells [0, I-1]: ='';

VedGrid. Cells [1, I-1]: ='Группа ''+Gr+''';

VedGrid. Cells [2, I-1]: ='';

VedGrid. Cells [3, I-1]: =FloatToStr (Sg1); // 'Ост. на нач. ';

VedGrid. Cells [4, I-1]: =FloatToStr (Sg2); // 'Приход';

VedGrid. Cells [5, I-1]: =FloatToStr (Sg3); // 'Расход';

VedGrid. Cells [6, i-1]: =FloatToStr (Sg4); // 'Ост. на кон. ';

Sg1: =0; Sg2: =0; Sg3: =0; Sg4: =0; S1: =0; S2: =0; S3: =0; S4: =0;

end;

If (Fn<>IBQry1. FieldByName ('NameOfIstFinansir'). asString) and (R1. checked) then

begin

VedGrid. RowCount: =VedGrid. RowCount+1; I: =I+1;

VedGrid. Cells [0, I-1]: ='';

VedGrid. Cells [1, I-1]: ='Финанс. ''+Fn+''';

VedGrid. Cells [2, I-1]: ='';

VedGrid. Cells [3, I-1]: =FloatToStr (Sf1); // 'Ост. на нач. ';

VedGrid. Cells [4, I-1]: =FloatToStr (Sf2); // 'Приход';

VedGrid. Cells [5, I-1]: =FloatToStr (Sf3); // 'Расход';

VedGrid. Cells [6, i-1]: =FloatToStr (Sf4); // 'Ост. на кон. ';

Sf1: =0; Sf2: =0; Sf3: =0; Sf4: =0;

S1: =0; S2: =0; S3: =0; S4: =0;

end;

end;

VedGrid. Cells [0, I]: =IBQry1. FieldByName ('Nom'). asString; // Copy (IBQry1. FieldByName ('NumOfNomenkl'). asString, F, T);

VedGrid. Cells [1, I]: =IBQry1. FieldByName ('NMNKLName'). asString; // 'Наименование';

VedGrid. Cells [2, I]: =IBQry1. FieldByName ('PrihCenNDS'). asString; // 'Цена, руб. ';

VedGrid. Cells [3, I]: =IBQry1. FieldByName ('SumOst'). asString; // 'Ост. на нач. ';

VedGrid. Cells [4, I]: =IBQry1. FieldByName ('SumPrih'). asString; // 'Приход';

VedGrid. Cells [5, I]: =IBQry1. FieldByName ('SumRash'). asString; // 'Расход';

VedGrid. Cells [6, i]: =IBQry1. FieldByName ('SumOst2'). asString; // 'Ост. на кон. ';

SetLength (mRec, I+1); mRec [I]: =IBQry1. RecNo; // J;

Fn: =IBQry1. FieldByName ('NameOfIstFinansir'). asString;

Gr: =IBQry1. FieldByName ('GPLUName'). asString;

S1: =S1+IBQry1. FieldByName ('SumOst'). asFloat;

S2: =S2+IBQry1. FieldByName ('SumPrih'). asFloat;

S3: =S3+IBQry1. FieldByName ('SumRash'). asFloat;

S4: =S4+IBQry1. FieldByName ('SumOst2'). asFloat;

Sf1: =Sf1+IBQry1. FieldByName ('SumOst'). asFloat;

Sf2: =Sf2+IBQry1. FieldByName ('SumPrih'). asFloat;

Sf3: =Sf3+IBQry1. FieldByName ('SumRash'). asFloat;

Sf4: =Sf4+IBQry1. FieldByName ('SumOst2'). asFloat;

Sg1: =Sg1+IBQry1. FieldByName ('SumOst'). asFloat;

Sg2: =Sg2+IBQry1. FieldByName ('SumPrih'). asFloat;

Sg3: =Sg3+IBQry1. FieldByName ('SumRash'). asFloat;

Sg4: =Sg4+IBQry1. FieldByName ('SumOst2'). asFloat;

SS1: =SS1+IBQry1. FieldByName ('SumOst'). asFloat;

SS2: =SS2+IBQry1. FieldByName ('SumPrih'). asFloat;

SS3: =SS3+IBQry1. FieldByName ('SumRash'). asFloat;

SS4: =SS4+IBQry1. FieldByName ('SumOst2'). asFloat;

IBQry1. Next; I: =I+1; // J: =J+1;

end;

VedGrid. RowCount: =VedGrid. RowCount+1;

VedGrid. Cells [0, VedGrid. RowCount-1]: ='';

VedGrid. Cells [1, VedGrid. RowCount-1]: ='Итого по ''+VedGrid. Cells [0, I-1] +'': ';

VedGrid. Cells [2, VedGrid. RowCount-1]: ='';

VedGrid. Cells [3, VedGrid. RowCount-1]: =FloatToStr (S1); // 'Ост. на нач. ';

VedGrid. Cells [4, VedGrid. RowCount-1]: =FloatToStr (S2); // 'Приход';

VedGrid. Cells [5, VedGrid. RowCount-1]: =FloatToStr (S3); // 'Расход';

VedGrid. Cells [6, VedGrid. RowCount-1]: =FloatToStr (S4); // 'Ост. на кон. ';

If R2. checked then

begin

VedGrid. RowCount: =VedGrid. RowCount+1;

VedGrid. Cells [0, VedGrid. RowCount-1]: ='';

VedGrid. Cells [1, VedGrid. RowCount-1]: ='Группа: '+Gr;

VedGrid. Cells [2, VedGrid. RowCount-1]: ='';

VedGrid. Cells [3, VedGrid. RowCount-1]: =FloatToStr (Sg1); // 'Ост. на нач. ';

VedGrid. Cells [4, VedGrid. RowCount-1]: =FloatToStr (Sg2); // 'Приход';

VedGrid. Cells [5, VedGrid. RowCount-1]: =FloatToStr (Sg3); // 'Расход';

VedGrid. Cells [6, VedGrid. RowCount-1]: =FloatToStr (Sg4); // 'Ост. на кон. ';

end;

If R1. checked then

begin

VedGrid. RowCount: =VedGrid. RowCount+1;

VedGrid. Cells [0, VedGrid. RowCount-1]: ='';

VedGrid. Cells [1, VedGrid. RowCount-1]: ='Финанс.: '+Fn;

VedGrid. Cells [2, VedGrid. RowCount-1]: ='';

VedGrid. Cells [3, VedGrid. RowCount-1]: =FloatToStr (Sf1); // 'Ост. на нач. ';

VedGrid. Cells [4, VedGrid. RowCount-1]: =FloatToStr (Sf2); // 'Приход';

VedGrid. Cells [5, VedGrid. RowCount-1]: =FloatToStr (Sf3); // 'Расход';

VedGrid. Cells [6, VedGrid. RowCount-1]: =FloatToStr (Sf4); // 'Ост. на кон. ';

end;

VedGrid. RowCount: =VedGrid. RowCount+1;

VedGrid. Cells [0, VedGrid. RowCount-1]: ='';

VedGrid. Cells [1, VedGrid. RowCount-1]: ='Всего: ';

VedGrid. Cells [2, VedGrid. RowCount-1]: ='';

VedGrid. Cells [3, VedGrid. RowCount-1]: =FloatToStr (SS1); // 'Ост. на нач. ';

VedGrid. Cells [4, VedGrid. RowCount-1]: =FloatToStr (SS2); // 'Приход';

VedGrid. Cells [5, VedGrid. RowCount-1]: =FloatToStr (SS3); // 'Расход';

VedGrid. Cells [6, VedGrid. RowCount-1]: =FloatToStr (SS4); // 'Ост. на кон. ';

If IBQry1. RecordCount<>0 then

begin

ToolButton6. Enabled: =True;

ToolButton7. Enabled: =True;

ToolButton8. Enabled: =True;

ToolButton9. Enabled: =True;

Edit_poisk. Enabled: =True;

end

Else

begin

ToolButton6. Enabled: =False;

ToolButton7. Enabled: =False;

ToolButton8. Enabled: =False;

ToolButton9. Enabled: =False;

Edit_poisk. Enabled: =False;

end;

Flag: =1; RowN: =1;

IBQry1. First;

StatusBar1. Repaint;

end;

procedure TFormVed. FormClose (Sender: TObject; var Action: TCloseAction);

begin

If MF. read_Tran. InTransaction then MF. read_Tran.commit;

If MF. exec_Tran. InTransaction then MF. exec_Tran.commit;

MF. exec_Tran. StartTransaction;

TRY

begin

QryText: ='Drop table '+TabNam1;

MF. ExecQry (QryText, MF. ExQuery2);

QryText: ='Drop table '+TabNam2;

MF. ExecQry (QryText, MF. ExQuery2);

{ QryText: ='Drop table '+TabNam3;

MF. ExecQry (QryText, MF. ExQuery2); }

end;

MF. exec_Tran.commit;

EXCEPT

MF. exec_Tran. Rollback;

END;

SetLength (mIstFin, 0); SetLength (mGrup, 0); SetLength (mRec, 0);

end;

procedure TFormVed. FormCanResize (Sender: TObject; var NewWidth,

NewHeight: Integer; var Resize: Boolean);

var ii: Integer;

begin

VedGrid. Height: =NewHeight-255;

VedGrid. Width: =NewWidth-27; ii: =25;

VedGrid. ColWidths [0]: =Round ( (VedGrid. Width-ii) * 0.06);

VedGrid. ColWidths [1]: =Round ( (VedGrid. Width-ii) * 0.35);

VedGrid. ColWidths [2]: =Round ( (VedGrid. Width-ii) * 0.10);

VedGrid. ColWidths [3]: =Round ( (VedGrid. Width-ii) * 0.12);

VedGrid. ColWidths [4]: =Round ( (VedGrid. Width-ii) * 0.12);

VedGrid. ColWidths [5]: =Round ( (VedGrid. Width-ii) * 0.12);

VedGrid. ColWidths [6]: =Round ( (VedGrid. Width-ii) * 0.12);

end;

procedure TFormVed. TBPrint (Sender: TObject);

begin

frReport1. Clear;

If ( (Sender as TMenuItem). Name) = 'N1' then

begin

frReport1. LoadFromFile ('Vedomost. frf');

With frReport1. Dictionary do begin

Variables ['D1']: = MF. MS (DateToStr (DTPicker1. Date));

Variables ['D2']: = MF. MS (DateToStr (DTPicker2. Date));

Variables ['S1']: = MF. MS (FromPos. Text);

Variables ['L2']: = MF. MS (ToPos. Text);

end;

end

Else

If ( (Sender as TMenuItem). Name) = 'N2' then

begin

If RowN=-1 then exit;

frReport1. LoadFromFile ('Stellag_Kart. frf');

With frReport1. Dictionary do begin

Variables ['Name']: = MF. MS (IBQry1. FieldByName ('NMNKLName'). asString+' '+

IBQry1. FieldByName ('NameOfKontr'). asString);

Variables ['EIZ']: = MF. MS (IBQry1. FieldByName ('EdIzmID'). asString);

Variables ['Coun']: = MF. MS (IBQry1. FieldByName ('SumOst2'). asString);

Variables ['Cena']: = MF. MS (IBQry1. FieldByName ('PrihCenNDS'). asString);

Variables ['Seria']: = MF. MS (IBQry1. FieldByName ('SeriaNom'). asString);

Variables ['SrokG']: = MF. MS (IBQry1. FieldByName ('SrokG'). asString);

end;

end;

frReport1. ShowReport;

end;

procedure TFormVed. VedGridDrawCell (Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

var ll: Integer;

TheRect: TRect;

begin

if ARow = 0 then

begin

ll: = (VedGrid. ColWidths [ACol] - Canvas. TextWidth (VedGrid. Cells [ACol,0])) div 2 - 3;

VedGrid. Canvas. Font. Color: =clMaroon;

VedGrid. Canvas. Font. Style: = [fsBold];

VedGrid. RowHeights [0]: =40;

TheRect: =Rect; TheRect. Top: =Rect. Top+15;

If ACol=0 then

VedGrid. Canvas. TextRect (Rect, Rect. Left+ll, Rect. Top+7, '№');

If ACol=1 then

VedGrid. Canvas. TextRect (Rect, Rect. Left+ll, Rect. Top+7, 'Наименование');

If ACol=2 then

begin

VedGrid. Canvas. TextRect (Rect, Rect. Left+ll, Rect. Top+2, 'Цена,');

VedGrid. Canvas. TextRect (TheRect, TheRect. Left+ll, TheRect. Top+2, ' руб. ');

end;

If ACol=3 then

begin

VedGrid. Canvas. TextRect (Rect, Rect. Left+ll, Rect. Top+2, 'Остаток');

VedGrid. Canvas. TextRect (TheRect, TheRect. Left+ll, TheRect. Top+2, ' на нач. ');

end;

If ACol=4 then

VedGrid. Canvas. TextRect (Rect, Rect. Left+ll, Rect. Top+7, 'Приход');

If ACol=5 then

VedGrid. Canvas. TextRect (Rect, Rect. Left+ll, Rect. Top+7, 'Расход');

If ACol=6 then

begin

VedGrid. Canvas. TextRect (Rect, Rect. Left+ll, Rect. Top+2, 'Остаток');

VedGrid. Canvas. TextRect (TheRect, TheRect. Left+ll, TheRect. Top+2, ' на кон. ');

end;

end;

If Copy (VedGrid. Cells [1, ARow], 0,8) ='Итого по' Then

begin

VedGrid. Canvas. Font. Style: = [fsBold];

VedGrid. Canvas. Font. Color: =clNavy;

VedGrid. Canvas. TextRect (Rect, Rect. Left+2, Rect. Top+2, VedGrid. Cells [ACol, ARow]);

end;

If Copy (VedGrid. Cells [1, ARow], 0,6) ='Финанс' Then

begin

VedGrid. Canvas. Font. Style: = [fsBold];

VedGrid. Canvas. Font. Color: =clPurple;

VedGrid. Canvas. TextRect (Rect, Rect. Left+2, Rect. Top+2, VedGrid. Cells [ACol, ARow]);

end;

If Copy (VedGrid. Cells [1, ARow], 0,6) ='Группа' Then

begin

VedGrid. Canvas. Font. Style: = [fsBold];

VedGrid. Canvas. Font. Color: =clGreen;

VedGrid. Canvas. TextRect (Rect, Rect. Left+2, Rect. Top+2, VedGrid. Cells [ACol, ARow]);

end;

If Copy (VedGrid. Cells [1, ARow], 0,5) ='Всего' Then

begin

VedGrid. Canvas. Font. Style: = [fsBold];

VedGrid. Canvas. Font. Color: =clMaroon;

VedGrid. Canvas. TextRect (Rect, Rect. Left+2, Rect. Top+2, VedGrid. Cells [ACol, ARow]);

end;

end;

procedure TFormVed. VedGridSelectCell (Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

begin

If (ARow>Length (mRec)) or (Flag=0) then exit;

If VedGrid. Cells [0, ARow] ='' then RowN: =-1

Else RowN: =ARow;

StatusBar1. Repaint;

end;

procedure TFormVed. TBOststkiDannie (Sender: TObject);

begin

MF. VedOstShow: =1;

Application. CreateForm (TVedOst, VedOst);

if (not VedOst. Visible) then VedOst. ShowModal;

end;

procedure TFormVed. TBSumm (Sender: TObject);

var TxtMess, TekOst, D1, D2: String;

RR: Real;

begin

If IBQry1. RecordCount=0 then exit; RR: =0;

If DTPicker2. Date=now () then TekOst: =VedGrid. Cells [6, VedGrid. RowCount-1]

Else

Begin

D1: =MF. MD (DateToStr (DTPicker2. Date));

D2: =MF. MD (DateToStr (now ()));

RR: =StrToFloat (VedGrid. Cells [6, VedGrid. RowCount-1]);

QryText: ='Select Sum (PrihFaktCount) as SumPrih '+

'From PrixodDannie P2, PrixDoc PD2 '+

'Where P2. PrihID=PD2. PrihID and '+

'PD2. DatePrih between '+D1+' and '+D2+' '+

'Group by NomenklID, SeriaID, IstFinansirID, PrihCenNDS';

MF. OpenQry (QryText, MF. IBQuery1);

RR: =RR+MF. IBQuery1. FieldByName ('SumPrih'). asFloat;

QryText: ='Select Sum (RasxCount) as SumRash '+

'From RashodDannie R1, RashodDoc RD1 '+

'Where R1. RashID=RD1. RashID and '+

'RD1. DateRash between '+D1+' and '+D2+' '+

'Group by NomenklID, SeriaID';

MF. OpenQry (QryText, MF. IBQuery1);

RR: =RR-MF. IBQuery1. FieldByName ('SumRash'). asFloat;

end;

TxtMess: ='Данные за период с '+DateToStr (DTPicker1. Date) +' по '+DateToStr (DTPicker2. Date) +#10#13+

'С '+FromPos. Text+' поз. '+ToPos. Text+' симв. '+#10#13+

'_________________________________Сумма, руб. '+#10#13+

'Остаток на начало периода_________'+VedGrid. Cells [3, VedGrid. RowCount-1] +#10#13+

'Приход___________________________' +VedGrid. Cells [4, VedGrid. RowCount-1] +#10#13+

'Расход___________________________' +VedGrid. Cells [5, VedGrid. RowCount-1] +#10#13+

'Остаток на конец периода__________'+VedGrid. Cells [6, VedGrid. RowCount-1] +#10#13+

'Текущий остаток__________________' +FloatToStr (RR);

MessageDlgPos (TxtMess, mtInformation, [mbOK], 0, 200, 200)

end;

procedure TFormVed. TBPoisk (Sender: TObject);

var myRect: TGridRect;

I: Integer;

begin

If not IBQry1. Locate ('NMNKLName', Edit_poisk. Text, [loPartialKey]) then

begin

IBQry1. First;

ShowMessage ('Значение не найдено');

exit;

end;

for I: =0 To Length (mRec) do

If mRec [I] =IBQry1. RecNo then break;

myRect. Left: = 0; myRect. Top: = I;

myRect. Right: = 6; myRect. Bottom: = I;

VedGrid. Selection: =myRect;

VedGrid. TopRow: =I;

end;

procedure TFormVed. StatusBar1DrawPanel (StatusBar: TStatusBar;

Panel: TStatusPanel; const Rect: TRect);

begin

If not IBQry1. Active then exit;

StatusBar1. Canvas. Font. Color: = clMaroon;

StatusBar1. Canvas. Font. Size: = 8;

StatusBar1. Canvas. Font. Style: = [fsBold];

If RowN=-1 then // VedGrid. Cells [0, ARow] =''

begin

if Panel = StatusBar. Panels [0] then

StatusBar1. Canvas. TextOut (Rect. Left, Rect. Top, 'Номенкл. №')

Else

if Panel = StatusBar. Panels [1] then

StatusBar1. Canvas. TextOut (Rect. Left, Rect. Top, 'Источник фин. ')

Else

if Panel = StatusBar. Panels [2] then

StatusBar1. Canvas. TextOut (Rect. Left, Rect. Top, 'Поставщик')

Else

if Panel = StatusBar. Panels [3] then

StatusBar1. Canvas. TextOut (Rect. Left, Rect. Top, 'Серия')

Else

if Panel = StatusBar. Panels [4] then

StatusBar1. Canvas. TextOut (Rect. Left, Rect. Top, 'Срок д. серт')

Else

if Panel = StatusBar. Panels [5] then

StatusBar1. Canvas. TextOut (Rect. Left, Rect. Top, 'Срок годности')

end

Else

begin

IBQry1. RecNo: =RowN;

if Panel = StatusBar. Panels [0] then

StatusBar1. Canvas. TextOut (Rect. Left,Rect. Top, IBQry1. FieldByName ('NumOfNomenkl'). asString)

Else

if Panel = StatusBar. Panels [1] then

StatusBar1. Canvas. TextOut (Rect. Left,Rect. Top, IBQry1. FieldByName ('NameOfIstFinansir'). asString)

Else

if Panel = StatusBar. Panels [2] then

StatusBar1. Canvas. TextOut (Rect. Left,Rect. Top, IBQry1. FieldByName ('NameOfKontr'). asString)

Else

if Panel = StatusBar. Panels [3] then

StatusBar1. Canvas. TextOut (Rect. Left,Rect. Top, IBQry1. FieldByName ('SeriaNom'). asString)

Else

if Panel = StatusBar. Panels [4] then

StatusBar1. Canvas. TextOut (Rect. Left,Rect. Top, IBQry1. FieldByName ('SrokDeistvSertif'). asString)

Else

if Panel = StatusBar. Panels [5] then

StatusBar1. Canvas. TextOut (Rect. Left,Rect. Top, IBQry1. FieldByName ('SrokG'). asString)

end;

end;

procedure TFormVed. BoxDblClick (Sender: TObject);

var I: Integer;

begin

If (Sender as TCheckListBox). Name='IstFnBox' then

begin

For I: =0 To Length (mIstFin) - 1 do

If IFFlag=0 Then IstFnBox. Checked [I]: =True

Else IstFnBox. Checked [I]: =False;

If IFFlag=0 Then IFFlag: =1

Else IFFlag: =0;

end;

If (Sender as TCheckListBox). Name='GrupBox' then

begin

For I: =0 To Length (mGrup) - 1 do

If GrupFl=0 Then GrupBox. Checked [I]: =True

Else GrupBox. Checked [I]: =False;

If GrupFl=0 Then GrupFl: =1

Else GrupFl: =0;

end;

end;

end.

ref.by 2006—2025
contextus@mail.ru