/>ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
СТАРООСКОЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ
(ФИЛИАЛ) ФЕДЕРАЛЬНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ СТАЛИ И СПЛАВОВ
(ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)»
Факультет автоматизации и информационных технологий
Кафедра автоматики и промышленной электроники
Специальность 080801 «Прикладная информатика в сфере сервиса»
Выпускная квалификационная работа
на тему: «Автоматизация учета товаров на АГЗС «Северного объединения по эксплуатации газового хозяйства»
Старый Оскол июнь 2009 год
/>Аннотация
Объектом исследования дипломного проекта является АГЗС города Губкина – структурного подразделения «Северное объединение по эксплуатации газового хозяйства» Основной вид деятельности АГЗС – оказание услуг по заправке автомобилей сжиженным углеводородным газом.
Целью дипломного проекта является разработка системы автоматизации учета товаров на АГЗС.
В аналитической части произведен анализ процесса работы АГЗС и отдела ОМТС, построены информационные потоки, поставлена главная задача проектирования и разбита на подзадачи.
Для практической реализации поставленной задачи были разработаны базы данных АГЗС и отдела ОМТС синхронизирующиеся между собой для контроля всех пяти АГЗС из главного офиса (ОМТС). Был произведен выбор системного обеспечения: ОС рабочей станции – WindowsXPProfessional, использовалась база данных MSAccess– которая включает весь необходимый перечень функций для проектируемой информационной системы и имеет богатый набор визуальных средств, в качестве ПО для сервера был выбран MSSQL-Server. В проекте было произведено обоснование выбора технических средств, необходимых для работы системы.
Внедрение разрабатываемой системы позволит сократить время, затрачиваемое на обработку данных, автоматизирует обмен информацией между АГЗС и главным офисом.
В экономической части рассчитана экономическая эффективность внедрения проекта и срок окупаемости проекта.
В разделе «Защита информации» были проанализированы средства обеспечения защиты информации хранящейся в БД.
Пояснительная записка дипломного проекта содержит 94 листа, 32 рисунка, 24 таблицы, 2 приложения. Графическая часть проекта состоит из 9 листов формата А1.
Список сокращений
АГЗС
–
Автогазозаправочная станция
АДС
–
Аварийно-диспетчерская служба
АХО
–
Административно-хозяйственный отдел
БД
–
Базы данных
ГРЭГС
–
Губкинская районо-эксплуатационная газовая служба
ИО
–
Информационное обеспечение
ИС
–
Информационная система
ИТ
–
Информационные технологии
КРЭГС
–
Красненская районо-эксплуатационная газовая служба
КС
–
Корпоративная сеть
НОРЭГС
–
Новоскольская районо-эксплуатационная газовая служба
ОГМ
–
Отдел главного механика
ОК
–
Отдел кадров
ОКО
–
Отдел компьютерного обеспечения
ОМТС
–
Отдел материально-технического снабжения
ОРГ
–
Отдел режимов газоснабжения
ОУП
–
Отдел управления персоналом
ПО
–
Программное обеспечение
ПТО
–
Производственно-технический отдел
ПЭО
–
Планово-экономический отдел
СОРЭГС
–
Старооскольская районо-эксплуатационная газовая служба
СУБД
–
Система управления базами данных
СУГ
–
сжиженный углеводородный газ
УВДГО
–
Участок внутридомового газового оборудования
ЦАДС
–
Центральная аварийно-диспетчерская служба
ЧРЭГС
–
Чернянская районо-эксплуатационная газовая служба
Содержание
Введение
1. Аналитическая часть
1.1 Описание предметной области
1.1.1 Описание вида деятельности
1.1.2 Организационная структура и объект управления
1.2 Описание существующего уровня автоматизации
1.2.1 Структура сети и ее характеристика –PAGE_BREAK–
1.2.2 Конфигурации рабочих мест
1.2.3 Описание существующей информационной системы
1.2.4 Описание работы автогазозаправочной станции
1.3 Сущность информационного комплекса и информационных задач
1.3.1 Постановка задач на проектирование
1.3.2 Обоснование выбора задач, входящих в комплекс
1.3.3 Проблемы разработки информационной системы
1.3.4 Декомпозиция задач
1.3.5 Требования, предъявляемые к разрабатываемой ИС
1.4. Обзор современных ИС
1.4.1 Обоснование проектных решений по программному обеспечению комплекса задач
2. Проектная часть
2.1 Информационное обеспечение комплекса задач
2.1.1 Обоснование информационного обеспечения
2.1.2 Внемашинное информационное обеспечение
2.1.2.1 Инфологическая модель данных и ее описание
2.1.2.2 Характеристика входной информации
2.1.3 Выбор клиентской системы управления баз данных
2.1.4 Выбор серверной системы управления баз данных
2.1.5 Внутримашинная реализация данных
2.1.6 Алгоритмы и технология решения задач
2.2 Формализация расчетов (математическая модель)
2.2.1 Модель управления запасами без дефицита
2.3 Описание экранных форм
2.3.1 Приложение на АГЗС
2.3.2 Приложение в главном офисе
2.4 Обоснование выбора системного обеспечения
2.5 Обоснование выбора программного обеспечения
2.6 Обоснование выбора технического обеспечения ИС
2.7 Разработка организационного обеспечения
3. Расчет экономической эффективности
3.1 График основных этапов проведения НИР и расчет затрат продолжение
–PAGE_BREAK–
3.2 Определение капитальных затрат для нового варианта.
3.3 Определение эксплуатационных затрат для нового варианта.
3.4 Определение экономического эффекта.
4. Информационная безопасность и защита информации
4.1 Корпоративные компьютерные системы
4.2 Обеспечение безопасности в корпоративных сетях
4.3 Защита данных в Access
4.4 Защита данных в SQL Server
Заключение
Список источников информации
Приложение 1:
Приложение 2:
Введение
В настоящее время невозможно представить процесс управления производством, выполняемый без участия информационных систем, которые облегчают и улучшают технологические процессы и качество обработки информации.
Информационная система представляет собой систему, реализующую автоматизированный сбор, обработку и манипулирование данными и включающая технические средства обработки данных, программное обеспечение и обслуживающий персонал.
Разработка собственной информационной системы — это действительно проблема, которую приходится решать многим современным предприятиям, независимо от рода их бизнеса. Термин «информационная система» относится к классу программных продуктов, облегчающих или «автоматизирующих» ведение бизнеса.
Грамотно обработанная и систематизированная информация является в определенной степени гарантией эффективного управления производством. Напротив, отсутствие оперативных и достоверных данных может привести к неверному управленческому решению и, как следствие, к серьезным убыткам.
В данной работе рассматривается деятельность пяти АГЗС и их главного офиса «Северного объединения по эксплуатации газового хозяйства».
Для того чтобы эффективность и производительность работы «Северного объединения по эксплуатации газового хозяйства» были высокими необходима чёткая и отлаженная работа всех подразделений предприятия, в том числе и АГЗС. Но без внедрения информационной системы такую работу обеспечить очень сложно и практически невозможно, поскольку постоянно увеличиваются информационные потоки и повышаются требования к скорости обработки данных, выполнение большого количества операций невозможно осуществить вручную. Для полноценного учета информации без применения ЭВМ необходим достаточно большой штат сотрудников, который должен своевременно отслеживать информационные потоки, изменения данных и остатки и фиксировать их на бумажных носителях, которые также требуют кропотливого труда и внимания. Все это ведет к экономически неоправданному расширению штата кадровых служащих на предприятии и снижению оперативности получения информации. Внедрение ИС значительно облегчает данную работу, поскольку создаются две базы данных, обменивающихся информацией между собой через сеть интернет, что позволяет оперативно отражать информацию. Также значительно облегчается сам процесс изменения и ведения бумажной документации, поскольку основные элементы операций автоматизированы и выполняются по достаточно несложному алгоритму. В результате чего экономится время, человеческие ресурсы, оперативно поступает информация и повышается качество работы в целом.
В качестве объекта управления разрабатываемой ИС является учет товаров на АГЗС.
Разработанная ИС позволила добиться следующих результатов:
усовершенствована работа оператора на АГЗС;
снижен объем бумажных документов;
связаны информационные потоки главного офиса и пяти отдельных АГЗС в единую информационную сеть;
создала базы данных с разграничением прав доступа на пяти АГЗС и в главном офисе;
автоматизирована система учета товаров;
автоматизирован обмен информацией между АГЗС и главного офиса;
в главном офисе оперативно отслеживаются должники-контрагенты по оплате за товары.
1. Аналитическая часть
1.1 Описание предметной области
1.1.1 Описание вида деятельности
«Северное объединение по эксплуатации газового хозяйства» находится в городе Старый Оскол и объединяет 5 районов: Красненский, Новооскольский, Чернянский, Губкинский и собственно Старооскольский.
Основными видами деятельности объединения являются:
осуществление комплекса мер по контролю за рациональным использованием газообразного топлива на газопотребляющих объектах;
осуществление контроля за сохранностью систем газоснабжения, при производстве строительных работ вблизи действующих газопроводов;
изготовление запасных частей для газового оборудования, механизмов, приборов;
организация пропаганды безопасного пользования газом в быту;
обучение населения правилам пользования газовыми приборами;
организация работы по противопожарной защите газопроводов от электрохимической коррозии;
рассмотрение причин аварий, несчастных случаев и принятие мер по их предотвращению;
разработка мероприятий по охране труда и технике безопасности и обеспечение их выполнения так же является задачей «Северного объединения по эксплуатации газового хозяйства»;
подготовка кадров, своевременная аттестация, повышение квалификации руководителей, специалистов, рабочих;
оказание организационно-технической и методической помощи газовым хозяйствам других министерств и ведомств, находящихся в зоне обслуживания филиала;
осуществление коммерческой деятельности и любые другие виды деятельности, не запрещенных законодательством.
В 2000 году начала производиться заправка автомобилей собственного автотранспорта на складе города Старый Оскол, где была установлена колонка для заправки автомобилей.
В 2001 году были построены и пущены в эксплуатацию АГЗС в районах (см. таблица 1.1.):
Таблица 1.1.
Название населенного пункта
Фактическая производительность т/год
Занимаемая площадь
г. Губкин,
ул. Белгородская
1500
684
г. Старый Оскол,
ул. Ватутина, 209 продолжение
–PAGE_BREAK–
902
640
г. Новый Оскол,
р-н Лесопитомника
246,9
630
с. Красное, р-н Асфальтобетонного завода
223,4
580
п. Чернянка,
пер. Литвинова, 3
384
600
1.1.2 Организационная структура и объект управления
Организационная структура — это система целей и их распределение между различными звеньями, это люди и их группы, постоянно вступающие в различные взаимоотношения для решения общих задач. Сюда относится состав подразделений, которые находятся в определённых связях и отношениях между собой; распределение ответственности. Важными элементами структуры управления являются коммуникации, потоки информации и документооборот в организации.
Процесс формирования организационной структуры включает в себя формулировку целей и задач, определение состава и место подразделений, их ресурсное обеспечение (включая численность работающих), разработку регламентирующих процедур, документов, положений, закрепляющих и регулирующих формы, методы, процессы, которые осуществляются в организационной системе управления.
Организационная структура управления «Северного объединения по эксплуатации газового хозяйства» представлена на рисунке 1.1.
/>/>/>/>/>/>/>/>/>/>/>/>/>/>
/>/>/>/>/>
/>/>/>/>/>/>/>
/>/>/>/>/>/>/>/>
/>
/>/>/>/>/>
/>/>/>/>/>/>/>/>
/>/>/>/>/>/>/>/>/>/>/>/>/>
/>
/>Рисунок 1.1
Для бесперебойной работы производства на предприятии работают 250 чел. работающих непосредственно на предприятии, 50 чел. — технологические рабочие в потоках. Все работники работают на постоянной основе.
Во главе предприятия стоит директор объединения, он руководит в соответствии с действующим законодательством хозяйственной и финансово-экономической деятельностью организации, неся всю полноту ответственности за последствия принимаемых решений, сохранность и эффективное использование имущества организации, а также финансово-хозяйственные результаты его деятельности.
Организует работу и эффективное взаимодействие всех структурных подразделений, производственных единиц, направляет их деятельность на развитие и совершенствование производства с учетом социальных и рыночных приоритетов, повышение эффективности работы организации, рост объемов сбыта продукции и увеличение прибыли, качества и конкурентоспособности продукции и удовлетворения потребностей населения в соответствующих видах отечественной продукции.
Принимает меры по обеспечению предприятия квалифицированными кадрами, рациональному использованию и развитию их профессиональных знаний и опыта, созданию безопасных и благоприятных для жизни и здоровья условия труда.
Обеспечивает правильное сочетание экономических и административных методов руководства, единоначалия и коллегиальности в обслуживании и решении вопросов, применение принципа материальной заинтересованности и ответственности каждого работника за порученное ему дело и результаты работы всего коллектива, выплату заработной платы в установленные сроки.
Решает вопросы, касающиеся финансово-экономической и хозяйственной деятельности организации, в пределах предоставленных ему законодательством прав, поручает ведение отдельных направлений деятельности другим должностным лицам – коммерческому директору и др.
Обеспечивает соблюдение законности в деятельности организации и осуществлении его хозяйственно-экономических связей, использование правовых средств для финансового управления и функционирования в рыночных условиях, укрепления договорной и финансовой дисциплины, регулирования социально-трудовых отношений, обеспечения инвестиционной привлекательности организации в целях поддержания и расширения масштабов предпринимательской деятельностью.
Главный инженер отвечает за выполнения плана предприятия и плана производства продукции в соответствии с заказами и техническими условиями. Организовывает подготовку и аттестацию работников в области промышленной безопасности, разработку планов мероприятий по локализации аварий и ликвидации их последствий. Обеспечивает проведение контроля за соблюдением работниками опасных производственных объектов требований промышленной безопасности.
Административно-хозяйственный отдел обеспечивает хозяйственное обслуживание и надлежащее состояние в соответствии с правилами и нормами производственной санитарии зданий и помещений предприятия; осуществлять контроль за исправностью оборудования (освещения, систем отопления, вентиляции, канализации и др.). Организовывает проведение ремонта помещений, осуществлять контроль за качеством выполнения ремонтных работ.
Заместитель директора осуществляет оперативное руководство работой участка сжиженного газа, отдела главного механика и обеспечивать выполнение работ по капитальному строительству на предприятии.
Отдел материально-технического снабжения выполняет работы по обеспечению оборудованием и комплектующими изделиями капитального строительства и ремонтно-эксплуатационных нужд предприятия, проверяет правильность определения в заявках подразделений предприятия потребности в оборудовании и комплектующих изделиях, составлять сводные заявки с необходимыми расчетами и обоснованием. Разрабатывает графики поставок оборудования на основе утвержденных сроков завершения строительно-монтажных работ. Обеспечивает транспортировку, приём, хранение и реализацию сжиженных углеводородных газов.
Отдел управления персоналом проводит работу по комплектованию предприятия кадрами рабочих и служащих требуемых профессий, специальностей и квалификации в соответствии с целями, стратегией и профилем предприятия, изменяющимися внешними и внутренними условиями его деятельности; формирует и ведет банк данных о количественном и качественном составе кадров, их развитии и движении.
Главный бухгалтер отвечает за организацию финансовой деятельности предприятия, направленной на обеспечение финансовыми ресурсами заданий финансового плана, сохранности и эффективного использования основных фондов и оборотных средств, трудовых и финансовых ресурсов предприятия, своевременности платежей по обязательствам в бюджеты всех уровней, поставщикам и учреждениям банков.
Отвечает за учет основных фондов, материалов, денежных средств, исполнение смет расходов, издержек производства и обращения, производственных запасов. Занимается Расчетами заработной платы.
Главный экономист формирует единую экономическую политику предприятия на основе анализа состояния и тенденций развития отрасли. Формирует экономическое планирование, направленное на эффективное использование всех видов ресурсов в процессе строительства объекта.
Отдел режимов газоснабженияконтролирует правильность и своевременность введения льгот, тарифов на газ и проведение расчетов с населением. Осуществляет контроль за своевременной регистрацией пусковых ведомостей, открытием лицевых счетов, списков проживающих в эксплуатируемых и во вновь принятых в эксплуатацию жилых домах и размеров отапливаемой площади. Обеспечивает своевременное поступление платежей за потребленный природный газ населением.
1.2 Описание существующего уровня автоматизации
В настоящее время практически все процессы в «Северном объединении по эксплуатации газового хозяйства» автоматизированы. Для абонентского отдела используется программа «Катюша». Аварийно-диспетчерская служба и производственно-технический отдел используют программу по газопроводам «Сигма».
Неавтоматизированными являются пять АГЗС, на которых имеются кассовые аппараты и пульты, связывающиеся через контроллеры с колонками. Оператору на АГЗС и в главном офисе приходится заполнять большое количество журналов при работе с организациями по безналичному расчету, вести отчеты по учету товаров и других оказываемых услугах. Ежедневно сведения с АГЗС передаются по телефону в главное управление. Это сложный и трудоемкий процесс, при котором на выявление и исправление допущенных ошибок приходится затрачивать много времени.
1.2.1 Структура сети и ее характеристика
/>
Рис 1.2. Структура сети «Северное объединение по эксплуатации газового хозяйства»
Существующая сеть имеет топологию звезды, реализованную на неэкранированной витой паре категории UTP 5.Прямые соединения двух компьютеров в сети отсутствуют. Благодаря этому, имеется возможность решения проблемы общедоступности данных, а также повышается устойчивость к повреждениям кабельной системы. Однако функциональность сети зависит от состояния сетевого концентратора. Передача данных по сети осуществляется по протоколу TCP/IP. Топология сети показана на рис 1.2. продолжение
–PAGE_BREAK–
Концепция топологии сети в виде звезды пришла из области больших ЭВМ, в которой головная машина получает и обрабатывает все данные с периферийных устройств как активный узел обработки данных. Вся информация между двумя периферийными рабочими местами проходит через центральный узел вычислительной сети.
Пропускная способность сети определяется вычислительной мощностью узла и гарантируется для каждой рабочей станции. Столкновений данных не возникает.
Кабельное соединение довольно простое, так как каждая рабочая станция связана с узлом. Затраты на прокладку кабелей высокие, особенно когда центральный узел географически расположен не в центре топологии. Поэтому для соединения удаленных АГЗС будем использовать передачу данных через Internet.
При расширении сети к новому рабочему месту необходимо прокладывать отдельный кабель из центра сети.
Топология в виде звезды является наиболее быстродействующей из всех топологий вычислительных сетей, поскольку передача данных между рабочими станциями проходит через центральный узел (при его хорошей производительности) по отдельным линиям, используемым только этими рабочими станциями.
1.2.2 Конфигурации рабочих мест
Аппаратная конфигурация рабочих мест в главном управлении представлена в таблице 1.2. Так как компьютеров в объединении много, то и конфигурация не однородна.
Таблица 1.2.
Платформа
AMD Sempron A-XP-2800+ 256кб
ОЗУ
От 256 до 1024 Гб
Жесткий диск
От 20 до 260 Гб
Сетевая карта
NVIDIA nForce MCP Networking Controller
Видео карта
NVIDIA GeForce4 64 Мб
На Рабочих станциях установлена многопользовательская операционная система WindowsХР Professional, обеспечивающая защиту файлов от проникновения извне.
1.2.3 Описание существующей информационной системы
Все документы, а это значит и информацию, можно разделить на три потока: входящие, внутренние и исходящие.
Входящей является почтовая корреспонденция, информация, поступившая по факсу, электронной почте или на ином электронном носителе.
Внутренними являются документы созданные сотрудниками для необходимой работы предприятия. В организации между сотрудниками установлены определенные информационные потоки, которые показаны на рис 1.3.
Исходящая – это сведения о реализованном товаре за смену, передаваемые с каждой АГЗС в главный офис.
Выделим ряд недостатков, которыми обладает существующая ИС:
физическая удаленность АГЗС от главного офиса;
не связаны информационные потоки главного офиса и пяти отдельных АГЗС в единую информационную сеть;
сложность обработки информации;
низкая точность и оперативность поступления информации.
большие затраты времени и трудовых ресурсов на обработку информации;
не автоматизированная система учета товаров;
не оперативно отслеживаются должники-контрагенты по оплате за товары.
/>
/>/>
/>/>/>/>/>/>
/>/>/>/>
/>/>/>/>/>/>/>/>
/>/>/>/>
/>/>/>/>
/>/>/>/>/>/>
/>
Рис. 1.3. Информационные потоки АГЗС «Северного объединения по эксплуатации газового хозяйства»
1.2.4 Описание работы автогазозаправочной станции
Заправка предоставляет услуги по заправке автомобилей и продаже газовых баллонов, проводит освидетельствование на пригодность газовых баллонов.
АГЗС находится за чертой города на отдельной территории, где закопаны пять резервуаров для хранения сжиженного углеводородного газа (СУГ) объемом в 5 тонн литров.
Автомобили заправляются СУГ из четырех колонок, сотрудником, прошедшим специальную подготовку.
Поставка СУГ и баллонов на АГЗС осуществляется специальными газовозами. Принимает баллоны и СУГ оператор по накладным. Поставщиком газа является ОАО «Белгородоблгаз».
В обязанности оператора входит: вести учет товара, сдавать инкассацию, передавать сведения о реализованном товаре и давать запрос на поставку товара в главный офис, где формируется список контрагентов, ведется оборотно-сальдовая ведомость и устанавливаются единые фиксированные цены.
1.3 Сущность информационного комплекса и информационных задач
Увеличение информационных потоков в науке, бизнесе, производстве, культуре требует адекватной реакции со стороны информационных технологий. Для общества обременительно расходование огромного количества бумаги, да и информация, поступающая на таких носителях, менее динамична, чем электронная.
Концепция безбумажной технологии имеет за плечами не одно десятилетие. В это же время сегодня можно говорить лишь о частичной реализации этой идеи. Здесь существует ряд причин:
1. Можно указать на психологический аспект проблемы. Получение информации в электронном виде требует привычки.
2. Безбумажные технологии требуют основательной технической поддержки: соответствующей производительной вычислительной техники, высокой пропускной способности коммуникационных линий, технологичности алгоритмов.
3. Безбумажные технологии требуют основательной юридической поддержки.
С этим процессом в нашей стране дела обстоят пока не лучшим образом: пока не сформировалась адекватная юридическая база для информационных систем, систем электронной коммерции, не принятынормативные акты об электронном документообороте и цифровой подписи.
Процесс управления предприятием в условиях рыночной экономики требует интенсификации и четкой организации всего предприятия, вплоть до каждого сотрудника. Таким образом, информационные технологии как залог дальнейшего прогресса общества призваны обеспечить доступный и эффективный инструмент автоматизации на основе безбумажного делопроизводства и документооборота.
Главное назначение информационных систем — это организация хранения электронных документов, а также работы с ними (в частности, синхронизация данных между приложениями). В информационных системах также реализован санкционированный доступ к документам, отслеживаются произведенные в них изменения и контролируются все их версии и подверсии.
Для эффективного менеджмента в деятельности любого предприятия информационные потоки должны представлять собой четко отслеживаемый и управляемые процессы. Типовым информационным объектом, фиксирующим и регламентирующим деятельность на предприятии, является документ. Деятельность по организации прохождения документов внутри предприятия принято называть делопроизводством данной конкретной организации. В основе делопроизводства лежит фундаментальное понятие структуры информационного обмена — документопоток.
Для любой организации можно выделить три основных потока документов: входящие, внутренние и исходящие, которые и определяют документопотоки.
Функции ведения делопроизводства состоят из обработки входящих документов, пересылки их внутри фирмы, отправки исходящих документов, учета, регистрации, контроля за исполнением, формирования дел, организации хранения и т.д.
Безбумажное делопроизводство предусматривает применение компьютера в управленческой деятельности для хранения, поиска и отображения информации, позволяя свести к минимуму или исключить полностью применение бумажных носителей. продолжение
–PAGE_BREAK–
Электронный офис предполагает организацию работы групп пользователей над совместным решением сложных распределенных задач в электронных компьютерных сетях с помощью средств вычислительной техники. Сегодня существует большое число концепций построения электронного офиса, в частности фирм Microsoft, Borland, Lotus. Все чаще обращаются к понятию “workflow” — стратегии обеспечения управления прикладными программами, необходимыми для прохождения потока работ в электронном офисе.
Использование сетей позволяет мгновенно пересылать документы из одного подразделения в другое без временных задержек на передачу бумажного документа, упрощает хранение, контроль, поиск, архивирование, включая ведение долговременного архива документов.
1.3.1 Постановка задач на проектирование
Основной целью проектирования ИС является автоматизация учета товаров на АГЗС.
При проектировании следует четко представлять себе, какие трудности могут возникнуть в процессе реализации программного обеспечения и его внедрения. Также, необходимо учитывать, что операторам придется работать с данной системой значительное количество времени, и поэтому эффективность их деятельности будет значительно зависеть от простоты в использовании системы и ее интерфейса.
Разработка информационной системы учета товаров на АГЗСдолжна обеспечить возможность контроля товара на складе и работы с контрагентами. Для этого необходимо получить контроль над реализацией товара на АГЗС и над внесением оплаты контрагентами.
Для осуществления поставленной цели необходимо решить следующие задачи:
связать информационные потоки главного офиса и пяти отдельных АГЗС в единую информационную сеть по технологии «клиент – сервер»;
автоматизировать систему учета товаров;
создать базы данных с разграничением прав доступа на пяти АГЗС и в главном офисе;
автоматически отправлять данные о реализации товара в конце каждой смены в главный офис;
в главном офисе оперативно отслеживать должников-контрагентов по оплате за товары.
1.3.2 Обоснование выбора задач, входящих в комплекс
Существующий механизм учета на АГЗС сложен и не автоматизирован. В главный офис сведения об остатках на складе СУГ и баллонов поступают не оперативно, что приводит к задержке оформления заказов на поставку товаров. Для того чтобы отследить каждого контрагента и наглядно видеть его дебет и кредит – оператору приходится вручную проводить анализ документов. Эта работа отнимает много времени и отвлекает оператора от основной деятельности, что снижает эффективность данного процесса.
В отдел ОМТС главного офиса каждое утро по телефону с пяти АГЗС передаются данные о реализации товара за прошедшую смену, что приводит к искажению информации. Проектируемая ИС:
синхронизирует данные между БД АГЗС и главного офиса по технологии «клиент – сервер»;
автоматизирует систему учета товаров;
создает базы данных с разграничением прав доступа на пяти АГЗС и в главном офисе;
автоматически отправляет данные о реализации товара в конце каждой смены в главный офис;
самостоятельно отслеживает должников-контрагентов по оплате за товары.
1.3.3 Проблемы разработки информационной системы
1. Потеря связи между клиентской базой данных АГЗС и серверной базой данных главного офиса.
В процессе передачи информации с АГЗС в главный офис, может быть потеряно соединение (неполадки в сети, плохое соединение и др.), тогда в главный офис поступят некорректные данные.
Для решение данной проблемы создана процедура, которая при нажатии в приложении на АГЗС на кнопку «Сформировать все обороты» принудительно отправляет все данные о реализации товара по сети, при этом удаляя старую информацию и записывая новую.
2. Оперативное обновление цен
В процессе работе операторы на АГЗС, не вовремя получив информацию об изменении цены, могут продавать товары по «старым» расценкам, что приводит к фальсификации отчетности.
Для устранения такой ситуации в ИС разграничены права доступа к некоторым справочникам (контрагенты и номенклатура). Оператор на АГЗС в приложении может только просматривать номенклатуру без возможности редактирования или добавления, а в главном офисе в БД заносится список товаров с указанием фиксированных цен. Данная информация автоматически загружается в БД АГЗС при авторизации пользователя в приложении. При отправке отчетов с АГЗС в БД происходит синхронизация данных с БД главного управления.
3. Отслеживание запасов СУГ
Во время работы оператора на АГЗС может закончиться СУГ, что приведет к дефициту спроса на товар, снижению конкурентоспособности АГЗС, расторжению договоров с контрагентами.
Чтобы избежать такой ситуации в приложение заложены математические расчеты, которые высчитывают среднее потребление газа в неделю и если остается в запасе меньше этого среднего числа, то выводится экранное окно, в котором показаны среднее потребление газа и сколько осталось газа в наличии и рекомендует сделать заявку на поставку товара.
1.3.4 Декомпозиция задач
Под декомпозицией задач, подразумевается разбиение общей задачи на подзадачи.
Основная задача: создание информационной системы автоматизацииучета товаров на АГЗС.
Подзадача:
Создание двух БД для АГЗС и главного офиса по технологии «клиент – сервер»;
Формирование оборотно-сальдовой ведомости;
Учет должников-контрагентов по оплате за товары;
Формирование остатков товара;
Формирование сменного отчета, прихода, расхода;
Учет количества смен, отработанных сотрудниками;
Контроль над остатками и поставкой газа
1.3.5 Требования, предъявляемые к разрабатываемой ИС
Из одного центра сложно контролировать работу сети филиалов АГЗС, так как приходится обрабатывать большое количество документов. Существующий процесс занимает значительное время, и влечет за собой не своевременность поступления информации, что недопустимо в современном процессе информатизации общества, где необходимо принимать эффективные решения на основе оперативной информации.
Проектируемая ИС должна: автоматически синхронизировать данные между БД АГЗС и главного офиса по технологии «клиент – сервер»; автоматизировать учет товаров на АГЗС; создавать БД с разграничением прав доступа на пяти АГЗС и в главном офисе; автоматически отправлять данные о реализации товара в конце каждой смены в главный офис; самостоятельно отслеживать должников-контрагентов по оплате за товары.
Требования к структуре и функционированию системы:
интерфейс системы должен быть лёгким и понятным, даже неподготовленному пользователю;
иметь разные уровни доступа в клиентской БД у пользователей АГЗС;
серверная БД должна храниться на серверной СУБД, для защиты данных;
оперативно отражать информацию о товаре;
обеспечивать настройку параметров;
устойчивость к сбоям связи;
легко адаптироваться к постоянно меняющимся параметрам.
Требования к эргономике:
экранная форма системы должна быть оформлена в спокойных цветах;
все экранные формы выдержаны в одной гамме цветов и одной стилистике.
все надписи легко читаемы.
Требования к технической эстетике:
защита рабочих мест в соответствии с нормами охраны труда: защитные экраны или мониторы со встроенными защитными экранами; правильное производственное освещение, исключающее повышенную яркость, блёсткость, ослеплённость, тени и т. п.;
предоставление мер по безопасности труда.
Требования к защите информации от несанкционированного доступа.
должно быть предусмотрено ограничение прав доступа, то есть у всех сотрудников должны быть собственные права доступа к системе, а именно уникальный пароль и имя входа;
иметь разные права доступа к одинаковым объектам БД на АГЗС и главном офисе.
1.4. Обзор современных ИС продолжение
–PAGE_BREAK–
Любая информационная система может содержать элементы каждой из приведенных ниже категорий, но большинство из них имеют конкретную ориентацию в одной из областей, связанную в первую очередь с позиционированием продукта.
Развитие рынка компьютерных систем, способных обеспечить эффективное управление организацией, связано с системами двух классов:
системы, ориентированные на автоматизацию отдельных функций управления;
интегрированные системы управления.
На рынке представлены как российские, так и зарубежные системы различного назначения. Если говорить о реальном секторе экономики, то для него на рынке имеются системы двух классов:
финансово – управленческие системы;
производственные системы.
Финансово – управленческие системы: локальные и малые интегрированные. Применяются для ведения учета по одному или нескольким направлениям (бухгалтерия, сбыт, склады, учет кадров и т.д.), управление финансовыми потоками.
Свойства финансово – управленческих систем:
универсальность;
небольшой цикл внедрения;
имеются коробочные варианты;
гибкость в адаптации к нуждам конкретного предприятия;
способность работать на ПК в обычных сетях передачи данных NovellNetware или WindowsNT;
использование простых средств разработки (Clipper, FoxPro, dBase, Paradox);
снижение уровня эффективности при работе на сложных конфигурациях сети и при увеличении объемов обрабатываемых данных;
Производственные системы: средние и крупные интегрированные. Применяются для управления и планирование производственного процесса. Учетные функции глубоко проработаны и выполняют вспомогательную роль.
Свойства производственных систем:
более сложны в установке (цикл внедрения от 6-9 месяцев до 1-2 и более лет);
часто ориентированы на одну или несколько отраслей и /или типов производства;
специализация отражается в наборе функций системы;
наличие встроенных бизнес — моделей производства;
производственные системы по многим параметрам значительно более жесткие, чем финансово управленческие;
основными механизмами управления являются планирование и оптимальное управление производственным процессом;
охватывают планирование, закупки, производство, запасы, продажи, финансовые потоки и многие другие аспекты;
при увеличении сложности и широты охвата функций предприятия системой возрастают требования к технической инфраструктуре и компьютерной платформе;
разработаны с помощью промышленных баз данных;
в большинстве случаев используется технология «клиент-сервер».
Классификация рынка ИС представлена в таблице 1.3.
Таблица 1.3.
Представители групп
Локальные системы
Малые интегрированные системы
Средне интегрированные системы
Крупные интегрированные системы
— Искра
— Звезда
— АГЗС-АСИ
— Gazkit
— и т.д.
— Concorde XAL
— Exact
— NS-2000
— Platinum
— PRO/MIS
— Scala
— SunSystems
— БОСС-Корпорация
— Галактика/
Парус
— Эталон
— JD Edwards (Robertson & Blums)
— MFG-Pro (QAD/BMS)
— SyteLine (COKAП/SYMIX)
— SAP/R3 (SAP AG)
— Baan (Baan)
— BPCS (ITS/SSA)
— Oracle
Applications (Oracle)
1.4.1 Обоснование проектных решений по программному обеспечению комплекса задач
В настоящее время работа на всех АГЗС не автоматизирована. Учет прихода, расхода и другой отчетности ведется вручную в журналах. СУГ отпускается с помощью специальных пультов-контроллеров, которые напрямую соединены с колонками.
На рынке информационных услуг существуют ИС для АГЗС. Их основным недостатком является то, что каждая конкретная программа делается под определенную колонку, для определенной марки контроллер. ИС, которая успешно работает на АГЗС с колонками одной фирмы, не будет работать на колонках других фирм. Данные ИС полностью автоматизируют работу АГЗС, но они дорогостоящие и необходимо подбирать разные ИС на совместимость с существующим оборудованием. В условиях существования нескольких разных АГЗС закупка для каждой заправки новой ИС сложный и дорогостоящий процесс, а оставить автоматизацию на сегодняшнем этапе нецелесообразно.
Поэтому было принято решение создать единую универсальную ИС, которая не зависит от марки колонки, где СУГ будет отпускаться через пульты-контроллеры. В данной программе будет автоматизирован учет товаров, будут связаны все АГЗС и главный офис в единую сеть, в которой БД будут синхронизироваться между собой.
Программной средой для разработки был выбран Microsoft Access 2003.
Проектируемая информационная система учета материалов должна обладать следующими возможностями:
В клиентском приложении на АГЗС:
автоматически отсылать сведения о реализации товара при закрытии смены;
автоматически загружать обновления справочников номенклатура и контрагенты;
работать с взаимосвязанными таблицами;
выполнять автоматический расчет цены и количества при продаже товара;
создавать отчеты-ревизии, для сдачи смены;
считать остатки.
считать средний расход газа в неделю и давать рекомендации по заявке на заказ товара.
В серверном приложении главного офиса:
получать информацию об оборотах со всех клиентов;
задавать номенклатуру, фиксированные цены и контрагентов;
отслеживать дебеты и кредиты контрагентов;
автоматически показывать должников;
наглядно отображать остатки на клиентах.
2. Проектная часть
2.1 Информационное обеспечение комплекса задач
Информационное обеспечение – это совокупность и взаимодействие массивов информации, таблиц баз данных, форм выходных документов, систем кодирования и классификации, необходимых для выполнения всех функций автоматизированной системы.
Информационное обеспечение разрабатываемой системы определяется особенностями ее построения и представляет собой совокупность потоков данных, используемых для управления технологическим процессом и реализации других функций автоматизированной информационной системы.
Проектирование и функционирование автоматизированной ИС основывается на системотехнических принципах, отражающих важнейшие положения методов общей теории систем, системного проектирования, теории информации и других наук, позволяющих обеспечить необходимую надежность эксплуатации, совместимость и взаимодействие информационных систем различных экономических объектов, экономить труд, время, денежные средства на проектирование и внедрение ИС в практику.
Информационное обеспечение (ИО) различают внемашинное и внутримашинное: продолжение
–PAGE_BREAK–
внемашинное– это вся совокупность информации в «северном объединении по эксплуатации газового хозяйства», включая информационно-логическую модель данных, системы документов и документооборота информационных потоков;
внутримашинное– это представление данных на машинных носителях в виде разнообразных по содержанию, по назначению и специальным образом организованных массивов (файлов), совокупность программ, обеспечивающих сбор, обработку, передачу и хранения данных, БД и их информационных связей.
Значительную долю внемашинного ИО составляет документация. При разработке внемашинного ИО к документам, как наиболее распространенным носителям исходной и результативной информации, предъявляется ряд требований по их форме, содержанию, порядку заполнения. Единство требований создает унифицированную систему документации. Унифицированные типовые документы в деятельности АГЗС повышают эффективность автоматизации. К таким документам относятся накладные, отчеты сменные, отчеты о проданном СУГ и другие.
Совокупность данных, входящих во внемашинное и внутримашинное информационное обеспечение обычно разделяют на три вида:
входные данные (исходные данные для решения каких-то задач);
выходные данные (результаты решения задач, предназначенные для использования в управлении или для выдачи на устройство отображения);
промежуточная информация (результаты решения каких-то задач, предназначенные для использования в других задачах).
Любая автоматизированная ИС подразумевает внедрение в управленческую деятельность новой формы представления информации – электронных документов (первичных и результатных) на машинных носителях. Электронные документы обладают всеми свойствами и юридической силой документов управления. В них содержится информация, имеющая различное представление: текст, графика, звук, изображение в коммуникационных форматах. Хранятся электронные документы как файлы на машинном носителе.
Работа с документами, в том числе и электронными, требует создания системы управления документами и документооборота в масштабе распределенной ИС. Эта система должна охватывать все этапы жизненного цикла документов: создание, хранение. Обеспечить обмен информацией между пятью АГЗС и главным офисом.
2.1.1 Обоснование информационного обеспечения
В ходе разработки автоматизированного решения задачи учета товаров, результатными показателями являются (печатные формы всех отчетов представлены в Приложениях)
печать сменного отчета;
печать проданного СУГ;
печать проданного СУГ с расшифровкой по клиентам;
печать продажи по операторам по разным номенклатурам;
печать должников-контрагентов;
печать ОСВ;
печать остатков;
поиск документа по дате;
поиск по смене;
Сбор информации для формирования отчетов осуществляться из документов, которые формируются в процессе работы АГЗС:
приходные накладные;
продажи;
оплаты контрагентов.
Хранение и последующая обработка полученной информации очень трудоемкий процесс и носит рутинный характер поэтому в разрабатываемой информационной системе автоматизируем его, для меньшей затраты труда и времени.
Вся собранная информация, будет вноситься и храниться в соответствующих таблицах БД посредствам заполнения электронных форм.
2.1.2 Внемашинное информационное обеспечение
2.1.2.1 Инфологическая модель данных и ее описание
Логическая структура базы данных определяется информационными потребностями проекта. При ее разработке выделяются основные информационные сущности предметной области, выявляются связи между ними. Затем логическая структура оптимизируется в соответствии с реализуемыми целевыми функциями проекта.
Инфологическая модель данных приведена на рисунках 2.1. и 2.2.
/>
Основными сущностями базы данных АГЗС являются:
Сущность «Сотрудник» характеризуется атрибутами – КодСотрудника, Фамилия, Пароль. Данная сущность связана с сущностями «Смены», «Приход» и «Продажа»;
Сущность «Смены» характеризуется атрибутами – КодСмены, КодСотрудника, Начало, Окончание. Данная сущность связана с сущностями «Сотрудник» и «Продажа»;
Сущность «Приход» характеризуется атрибутами – КодПрихода, ДатаПрихода, КодНоменклатуры, Количество. Данная сущность связана с сущностями «Номенклатура» и «Сотрудник»;
Сущность «Номенклатура» характеризуется атрибутами – КодНоменклатуры, Наименование, Цена, Товар. Данная сущность связана с сущностями «Приход» и «Продажа»;
Сущность «Продажа» характеризуется атрибутами – КодПродажи, КодНоменклатуры, КодКонтрагента, Дата, Количество, Стоимость, КодСотрудника, КодСмены, Безнал. Данная сущность связана с сущностями «Номенклатура», «Сотрудник», «Смены» и «Контрагенты»;
Сущность «Контрагенты» характеризуется атрибутами –КодКонтрагента, Наименование, Полное наименование, Безнал. Данная сущность связана с сущностью «Продажа».
Основными сущностями базы данных главного офиса являются:
Сущность «Остатки» характеризуется атрибутами – КодОстатка, КодЗаправки, КодНоменклатуры, Количество и Дата. Данная сущность связана с сущностями «Районы» и «Номенклатура»;
Сущность «Номенклатура» характеризуется атрибутами – КодНоменклатуры, Наименование, Цена, Товар. Данная сущность связана с сущностью «Остатки»;
Сущность «Районы» характеризуется атрибутами – КодЗаправки, Название. Данная сущность связана с сущностями «Остатки» и «Обороты»;
Сущность «Обороты» характеризуется атрибутами – Код, КодНоменклатуры, КодКонтрагента, Дата, Сумма, Количество, КодЗаправки. Данная сущность связана с сущностями «Контрагенты» и «Районы»;
Сущность «Контрагенты» характеризуется атрибутами –КодКонтрагента, Наименование, Полное наименование, Безнал. Данная сущность связана с сущностями «Обороты» и «РасчетыКонтрагенты»;
Сущность «РасчетыКонтрагенты» характеризуется атрибутами – Код, КодКонтрагента, Сумма, Дата, КодЗаправки. Данная сущность связана с сущностью «Контрагенты».
2.1.2.2 Характеристика входной информации
Входной информацией для разрабатываемой в дипломном проекте распределенной информационной системы является:
Нормативно-справочная информация:
Справочник Контрагенты. Список контрагентов, с которыми «Северное объединение по эксплуатации газового хозяйства» заключает договора на обслуживание по безналичному расчету;
Справочник Номенклатура. Наименование товаров или услуг, и цены на них. Цена является единой по всем отделениям АГЗС;
Входная оперативная информация:
Таблица приход. Накладные на приход товара. В них указывается кто принял товар, в каком количестве и дата. Цена товара заложена изначально в справочнике номенклатуры. Она не меняется т.к. поставщик единственный.
Результатной информацией является:
Обороты за смену: что продано, кому, дата и время продажи, на какую сумму и код заправки для идентификации в БД главного офиса;
Сколько осталось товара в наличии.
2.1.3 Выбор клиентской системы управления баз данных
Выбор клиентской СУБД представляет собой сложную многопараметрическую задачу и является одним из важных этапов при разработке приложений баз данных.
В первую очередь при выборе СУБД необходимо принимать во внимание следующие факторы:
максимальное число пользователей одновременно обращающихся к базе;
характеристики клиентского ПО; продолжение
–PAGE_BREAK–
аппаратные компоненты сервера;
серверную операционную систему;
совместимость с выбранной ОС;
возможность работать на разных типах компьютеров;
работа в различных топологиях и типах сетей;
наличие механизмов управления согласованностью действий и автоматического контроля;
уровень квалификации персонала.
Так же выбранный программный продукт должен удовлетворять как текущим, так и будущим потребностям предприятия, при этом следует учитывать финансовые затраты на приобретение необходимого оборудования, самой системы, разработку необходимого программного обеспечения на ее основе, а также обучение персонала. Кроме того, необходимо убедиться, что новая СУБД способна принести предприятию реальные выгоды.
При реализации проекта в качестве средства для разработки системы учета товаров был выбран – MSAccess 2003, который включает весь необходимый перечень функций для проектируемой системы.
Главное достоинство MSAccess состоит в возможности быстрой разработки «открытой» базы данных, систему в дальнейшем можно будет дорабатываться любому программисту, не привлекая первых разработчиков.
Сравнительные характеристики персональных СУБД представлены в таблице 2.1.:
Таблица 2.1.
Характеристики
Наименование
Access
Approach
Paradox
1.Инсталяция СУБД (установка)
5
3
3
2.Качество справочной системы
5
4
4
3.Типы полей
4
3
5
4.Сортировка по полю
3
5
2
5.Удаление записей
5
4
3
6.Формы и отчеты:
— таблица стилей
4
3
3
— импорт данных
4
2
3
— подготовка запросов
3
4
1
— создание отчетов
4
4
4
— разработка формул
4
4
4
— подготовка почтовых отправлений
4
3
3
5 – отлично, 4 – очень хорошо, 3- хорошо, 2 – удовлетворительно, 1 –
посредственно.
Microsoft Access — это самая популярная сегодня настольная система управления базами данных. Успех состоит во включении ее в богатое окружение семейства Microsoft Office, в простой реализации продукта, рассчитанного как на начинающего, так и на квалифицированного пользователя. СУБД Access для работы с данными использует процессор баз данных Microsoft Jet, объекты доступа к данным и средству быстрого построения интерфейса — Конструктор форм. Для получения распечаток используются Конструкторы отчетов.
Автоматизация рутинных операций может быть выполнена с помощью макрокоманд. На тот случай, когда не хватает функциональности визуальных средств пользователи Access могут обратиться к созданию процедур и функций. При этом как в макрокомандах можно использовать вызовы функций, так и из кода процедур и функций можно выполнять макрокоманды. Присутствующий язык программирования Visual Basic for Application позволяет создавать массивы, свои типы данных, вызвать DllrФункции, с помощью OLE Automation контролировать работу приложений, которые могут функционировать как OLE – серверы.
Access имеет богатый набор визуальных средств. Главное качество Access, что привлекает к нему многих пользователей, – тесная интеграция с Microsoft Office. Например, скопировав в буфер графический образ таблицы, открыв Microsoft Word можно применить вставку из буфера, и сразу получим в документе готовую таблицу с данными с БД. Вся работа с базой данных осуществляется через контейнеры базы данных. Отсюда осуществляется доступ ко всем объектам, а именно: таблицам, запросам, формам, отчетам, макросам, модулям. С помощью драйверов ISAM можно получить доступ к файлам таблиц некоторых других форматов: DBASE, Paradox, Excel, текстовым файлам, Foxpro, а с помощью технологии ODBC — и к файлам многих других форматов.
Access может выступать как в роле OLE- контролера, так и OLE сервера. Это значит, что можно контролировать работу приложений Access из любого приложения, при условии, что оно может выступать в роле OLE контролера и наоборот. Встроенный SQL позволяет максимально гибко работать с данными и значительно ускоряет доступ к внешним данным.
Access – это типичная настольная база данных. В то же время на небольшом предприятии с количеством компьютеров не больше десяти, ресурсов Access целиком может хватить для обслуживания всего делопроизводства, естественно в ряде с Microsoft Office. То есть все пользователи могут обращаться до одной базы данных, установленной на одной рабочей станции, которая не обязательно должна быть выделенным сервером.
Для того, чтобы не возникли проблемы целости и доступа к данным, имеет смысл воспользоваться средствами защиты, которая предоставляет Access. При этом можно воспользоваться мастером для правильного установления прав и ограничений для пользователей. В отличие от MySQL, PostgreSQL и MaxDBAccess имеет русифицированный интерфейс и частично переведенный на российский язык файл контекстной помощи. А также Access имеет лучшую встроенную систему защиты среди всех настольных приложений СУБД. Можно создавать группы, пользователей, присваивать права доступа ко всем объектам, в том числе и модулей. Кстати, это решает вопрос закрытия процедур и функций от чужих глаз. Потому что для Access нет компилятора, то необходимость защиты становится очень актуальной для разработчиков. Система защиты доступная только при открытой базе данных.
Экспертная оценка 4 СУБД приведена в таблице 2.2.
Таблица 2.2.
Характеристики
MySQL
PostgreSQL
MaxDB
MS Access
Версия
MySQL-5.0
PostgreSQL8.x
MaxDBVersion7.5
MS Access2003
Скорость
высокая
средняя
средняя
средняя продолжение
–PAGE_BREAK–
Стабильность
очень высокая
высокая
средняя
высокая
Целостность данных
да
да
да
да
Механизм обеспечения безопасности
да
да
да
да
Поддержка схем данных
да
да
да
да
Поддержка вложенных запросов
да
да
да
да
Триггеры
да
да
да
да
Программныеинтерфейсы
ODBC, JDBC, C/C++, .NET/Mono, ADO.Net, OLEDB, Delphi, Perl, Python, PHP, Embedded (C precompiler), Embeded in Java
ODBC, JDBC, C/C++, Embeded SQL (in C), Tcl/Tk, Perl, Python, PHP
ODBC ,JDBC, C/C++, Precompiler (Embedded SQL), Perl, Python, PHP
ODBC, OLE/ADO DB, VBA, RAD, Embeded SQL
Транзакции
да
да
да
да
Ограничение по внешним ключам
да
да
да
да
Балансировка нагрузки
да
нет
нет
нет
Табличные пространства
да
нет
нет
да
Поддержка режима работы 24/7
да
да/нет
да
да
2.1.4 Выбор серверной системы управления баз данных
Решение данной проблемы является очень важным, так как именно от СУБД зависит процесс обработки данных, объём получаемой клиентом информации, загруженность трафика сети, защищённость данных и многое другое.
Существует два типа серверных СУБД:
файл-серверные;
клиент-серверные.
Файл-серверные СУБД. Они работают по следующему принципу: на машине-клиенте установлена данная СУБД, а на сервере хранятся все данные; клиент создаёт запрос, СУБД, принимая его, отправляет запрос серверу, получает по сети весь обрабатываемый файл, записывает его в оперативную память, а затем выполняет запрос пользователя.
Клиент-серверные СУБД. В отличие от файл-серверных, данные СУБД не скачивают весь обрабатываемый файл на клиентскую машину, а лишь посылают серверу запрос пользователя. СУБД, установленная теперь уже на сервере, обрабатывает полученный запрос, проверяет права пользователя на данные действия, а затем выполняет поставленную ей задачу. Назад возвращается лишь результат запроса, т.е. какая-то таблица или другая информация, будь то текст, графика, анимация или видео.
Безусловно, файл-серверные СУБД нам не подходят, поэтому будем использовать клиент-серверные. В качестве СУБД был выбран Microsoft SQL Server 2005, из-за его тесной интеграции с Access и с операционными системами семейства Microsoft.
SQL Server является всеобъемлющим, интегрированным сквозным решением, которое наделяет пользователей организации безопасной, надежной, и продуктивной платформой для обработки промышленной информации и приложений, касающихся интеллектуальных ресурсов предприятия. SQL Server 2005 предоставляет мощные, знакомые инструменты для профессионалов информационных технологий так же, как и для работников информационной сферы, уменьшая сложность создания, развёртывания, управления и использования данных предприятия и аналитических приложений на платформах от мобильных устройств до информационных систем предприятия. Благодаря исчерпывающему набору функций, взаимодействию с существующими системами и автоматизации типовых задач, SQL Server 2005 предоставляет полное решение в области хранения данных для предприятий всех масштабов.
Платформа данных SQL Server включает следующие инструменты:
Реляционная база данных: безопасное, надёжное, масштабируемое, высокодоступное ядро с улучшенной производительностью и поддержкой структурированных и неструктурированных (XML) данных.
Replication Services: репликация данных для распределённых и мобильных приложений обработки данных, высокая доступность систем, масштабируемый параллелизм с вторичными хранилищами данных для отчётных решений предприятия и интеграция с разнородными системами, включая существующие базы данных Oracle.
Notification Services: развитые возможности уведомлений для разработки и внедрения масштабируемых приложений, способных доставлять персонализированные, своевременные обновления информации множеству соединённых и мобильных устройств.
Integration Services: возможности извлечения, преобразования и загрузки для хранилищ данных и интеграции данных в масштабе предприятия.
Analysis Services: аналитическая обработка в реальном времени (OLAP) для быстрого, сложного анализа больших и смешанных наборов данных, использующая многомерное хранение.
Reporting Services: исчерпывающее решение для создания, управления и доставки как традиционных бумажных отчётов, так и интерактивных, основанных на технологии WWW отчётов.
Инструменты управления: SQL Server включает средства управления для развитого управления и настройки баз данных, также как и тесную интеграцию с такими инструментами, как Microsoft Operations Manager (MOM) и Microsoft Systems Management Server (SMS). Стандартные протоколы доступа к данным существенно уменьшают время, необходимое для интеграции данных SQL Server с существующими системами. В дополнение, поддержка Web служба встроена для обеспечения взаимодействия с другими приложениями и платформами.
Инструменты разработки: SQL Server предлагает интегрированные инструменты разработки для ядра базы данных, извлечения, трансформации и загрузки данных, извлечения информации, OLAP и отчётности, которые тесно интегрированы с Microsoft Visual Studio для предоставления сквозных возможностей разработки приложений. Каждая главная подсистема SQL Server поставляется со своей собственной объектной моделью и набором API для расширения системы данных в любом направлении, которое уникально для вашего бизнеса.
Платформа данных SQL Server 2005 предоставляет организациям всех размеров следующие преимущества:
Использовать активы данных: в дополнение к поставке безопасной, надёжной базы данных для отраслей промышленности и аналитических приложений, SQL Server 2005 позволяет заказчикам получать больше выгоды от их данных включением встроенных функций, таких как отчётность, анализ и извлечение информации.
Увеличить продуктивность: благодаря всеобъемлющим возможностям интеллектуальных ресурсов предприятия и интеграции со знакомыми инструментами, такими, как Microsoft Office, SQL Server 2005 предоставляет работникам информационной сферы предприятия важную, своевременную информацию, приспособленную для их конкретных нужд. Цель — сделать БД доступными для всех пользователей организации и, конечном счёте, позволить пользователям на всех уровнях организации принимать лучшие бизнес решения, основанные на одном из самых ценных активов — их данных. продолжение
–PAGE_BREAK–
Уменьшить сложность информационной технологии: SQL Server 2005 упрощает разработку, внедрение и управление отраслями промышленности и аналитическими приложениями, предоставляя программистам гибкую среду разработки и интегрированные, автоматизированные инструменты управления администраторам баз данных.
Снизить общую стоимость владения: интегрированный подход и фокус на простоте использования и внедрения имеет самые малые в промышленности издержки реализации и поддержки, способствующие быстрому возврату ваших инвестиций в базы данных.
2.1.5 Внутримашинная реализация данных
Основной частью внутримашинного информационного обеспечения является информационная база – определенным способом организованная совокупность данных, хранимых в памяти вычислительной системы в виде файлов, с помощью которых удовлетворяются информационные потребности управленческих процессов и решаемых задач.
В созданных базах данных вся информация хранится таблицах:
В таблице «Продажа» (см. таблица 2.3) хранятся локальные сведения о проданном товаре на АГЗС.
Таблица 2.3. Продажа
Имя поля
Тип поля
Ключ
КодПродажи
Счетчик
Первичный
КодНоменклатуры
Числовой
Внешний
КодКонтрагента
Числовой
Внешний
Дата
Дата/Время
Нет
Количество
Числовой
Нет
Стоимость
Денежный
Нет
КодСотрудника
Числовой
Внешний
КодСмены
Числовой
Внешний
Безнал
Логический
Нет
В таблице «Приход» (см. таблица 2.4) хранятся сведения о поступившем товаре.
Таблица 2.4 Приход
Имя поля
Тип поля
Ключ
КодПрихода
Счетчик
Первичный
ДатаПрихода
Дата/Время
Нет
КодНоменклатуры
Числовой
Внешний
Количество
Числовой
Нет
В таблице «Номенклатура» (см. таблица 2.5) хранятся сведения о товарах.
Таблица 2.5 Номенклатура
Имя поля
Тип поля
Ключ
КодНоменклатуры
Счетчик
Первичный
Наименование
Текстовый
Нет
Цена
Денежный
нет
Товар
Логический
нет
В таблице «Контрагенты» (см. таблица 2.6) хранятся сведения о контрагентах, с которыми заключен договор.
Таблица 2.6. Контрагенты
Имя поля
Тип поля
Ключ
КодКонтрагента
Счетчик
Первичный
Наименование
Текстовый
Нет
ПолноеНаименование
Текстовый
нет
Безнал
Логический
нет
В таблице «Обороты» (см. таблица 2.7) хранятся общие сведения о проданном товаре.
Таблица 2.7. Обороты
Имя поля
Тип поля
Ключ
Код
Счетчик
Первичный
КодНоменклатуры
Числовой
Внешний
КодКонтрагента
Числовой
Внешний
Дата
Дата/Время
Нет
Сумма
Денежный
Нет
Количество
Числовой
Нет
КодЗаправки
Числовой
Внешний
В таблице «Константы» (см. таблица 2.8) хранятся сведения о номере АГЗС и IP адрес компьютера главного управления.
Таблица 2.8. Константы
Имя поля
Тип поля
Ключ
КодЗаправки
Числовой
Первичный
Название
Текстовый
Нет
Сервер
Текстовый
нет
В таблице «Сотрудники» (см. таблица 2.9) хранятся сведения о сотрудниках.
Таблица 2.9. Сотрудники
Имя поля
Тип поля
Ключ
КодСотрудника
Счетчик
Первичный
Фамилия
Текстовый продолжение
–PAGE_BREAK–
Нет
Пароль
Числовой
нет
В таблице «РасчетыКонтрагенты» (см. таблица 2.10) хранятся сведения о платежах контрагентов
Таблица 2.10. РасчетыКонтрагенты
Имя поля
Тип поля
Ключ
Код
Счетчик
Первичный
КодКонтрагента
Числовой
Внешний
Сумма
Денежный
Нет
Дата
Дата/Время
Нет
КодРайона
Числовой
Внешний
В таблице «Смены» (см. таблица 2.10) хранятся сведения о сменах, отработанных сотрудниками.
Таблица 2.11.Смены
Имя поля
Тип поля
Ключ
КодСмены
Счетчик
Первичный
КодСотрудника
Числовой
Внешний
Начало
Дата/Время
Нет
Окончание
Дата/Время
нет
В таблице «Районы» (см. таблица 2.12) хранятся сведения о номерах всех АГЗС
Таблица 2.12. Районы
Имя поля
Тип поля
Ключ
КодРайона
Числовой
Первичный
Название
Текстовый
Нет
В таблице «Остатки» (см. таблица 2.13) хранятся сведения об остатках товара на АГЗС
Таблица 2.13. Остатки
Имя поля
Тип поля
Ключ
КодОстатка
Счетчик
Первичный
КодЗаправки
Числовой
Внешний
КодНоменклатуры
Числовой
Внешний
Количество
Числовой
Нет
Дата
Дата/Время
Нет
Схемы данных АГЗС и главного офиса представлены на рисунке 2.3. и 2.4.
/>
Рис.2.3. Даталогическая модель БД главного офиса
/>
Рис.2.4. Даталогическая модель БД АГЗС
2.1.6 Алгоритмы и технология решения задач
Основными алгоритмами необходимыми для решения задачи автоматизации учета товаров на АГЗС являются: работа клиентской ДБ АГЗС (см. рисунок 2.5) и работа ее модуля «Продажа» (см. рисунок 2.6)
/>
Рис. 2.5. Алгоритм работы клиентской БД АГЗС
/>
Рис. 2.6. Алгоритм работы модуля «Продажа»
2.2 Формализация расчетов (математическая модель)
2.2.1 Модель управления запасами без дефицита
Стандартная модель хранения запасов представлена на рис. 2.5.
Для бесперебойной работы АГЗС необходима четко налаженная система управления запасами, чтобы поставки происходили вовремя, наиболее экономичными партиями и, чтобы не создавалось дефицита товара.
Рассмотрим проблемы управления запасами, связанные с заказом на партию товара поставщику.
В любой системе управления запасами уровень последних изменяется в соответствии с циклической моделью. Процесс снижения уровня запасов определяется соответствующей моделью спроса. В некоторой точке для пополнения запаса будет сделан новый заказ. По прошествии некоторого времени, называемого временем поставки, заказ будет получен, и уровень запасов возрастает. После этого начинается новый цикл запасов (см. рисунок 2.6.).
Рис. 2.5. Стандартная модель хранения запасов
Для упрощения процесса моделирования в модель вводится ряд предпосылок:
1. Спрос на продукцию является постоянным, или приблизительно постоянным. Если коэффициент использования запасов является постоянным, то уровень запасов также будет уменьшаться с постоянным коэффициентом.
2. Предполагается, что время поставки известно и является постоянной величиной. Это означает, что заказ можно осуществлять в точке с определенными значениями временного параметра и размера запаса (уровень повторного заказа), которые обеспечивают получение заказа в тот момент, когда уровень запасов равен нулю.
3. Отсутствие запасов является недопустимым.
4. В течение каждого цикла запасов делается заказ на постоянное количество продукции (q).
Необходимо построить модель, которая описывает издержки, связанные с наличием запасов, за весь период их хранения. Длительность этого периода выберем, равной одной неделе. Для моделирования используем сглаживающую функцию. Введем следующую систему обозначений:
D— еженедельный спрос на запас продукции;
С— переменная стоимость подачи одного заказа, рублей/1 заказ;
Ch— переменная стоимость хранения единицы продукции в запасе, рублей на единицу продукции в неделю;
q – объем заказа, единиц продукции/заказ;
b – интенсивность потребления товара.
t — рассматриваемый период времени
ТС — общая стоимость запаса единицы продукции
Рассмотрим подробно оптимальный размер заказа q0в неделю и интервал повторного заказа. продолжение
–PAGE_BREAK–
ТС(0)=q
TC(t)=0
Экономичный размер заказа q0равен:
/>(2.1)
/>(2.2)
и /> (2.3)
Положим /> (2.4)
Следовательно /> (2.5)
/>(2.6)
/>(2.7)
Формула (2.7) называется формулой Уилсона или формулой наиболее экономичного объема партии, широко используется в экономике.
Интенсивность потребления запасаемого товара можно найти, разделив общее потребление товара на время, в течение которого он расходуется:
/>(2.8)
Поскольку величина спроса постоянна, количество товара, которое используется в течение поставки заказа, является одновременно и уровнем повторного заказа. Таким образом, новый заказ следует подавать, когда уровень запасов станет равным интенсивности потребления.
Рис. 2.6. Уровень и интервал повторного заказа
Методика выполнения:
По статистическим данным объем продажи АГЗС составляет в среднем 31000 литров СУГ в неделю с небольшим отклонением, которым можно пренебречь. Цена покупки одного литра равна 5.5 рублей. Одна подача заявки обходится в 1.5 рублей. Время доставки заказа от поставщика составляет 1 сутки. По оценкам специалистов, издержки хранения составляют 0.5% средненедельной стоимости запасов.
D = 31000 литров в сутки;
С0= 1.5 рублей в сутки;
Ch = 0.5% в неделю от стоимости запаса размером в 1 литр или 0.005 * 5.5 рублей в неделю за одну упаковку.
t= 1 неделя = 7 суток
tпоставки= 1 сутки
Найдем экономичный размер заказа по формуле (2.7)
/>
Наиболее экономичный размер партии заказа равен 1557 литров. Следовательно, чтобы издержки были минимальными, стоит заказывать партию СУГ объемом в 1557 литров.
По формуле (2.8) объем продажи СУГ за 1 день поставки заказа составит:
/>
Следовательно, уровень повторного заказа равен 4428литра. Таким образом, подача нового заказа производится в тот момент, когда уровень запасов равен 4428 литров.
2.3 Описание экранных форм
2.3.1 Приложение на АГЗС
При входе в программу оператору необходимо выбрать свою фамилию и ввести пароль (см. рисунок 2.7.).
/>
Рис. 2.7. Форма авторизация
При успешно пройденной авторизации открывается главная форма Продажа (см. рисунок 2.8.), с которой оператор работает всю смену. Здесь фиксируются факты продажи товара. Из списка выбираются номенклатура и контрагент. Расчет можно осуществлять как по количеству, так и по сумме. Для сохранения операции нужно нажать на кнопку «Сохранить запись», для удаления нужно нажать «Удалить запись», для добавления новой – нажать кнопку «Добавить запись» Данную форму невозможно не закрыть, не свернуть, порка не будет нажата кнопка «Закрыть смену».
/>
Рис. 2.8. Форма Продажа
Для фиксации прохода товара используется форма Приход (см. рисунок 2.9.). Дата ставится автоматически, необходимо лишь выбрать вид товара и вписать количество
/>
Рис. 2.9. Форма Приход
Существует 3 справочника – Сотрудники (см. рисунок 2.10.), Номенклатура (см. рисунок 2.11.) и Контрагенты (см. рисунок 2.12.). В них хранится краткая справочная информация, доступная только для чтения.
/>
Рис. 2.10. Форма Сотрудники
/>
Рис. 2.11. Форма Номенклатура
/>
Рис. 2.12. Форма Контрагенты
Для формирования отчета оператору необходимо выбрать или номер смены(см. рисунок 2.13.) или временной период (см. рисунок 2.17. и 2.19.).
/>
Рис. 2.13. Форма выбор смены
Отчет Реализация газа (см. рисунок 2.14.) показывает приход и расход газа за смену.
Отчет Сменный отчет (см. рисунок 2.15.) дает подробную детализацию: сколько и кому товара было продано за смену и, какая выручка.
Отчет о Состоянии склада (см. рисунок 2.16.) показывает сколько товара в наличии находится и на какую сумму.
/>
Рис. 2.14. Отчет реализация газа
/>
Рис. 2.15. Сменный отчет
/>
Рис. 2.16. Отчет о состоянии склада
/>
Рис. 2.17. Форма выбора периода
Отчет с разбивкой по клиентам (см. рисунок 2.18.) показывает какой контрагент сколько раз заправлялся и на какую сумму.
Отчет Продажа Операторами (см. рисунок 2.20.) можно формировать по трем категориям: по газу, по баллонам и техническому освидетельству. Он показывает кокой оператор в какие дни работал и что продавал.
/>
Рис. 2.18. Отчет реализация газа с разбивкой по клиентам
/>
Рис. 2.19. Форма продажа операторами
При закрытии смены или в процессе работы, когда запасов газа остается меньше, чем среднее потребление выводится окно управления запасами (см. рисунок 2.21.)
/>
Рис. 2.21. Окно управления запасами
/>
Рис. 2.20. Отчет продажа операторами
2.3.2. Приложение в главном офисе
Главная форма (см. рисунок 2.21.)состоит из пяти частей. Для удобства работы все необходимые данные расположены на экране. Поэтому не приходится подолгу искать нужную информацию. Здесь отображается информация о контрагентах, номенклатуре, должниках-контрагентах и на диаграмме наглядно показываются остатки всех АГЗС. продолжение
–PAGE_BREAK–
В форму Оплаты контрагентов (см. рисунок 2.22.) заносятся данные о перечислении средств контрагентами на счет предприятия.
/>
Рис. 2.21. Форма Главная
/>
Рис. 2.22. Форма оплаты контрагентов
Для формирования Оборотно-сальдовой ведомости (см. рисунок 2.24.) необходимо сначала выбрать дату формирования (см. рисунок 2.23.). В этом отчете отображается на какую суммы каждый контрагент заправился в течение месяца, какую сумму внес на счет предприятия и имеет ли долги.
/>
Рис. 2.23. Форма выбор месяца Оборотно-сальдовая ведомость
/>
Рис. 2.24. Отчет ОСВ
Можно посмотреть сколько товара в любой момент времени (см. рисунок 2.25.) находится на АГЗС. Как в форме отчета (см. рисунок 2.26.), так и в виде диаграммы (см. рисунок 2.27.).
/>
Рис. 2.25. Форма выбор периода
/>
Рис. 2.26. Отчет остатки номенклатуры
/>
Рис. 2.27. Отчет диаграмма по остаткам номенклатуры
Отчет Должники (см. рисунок 2.29.) показывает контрагентов, которые потребляли товары в кредит. Отчет можно составить на любую дату (см. рисунок 2.28.).
/>
Рис. 2.28. Форма выбор даты по должникам
/>
Рис. 2.29. Отчет должники
2.4 Обоснование выбора системного обеспечения
Операционная система является сердцевиной программного обеспечения, она создает среду для выполнения приложений и во многом определяет какими полезными для пользователя свойствами эти приложения будут обладать.
Главным требованием, предъявляемым к операционной системе, является способность выполнения основных функций: эффективного управления ресурсами и обеспечения удобного интерфейса для пользователя и прикладных программ. Современная ОС, как правило, должна реализовывать мультипрограммную обработку, виртуальную память, поддерживать многооконный интерфейс, а также выполнять многие другие, совершенно необходимые функции. Кроме этих функциональных требований к операционным системам предъявляются не менее важные рыночные требования. К этим требованиям относятся:
расширяемость. Код должен быть написан таким образом, чтобы можно было легко внести дополнения и изменения, если это потребуется, и не нарушить целостность системы.
переносимость. Код должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы (которая включает наряду с типом процессора и способ организации всей аппаратуры компьютера) одного типа на аппаратную платформу другого типа.
надежность и отказоустойчивость. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемыми, а приложения не должны быть в состоянии наносить вред ОС.
совместимость. ОС должна иметь средства для выполнения прикладных программ, написанных для других операционных систем. Кроме того, пользовательский интерфейс должен быть совместим с существующими системами и стандартами.
безопасность. ОС должна обладать средствами защиты ресурсов одних пользователей от других.
производительность. Система должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа.
В настоящее время существует и постоянно появляется большое количество ОС, которые учитывают недостатки предыдущих и расширяют возможности пользователей. Перед многочисленными пользователями и организациями встает вопрос выбора ОС.
Каждая из ОС требует для своей работы определенные ресурсы с соответствующими параметрами такими как: объем оперативной памяти, объем винчестера, тип процессора и его производительность. В связи с этим очень важно установить на компьютер ту систему, которая соответствует его ресурсами способна повысить эффективность работы.
Наибольшей популярностью в настоящее время пользуются операционные системы фирмы Microsoft. Их доля составляет 95% среди всех операционных систем. Наиболее устойчивые системы этой фирмы основаны на технологии NT (Windows NT/2k/XP). В последние шесть лет возрастает популярность операционной системы под названием Unix. Главным недостатком последней является несовместимость с прикладными программами семейства Microsoft. Поэтому остановимся на ОС семейства Windows.
Используя статистические данные и результаты ранжирования [17], можно определить предпочтения пользователей в использовании ОС:
Windows XP – 72.7%
Windows Vista – 15.7%
Unix – 8.3%
Windows 2000 – 2.2%
Windows 98 – 1.1%
В качестве альтернативы рассматривались Windows XP и Windows Vista.
Windows Vista – это новая еще «сырая» разработка Microsoft, она требует достаточно мощных аппаратных конфигураций и существует проблема отсутствия драйверов Windows Vista для подавляющего большинства периферийных устройств. В Windows XP такой проблемы нет, это отлаженная, хорошо зарекомендовавшая себя ОС, поэтому в качестве операционной системы будет использоваться Windows XP Professional так как она сочетает в себе все необходимые функции и не требует слишком высокие аппаратные характеристики. Это наглядная ОС, поддерживающая большее количество утилит и программных продуктов, в том числе и Microsoft Office 2003, который включает в себя Access, в котором осуществлена база данных.
2.5 Обоснование выбора программного обеспечения
В настоящее время существует большой выбор программных средств, предназначенных для обработки информации. Каждые из них имеют свои преимущества и недостатки. Вопрос выбора того или иного программного средства для конкретной цели является одним из основных при разработке, так как одни и те же характеристики для одной задачи могут выступать как достоинства, а для другой – как недостатки.
При реализации проекта в качестве средства для разработки системы учета товаров для клиентского приложения был выбран – MSAccess 2003, который включает весь необходимый перечень функций для проектируемой системы, а для серверного MSSQL-Server.
Для создания пользовательских форм можно воспользоваться тремя способами:
При помощи автоформы на основе таблицы или запроса. С помощью автоформ можно создавать формы, в которых выводятся все поля и записи базовой таблицы или запроса. Если выбранный источник записей имеет связанные таблицы или запросы, то в форме также будут присутствовать все поля и записи этих источников записей.
При помощи мастера на основе одной или нескольких таблиц или запросов. Мастер задает подробные вопросы об источниках записей, полях, макете, требуемых форматах и создает форму на основании полученных ответов.
Вручную в режиме конструктора. Сначала создается базовая форма, которая затем изменяется в соответствии с требованиями в режиме конструктора.
Пользуясь средствами MS Access для создания приложений не потребуется расходовать дополнительные денежные средства на покупку специализированных средств разработки, таких как С++Builder и Delphi, а также появляется возможность разработки системы учета товаров на АГЗС.
2.6 Обоснование выбора технического обеспечения ИС
Для успешной работы созданных приложений по учету товаров на АГЗС необходимо определить набор технических средств, на основе которых будет строиться система. Выбор технических средств определяется выбором аппаратной платформы.
Для функционирования системы потребуются следующие технические средства:
ПЭВМ типа IBM PC/AT с минимальной конфигурацией:
процессор: Pentium, 600 MHz или более мощный;
оперативная память: 256 Мб; продолжение
–PAGE_BREAK–
емкость жесткого диска: 40 Гб;
монитор Super VGA с разрешением 800×600 точек или более высоким, поддерживающий 256 цветов;
принтер HP LaserJet 1010;
ADSL-модем D-Link 10/100 Мбит/с;
операционная система: Windows ХР Professional;
ПО: SQL-Server, Access 2003.
Данное техническое обеспечение обеспечит успешное функционирование создаваемой системы и не потребует дополнительных затрат на техническое обеспечение, так как данное техническое обеспечение уже установлено.
2.7 Разработка организационного обеспечения
Организационное обеспечение представляет собой совокупность методов и средств, регламентирующих взаимодействие работников с техническими средствами и между собой в процессе разработки и эксплуатации системы.
Проектируемая система предназначена учета товаров на АГЗС.
Персонал, который будет непосредственно работать с системой:
операторы;
администратор.
Для нормального функционирования системы необходим подготовленный персонал. Поэтому предварительно необходимо провести обучение операторов по работе с системой, и, обеспечить получение консультаций по вопросам, возникающим в ходе работы с системой. Проведение консультаций возлагается на программистов отдела ОКО «Северного объединения по эксплуатации газового хозяйства».
Администратором БД будет программист отдела ОКО поскольку он имеет достаточный уровень профессионализма и специальные навыки для работы.
Для обеспечения безопасности и достоверности данных, хранящихся в централизованной базе данных, при работе системы необходимо разграничить права доступа пользователей к таблицам баз данных. Разграничение прав доступа будет осуществляться на уровне СУБД. Разграничение прав доступа и выдача соответствующих паролей возлагается на администратора БД.
3. Расчет экономической эффективности
В данном дипломном проекте осуществляется разработка информационной системы учета товаров на АГЗС «Северного объединения по эксплуатации газового хозяйства.
Внедрение информационной системы сопряжено с капитальным вложением, как на приобретение техники, так и на разработку проектов, выполнение подготовительных работ и подготовку кадров. Поэтому внедрению должно предшествовать экономическое обоснование эффективности внедрения системы.
Под эффективностью внедрения будем понимать целесообразность применения средств вычислительной и организационной техники при формировании, передаче и обработке данных.
Экономический эффект от внедрения вычислительной и организационной техники подразделяют на прямой и косвенный.
Под прямой экономической эффективностью понимают экономию материально-трудовых ресурсов и денежных средств, полученную в результате сокращения численности управленческого персонала, фонда заработной платы, расхода основных и вспомогательных материалов вследствие автоматизации конкретных видов работ.
Под косвенной эффективностью понимают экономию средств, в процессе производства, проявляющуюся в конечном результате хозяйственной деятельности предприятия.
Оба вида рассмотренной экономической эффективности взаимосвязаны.
Реализация любого проекта требует материальных и финансовых затрат. Она всегда связана с риском, поскольку нельзя заранее сказать, в какой мере проект выйдет на коммерциализацию, и найдутся ли потребители для новой продукции или услуги. Поэтому этап предварительной оценки является важным звеном в инновационной деятельности. Несмотря на сложность оценки, она необходима и является фактором, снижающим риск деятельности.
Осуществить оценку проекта на степень его реализуемости – это значит оценить социально-экономическую эффективность проекта на той стадии, когда мало достоверной информации, поэтому и оценки должны быть интервальными: от оптимального – до пессимистического прогноза.
Необходимо определить затраты на проведение научно-исследовательской работы (НИР). В эти затраты должны включаться трудовые затраты инженера-исследователя (дипломника), его руководителя, а также затраты связанные с использованием ЭВМ и различного оборудования, необходимого для проведения экспериментов.
Расчет начинается с составления сметы
Исходными документами для составления сводной сметы является:
1. График основных этапов проведения научно-исследовательской работы (НИР) и затраты на её проведение.
2. Определение капитальных затрат для нового варианта.
3. Определение эксплуатационных затрат для нового варианта.
4. Определение экономического эффекта.
3.1 График основных этапов проведения НИР и расчет затрат
График основных этапов проведения НИР является основным документом, характеризующим затраты по заработной плате. Вместе с тем, в известной мере отражает и организацию проведения работы, а именно: состав и количество привлекаемых к выполнению работы исполнителей.
Для составления графика основных этапов проведения НИР рассмотрим временные интервалы проведения работ:
Подготовительный этап.
Теоретические разработки.
Проектирование и выполнение технического задания на ЭВМ.
Консультации с руководителем проекта.
Машинные расчеты и оформление отчета в электронном виде.
Для расчета общих затрат необходимо знать трудоемкости всех этапов выполняемой работы. Для определения трудоемкости составляется перечень всех видов работ, которые должны быть выполнены. Трудоемкость выполнения работы определяется по сумме трудоёмкостей этапов и видов составляющих работ, оцениваемых экспериментальным путем в человеко-днях. Она носит вероятностный характер, так как зависит от множества трудно учитываемых факторов. Поэтому в практике применяются следующие величины при оценке трудоемкости:
ai — минимальные возможные трудоемкости отдельных видов работ;
bi — максимальные возможные трудоемкости отдельных видов работ;
mi — наиболее вероятная трудоемкость отдельных видов работ.
Ожидаемое значение трудоемкости Тi и их дисперсия Дi оцениваются по формулам:
/>, (3.1)
/>(3.2)
Дисперсия характеризует степень неопределённости выполнения работы за ожидаемое время. Продолжительность работы Тпiоценивается по формуле:
Тпi = Тi/ Чi, (3.3)
где Тi — трудоёмкость, чел.-дни;
Чi — численность исполнителей, чел.
Т.к. работа проводится одним человеком, то Tпi = Ti. При допущении, что работы ведутся в проектной организации для проведения НИР по данному проекту и выполнения основных этапов НИР понадобится следующий персонал:
— ведущий инженер — руководитель проекта;
— инженер — разработчик проекта.
Принятые величины трудоемкости и полученные при расчете значения трудоемкостей сводим в таблицу 3.1.
На основании значений, полученных при расчетах по формулам (3.1. – 3.3.), составляется график проведенных работ, представленный в таблице 3.2.
Таблица 3.1
№ этапа
ai
bi
mi
Ti
Di
1
10
21
16
16
20,17
2
7
14
10
10 продолжение
–PAGE_BREAK—-PAGE_BREAK—-PAGE_BREAK–
Текущий эффект
-15818
84100
84100
84100
84100
Дисконтированный эффект
-15782
83719
83529
83339,736
83150,5
Сальдо, нарастающим итогом (ЧДД нарастающим итогом)
-62476
21243
104772
188111,724
271262 –PAGE_BREAK–
Comodo Firewall Pro 2.4.16.174
9475
Отлично
Jetico Personal Firewall 2.0.0.16 beta
9125
Отлично
ZoneAlarm PRO 7.0.302.000
8850
Очень хорошо
Kaspersky Internet Security 6.0.2.614
7950
Очень хорошо
Privatefirewall 5.0.8.11
7625
Очень хорошо
Trend Micro PC-cillin Internet Security 2007
7500
Очень хорошо
F-Secure Internet Security 2007 7.01.128
6625
Хорошо
Outpost Firewall PRO 4.0 (1007.591.145)
6550
Хорошо
Lavasoft Personal Firewall 1.0.543.5722 (433)
6500
Хорошо
BlackICE PC Protection 3.6.cpv
5750
Удовлетворительно
Sunbelt Kerio Personal Firewall 4.3.268
4825
Удовлетворительно
Look ‘n’ Stop 2.05p2
4800
Удовлетворительно
Norton Personal Firewall 2006 9.1.0.33
4600
Удовлетворительно
Safety.Net 3.61.0002
4000
Удовлетворительно
Avira Premium Security Suite 7 build 98
2450
Неудовлетворительно
Sygate Personal Firewall 5.6.2808
2350
Неудовлетворительно
McAfee Internet Security Suite 2006 8.0
2325
Неудовлетворительно
CA Personal Firewall 2007 3.0.0.196
1000
Очень плохо
BitDefender Internet Security 10.108
750
Очень плохо
Panda Antivirus + Firewall 2007 6.00.00
650
Очень плохо
AVG Anti-Virus plus Firewall 7.5.431
500
Очень плохо
Ashampoo FireWall Pro 1.14
500
Очень плохо
Filseclab Personal Firewall 3.0.0.8686
500
Очень плохо
Windows Firewall XP SP2
Очень плохо
Из результатов тестирования видно, что одним из лучших сетевых экранов является Comodo Firewall Pro.
Так согласно классификации средств криптографической защиты информационных ресурсов в корпоративных они делятся на:
Криптосистемы с одним ключом, их часто называют традиционной, симметричной или с одним ключом. Пользователь создает открытое сообщение, элементами которого являются символы конечного алфавита. Для шифрования открытого сообщения генерируется ключ шифрования. С помощью алгоритма шифрования формируется шифрованное сообщение
Приведенная модель предусматривает, что ключ шифрования генерируется там же, где само сообщение. Однако, возможно и другое решение создания ключа – ключ шифрования создается третьей стороной (центром распределения ключей), которой доверяют оба пользователя. В данном случае за доставку ключа обоим пользователям ответственность несет третья сторона. Вообще говоря, данное решение противоречит самой сущности криптографии – обеспечение секретности передаваемой информации пользователей.
Криптосистемы с одним ключом используют принципы подстановки (замены), перестановки (транспозиции) и композиции. При подстановке отдельные символы открытого сообщения заменяются другими символами. Шифрование с применением принципа перестановки подразумевает изменение порядка следования символов в открытом сообщении. С целью повышения надежности шифрования шифрованное сообщение, полученное применением некоторого шифра, может быть еще раз зашифровано с помощью другого шифра. Говорят, что в данном случае применен композиционный подход. Следовательно, симметричные криптосистемы (с одним ключом) можно классифицировать на системы, которые используют шифры подстановки, перестановки и композиции.
Криптосистема с открытым ключом. Она имеет место только еесли пользователи при шифровании и дешифровании используют разные ключи KО и KЗ. Эту криптосистему называют асимметричной, с двумя ключами или с открытым ключом.
Получатель сообщения (пользователь 2) генерирует связанную пару ключей:
KО – открытый ключ, который публично доступен и, таким образом, оказывается доступным отправителю сообщения (пользователь 1);
Kз – секретный, личный ключ, который остается известным только получателю сообщения (пользователь 1).
Пользователь 1, имея ключ шифрования KО, с помощью определенного алгоритма шифрования формирует шифрованный текст.
Пользователь 2, владея секретным ключом Kс, имеет возможность выполнить обратное действие.
В этом случае пользователь 1 готовит сообщение пользователю 2 и перед отправлением шифрует это сообщение с помощью личного ключа Kз. Пользователь 2 может дешифрировать это сообщение, используя открытый ключ Kо. Так как, сообщение было зашифровано личным ключом отправителя, то оно может выступать в качестве цифровой подписи. Кроме того, в данном случае невозможно изменить сообщение без доступа к личному ключу пользователя 1, поэтому сообщение решает так же задачи идентификации отправителя и целостности данных.
Напоследок хотелось бы сказать, что посредством установки криптографических средств защиты можно достаточно надежно защитить рабочее место сотрудника организации, который непосредственно работает с информацией, имеющей особое значение для существования этой организации, от несанкционированного доступа.
4.3 Защита данных в Access
Средства защиты БД, реализованные в Access, позволяют предотвратить умышленные или случайные просмотр, изменение и удаление информации лицами, которые не имеют ответствующих прав доступа. Эти средства особенно важны при функционировании БД в сети.
В Access предусмотрены различные уровни защиты данных и администрирования доступа к ним. Возможности Access позволяют обеспечить безопасность, как самого приложения, так и файла БД. Простейшим средством защиты БД от несанкционированного доступа является пароль.
После того как пароль установлен, при каждом открытии БД будет появляться диалоговое окно, в которое требуется ввести пароль. Пользователи смогут открыть БД, только после ввода правильного пароля. Этот способ достаточно надежен, поскольку Access шифрует пароль, так что к нему нет прямого доступа при чтении файла БД. Недостаток такого способа защиты в том, что он применяется только при открытии БД. После открытия БД все объекты становятся доступными для пользователя (если не определена защита на уровне пользователей). Для БД, которая совместно используется небольшой группой пользователей или на автономном компьютере, установка пароля обычно оказывается достаточной.
Усовершенствовать защиту позволяют средства поддержки рабочих групп, ведения учетных (регистрационных) записей, задания прав владения и прав доступа. С помощью средств защиты можно указать, какие операции по обработке объектов БД разрешается выполнять пользователю или группе пользователей. О каждом пользователе или группе ведутся учетные записи с указанием прав доступа.
4.4 Защита данных в SQL Server
SQL Server 2005 имеет улучшенные в модели безопасности платформы базы данных, с намерением предоставить более точный и гибкий контроль для обеспечения безопасности данных. Значительные вложения были сделаны в большое количество функций для обеспечения высокого уровня безопасности данных вашего предприятия, включая:
Применение политик для паролей учётных записей SQL Server в области аутентификации
Обеспечение большей модульности дл указания разрешений на различных уровнях в области авторизации
Разделение владельца и схемы в области управления безопасностью.
Авторизация
Новая модель безопасности SQL Server 2005 позволяет администраторам управлять разрешениями на модульном уровне и в указанной области, делая управление разрешениями проще, а также обеспечивает выполнения принципа наименьших привилегий. SQL Server 2005 позволяет указать контекст, в котором будут выполняться операторы модуля. Эта функция также работает как отличный механизм для модульного управления разрешениями. продолжение
–PAGE_BREAK–
Аутентификация
Кластеры SQL Server 2005 поддерживают аутентификацию Kerberos для виртуальных серверов SQL Server 2005. Администраторы могут указать политики типа Windows для стандартных учётных записей, так что единообразная политика применяется ко всем учётным записям домена.
Встроенное шифрование
SQL Server 2005 поддерживает шифрование внутри базы данных, полностью интегрированное с инфраструктурой управления ключами. По умолчанию, коммуникации между клиентом и сервером шифруются. Для того, чтобы концентрировать гарантии безопасности, может быть определена серверная политика, которая будет отвергать незашифрованные коммуникации.
SQL и Trustworthy Computing
Инициатива Trustworthy Computing описывает структуру, которая определяет шаги, необходимые для поддержки безопасных вычислений, также как и меры, которые помогают развертывать и поддерживать безопасную среду. Эти шаги помогают защитить конфиденциальность, целостность и доступность данных и систем в каждой фазе жизни программного продукта — от разработки до поставки и сопровождения. Для поддержки четырёх принципов инициативы Trustworthy Computing, Microsoft и команда SQL Server предприняли следующие шаги:
Безопасный изначально. Команда разработчиков SQL Server провела несколько аудитов в области безопасности и потратила более двух месяцев на изучение компонентов SQL Server и взаимодействия между ними. Для каждой потенциальной угрозы безопасности команда провела анализ для оценки проблемы и выполнила дополнительную проектную и тестовую работу для устранения потенциальных угроз безопасности. В результате этих усилий SQL Server 2005 содержит множество новых функций безопасности сервера.
Безопасный по умолчанию. После установки SQL Server 2005 выбирает правильный набор конфигурационных значений для всех установочных опций, гарантируя, что после установки новой системы она будет в безопасном состоянии по умолчанию.
Безопасный в развёртывании. Microsoft подготовила материалы, помогающие организациям развёртывать SQL Server, используя правильные учётные записи и полностью понимать шаги и разрешения, требуемые для этого. Инструменты развёртывания SQL Server предоставляют информацию, необходимую для понимания решений, принимаемых во время развертывания. Обновления безопасности легко найти и установить — и, если выбрать соответствующую опцию, эти обновления будут устанавливаться автоматически. Существуют инструменты для оценки и управления рисками безопасности в рамках организации.
Заключение
Квалификационная работа была разработана в соответствии с техническим заданием. При разработке была проанализирована работа отдела материально-технического снабжения и АГЗС «Северного объединения по эксплуатации газового хозяйства», в результате которого была поставлена задача разработки информационной системы учета товаров на примере АГЗС «Северного объединения по эксплуатации газового хозяйства» и выбраны комплекс технических средств, пакет программ, посредствам которых была реализована данная задача.
Для достижения этой задачи были проведены: сбор и предварительная обработка необходимых статистических и технико-экономических данных, связанных с деятельностью предприятия, сбор и анализ информации по теме дипломного проекта, также был проведён обзор рынка существующих информационных систем, решающих задачи автоматизации предприятия.
Результатом данной квалификационной работы является разработка информационной системы учета товаров на примере АГЗС «Северного объединения по эксплуатации газового хозяйства». В процессе выполнения работы были составлены алгоритмы, необходимые для работы системы, был осуществлен выбор необходимых технических средств.
В процессе разработки программы выполнены требования к функциональным характеристикам, условия эксплуатации и требования к операционной и программной совместимости. Разработка информационной системы учета товаров на примере АГЗС «Северного объединения по эксплуатации газового хозяйства» и ее внедрение позволяет связать информационные потоки АГЗС и отдела ОМТС главного офиса, сократить затраты рабочего времени оператора АГЗС, затрачиваемого на заполнение бумажной отчетности, повысить точность и оперативность обмена информацией между АГЗС и главным офисом.
В разделе «Экономическая эффективность» была рассчитана оптимальность проекта.
В разделе «информационная безопасность» были рассмотрены системы защиты информации, представленные на рынке ИТ, и произведен их анализ.
Таким образом, исходя из вышесказанного, можно сделать вывод о том, что информационная система, разработанная в ходе проведения проектной части может использоваться с целью облегчения учета товаров на любой АГЗС.
Список источников информации
Введение в практическую эргономику. Учебное пособие. Под ред. Зинченко В.П., Моргунова Е.Б., изд. МИРЭА, 1990 г
Гамбург К.С. Методическое пособие по оформлению пояснительной записки и графического материала дипломных и курсовых проектов и работ. – СТИ МИСиС, 2007 г.
Глушаков С.В., Ломотько Д.В. Базы данных. Учебный курс. – М.: ООО «Издательство АТС», 2001 г.-504с
Информатика и математика для юристов. Под. ред. Х.А. Андриашина, С. Я. Казанцева. – М.: ЮНИТИ-ДАНА, Закон и право, 2001. – 308 с.
И. Б. Львов, Г. Г. Казеева, И. А. Морев Информатика. Владивосток. 1999-2001 гг. – 260 с.
Исследование операций в экономике. Под ред. проф. Н.Ш. Кремера. – М.: Банки и биржи, ЮНИТИ, 1999. – 407 с.
Колесник А.П. Компьютерные системы в управлении финансами. — М.: «Финансы и статистика»,2002 г.
Кузнецов С.Д. СУБД (системы управления базами данных) и файловые системы.- М: Майор, 2001 г.
Левин В.К. Защита информации в информационно-вычислительных cистемах и сетях // Программирование. – 2001 г. — N5. –354 с.
Проектирование баз данных СУБД Microsoft Access: Учеб. пособие для вузов / Гринченко Н. Н., Гусев Е. В., Макаров Н. П. и др. — М.: Горячая линия-Телеком, 2004. — 240 с.
С.Н. Новиков. Защита информации в сетях связи с гарантированным качеством обслуживания. Новосибирск. 2003. – 480 с.
www.citforum.ru/database/mssql/overview/
www.citforum.ru/operating_systems/windows.shtml
www.kunegin.narod.ru/ref6/lan/4.htm
www.la2-ua.clan.su/forum/11-22-1
www.netnsk.ru/publica/inet/mbr_05.htm
www.opersys.ru
www.referatzakaz.ru/Predmet/informatika/9.htm
www.sider.home.nov.ru/book/side3
www.windxp.com.ru
Приложение 1
Программный код:
Клиентское приложение на АГЗС:
Главный модуль:
‘Dim Nempl As Integer
‘Public Function Ndep_()
‘ MsgBox (Ndep)
‘ Ndep_ = Ndep
‘End Function
‘ Возвращает название серверной базы
Public Function SDB()
SDB = rz(«select Серверfrom Константы») ‘”[\\C:\gaz\gazserver.mdb].”
End Function
‘ Возвращает код этой заправки
Public Function KZ()
KZ = rz(«select КодЗаправкиfrom Константы»)
End Function
‘ Посылает на сервер остатки
Public Function SendOstatki()
DoCmd.RunSQL «insert into » & SDB & «Остатки(КодЗаправки, КодНоменклатуры, Количество, Дата) select ЗапросОстатки.K1, ЗапросОстатки.N, ЗапросОстатки.s, ЗапросОстатки.d from ЗапросОстатки»
End Function
‘ Посылает на сервер обороты
Public Function SendOboroti()
‘ Записываем обороты в локальную таблицу
DoCmd.RunSQL «INSERT INTO Обороты ( Дата, КодНоменклатуры, КодКонтрагента, Количество, Сумма, КодЗаправки )» & _
«SELECT DateValue(Продажа.Дата) AS Выражение1, Продажа.КодНоменклатуры, Продажа.КодКонтрагента, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Константы.КодЗаправки » & _ продолжение
–PAGE_BREAK–
«FROM Продажа, Константы » & _
«WHERE (((Продажа.Дата)> all(select max(Начало) from Смены)))» & _
«GROUP BY DateValue(Продажа.Дата), Продажа.КодНоменклатуры, Продажа.КодКонтрагента, Константы.КодЗаправки»
‘ Записываем обороты в таблицу сервера
DoCmd.RunSQL «INSERT INTO » & SDB() & «Обороты ( Дата, КодНоменклатуры, КодКонтрагента, Количество, Сумма, КодЗаправки )» & _
«SELECT DateValue(Продажа.Дата) AS Выражение1, Продажа.КодНоменклатуры, Продажа.КодКонтрагента, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Константы.КодЗаправки » & _
«FROM Продажа, Константы » & _
«WHERE (((Продажа.Дата)> all(select max(Начало) from Смены)))» & _
«GROUP BY DateValue(Продажа.Дата), Продажа.КодНоменклатуры, Продажа.КодКонтрагента, Константы.КодЗаправки»
‘ Записываем обороты по клиенту на сервер
DoCmd.RunSQL «INSERT INTO » & SDB() & «РасчетыКонтрагенты ( Дата, КодКонтрагента, Сумма, КодРайона )» & _
«SELECT DateValue(Продажа.Дата) AS Выражение1, Продажа.КодКонтрагента, Sum(Продажа.Стоимость)*(-1) AS [Sum-Стоимость], Константы.КодЗаправки » & _
«FROM Продажа, Константы » & _
«WHERE (((Продажа.Дата)> all(select max(Начало) from Смены)))» & _
«GROUP BY DateValue(Продажа.Дата), Продажа.КодКонтрагента, Константы.КодЗаправки»
End Function
‘ Посылает на сервер все обороты
Public Function SendAllOboroti()
‘ Удаляем все обороты из локальной таблицы
DoCmd.RunSQL «Delete from Обороты»
‘ Записываем все обороты в локальную таблицу
DoCmd.RunSQL «INSERT INTO Обороты ( Дата, КодНоменклатуры, КодКонтрагента, Количество, Сумма, КодЗаправки )» & _
«SELECT DateValue(Продажа.Дата) AS Выражение1, Продажа.КодНоменклатуры, Продажа.КодКонтрагента, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Константы.КодЗаправки » & _
«FROM Продажа, Константы » & _
«GROUP BY DateValue(Продажа.Дата), Продажа.КодНоменклатуры, Продажа.КодКонтрагента, Константы.КодЗаправки»
‘ Удаляем все обороты из таблицы сервера по этой заправке
DoCmd.RunSQL «Delete * from » & SDB() & «Обороты where КодЗаправки=» & KZ()
‘ Записываем все обороты в таблицу сервера
DoCmd.RunSQL «INSERT INTO » & SDB() & «Обороты ( Дата, КодНоменклатуры, КодКонтрагента, Количество, Сумма, КодЗаправки )» & _
«SELECT DateValue(Продажа.Дата) AS Выражение1, Продажа.КодНоменклатуры, Продажа.КодКонтрагента, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Константы.КодЗаправки » & _
«FROM Продажа, Константы » & _
«GROUP BY DateValue(Продажа.Дата), Продажа.КодНоменклатуры, Продажа.КодКонтрагента, Константы.КодЗаправки»
End Function
‘ Универсальная функция: возращает результат работы запроса (первое поле, первая запись)
Public Function rz(strSQL As String)
Dim rstData As DAO.Recordset
Set db = CurrentDb
‘ открываемрекордсет
Set rstData = db.OpenRecordset(strSQL)
‘ определяем количество записей в рекордсете
rstData.MoveLast ‘ перемещение в конец рекордсета
rstData.MoveFirst ‘ перемещение в начало рекордсета
rz = rstData.Fields(0)
rstData.Close
End Function
‘Получает справочники номенклатура и контрагенты
Public Function GetInfo()
‘ Удаляем всю номенклатуру
DoCmd.RunSQL «Delete from Номенклатура»
‘ Записываем номенклатуру
DoCmd.RunSQL «INSERT INTO Номенклатура Select * from » & SDB() & «Номенклатура»
‘ Удаляем всех Контрагентов
DoCmd.RunSQL «Delete from Контрагенты»
‘ Записываем Контрагентов
DoCmd.RunSQL «INSERT INTO Контрагенты Select * from » & SDB() & «Контрагенты»
End Function
‘Проверяет необходимость заказа газа
Public Function Proverka()
Dim pr As Variant
‘ вычисляем продажи газа в среднем за посленюю неделю
pr = rz(«SELECT Sum(Продажа.Количество)/7 AS [SumK] FROM Продажа WHERE (((Продажа.Дата)>=Date()-7)) and (((Продажа.КодНоменклатуры)=1))»)
‘ если продаж нет, то присваиваем 0
If (IsNull(pr)) Then
pr = 0
End If
‘ вычисляем остатки газа
Ost = rz(” SELECT sum(s1) FROM (SELECT sum(Приход.Количество) as s1 FROM ПриходWHERE (((Приход.КодНоменклатуры)=1)) union” & _
” SELECT sum(Количество)*-1 as s1 FROM ПродажаWHERE (((КодНоменклатуры)=1)) ) AS [Alias1]”)
‘ формируем строку сообщения
Str1 = «Продажи за день в среднем: » & Round(pr, 2) & vbCrLf & «Остаток на данный момент: » & Round(Ost, 2) & vbCrLf
‘ если остатки меньше средей продажи то выдаем предупреждение
If (pr > Ost) Then
MsgBox Str1 & “Внимание! Необходимо пополнить запасы”
Else
MsgBox Str1 & «У Вас достаточно запасов»
End If
End Function
Формаавторизация
Нажатиекнопкивход
Private Sub Кнопка4_Click()
Dim db As Database
Dim rstData As DAO.Recordset
Dim strSQL As String
‘ Находим имя и пароль в таблице продолжение
–PAGE_BREAK–
x = DLookup(«КодСотрудника», «Сотрудники», “(Фамилия=forms![Авторизация]! Поле1)and(Пароль=forms![Авторизация]! Поле2)”)
If (x > 0) Then
Nempl = x
DoCmd.OpenForm “Продажа”,,, “”
DoCmd.GoToRecord,, acNewRec
Forms!Продажа!КодСотрудника.DefaultValue = x
‘ Добавляемновуюсмену
DoCmd.RunSQL «insert into смены(КодСотрудника,Начало) values(» & x & “,'” & Now() & “‘)”
Set db = CurrentDb
‘ задаем текст запроса
strSQL = «SELECT max(КодСмены) from Смены»
‘ открываемрекордсет
Set rstData = db.OpenRecordset(strSQL)
‘ определяем количество записей в рекордсете
rstData.MoveLast
rstData.MoveFirst
y = rstData.Fields(0)
rstData.Close
Forms!Продажа!КодСмены.DefaultValue = y
DoCmd.Close acForm, “Авторизация”, acSaveYes
Else
MsgBox («Ошибка авторизации! Повторите ввод имени и пароля»)
End If
End Sub
Формакалендарь
Option Compare Database
‘ переменная для ссылки на активное поле ввода
Private objActive As Control
Private Sub Form_Load()
‘ сохранить ссылку на активное поле
Set objActive = Screen.ActiveControl
End Sub
Private Sub Form_Unload(Cancel As Integer)
‘ при выгрузке форму уничтожить ссылку
Set objActive = Nothing
End Sub
Private Sub Кнопка1_Click()
If Not objActive Is Nothing Then
‘ передать значение указанному полю ввода
objActive = Calendar0
End If
DoCmd.Close
End Sub
Формаматериальныйотчет
Option Compare Database
Private Sub Кнопка7_Click()
On Error GoTo Err_Кнопка7_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(67) & ChrW(1056) & ChrW(1072) & ChrW(1079) & ChrW(1073) & ChrW(1080) & ChrW(1074) & ChrW(1082) & ChrW(1086) & ChrW(1081) & ChrW(1055) & ChrW(1086) & ChrW(1050) & ChrW(1083) & ChrW(1080) & ChrW(1077) & ChrW(1085) & ChrW(1090) & ChrW(1072) & ChrW(1084)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка7_Click:
Exit Sub
Err_Кнопка7_Click:
MsgBox Err.Description
Resume Exit_Кнопка7_Click
End Sub
Private Sub Кнопка12_Click()
On Error GoTo Err_Кнопка12_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1055) & ChrW(1088) & ChrW(1086) & ChrW(1076) & ChrW(1072) & ChrW(1078) & ChrW(1072) & ChrW(1054) & ChrW(1087) & ChrW(1077) & ChrW(1088) & ChrW(1072) & ChrW(1090) & ChrW(1086) & ChrW(1088) & ChrW(1072) & ChrW(1084) & ChrW(1080)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка12_Click:
Exit Sub
Err_Кнопка12_Click:
MsgBox Err.Description
Resume Exit_Кнопка12_Click
End Sub
Private Sub Кнопка10_Click()
‘ сделать активным поле, в которое нужно ввести дату
Поле1.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm “Календарь”
End Sub
Private Sub Кнопка13_Click()
On Error GoTo Err_Кнопка13_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1052) & ChrW(1072) & ChrW(1090) & ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка13_Click:
Exit Sub
Err_Кнопка13_Click:
MsgBox Err.Description
Resume Exit_Кнопка13_Click
End Sub
Private Sub Кнопка14_Click()
‘ сделать активным поле, в которое нужно ввести дату продолжение
–PAGE_BREAK–
Поле2.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm «Календарь»
End Sub
Форма продажа
Option Compare Database
‘ Закрытие смены и отправка информации на сервер
Private Sub Кнопка16_Click()
DoCmd.RunSQL «Update Смены set Окончание = ‘» & Now() & “‘ where КодСмены = (select max(КодСмены) from Смены)”
‘ Посылаем остатки на этот день
Module1.SendOstatki
‘ Записываем и посылаем обороты
Module1.SendOboroti
‘ Закрываем текущую форму
Proverka ‘ проверяем запасы
DoCmd.Close acForm, «Продажа», acSaveYes
End Sub
Private Sub Кнопка20_Click()
Стоимость = [Количество] * [Поле18]
End Sub
Private Sub Кнопка26_Click()
On Error GoTo Err_Кнопка26_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord,, acMenuVer70
Exit_Кнопка26_Click:
Exit Sub
Err_Кнопка26_Click:
MsgBox Err.Description
Resume Exit_Кнопка26_Click
End Sub
Private Sub Кнопка38_Click()
[Количество] = [Стоимость] / [Поле18]
End Sub
‘ устанавливает поле Безнал в соответствии со значением контрагента
Private Sub ПолеСоСписком14_AfterUpdate()
[Безнал] = [КодКонтрагента] 1
End Sub
Private Sub Кнопка39_Click()
On Error GoTo Err_Кнопка39_Click
DoCmd.GoToRecord,, acNewRec
Exit_Кнопка39_Click:
Exit Sub
Err_Кнопка39_Click:
MsgBox Err.Description
Resume Exit_Кнопка39_Click
End Sub
Private Sub Кнопка40_Click()
On Error GoTo Err_Кнопка40_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8,, acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6,, acMenuVer70
Exit_Кнопка40_Click:
Exit Sub
Err_Кнопка40_Click:
MsgBox Err.Description
Resume Exit_Кнопка40_Click
End Sub
ФормаПродажаоператорами
Option Compare Database
Private Sub Кнопка7_Click()
On Error GoTo Err_Кнопка7_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(67) & ChrW(1056) & ChrW(1072) & ChrW(1079) & ChrW(1073) & ChrW(1080) & ChrW(1074) & ChrW(1082) & ChrW(1086) & ChrW(1081) & ChrW(1055) & ChrW(1086) & ChrW(1050) & ChrW(1083) & ChrW(1080) & ChrW(1077) & ChrW(1085) & ChrW(1090) & ChrW(1072) & ChrW(1084)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка7_Click:
Exit Sub
Err_Кнопка7_Click:
MsgBox Err.Description
Resume Exit_Кнопка7_Click
End Sub
Private Sub Кнопка10_Click()
‘ сделать активным поле, в которое нужно ввести дату
Поле1.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm “Календарь”
End Sub
Private Sub Кнопка12_Click()
On Error GoTo Err_Кнопка12_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1055) & ChrW(1088) & ChrW(1086) & ChrW(1076) & ChrW(1072) & ChrW(1078) & ChrW(1072) & ChrW(1054) & ChrW(1087) & ChrW(1077) & ChrW(1088) & ChrW(1072) & ChrW(1090) & ChrW(1086) & ChrW(1088) & ChrW(1072) & ChrW(1084) & ChrW(1080)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка12_Click:
Exit Sub
Err_Кнопка12_Click:
MsgBox Err.Description
Resume Exit_Кнопка12_Click
End Sub
Private Sub Кнопка13_Click()
‘ сделать активным поле, в которое нужно ввести дату продолжение
–PAGE_BREAK–
Поле2.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm «Календарь»
End Sub
Форма реализация газа
Option Compare Database
Private Sub Кнопка2_Click()
On Error GoTo Err_Кнопка2_Click
Dim stDocName As String
stDocName = ChrW(1047) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1057) & ChrW(1084) & ChrW(1077) & ChrW(1085) & ChrW(1085) & ChrW(1099) & ChrW(1081) & ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(50)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка2_Click:
Exit Sub
Err_Кнопка2_Click:
MsgBox Err.Description
Resume Exit_Кнопка2_Click
End Sub
Private Sub Кнопка3_Click()
On Error GoTo Err_Кнопка3_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1056) & ChrW(1077) & ChrW(1072) & ChrW(1083) & ChrW(1080) & ChrW(1079) & ChrW(1072) & ChrW(1094) & ChrW(1080) & ChrW(1103) & ChrW(1043) & ChrW(1072) & ChrW(1079) & ChrW(1072) & ChrW(1054) & ChrW(1073) & ChrW(1097) & ChrW(1080) & ChrW(1081)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка3_Click:
Exit Sub
Err_Кнопка3_Click:
MsgBox Err.Description
Resume Exit_Кнопка3_Click
End Sub
Private Sub Кнопка4_Click()
On Error GoTo Err_Кнопка4_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1056) & ChrW(1077) & ChrW(1083) & ChrW(1080) & ChrW(1079) & ChrW(1072) & ChrW(1094) & ChrW(1080) & ChrW(1103) & ChrW(1043) & ChrW(1072) & ChrW(1079) & ChrW(1072)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка4_Click:
Exit Sub
Err_Кнопка4_Click:
MsgBox Err.Description
Resume Exit_Кнопка4_Click
End Sub
Форма реализация газа с разбивкой по контрагентам
Option Compare Database
Private Sub Кнопка10_Click()
‘ сделать активным поле, в которое нужно ввести дату
Поле1.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm “Календарь”
End Sub
Private Sub Кнопка13_Click()
‘ сделать активным поле, в которое нужно ввести дату
Поле2.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm “Календарь”
End Sub
Private Sub Кнопка7_Click()
On Error GoTo Err_Кнопка7_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(67) & ChrW(1056) & ChrW(1072) & ChrW(1079) & ChrW(1073) & ChrW(1080) & ChrW(1074) & ChrW(1082) & ChrW(1086) & ChrW(1081) & ChrW(1055) & ChrW(1086) & ChrW(1050) & ChrW(1083) & ChrW(1080) & ChrW(1077) & ChrW(1085) & ChrW(1090) & ChrW(1072) & ChrW(1084)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка7_Click:
Exit Sub
Err_Кнопка7_Click:
MsgBox Err.Description
Resume Exit_Кнопка7_Click
End Sub
Формасменныйотчет
Option Compare Database
Private Sub Кнопка2_Click()
On Error GoTo Err_Кнопка2_Click
Dim stDocName As String
stDocName = ChrW(1047) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1057) & ChrW(1084) & ChrW(1077) & ChrW(1085) & ChrW(1085) & ChrW(1099) & ChrW(1081) & ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(50)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка2_Click:
Exit Sub
Err_Кнопка2_Click:
MsgBox Err.Description
Resume Exit_Кнопка2_Click
End Sub
Состояниесклада
Option Compare Database
Private Sub Кнопка7_Click()
On Error GoTo Err_Кнопка7_Click
Dim stDocName As String
DoCmd.OpenReport [ОтчетСостояниеСклада], acPreview продолжение
–PAGE_BREAK–
Exit_Кнопка7_Click:
Exit Sub
Err_Кнопка7_Click:
MsgBox Err.Description
Resume Exit_Кнопка7_Click
End Sub
Private Sub Кнопка10_Click()
‘ сделать активным поле, в которое нужно ввести дату
Поле1.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm “Календарь”
End Sub
Private Sub Кнопка8_Click()
On Error GoTo Err_Кнопка8_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1057) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1086) & ChrW(1103) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(1057) & ChrW(1082) & ChrW(1083) & ChrW(1072) & ChrW(1076) & ChrW(1072)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка8_Click:
Exit Sub
Err_Кнопка8_Click:
MsgBox Err.Description
Resume Exit_Кнопка8_Click
End Sub
Серверное приложение главного офиса:
Главнаяформа:
Option Compare Database
Private Sub Кнопка0_Click()
On Error GoTo Err_Кнопка0_Click
DoCmd.RunSQL «insert»
Exit_Кнопка0_Click:
Exit Sub
Err_Кнопка0_Click:
MsgBox Err.Description
Resume Exit_Кнопка0_Click
End Sub
Private Sub Кнопка13_Click()
On Error GoTo Err_Кнопка13_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка13_Click:
Exit Sub
Err_Кнопка13_Click:
MsgBox Err.Description
Resume Exit_Кнопка13_Click
End Sub
Private Sub Кнопка14_Click()
On Error GoTo Err_Кнопка14_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1044) & ChrW(1086) & ChrW(1083) & ChrW(1078) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080)
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка14_Click:
Exit Sub
Err_Кнопка14_Click:
MsgBox Err.Description
Resume Exit_Кнопка14_Click
End Sub
Private Sub Кнопка15_Click()
On Error GoTo Err_Кнопка15_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1054) & ChrW(1057) & ChrW(1042)
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка15_Click:
Exit Sub
Err_Кнопка15_Click:
MsgBox Err.Description
Resume Exit_Кнопка15_Click
End Sub
Private Sub Кнопка20_Click()
On Error GoTo Err_Кнопка20_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка20_Click:
Exit Sub
Err_Кнопка20_Click:
MsgBox Err.Description
Resume Exit_Кнопка20_Click
End Sub
Private Sub Кнопка21_Click()
On Error GoTo Err_Кнопка21_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1044) & ChrW(1086) & ChrW(1083) & ChrW(1078) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080) продолжение
–PAGE_BREAK–
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка21_Click:
Exit Sub
Err_Кнопка21_Click:
MsgBox Err.Description
Resume Exit_Кнопка21_Click
End Sub
Private Sub Кнопка22_Click()
On Error GoTo Err_Кнопка22_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1054) & ChrW(1057) & ChrW(1042)
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка22_Click:
Exit Sub
Err_Кнопка22_Click:
MsgBox Err.Description
Resume Exit_Кнопка22_Click
End Sub
Private Sub Кнопка28_Click()
On Error GoTo Err_Кнопка28_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка28_Click:
Exit Sub
Err_Кнопка28_Click:
MsgBox Err.Description
Resume Exit_Кнопка28_Click
End Sub
Private Sub Кнопка29_Click()
On Error GoTo Err_Кнопка29_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1054) & ChrW(1087) & ChrW(1083) & ChrW(1072) & ChrW(1090) & ChrW(1099) & ChrW(32) & ChrW(1082) & ChrW(1086) & ChrW(1085) & ChrW(1090) & ChrW(1088) & ChrW(1072) & ChrW(1075) & ChrW(1077) & ChrW(1085) & ChrW(1090) & ChrW(1086) & ChrW(1074)
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка29_Click:
Exit Sub
Err_Кнопка29_Click:
MsgBox Err.Description
Resume Exit_Кнопка29_Click
End Sub
Private Sub Кнопка34_Click()
On Error GoTo Err_Кнопка34_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1044) & ChrW(1086) & ChrW(1083) & ChrW(1078) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080)
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка34_Click:
Exit Sub
Err_Кнопка34_Click:
MsgBox Err.Description
Resume Exit_Кнопка34_Click
End Sub
Private Sub Кнопка35_Click()
On Error GoTo Err_Кнопка35_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = ChrW(1054) & ChrW(1057) & ChrW(1042)
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка35_Click:
Exit Sub
Err_Кнопка35_Click:
MsgBox Err.Description
Resume Exit_Кнопка35_Click
End Sub
Формадолжники:
Option Compare Database
Private Sub Кнопка7_Click()
On Error GoTo Err_Кнопка7_Click
Dim stDocName As String
DoCmd.OpenReport [ОтчетСостояниеСклада], acPreview
Exit_Кнопка7_Click:
Exit Sub
Err_Кнопка7_Click:
MsgBox Err.Description
Resume Exit_Кнопка7_Click
End Sub
Private Sub Кнопка8_Click()
On Error GoTo Err_Кнопка8_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1057) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1086) & ChrW(1103) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(1057) & ChrW(1082) & ChrW(1083) & ChrW(1072) & ChrW(1076) & ChrW(1072)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка8_Click:
Exit Sub
Err_Кнопка8_Click: продолжение
–PAGE_BREAK–
MsgBox Err.Description
Resume Exit_Кнопка8_Click
End Sub
Private Sub Кнопка5_Click()
‘ сделать активным поле, в которое нужно ввести дату
Поле1.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm “Календарь”
End Sub
Private Sub Кнопка9_Click()
On Error GoTo Err_Кнопка9_Click
Dim stDocName As String
stDocName = ChrW(1047) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1044) & ChrW(1086) & ChrW(1083) & ChrW(1078) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка9_Click:
Exit Sub
Err_Кнопка9_Click:
MsgBox Err.Description
Resume Exit_Кнопка9_Click
End Sub
ФормаОСВ
Option Compare Database
Private Sub Calendar4_Updated(Code As Integer)
MsgBox Format(Calendar4.Object.Value, «dd/mm/yy»)
ДатаОСВ= Format(Calendar4.Object.Value, «dd/mm/yy»)
End Sub
‘ Изменяет формат отображения даты
Private Sub Form_Open(Cancel As Integer)
Form_ОСВ!ДатаОСВ.Format = «mmmm yyyy»
End Sub
Private Sub Кнопка3_Click()
On Error GoTo Err_Кнопка3_Click
Dim stDocName As String
stDocName = ChrW(1079) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1054) & ChrW(1057) & ChrW(1042) & ChrW(95) & ChrW(1087) & ChrW(1077) & ChrW(1088) & ChrW(1077) & ChrW(1082) & ChrW(1088) & ChrW(1077) & ChrW(1089) & ChrW(1090) & ChrW(1085) & ChrW(1099) & ChrW(1081)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка3_Click:
Exit Sub
Err_Кнопка3_Click:
MsgBox Err.Description
Resume Exit_Кнопка3_Click
End Sub
‘ кнопка вызова формы с календарём
Private Sub Кнопка5_Click()
‘ сделать активным поле, в которое нужно ввести дату
ДатаОСВ.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm «Календарь»
End Sub
Форма остатки
Option Compare Database
Private Sub Кнопка7_Click()
On Error GoTo Err_Кнопка7_Click
Dim stDocName As String
DoCmd.OpenReport [ОтчетСостояниеСклада], acPreview
Exit_Кнопка7_Click:
Exit Sub
Err_Кнопка7_Click:
MsgBox Err.Description
Resume Exit_Кнопка7_Click
End Sub
Private Sub Кнопка8_Click()
On Error GoTo Err_Кнопка8_Click
Dim stDocName As String
stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1057) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1086) & ChrW(1103) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(1057) & ChrW(1082) & ChrW(1083) & ChrW(1072) & ChrW(1076) & ChrW(1072)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка8_Click:
Exit Sub
Err_Кнопка8_Click:
MsgBox Err.Description
Resume Exit_Кнопка8_Click
End Sub
Private Sub Кнопка10_Click()
On Error GoTo Err_Кнопка10_Click
Dim stDocName As String
stDocName = [ЗапросОстатки]
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка10_Click:
Exit Sub
Err_Кнопка10_Click:
MsgBox Err.Description
Resume Exit_Кнопка10_Click
End Sub
Private Sub Кнопка11_Click()
On Error GoTo Err_Кнопка11_Click
Dim stDocName As String
stDocName = ChrW(1047) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)
DoCmd.OpenReport stDocName, acPreview продолжение
–PAGE_BREAK–
Exit_Кнопка11_Click:
Exit Sub
Err_Кнопка11_Click:
MsgBox Err.Description
Resume Exit_Кнопка11_Click
End Sub
Private Sub Кнопка12_Click()
On Error GoTo Err_Кнопка12_Click
Dim stDocName As String
stDocName = ChrW(1044) & ChrW(1080) & ChrW(1072) & ChrW(1075) & ChrW(1088) & ChrW(1072) & ChrW(1084) & ChrW(1084) & ChrW(1072) & ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)
DoCmd.OpenReport stDocName, acPreview
Exit_Кнопка12_Click:
Exit Sub
Err_Кнопка12_Click:
MsgBox Err.Description
Resume Exit_Кнопка12_Click
End Sub
Private Sub Кнопка5_Click()
‘ сделать активным поле, в которое нужно ввести дату
Поле1.SetFocus
‘ открыть форму ввода даты
DoCmd.OpenForm «Календарь»
End Sub
Приложение 2
Запросы:
Клиентское приложение:
Выручка за смену по товарам:
SELECT DateValue(Продажа.Дата) AS Выражение1, Продажа.КодНоменклатуры, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Константы.КодЗаправки
FROM Продажа, Константы
WHERE (((Продажа.Дата)>All (select Начало from Смены Order by Начало desc)))
GROUP BY DateValue(Продажа.Дата), Продажа.КодНоменклатуры, Константы.КодЗаправки;
Выручка по дням по товарам:
SELECT DateValue(Продажа.Дата) AS Выражение1, Номенклатура.Наименование, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость]
FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры
GROUP BY DateValue(Продажа.Дата), Номенклатура.Наименование;
Запрос с разбивкой поклиентам:
SELECT Контрагенты.Наименование, Sum(Продажа.Количество) AS Доза, Sum(Продажа.Стоимость) AS Сумма, Count(Продажа.КодКонтрагента) AS [Кол-во]
FROM Номенклатура INNER JOIN (Контрагенты INNER JOIN Продажа ON Контрагенты.КодКонтрагента = Продажа.КодКонтрагента) ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры
WHERE (((Продажа.Дата)>[Forms]![РеализацияГазаСРазбивкойПоКлиентам]![Поле1] And (Продажа.Дата)
GROUP BY Контрагенты.Наименование;
МатОтчет:
SELECT ЗапросМатОтчетОстатокНач.Наименование, ЗапросМатОтчетОстатокНач.[Остаток(нач)], ЗапросМатОтчетПриход.ПриходОб, ЗапросМатОтчетПродажа.ПродажаОб, ЗапросМатОтчетКон.[Остаток(кон)]
FROM ((ЗапросМатОтчетПриход RIGHT JOIN ЗапросМатОтчетОстатокНач ON ЗапросМатОтчетПриход.Наименование = ЗапросМатОтчетОстатокНач.Наименование) LEFT JOIN ЗапросМатОтчетПродажа ON ЗапросМатОтчетОстатокНач.Наименование = ЗапросМатОтчетПродажа.Наименование) LEFT JOIN ЗапросМатОтчетКон ON ЗапросМатОтчетОстатокНач.Наименование = ЗапросМатОтчетКон.Наименование;
МатОтчет1:
SELECT Номенклатура.Наименование, Sum(Приход.Количество) AS нач
FROM Номенклатура LEFT JOIN Приход ON Номенклатура.КодНоменклатуры=Приход.КодНоменклатуры
WHERE (((Приход.ДатаПрихода)
GROUP BY Номенклатура.Наименование;
МатОтчет2:
SELECT Номенклатура.Наименование, Sum(Продажа.Количество)*(-1) AS нач
FROM Номенклатура LEFT JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры
WHERE (((Продажа.Дата)
GROUP BY Номенклатура.Наименование;
МатОтчет3:
SELECT Номенклатура.Наименование, Sum(Приход.Количество) AS [Приход(кон)]
FROM Номенклатура LEFT JOIN Приход ON Номенклатура.КодНоменклатуры = Приход.КодНоменклатуры
WHERE (((Приход.ДатаПрихода)
GROUP BY Номенклатура.Наименование;
МатОтчет4:
SELECT Номенклатура.Наименование, Sum(Продажа.Количество)*(-1) AS [Расход(кон)]
FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры
WHERE (((Продажа.Дата)
GROUP BY Номенклатура.Наименование;
МатОтчет контрагенты:
SELECT ЗапросМатОтчет3.Наименование, (ЗапросМатОтчет3.[Приход(кон)]+ЗапросМатОтчет4.[Расход(кон)]) AS [Остаток(кон)]
FROM ЗапросМатОтчет3 INNER JOIN ЗапросМатОтчет4 ON ЗапросМатОтчет3.Наименование=ЗапросМатОтчет4.Наименование;
МатОтчет остаток начальный:
SELECT ЗапросМатОтчет1.Наименование, Sum(ЗапросМатОтчет1.нач+ЗапросМатОтчет2.нач) AS [Остаток(нач)]
FROM ЗапросМатОтчет1 LEFT JOIN ЗапросМатОтчет2 ON ЗапросМатОтчет1.Наименование = ЗапросМатОтчет2.Наименование
GROUP BY ЗапросМатОтчет1.Наименование;
МатОтчет приход:
SELECT Номенклатура.Наименование, Sum(Приход.Количество) AS ПриходОб
FROM Номенклатура LEFT JOIN Приход ON Номенклатура.КодНоменклатуры=Приход.КодНоменклатуры
WHERE (((Приход.ДатаПрихода)>=Forms! МатериальныйОтчет! Поле1) And ((Приход.ДатаПрихода)
GROUP BY Номенклатура.Наименование;
МатОтчет продажа:
SELECT Номенклатура.Наименование, Sum(Продажа.Количество) AS ПродажаОб
FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры
WHERE (((Продажа.Дата)>=Forms! МатериальныйОтчет! Поле1) And ((Продажа.Дата)
GROUP BY Номенклатура.Наименование;
Остатки:
SELECT КодЗаправкиAS K1, Alias.кодНоменклатурыAS N, now() AS D, Sum(K) AS S
FROM Константы, [SELECT приход.кодНоменклатуры, sum(количество) as K
from (приход INNER JOIN Номенклатура on приход.КодНоменклатуры=Номенклатура.КодНоменклатуры) продолжение
–PAGE_BREAK–
where Номенклатура.Товар=True
group by приход.кодНоменклатуры
union (SELECT продажа.кодНоменклатуры, sum(количество)*(-1) as K from (продажа INNER JOIN Номенклатура on продажа.КодНоменклатуры=Номенклатура.КодНоменклатуры)
where Номенклатура.Товар=True
group by продажа.кодНоменклатуры) ]. AS Alias
GROUP BY КодЗаправки, Alias.кодНоменклатуры;
Продажа операторами:
SELECT Сотрудники.Фамилия, DateValue(Продажа.Дата) AS Выражение1, Sum(Продажа.Количество) AS [Количество номен-ры], Count(Продажа.Количество) AS Количество
FROM Сотрудники INNER JOIN (Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры) ON Сотрудники.КодСотрудника=Продажа.КодСотрудника
WHERE (Forms! ПродажаОператорами! ПолеСоСписком10=Номенклатура.КодНоменклатуры) And (((Продажа.Дата)>Forms! ПродажаОператорами! Поле1 And (Продажа.Дата)
GROUP BY Сотрудники.Фамилия, DateValue(Продажа.Дата);
Реализация газа общий:
SELECT ЗапросРеализацияГазаПриход.Приход AS [Приход газа], ЗапросРеализацияГазаПродажа.Продажа AS [Продажа газа], РГКС.[Кон остаток], РГНС.[Нач остаток]
FROM ЗапросРеализацияГазаПриход, ЗапросРеализацияГазаПродажа, РГКС, РГНС;
Реализация газа приход:
SELECT iif((Sum(количество)>0),Sum(количество),0) AS Приход
FROM Номенклатура INNER JOIN приход ON Номенклатура.КодНоменклатуры=приход.КодНоменклатуры
WHERE (((приход.ДатаПрихода)>=(SELECT Смены.Начало FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) ) And (приход.ДатаПрихода)
Реализация газа продажа:
SELECT Iif((Sum(количество)>0),Sum(количество),0) AS Продажа
FROM Номенклатура INNER JOIN продажа ON Номенклатура.КодНоменклатуры=продажа.КодНоменклатуры
WHERE (((продажа.Дата)>=(SELECT Смены.Начало FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) ) And (продажа.Дата)
Реализация газа:
SELECT Switch(Продажа.Безнал=0,«НАЛИЧНЫЕ», Продажа.Безнал=-1,«БЕЗНАЛ») AS Оплата, Номенклатура.Цена, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Count(Продажа.Количество) AS [Count-Количество]
FROM Номенклатура LEFT JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры
WHERE (((Номенклатура.Наименование)=«Газ») And ((Продажа.КодСмены)=Forms! РеализацияГаза! ПолеСоСписком0))
GROUP BY Номенклатура.Цена, Продажа.Безнал, Продажа.КодСмены;
Сменный отчет:
SELECT Номенклатура.Наименование, Sum(Продажа.Количество) AS [Сум-Количество], Sum(Продажа.Стоимость) AS [Сум-Стоимость]
FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры
WHERE (((Продажа.Дата)>(select max(Начало)from Смены)))
GROUP BY Номенклатура.Наименование;
Сменный отчет1:
SELECT Смены.Начало, Смены.Окончание, Сотрудники.Фамилия, Номенклатура.Наименование, Контрагенты.Безнал, Контрагенты.Наименование, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость]
FROM Сотрудники INNER JOIN ((Контрагенты INNER JOIN (Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры) ON Контрагенты.КодКонтрагента = Продажа.КодКонтрагента) INNER JOIN Смены ON Продажа.КодСмены = Смены.КодСмены) ON Сотрудники.КодСотрудника = Смены.КодСотрудника
WHERE (((Продажа.КодСмены)=[Forms]![СменныйОтчет]![ПолеСоСписком0]))
GROUP BY Смены.Начало, Смены.Окончание, Сотрудники.Фамилия, Номенклатура.Наименование, Контрагенты.Безнал, Контрагенты.Наименование;
Состояние склада:
SELECT Номенклатура.Наименование AS Наименование, Номенклатура.Цена AS Цена, Sum([Кол-во]) AS Склад, Номенклатура.Цена*Sum([Кол-во]) AS Сумма
FROM [SELECT Номенклатура.Наименование, Номенклатура.Цена, sum(Приход.Количество) as [Кол-во]
FROM (Номенклатура INNER JOIN Приход ON Номенклатура.КодНоменклатуры = Приход.КодНоменклатуры)
WHERE (((Номенклатура.Товар)=Yes)) and (Приход.ДатаПрихода
group by Номенклатура.Наименование, Номенклатура.Цена
UNION SELECT Номенклатура.Наименование, Номенклатура.Цена, sum(Продажа.Количество)*(-1) as [Кол-во]
FROM (Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры)
WHERE (((Номенклатура.Товар)=Yes)) and (Продажа.Дата
group by Номенклатура.Наименование, Номенклатура.Цена]. AS Alias
GROUP BY Номенклатура.Наименование, Номенклатура.Цена;
Последняя смена:
SELECT Max(Смены.Начало) AS [Max-Начало], Сотрудники.Фамилия
FROM Сотрудники INNER JOIN Смены ON Сотрудники.КодСотрудника = Смены.КодСотрудника
GROUP BY Сотрудники.Фамилия;
РГНС:
SELECT Sum([Нач смены]) AS [Нач остаток]
FROM [SELECT Sum(Приход.Количество) AS [Нач смены]
FROM Номенклатура INNER JOIN Приход ON Номенклатура.КодНоменклатуры = Приход.КодНоменклатуры
where (((Номенклатура.Наименование)=«Газ») AND ((Приход.ДатаПрихода)
union
SELECT Sum(Продажа.Количество)*(-1) AS [Нач смены]
FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры
where (((Номенклатура.Наименование)=«Газ») AND ((Продажа.Дата)
]. AS Aias1;
РГКС:
SELECT Sum([%$##@_Alias].[Нач смены]) AS [Кон остаток]
FROM [SELECT Sum(Приход.Количество) AS [Нач смены]
FROM Номенклатура INNER JOIN Приход ON Номенклатура.КодНоменклатуры = Приход.КодНоменклатуры
where (((Номенклатура.Наименование)=«Газ») AND ((Приход.ДатаПрихода)
UNION SELECT Sum(Продажа.Количество)*(-1) AS [Нач смены]
FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры
where (((Номенклатура.Наименование)=«Газ») AND ((Продажа.Дата)
]. AS [%$##@_Alias];
Цена номенклатуры:
SELECT Номенклатура.Цена
FROM Номенклатура
WHERE (((Номенклатура.КодНоменклатуры)=[Forms]![Продажа]![ПолеСоСписком12]));
Серверное приложение:
Должники:
SELECT Контрагенты.Наименование, Sum(РасчетыКонтрагенты.Сумма)*(-1) AS [Сумма долга] продолжение
–PAGE_BREAK–
FROM Контрагенты INNER JOIN РасчетыКонтрагенты ON Контрагенты.КодКонтрагента = РасчетыКонтрагенты.КодКонтрагента
WHERE (((РасчетыКонтрагенты.Дата)
GROUP BY Контрагенты.Наименование
HAVING (((Sum(РасчетыКонтрагенты.Сумма))
Должники текущие:
SELECT Контрагенты.Наименование, Sum(РасчетыКонтрагенты.Сумма)*(-1) AS [Сумма долга]
FROM Контрагенты INNER JOIN РасчетыКонтрагенты ON Контрагенты.КодКонтрагента = РасчетыКонтрагенты.КодКонтрагента
GROUP BY Контрагенты.Наименование
HAVING (((Sum(РасчетыКонтрагенты.Сумма))
ОСВ:
PARAMETERS FORMS![ОСВ]![ДАТАОСВ] DateTime;
SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма), «3Обороты Дт»
FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента
where (Дата>=DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ]), 1)) and (Дата
group by Контрагенты.Наименование
having sum(РасчетыКонтрагенты.Сумма)>=0
union
SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма)*(-1),«4Обороты Кт»
FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента
where (Дата>=DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ]), 1)) and (Дата
group by Контрагенты.Наименование
having sum(РасчетыКонтрагенты.Сумма)
union
SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма), «1Начало Дт»
FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента
where (Дата
group by Контрагенты.Наименование
having sum(РасчетыКонтрагенты.Сумма)>=0
union
SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма)*(-1),«2Начало Кт»
FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента
where (Дата
group by Контрагенты.Наименование
having sum(РасчетыКонтрагенты.Сумма)
union
SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма), «5Конец Дт»
FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента
where (Дата
group by Контрагенты.Наименование
having sum(РасчетыКонтрагенты.Сумма)>=0
UNION SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма)*(-1),«6Конец Кт»
FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента
where (Дата
group by Контрагенты.Наименование
having sum(РасчетыКонтрагенты.Сумма)
ОСВперекрестный:
TRANSFORM Sum(запросОСВ.Expr1001) AS [Sum-Expr1001]
SELECT запросОСВ.НаименованиеAS Контрагенты
FROM запросОСВ
GROUP BY запросОСВ.НАименование
PIVOT запросОСВ.Expr1002;
Остатки:
SELECT Районы.Название, Номенклатура.Наименование, Остатки.Количество, Остатки.Дата
FROM Районы INNER JOIN (Номенклатура INNER JOIN (запрОстатки2 INNER JOIN Остатки ON (запрОстатки2.[Max-Дата] = Остатки.Дата) AND (запрОстатки2.КодЗаправки = Остатки.КодЗаправки) AND (запрОстатки2.КодНоменклатуры = Остатки.КодНоменклатуры)) ON Номенклатура.КодНоменклатуры = Остатки.КодНоменклатуры) ON Районы.КодРайона = Остатки.КодЗаправки;
Остатки1:
SELECT Районы.Название, Номенклатура.Наименование, Остатки.Количество, Остатки.Дата
FROM Районы INNER JOIN (Номенклатура INNER JOIN (запрОстатки3 INNER JOIN Остатки ON (запрОстатки3.[Max-Дата] = Остатки.Дата) AND (запрОстатки3.КодЗаправки = Остатки.КодЗаправки) AND (запрОстатки3.КодНоменклатуры = Остатки.КодНоменклатуры)) ON Номенклатура.КодНоменклатуры = Остатки.КодНоменклатуры) ON Районы.КодРайона = Остатки.КодЗаправки
WHERE (((Номенклатура.Наименование) Like «Г*»));
Остатки2:
PARAMETERS [Forms]![Остатки]![Поле1] DateTime;
SELECT Остатки.КодНоменклатуры, Остатки.КодЗаправки, Max(Остатки.Дата) AS [Max-Дата]
FROM Остатки
WHERE (((Остатки.Дата)
GROUP BY Остатки.КодНоменклатуры, Остатки.КодЗаправки;
Остатки3:
SELECT Остатки.КодНоменклатуры, Остатки.КодЗаправки, Max(Остатки.Дата) AS [Max-Дата]
FROM Остатки
WHERE (((Остатки.Дата)
GROUP BY Остатки.КодНоменклатуры, Остатки.КодЗаправки;
Расчеты контрагенты:
TRANSFORM Sum(РасчетыКонтрагенты.Сумма) AS [Sum-Сумма]
SELECT РасчетыКонтрагенты.КодКонтрагента, Sum(РасчетыКонтрагенты.Сумма) AS [Итоговое значение Сумма]
FROM РасчетыКонтрагенты
GROUP BY РасчетыКонтрагенты.КодКонтрагента
PIVOT Format([Дата],«mmm»);