Разработка АИС учета оргтехники

Общая характеристика объекта управления. Организационная диаграмма, схема информационных потоков предприятия. Разработка базы данных средствами MS Access в сфере торговой деятельности на примере фирмы "НИКС". Применение Delphi 7 для программирования.

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

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

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

Рисунок 2.28 - Информация о менеджерах

Вкладка «Справочник производителей» отображает информацию о производителях (рис. 2.29).

Рисунок 2.29 - Информация производителях товара

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

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

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

Рисунок 2.30 - Справочник категорий

2.5.2 Схема взаимосвязи программных модулей и ее описание

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

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

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

Структурная схема программного комплекса для данного дипломного проекта приведена на рисунке 2.31.

Рисунок 2.31 - Структурная схема программного комплекса

Глава 3. Охрана труда и техника безопасности

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

Многие сотрудники ВЦ связаны с воздействием таких психофизических факторов, как умственное перенапряжение, перенапряжение зрительных и слуховых анализаторов, монотонность труда, эмоциональные перегрузки. Воздействие указанных неблагоприятных факторов приводит к снижению работоспособности, вызванное развивающимся утомлением. Появление и развитие утомления связано с изменениями, возникающими во время работы в центральной нервной системе, с тормозными процессами в коре головного мозга. Например, сильный шум вызывает трудности с распознанием цветовых сигналов, снижает быстроту восприятия цвета, остроту зрения, зрительную адаптацию, нарушает восприятие визуальной информации, уменьшает на 5 - 12 % производительность труда. Длительное воздействие шума с уровнем звукового давления 90 дБ снижает производительность труда на 30 - 60 %.

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

Электрические установки, к которым относится практически все оборудование ЭВМ, представляют для человека большую потенциальную опасность, так как в процессе эксплуатации или проведении профилактических работ человек может коснуться частей, находящихся под напряжением. Специфическая опасность электроустановок: токоведущие проводники, корпуса стоек ЭВМ и прочего оборудования, оказавшегося под напряжением в результате повреждения (пробоя) изоляции, не подают каких-либо сигналов, которые предупреждают человека об опасности. Реакция человека на электрический ток возникает лишь при протекании последнего через тело человека. Исключительно важное значение для предотвращения электротравматизма имеет правильная организация обслуживания действующих электроустановок ВЦ, проведения ремонтных, монтажных и профилактических работ. При этом, под правильной организацией понимается строгое выполнение ряда организационных и технических мероприятий и средств, установленных действующими “Правилами технической эксплуатации электроустановок потребителей и правила техники безопасности при эксплуатации электроустановок потребителей” (ПТЭ и ПТБ потребителей) и “Правила установки электроустановок” (ПУЭ) В зависимости от категории помещения необходимо принять определенные меры, обеспечивающие достаточную электробезопасность при эксплуатации и ремонте электрооборудования. Так, в помещениях с повышенной опасностью электроинструменты, переносные светильники должны быть выполнены с двойной изоляцией или напряжение питания их не должно превышать 42 В. В ВЦ к таким помещениям могут быть отнесены помещения машинного зала, помещения для размещения сервисной и периферийной аппаратуры. В особо опасных же помещениях напряжение питания переносных светильников не должно превышать 12 В, а работа с электротранспортируемым напряжением не выше 42 В разрешается только с применением СИЗ (диэлектрических перчаток, ковриков и т.п.). Работы без снятия напряжения на токоведущих частях и вблизи них, работы, проводимые непосредственно на этих частях или при приближении к ним на расстояние менее установленного ПЭУ. К этим работам можно отнести работы по наладке отдельных узлов, блоков. При выполнении такого рода работ в электроустановках до 1000 В необходимо применение определенных технических и организационных мер, таких как: ограждения расположенные вблизи рабочего места и других токоведущих частей, к которым возможно случайное прикосновение; работа в диэлектрических перчатках или стоя на диэлектрическом коврике; применение инструмента с изолирующими рукоятками, при отсутствии такого инструмента следует пользоваться диэлектрическими перчатками. Работы этого вида должны выполнятся не менее чем двумя работниками.

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

Помещения ВЦ, их размеры (площадь, объем) должны в первую очередь соответствовать количеству работающих и размещаемому в них комплекту технических средств. В них предусматриваются соответствующие параметры температуры, освещения, чистоты воздуха, обеспечивают изоляцию, от производственных шумов и т.п. Для обеспечения нормальных условий труда санитарные нормы СН 245-71 устанавливают на одного работающего, объем производственного помещения не менее 15 м3, площадь помещения выгороженного стенами или глухими перегородками не менее 4,5 м3.

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

Высота зала над технологическим полом до подвесного потолка должна быть 3 - 3,5 м. Расстояние подвесным и основным потолками при этом должно быть 0,5 - 0,8 м. Высоту подпольного пространства принимают равной 0,2 - 0,6 м. В ВЦ, как правило, применяется боковое естественное освещение. Рабочие комнаты и кабинеты должны иметь естественное освещение. В остальных помещениях допускается искусственное освещение. В тех случаях, когда одного естественного освещения не хватает, устанавливается совмещенное освещение. При этом дополнительное искусственное освещение применяется не только в темное, но и в светлое время суток. Искусственное освещение по характеру выполняемых задач делится на рабочее, аварийное, эвакуационное. Рациональное цветовое оформление помещения направленно на улучшение санитарно-гигиенических условий труда, повышение его производительности и безопасности. Окраска помещений ВЦ влияет на нервную систему человека, его настроение и, в конечном счете, на производительность труда. Основные производственные помещения целесообразно окрашивать в соответствии с цветом технических средств. Освещение помещения и оборудования должно быть мягким, без блеска.

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

управление торговый программирование

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

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

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

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

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

Автоматизированная система управления или АСУ - комплекс аппаратных и программных средств, предназначенный для управления различными процессами в рамках технологического процесса, производства, предприятия. АСУ применяются в различных отраслях промышленности, энергетике, транспорте и т.п. Термин «автоматизированная», в отличие от термина «автоматическая» подчёркивает сохранение за человеком-оператором некоторых функций, либо наиболее общего, целеполагающего характера, либо не поддающихся автоматизации. АСУ с Системой поддержки принятия решений (СППР), являются основным инструментом повышения обоснованности управленческих решений.

Важнейшая задача АСУ - повышение эффективности управления объектом на основе роста производительности труда и совершенствования методов планирования процесса управления.

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

Несомненно, к достоинствам разработанной программы следует отнести следующие возможности:

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

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

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

Следовательно, данная программа выполняет все необходимые функции и может быть использована для непосредственного применения компьютерным магазином ЗАО «Компьютерная Техника».

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

В данной дипломной работе мною разработана и реализована база данных средствами MS Access в сфере торговой деятельности на примере фирмы «НИКС», приложение разработано в Delphi 7 (императивный структурированный объектно-ориентированный язык программирования со строгой статической типизацией переменных).

Список использованной литературы

1. Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. СПБ.: Питер, 2012.

2. Зелковиц М., Шоу А. Принципы разработки программного обеспечения.- М.: Мир, 2012г.

3. Степановаой Е.Е., «Информационное обеспечение управленческой деятельности» М. 2013г.

4. Золатова С.И., «Практикум по Access» С-П. 2012г.

5. Бураков П.В., Петров В.Ю. Введение в системы баз данных. СПб.: Питер, 2010. - 130 с.

6. Гайдамакин Н.А. Автоматизированные информационные системы, базы и банки данных. М.: Гелиос АРВ, 2012. - 368 с.: ил.

7. Грибачев К.Г. Delphi и Model Driven Architecture. Разработка приложений баз данных. СПб.: Питер, 2014. - 348 с.: ил.

8. Диго С.М. Базы данных. Проектирование и создание. Учебно-методический комплекс. М.: ЕАОИ, 2008. - 171 с.

9. Избачков Ю.С., Петров В.Н. Информационные системы. СПб.: Питер, 2010. - 656 с.: ил.

10. Ирина Харитонова, Лада Рудикова: MicrosoftOfficeAccess 2016;

11. Кен Блюттман, Уайн Фриз: Анализ данных в Access. Сборник рецептов.

12. Кузнецов С.Д. Основы баз данных. М.: БИНОМ, 2010. - 484 с.: ил.

13. Марков А.С., Лисовский К.Ю. Базы данных. Введение в теорию и методологию: Учебник. М.: Финансы и статистика, 2006. - 512 с.: ил.

14. О.В. Смирнова: Access 2016 на практике.

15. Петров В.Н. Информационные системы. СПб.: Питер, 2010. - 668 с.: ил.

16. Стивен Р. Программирование баз данных. М.: БИНОМ, 2011. - 384 с.: ил.

17. Фуфаев Э.В. Базы данных: учеб. пособие для студентов СПО. М.: Академия, 2010. - 320 с.

Приложение

unit Unit_tr;

interface

uses

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

Dialogs, Menus, StdCtrls, Buttons, Grids, DBGrids, XPMan, ShellApi,

ComCtrls, ToolWin, ImgList, ExtCtrls, DBCtrls, Unit_class, ComObj;

type

TfrmMain = class(TForm)

MainMenu1: TMainMenu;

mnuAbout: TMenuItem;

GroupBox1: TGroupBox;

XPManifest1: TXPManifest;

gridAuto: TDBGrid;

mnuCategory: TMenuItem;

mnuCountry: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

ControlBar1: TControlBar;

ToolBar1: TToolBar;

ImageList1: TImageList;

ToolBtnCat: TToolButton;

N2: TMenuItem;

ToolBtnCountry: TToolButton;

ToolButton4: TToolButton;

ToolBtnPrint: TToolButton;

mnuPrint: TMenuItem;

ToolButton6: TToolButton;

ToolBtnTovAdd: TToolButton;

ToolBtnTovEdit: TToolButton;

ToolBtnTovDel: TToolButton;

N3: TMenuItem;

mnuAdd: TMenuItem;

mnuEdit: TMenuItem;

mnuDelete: TMenuItem;

GroupBox2: TGroupBox;

Label2: TLabel;

editTovName: TEdit;

checkCat: TCheckBox;

btnSearch: TButton;

cbCountry: TComboBox;

checkCountry: TCheckBox;

cbCat: TComboBox;

Label1: TLabel;

editPrice: TEdit;

editCount: TEdit;

cbCount: TComboBox;

Label4: TLabel;

cbPrice: TComboBox;

DBImage1: TDBImage;

N4: TMenuItem;

mnuSortCat: TMenuItem;

mnuSortName: TMenuItem;

mnuSortPrice: TMenuItem;

mnuSortCount: TMenuItem;

mnuSortProizvod: TMenuItem;

N13: TMenuItem;

mnuOrderAsc: TMenuItem;

mnuOrderDesc: TMenuItem;

mnuSortKod: TMenuItem;

mnuPrintSelect: TMenuItem;

mnuPrintAll: TMenuItem;

mnuClient: TMenuItem;

mnuManager: TMenuItem;

N1: TMenuItem;

N12: TMenuItem;

N14: TMenuItem;

checkManager: TCheckBox;

cbManager: TComboBox;

Cgjcjsjgkfns1: TMenuItem;

N15: TMenuItem;

GroupBox3: TGroupBox;

gridOrders: TDBGrid;

GroupBox4: TGroupBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

gridBasket: TDBGrid;

btnBasketAdd: TBitBtn;

btnBasketDelete: TBitBtn;

mnuOutExcel: TMenuItem;

Label3: TLabel;

editKod: TEdit;

popupBasketAdd: TPopupMenu;

N16: TMenuItem;

popupBasketDel: TPopupMenu;

N17: TMenuItem;

btnOutBasketExcel: TBitBtn;

popupSort: TPopupMenu;

N18: TMenuItem;

N22: TMenuItem;

N23: TMenuItem;

N24: TMenuItem;

N25: TMenuItem;

N26: TMenuItem;

N27: TMenuItem;

Label5: TLabel;

procedure mnuCategoryClick(Sender: TObject);

procedure mnuCountryClick(Sender: TObject);

procedure mnuAboutClick(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure mnuAddClick(Sender: TObject);

procedure mnuEditClick(Sender: TObject);

procedure mnuDeleteClick(Sender: TObject);

procedure checkCountryClick(Sender: TObject);

procedure checkCatClick(Sender: TObject);

procedure btnSearchClick(Sender: TObject);

procedure gridAutoDblClick(Sender: TObject);

procedure gridAutoDrawColumnCell(Sender: TObject; const Rect: TRect;

DataCol: Integer; Column: TColumn; State: TGridDrawState);

procedure mnuSortCatClick(Sender: TObject);

procedure mnuSortNameClick(Sender: TObject);

procedure mnuOrderAscClick(Sender: TObject);

procedure mnuOrderDescClick(Sender: TObject);

procedure sortExec();

procedure mnuSortCountClick(Sender: TObject);

procedure mnuSortPriceClick(Sender: TObject);

procedure mnuSortProizvodClick(Sender: TObject);

procedure mnuSortKodClick(Sender: TObject);

procedure mnuPrintSelectClick(Sender: TObject);

procedure mnuPrintAllClick(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure mnuClientClick(Sender: TObject);

procedure mnuManagerClick(Sender: TObject);

procedure checkManagerClick(Sender: TObject);

procedure editTovNameDblClick(Sender: TObject);

procedure editCountDblClick(Sender: TObject);

procedure editPriceDblClick(Sender: TObject);

procedure cbManagerClick(Sender: TObject);

procedure cbCatClick(Sender: TObject);

procedure editTovNameChange(Sender: TObject);

procedure cbCountryClick(Sender: TObject);

procedure editPriceChange(Sender: TObject);

procedure cbPriceClick(Sender: TObject);

procedure cbCountClick(Sender: TObject);

procedure editCountChange(Sender: TObject);

procedure Cgjcjsjgkfns1Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure btnBasketAddClick(Sender: TObject);

procedure btnBasketDeleteClick(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure mnuOutExcelClick(Sender: TObject);

procedure editKodChange(Sender: TObject);

procedure editKodKeyPress(Sender: TObject; var Key: Char);

procedure editKodDblClick(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure btnOutBasketExcelClick(Sender: TObject);

procedure N27Click(Sender: TObject);

procedure N26Click(Sender: TObject);

procedure N25Click(Sender: TObject);

procedure N24Click(Sender: TObject);

procedure N23Click(Sender: TObject);

procedure N22Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

procedure setLnkOrdersBasket();

end;

var

frmMain: TfrmMain;

IndexCat: array of TMyIndex;

IndexManager: array of TMyIndex;

IndexCountry: array of TMyIndex;

// Порядок сортировки

orderBy:String;

currSort:String;

implementation

uses UnitDM, Unit_editTovars, Unit_country, Unit_Category,

Unit_report_selected, Unit_report_all, Unit_client, Unit_manager,

Unit_pay, Unit_statusOrder, Unit_order, Unit_basket_edit;

{$R *.dfm}

procedure TfrmMain.mnuCategoryClick(Sender: TObject);

begin

frmCategory.ShowModal;

end;

procedure TfrmMain.mnuCountryClick(Sender: TObject);

begin

frmCountry.ShowModal;

end;

procedure TfrmMain.mnuAboutClick(Sender: TObject);

begin

MessageBoxA(Handle, 'Программа продаж компьютерных комплектующих', 'О программе', 0 + 64);

end;

procedure TfrmMain.N8Click(Sender: TObject);

//В FileName передаётся полный путь к файлу для запуска

Function StartApplication(const PathFileName: String): boolean;export;StdCAll;

{

StartApplication(ExpandFileName('файл или не полный путь к файлу'));

Функция получения полного пути к файлу

}

var

szFile: array[0..MAX_PATH] of Char;

szCmd : String;

begin

//Передаём данные из константы FileName типа String в массив szFile типа Char

StrPCopy(szFile, PathFileName);

begin

//Запускаем интерпретатор командной строки и получаем ценность переменной

//окружения ComSpec

szCmd:= '/c call ' + '"'+szFile+'"' + ' >> NUL';

if (GetEnvironmentVariable('ComSpec',szFile, MAX_PATH) <> 0) and

(ShellExecute(0,Nil,szFile,PChar(szCmd),Nil,SW_HIDE) > 32) Then

begin

Result:= True;

Exit;

end;

end;

Result:= False;

end;

var

Path:String;

begin

Path:=ExtractFilePath(Application.ExeName) + 'DOCS\index.html';

if not FileExists(Path) then

Begin

MessageBoxA(Handle, PChar('Файл справки "' + Path + '" не найден!'),

'Справочная система', 0+64);

Exit;

end;

StartApplication(Path);

end;

procedure TfrmMain.mnuAddClick(Sender: TObject);

begin

if DMAuto.tblTovars.CanModify then

begin

DMAuto.tblTovars.Append;

frmTovarEdit.ShowModal;

end

else

MessageBoxA(Handle, 'Нельзя модифицировать данные', 'Ошибка', 0 + 64);

end;

procedure TfrmMain.mnuEditClick(Sender: TObject);

begin

// Если нет записей, то делаем выход из процедуры

if DMAuto.tblTovars.RecordCount = 0 then

begin

MessageBox(Handle, 'Отсутствуют данные для модификации', 'Сообщение', 0 + 64);

Exit;

end;

if DMAuto.tblTovars.CanModify then

begin

DMAuto.tblTovars.Edit;

frmTovarEdit.ShowModal;

end

else

MessageBoxA(Handle, 'Нельзя модифицировать данные', 'Ошибка', 0 + 64);

end;

procedure TfrmMain.mnuDeleteClick(Sender: TObject);

begin

// Если нет записей, то делаем выход из процедуры

if DMAuto.tblTovars.RecordCount = 0 then

begin

MessageBox(Handle, 'Отсутствуют данные для модификации', 'Сообщение', 0 + 64);

Exit;

end;

if Application.MessageBox(PChar('Вы действительно хотите удалить товар?'), 'Удаление',

MB_YESNO) = IDYES then

DMAuto.tblTovars.Delete;

end;

procedure TfrmMain.checkCountryClick(Sender: TObject);

var

i:Integer;

maxRec:Integer;

strName: String;

begin

// Очистка списка производителей

cbCountry.Items.Clear;

// По умолчанию список заблокирован

cbCountry.Enabled := false;

if TCheckBox(Sender).Checked then

begin

maxRec := DmAuto.tblCountry.RecordCount;

// Выход, если нет категорий

if maxRec = 0 then

begin

TCheckBox(Sender).Checked := false;

exit;

end;

// Сначала обнуляем

setLength(IndexCountry, 0);

setLength(IndexCountry, maxRec);

// Заполнение списка значениями из категорий

// Переход на первую запись в таблице

DmAuto.tblCountry.First;

for i := 0 to maxRec - 1do

begin

// Сохраняем индекс текущей записи в объект TMyIndex

IndexCountry[i] := TMyIndex.Create;

IndexCountry[i].setKey(DmAuto.tblCountrycountry_id.AsInteger);

// Имя элемента в списке

strName := DmAuto.tblCountrycountry.AsString;

// Добавление объяекта в список

cbCountry.Items.AddObject(strName, IndexCountry[i]);

// Удаление текущего объекта

// Переход к следующей записи в таблице

DmAuto.tblCountry.Next;

end;

cbCountry.ItemIndex := 0;

// Делаем доступным список

cbCountry.Enabled := true;

end;

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.checkCatClick(Sender: TObject);

var

i:Integer;

maxRec:Integer;

strName: String;

begin

// Очистка списка категорий

cbCat.Items.Clear;

// По умолчанию список заблокирован

cbCat.Enabled := false;

if TCheckBox(Sender).Checked then

begin

maxRec := DmAuto.tblCategory.RecordCount;

// Выход, если нет категорий

if maxRec = 0 then

begin

TCheckBox(Sender).Checked := false;

exit;

end;

// Сначала обнуляем

setLength(IndexCat, 0);

setLength(IndexCat, maxRec);

// Заполнение списка значениями из категорий

// Переход на первую запись в таблице

DmAuto.tblCategory.First;

for i := 0 to maxRec - 1do

begin

// Сохраняем индекс текущей записи в объект TMyIndex

IndexCat[i] := TMyIndex.Create;

IndexCat[i].setKey(DmAuto.tblCategorycat_id.AsInteger);

// Имя элемента в списке

strName := DmAuto.tblCategorycatName.AsString;

// Добавление объяекта в список

cbCat.Items.AddObject(strName, IndexCat[i]);

// Удаление текущего объекта

// Переход к следующей записи в таблице

DmAuto.tblCategory.Next;

end;

cbCat.ItemIndex := 0;

// Делаем доступным список

cbCat.Enabled := true;

end;

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.btnSearchClick(Sender: TObject);

var

Index:TMyIndex;

strKey:String;

strFilter:String;

andAdd:String;

operand: String;

begin

andAdd := '';

strFilter := '';

{Фильтрация по категориям}

if checkCat.Checked then

begin

Index := TMyIndex(cbCat.Items.Objects[cbCat.ItemIndex]);

strKey := IntToStr(Index.getKey());

strFilter := strFilter + andAdd + 'cat_id='''+ strKey + '''';

andAdd := ' AND ';

end;

{Фильтрация по менеджерам}

if checkManager.Checked then

begin

Index := TMyIndex(cbManager.Items.Objects[cbManager.ItemIndex]);

strKey := IntToStr(Index.getKey());

strFilter := strFilter + andAdd + 'manager_id='''+ strKey + '''';

andAdd := ' AND ';

end;

{Фильтрация по коду товара}

if editKod.Text <> '' then

begin

strFilter := strFilter + andAdd + 'tovar_id=''' + editKod.Text + '''';

andAdd := ' AND ';

end;

{Фильтрация по производителям}

if checkCountry.Checked then

begin

Index := TMyIndex(cbCountry.Items.Objects[cbCountry.ItemIndex]);

strKey := IntToStr(Index.getKey());

strFilter := strFilter + andAdd + 'country_id='''+ strKey + '''';

andAdd := ' AND ';

end;

{Фильтрация по названию товара}

if editTovName.Text <> '' then

begin

strFilter := strFilter + andAdd + 'tovName LIKE '''+ editTovName.Text + '%''';

andAdd := ' AND ';

end;

{Фильтрация по цене}

if editPrice.Text <> '' then

begin

operand := cbPrice.Text;

strFilter := strFilter + andAdd + 'price' + operand + '''' + editPrice.Text + '''';

andAdd := ' AND ';

end;

{Фильтрация по количеству}

if editCount.Text <> '' then

begin

operand := cbCount.Text;

strFilter := strFilter + andAdd + 'counts' + operand + '''' + editCount.Text + '''';

andAdd := ' AND ';

end;

// Отключение фильтра

DmAuto.tblTovars.Filtered := false;

// Если есть условия для фильтрации, то выполняем данное действие

if strFilter <> '' then

begin

DmAuto.tblTovars.Filter := strFilter;

DmAuto.tblTovars.Filtered := true;

end;

{MessageBoxA(Handle, PChar(strKey), '', 0);}

end;

procedure TfrmMain.gridAutoDblClick(Sender: TObject);

var

id: String;

filterAuto: String;

filtredAuto: Boolean;

myFilter: String;

begin

// Выходим, если нет записей

if DmAuto.tblTovars.RecordCount < 1 then

exit;

// Сохранение предыдущего фильтра

filterAuto := DmAuto.tblTovars.Filter;

filtredAuto := DmAuto.tblTovars.Filtered;

// ИД текущей записи

id := DmAuto.tblTovarstovar_id.asString;

// Выбор только выдленной записи

myFilter := 'tovar_id='''+ id + '''';

DmAuto.tblTovars.Filter := myFilter;

DmAuto.tblTovars.Filtered := true;

{MessageBoxA(Handle, PChar(DmAuto.tblAutoauto_id.AsString), '', 0);}

// Показываем отчет

frmRepSelect := TfrmRepSelect.Create(Owner);

frmRepSelect.repSelect.PreviewModal;

frmRepSelect.Free;

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

DmAuto.tblTovars.Filtered := false;

DmAuto.tblTovars.Filter := filterAuto;

DmAuto.tblTovars.Filtered := filtredAuto;

// Перемещение к первой записи

DmAuto.tblTovars.First;

end;

procedure TfrmMain.gridAutoDrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumn;

State: TGridDrawState);

begin

drawColumnCell(Sender, Rect, DataCol, Column, State);

end;

procedure TfrmMain.mnuSortCatClick(Sender: TObject);

begin

{Сортировка по идентификатору каталога}

currSort := 'cat_id';

sortExec();

end;

procedure TfrmMain.mnuSortNameClick(Sender: TObject);

begin

{Сортировка по названию товара}

currSort := 'tovName';

sortExec();

end;

procedure TfrmMain.mnuOrderAscClick(Sender: TObject);

begin

orderBy := ' ASC';

mnuOrderAsc.Checked := true;

mnuOrderDesc.Checked := false;

if currSort <> '' then

sortExec();

end;

procedure TfrmMain.mnuOrderDescClick(Sender: TObject);

begin

orderBy := ' DESC';

mnuOrderDesc.Checked := true;

mnuOrderAsc.Checked := false;

if currSort <> '' then

sortExec();

end;

procedure TfrmMain.sortExec;

begin

DmAuto.tblTovars.Sort := currSort + orderBy;

end;

procedure TfrmMain.mnuSortCountClick(Sender: TObject);

begin

{Сортировка по количеству товара}

currSort := 'counts';

sortExec();

end;

procedure TfrmMain.mnuSortPriceClick(Sender: TObject);

begin

{Сортировка по цене}

currSort := 'price';

sortExec();

end;

procedure TfrmMain.mnuSortProizvodClick(Sender: TObject);

begin

{Сортировка по производителю}

currSort := 'country_id';

sortExec();

end;

procedure TfrmMain.mnuSortKodClick(Sender: TObject);

begin

{Сортировка по коду товара}

currSort := 'tovar_id';

sortExec();

end;

procedure TfrmMain.mnuPrintSelectClick(Sender: TObject);

begin

gridAutoDblClick(Sender);

end;

procedure TfrmMain.mnuPrintAllClick(Sender: TObject);

begin

// Показываем отчет

frmRepAll := TfrmRepAll.Create(Owner);

frmRepAll.repAll.PreviewModal;

frmRepAll.Free;

end;

procedure TfrmMain.FormShow(Sender: TObject);

begin

{По умолчанию сортировка по коду товара}

mnuSortKodClick(Sender);

// Установка связи между таблицей tblOrders (главная) и таблицей tblbasket (подчиненная)

setLnkOrdersBasket();

//MessageBoxA(HAndle, 'Вы запустили Demo-версию программы (Доступно добавление 15 записей)', 'Demo-версия', 0 + 64);

end;

procedure TfrmMain.mnuClientClick(Sender: TObject);

begin

frmClient.ShowModal;

end;

procedure TfrmMain.mnuManagerClick(Sender: TObject);

begin

frmManager.ShowModal;

end;

procedure TfrmMain.checkManagerClick(Sender: TObject);

var

i:Integer;

maxRec:Integer;

strName: String;

begin

// Очистка списка менеджеров

cbManager.Items.Clear;

// По умолчанию список заблокирован

cbManager.Enabled := false;

if TCheckBox(Sender).Checked then

begin

maxRec := DmAuto.tblManager.RecordCount;

// Выход, если нет менеджеров

if maxRec = 0 then

begin

TCheckBox(Sender).Checked := false;

exit;

end;

// Сначала обнуляем

setLength(IndexManager, 0);

setLength(IndexManager, maxRec);

// Заполнение списка значениями из категорий

// Переход на первую запись в таблице

DmAuto.tblManager.First;

for i := 0 to maxRec - 1do

begin

// Сохраняем индекс текущей записи в объект TMyIndex

IndexManager[i] := TMyIndex.Create;

IndexManager[i].setKey(DmAuto.tblManagermanager_id.AsInteger);

// Имя элемента в списке

strName := DmAuto.tblManagerfio.AsString;

// Добавление объяекта в список

cbManager.Items.AddObject(strName, IndexManager[i]);

// Удаление текущего объекта

// Переход к следующей записи в таблице

DmAuto.tblManager.Next;

end;

cbManager.ItemIndex := 0;

// Делаем доступным список

cbManager.Enabled := true;

end;

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.editTovNameDblClick(Sender: TObject);

begin

TEdit(Sender).Text := '';

end;

procedure TfrmMain.editCountDblClick(Sender: TObject);

begin

TEdit(Sender).Text := '';

end;

procedure TfrmMain.editPriceDblClick(Sender: TObject);

begin

TEdit(Sender).Text := '';

end;

procedure TfrmMain.cbManagerClick(Sender: TObject);

begin

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.cbCatClick(Sender: TObject);

begin

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.editTovNameChange(Sender: TObject);

begin

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.cbCountryClick(Sender: TObject);

begin

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.editPriceChange(Sender: TObject);

begin

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.cbPriceClick(Sender: TObject);

begin

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.cbCountClick(Sender: TObject);

begin

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.editCountChange(Sender: TObject);

begin

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.Cgjcjsjgkfns1Click(Sender: TObject);

begin

frmSposobPay.ShowModal;

end;

procedure TfrmMain.N15Click(Sender: TObject);

begin

frmStatusOrder.ShowModal;

end;

procedure TfrmMain.N14Click(Sender: TObject);

begin

btnBasketDeleteClick(Sender);

end;

procedure TfrmMain.BitBtn1Click(Sender: TObject);

begin

if DMAuto.tblOrders.CanModify then

begin

DMAuto.tblOrders.Append;

frmOrder.ShowModal;

end

else

MessageBoxA(Handle, 'Нельзя модифицировать данные', 'Ошибка', 0 + 64);

end;

procedure TfrmMain.BitBtn2Click(Sender: TObject);

begin

// Если нет записей, то делаем выход из процедуры

if DMAuto.tblOrders.RecNo = -1 then

begin

MessageBox(Handle, 'Отсутствуют данные для модификации', 'Сообщение', 0 + 64);

Exit;

end;

if DMAuto.tblOrders.CanModify then

begin

DMAuto.tblOrders.Edit;

frmOrder.ShowModal;

end

else

MessageBoxA(Handle, 'Нельзя модифицировать данные', 'Ошибка', 0 + 64);

end;

procedure TfrmMain.BitBtn3Click(Sender: TObject);

begin

if DMAuto.tblOrders.RecNo = -1 then begin

MessageBoxA(Handle, 'Отстутствуют заказы для удаления', 'Удаление заказа', 0 + 64);

exit;

end;

if Application.MessageBox

(

PChar('Вы действительно хотите удалить заказ №' +

DMAuto.tblOrdersorder_id.AsString + ' от ' + DMAuto.tblOrdersdate_orders.AsString + '?'),

'Удаление',

MB_YESNO + 32) = ID_YES then

begin

DMAuto.tblOrders.Delete;

end;

gridOrders.SetFocus;

end;

procedure TfrmMain.setLnkOrdersBasket;

begin

DMAuto.tblBasket.MasterSource := DMAuto.dsOrders;

DMAuto.tblBasket.IndexFieldNames := 'order_id';

DMAuto.tblBasket.MasterFields := 'order_id';

end;

procedure TfrmMain.btnBasketAddClick(Sender: TObject);

begin

// Проверка наличия выделенного заказа

if DMAuto.tblOrders.RecNo = -1 then begin

MessageBoxA(Handle, 'Перед добавлением комплектующих необходимо создать заказ', 'Добавление комплектующих', 0 + 64);

Exit;

end;

// Проверка наличия выделенного товара

if DMAuto.tblTovars.RecNo = -1 then begin

MessageBoxA(Handle, 'Отсутствуют выбранные комплектующие', 'Добавление комплектующих', 0 + 64);

Exit;

end;

// Комплектующих должно быть больше 0

if DMAuto.tblTovarscounts.AsInteger <= 0 then begin

MessageBoxA(Handle, 'Выбранного товара нет в наличии', 'Добавление комплектующих', 0 + 64);

Exit;

end;

DMAuto.tblBasket.Append;

// Запуск окна выбора количества товара

frmBasketEdit.ShowModal;

// Если товара > 0, то производим расчеты

if DMAuto.tblBasketcount.AsInteger > 0 then begin

// Цена товара

DMAuto.tblBasketprice_tov.AsCurrency := DMAuto.tblTovarsprice.AsCurrency;

// Сумма товара

DMAuto.tblBasketsum_tov.AsCurrency := DMAuto.tblBasketcount.AsInteger * DMAuto.tblBasketprice_tov.AsCurrency;

// Фиксируем изменения

DMAuto.tblBasket.Post;

// Модификация таблицы с товарами

DMAuto.tblTovars.Edit;

DMAuto.tblTovarscounts.AsInteger := DMAuto.tblTovarscounts.AsInteger - DMAuto.tblBasketcount.AsInteger;

DMAuto.tblTovarssumm.AsCurrency := DMAuto.tblTovarssumm.AsCurrency - DMAuto.tblBasketsum_tov.AsCurrency;

DMAuto.tblTovars.Post;

// Вывод сообщения об успешной продаже

MessageBoxA(Handle, 'Товар успешно добавлен', 'Сообщение', 0 + 64);

end else begin

DMAuto.tblBasket.Cancel;

MessageBoxA(Handle, 'Товары не выбраны!', 'Сообщение', 0 + 64);

end;

end;

procedure TfrmMain.btnBasketDeleteClick(Sender: TObject);

var

summ : Currency;

count : Integer;

begin

if DMAuto.tblBasket.RecNo = -1 then begin

MessageBoxA(Handle, 'Отстутствуют товары в корзине для удаления', 'Удаление заказанных товаров', 0 + 64);

exit;

end;

if Application.MessageBox

(

PChar('Вы действительно хотите удалить товар из корзины' + '?'),

'Удаление',

MB_YESNO + 32) = ID_YES then

begin

count := DMAuto.tblBasketcount.AsInteger;

summ := DMAuto.tblBasketsum_tov.AsCurrency;

DMAuto.tblBasket.Delete;

// Модификация таблицы с товарами

DMAuto.tblTovars.Edit;

DMAuto.tblTovarscounts.AsInteger := DMAuto.tblTovarscounts.AsInteger + count;

DMAuto.tblTovarssumm.AsCurrency := DMAuto.tblTovarssumm.AsCurrency + summ;

DMAuto.tblTovars.Post;

end;

gridBasket.SetFocus;

end;

procedure TfrmMain.N12Click(Sender: TObject);

begin

btnBasketAddClick(Sender);

end;

procedure TfrmMain.mnuOutExcelClick(Sender: TObject);

var

Excel : Variant;

i : Integer;

startRowPrint : Integer;

begin

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

Excel.Workbooks.Add;

Excel.Range['B1'] := 'Отчет по товарам категории "'

+ cbCat.Text

+ '" от '

+ FormatDateTime('dd.mm.yyyy hh:nn:ss', Date()+Time());

// Начало заголовков

startRowPrint := 3;

// Номер по порядку

Excel.Cells[startRowPrint,1] := '№ п\п';

Excel.Columns[1].ColumnWidth := 10;

Excel.Cells[startRowPrint,2] := 'Код товара';

Excel.Columns[2].ColumnWidth := 10;

Excel.Cells[startRowPrint,3] := 'Наименование';

Excel.Columns[3].ColumnWidth := 60;

Excel.Cells[startRowPrint,4] := 'Производитель';

Excel.Columns[4].ColumnWidth := 20;

Excel.Cells[startRowPrint,5] := 'Кол-во';

Excel.Columns[5].ColumnWidth := 10;

Excel.Cells[startRowPrint,6] := 'Цена';

Excel.Columns[6].ColumnWidth := 15;

Excel.Cells[startRowPrint,7] := 'Сумма';

Excel.Columns[7].ColumnWidth := 15;

Excel.Cells[startRowPrint,8] := 'Менеджер закупки';

Excel.Columns[8].ColumnWidth := 30;

Excel.Cells[startRowPrint,9] := 'Дата получения';

Excel.Columns[9].ColumnWidth := 15;

// Начало вывода данных

inc(startRowPrint);

DMAuto.tblTovars.First;

for i := 1 to DMAuto.tblTovars.RecordCount do

begin

// № П\П

Excel.Cells[startRowPrint, 1] := i;

// Код товара

Excel.Cells[startRowPrint, 2] := DMAuto.tblTovarstovar_id.AsInteger;

// Наименование товара

Excel.Cells[startRowPrint, 3] := DMAuto.tblTovarstovName.AsString;

// Производитель

Excel.Cells[startRowPrint, 4] := DMAuto.tblTovarsstrCountry.AsString;

// Кол-во

Excel.Cells[startRowPrint, 5] := DMAuto.tblTovarscounts.AsInteger;

// Цена

Excel.Cells[startRowPrint, 6] := DMAuto.tblTovarsprice.AsCurrency;

// Сумма

Excel.Cells[startRowPrint, 7] := DMAuto.tblTovarssumm.AsCurrency;

// Менеджер

Excel.Cells[startRowPrint, 8] := DMAuto.tblTovarsstrManager.AsString;

// Дата поступления

Excel.Cells[startRowPrint, 9] := DMAuto.tblTovarsdata_create.AsString;

DMAuto.tblTovars.Next;

inc(startRowPrint);

end;

// Вывод таблицы

Excel.Visible := True;

end;

procedure TfrmMain.editKodChange(Sender: TObject);

begin

// Запуск поиска

btnSearchClick(Sender);

end;

procedure TfrmMain.editKodKeyPress(Sender: TObject; var Key: Char);

begin

if not (Key in ['0'..'9', #8]) then

Key := #0;

end;

procedure TfrmMain.editKodDblClick(Sender: TObject);

begin

TEdit(Sender).Text := '';

end;

procedure TfrmMain.N16Click(Sender: TObject);

begin

btnBasketAddClick(Sender);

end;

procedure TfrmMain.N17Click(Sender: TObject);

begin

btnBasketDeleteClick(Sender);

end;

procedure TfrmMain.btnOutBasketExcelClick(Sender: TObject);

var

Excel : Variant;

i : Integer;

startRowPrint : Integer;

summ : Currency;

begin

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

Excel.Workbooks.Add;

Excel.Range['B1'] := 'Отчет по продаже №' + DMAuto.tblOrdersorder_id.AsString + ' '

+ ' от '

+ DMAuto.tblOrdersdate_orders.AsString;

Excel.Cells[3,1] := 'Менеджер: ' + DMAuto.tblOrdersstrManager.AsString;

Excel.Cells[4,1] := 'Клиент: ' + DMAuto.tblOrdersstrClient.AsString;

Excel.Cells[5,1] := 'Способ оплаты: ' + DMAuto.tblOrdersstrSposobPay.AsString;

// Начало заголовков

startRowPrint := 7;

// Номер по порядку

Excel.Cells[startRowPrint,1] := '№ п\п';

Excel.Columns[1].ColumnWidth := 10;

Excel.Cells[startRowPrint,2] := 'Наименование';

Excel.Columns[2].ColumnWidth := 60;

Excel.Cells[startRowPrint,3] := 'Кол-во';

Excel.Columns[3].ColumnWidth := 10;

Excel.Cells[startRowPrint,4] := 'Цена';

Excel.Columns[4].ColumnWidth := 15;

Excel.Cells[startRowPrint,5] := 'Сумма';

Excel.Columns[5].ColumnWidth := 15;

// Начало вывода данных

inc(startRowPrint);

DMAuto.tblBasket.First;

summ := 0;

for i := 1 to DMAuto.tblBasket.RecordCount do

begin

// № П\П

Excel.Cells[startRowPrint, 1] := i;

// Наименование товара

Excel.Cells[startRowPrint, 2] := DMAuto.tblBasketstrTovar.AsString;

// Кол-во

Excel.Cells[startRowPrint, 3] := DMAuto.tblBasketcount.AsInteger;

// Цена

Excel.Cells[startRowPrint, 4] := DMAuto.tblBasketprice_tov.AsCurrency;

// Сумма

Excel.Cells[startRowPrint, 5] := DMAuto.tblBasketsum_tov.AsCurrency;

summ := summ + DMAuto.tblBasketsum_tov.AsCurrency;

DMAuto.tblBasket.Next;

inc(startRowPrint);

end;

inc(startRowPrint);

Excel.Cells[startRowPrint, 1] := 'ИТОГО: ' + FloatToStr(summ) + ' руб.';

// Вывод таблицы

Excel.Visible := True;

end;

procedure TfrmMain.N27Click(Sender: TObject);

begin

mnuSortKodClick(Sender);

end;

procedure TfrmMain.N26Click(Sender: TObject);

begin

mnuSortCatClick(Sender);

end;

procedure TfrmMain.N25Click(Sender: TObject);

begin

mnuSortNameClick(Sender);

end;

procedure TfrmMain.N24Click(Sender: TObject);

begin

mnuSortProizvodClick(Sender);

end;

procedure TfrmMain.N23Click(Sender: TObject);

begin

mnuSortCountClick(Sender);

end;

procedure TfrmMain.N22Click(Sender: TObject);

begin

mnuSortPriceClick(Sender);

end;

end.

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

...

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

  • Среда программирования Delphi и баз данных Microsoft Access. Разработка проекта автоматизации складского учета. Качество работы финансового звена предприятия. Разработка системы автоматизации учета товаров в торговой организации складских операций.

    дипломная работа [1,9 M], добавлен 03.07.2015

  • Разработка базы данных торговой фирмы по поставке одежды. Анализ таблиц, которые она содержит. Присвоение ключевых полей. Использование средств программирования и макросов для упорядочения структуры базы данных в среде СУБД MS Access. Добавление объектов.

    курсовая работа [1,2 M], добавлен 29.12.2014

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

    курсовая работа [774,3 K], добавлен 23.01.2013

  • Разработка программного обеспечения для автоматизации процесса учета поступления и формирования заказов. Построение реляционной базы данных средствами Microsoft Access. Методы повышения эффективности организации информационных потоков на предприятии.

    дипломная работа [1,9 M], добавлен 02.12.2012

  • Разработка базы данных "Аптека" в Microsoft Access, построение ее визуальной части в Delphi. Технологии связывания Microsoft Access со средой программирования Delphi. Создание запросов поисков. Реализация таблиц: продавцы, товары, чеки, поставка, счета.

    курсовая работа [3,7 M], добавлен 04.03.2014

  • Выделение информационных объектов и их инфологическая модель. Логическая структура реляционной базы данных. Разработка таблиц в системе управления базами данных Access. Создание запросов, форм и отчетов в СУБД Access. Разработка приложения пользователя.

    курсовая работа [2,8 M], добавлен 05.02.2018

  • Разработка простейшей базы данных с использованием приемов работы с Microsoft Access в среде программирования Delphi. Назначение базы данных, условия эксплуатации, выполнения и запуска программы "База данных районного отдела налоговой инспекции".

    курсовая работа [1,3 M], добавлен 14.12.2012

  • Общая характеристика реляционной СУБД Microsoft Office Access, ее основные компоненты и возможности. Разработка базы данных для систематизации подшивок журналов. Создание структуры таблиц с организацией связей между ними, ввод и обработка информации.

    контрольная работа [1,1 M], добавлен 24.07.2013

  • Стадии обработки документов в туристическом агентстве, проектирование базы данных. Реализация программного продукта с помощью объектно-ориентированного языка программирования Borland Delphi 7.0. и системы управления базами данных Microsoft Access 2003.

    дипломная работа [6,5 M], добавлен 22.01.2012

  • Общая характеристика Delphi как интегрированной среды разработки программного обеспечения. СУБД Access, ее возможности. Создание базы данных в Access для комиссионного букинистического магазина. Создание запросов и фильтров. Описание работы программы.

    курсовая работа [3,1 M], добавлен 25.05.2015

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

    дипломная работа [1,9 M], добавлен 16.05.2017

  • Обзор и сравнительная характеристика программного обеспечения для создания СУБД. Принципы организации данных. Основные возможности MS Access. Разработка структуры и реализация средствами SQL базы данных для учета заказов, наличия и продажи автозапчастей.

    курсовая работа [2,5 M], добавлен 27.05.2013

  • Проектирование программного продукта. Разработка базы данных средствами Microsoft Access. Разработка прикладных решений для информационной системы 1С: Предприятие 8.2. Изучение первичной, вторичной документации. Автоматизация учета и управление компанией.

    курсовая работа [1,4 M], добавлен 14.12.2017

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

    дипломная работа [6,8 M], добавлен 19.11.2013

  • Разработка информационной системы (БД) учета товара в салоне сотовой связи "Телерис". Характеристика СУБД Microsoft Access. Создание таблиц, запросов, форм, отчетов. Услуги, предоставляемые предприятием, организационная структура и перемещение товаров.

    дипломная работа [2,9 M], добавлен 14.01.2012

  • Анализ предметной области разрабатываемой информационной системы "Библиотека". Проектирование базы данных в среде MS Access. Физическая реализация данной информационной системы средствами Delphi 7 и MS Access 2003. Области применения технологии BDE.

    курсовая работа [2,4 M], добавлен 12.01.2016

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

    дипломная работа [1006,2 K], добавлен 14.01.2012

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

    курсовая работа [964,8 K], добавлен 27.09.2014

  • Современные базы данных и систем управления ими. Методы построения их приложений. Разработка СУБД на примере "Бюро находок", обеспечивающей пользователю возможности по пополнению, редактированию, просмотру и анализу базы данных. Реализация БД в MS Access.

    курсовая работа [3,4 M], добавлен 19.06.2012

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

    курсовая работа [3,0 M], добавлен 14.03.2010

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