Разработка информационной системы учета затрат клиента на рекламные кампании для рекламных агентств
Описание рынка рекламы. Бизнес-процессы, взаимодействие между рекламным агентством и клиентом при помощи информационной системы. Расчет стоимости рекламной кампании. Проектирование базы данных и ее нормализация. Разработка пользовательского интерфейса.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 01.08.2017 |
Размер файла | 193,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
"НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
"ВЫСШАЯ ШКОЛА ЭКОНОМИКИ"
Московский институт электроники и математика имени А.Н. Тихонова
"Фундаментальная информатика и информационные технологии"
по направлению 02.03.02 Фундаментальная информатика и информационные технологии
Выпускная квалификационная работа
Разработка информационной системы учета затрат клиента на рекламные кампании для рекламных агентств
Студент Ломовцев А.А.
Руководитель ВКР Внуков А.А.
Аннотация
Реклама играет огромное значение в повседневной жизни человека. Она привлекает внимание к различным товарам или услугам со стороны потребителей, побуждая их купить продукт. В наши дни реклама встречается повсюду, поэтому существует множество видов рекламы, такие как телевизионная реклама, интернет-реклама, реклама в прессе, наружная реклама и даже устная. За последние несколько лет рынок рекламы в интернете стремительно набирает обороты и возможно уже через пару лет опередит рынок телевизионной рекламы, идущий сейчас на первом месте. Каждая компания пытается завлечь покупателя своими продуктами, тем самым увеличить аудиторию и прибыль.
Информационные технологии в сфере медиа-индустрии оказывают огромное влияние на развитие рекламы в целом. Основной целью этого дипломного проекта является разработка информационной системы учета затрат клиента на рекламные кампании для рекламных агентств. Разработка состоит из трех частей. Первая часть заключается в проектировании реляционной базы данных и нормализации связей между сущностями БД. Создание удобного пользовательского интерфейса с возможностью автоматизированного расчета стоимости рекламной кампании является второй частью. На заключительном этапе разработки происходит интеграция базы данных с пользовательским интерфейсом, с целью создания полностью готовой информационной системы и внедрения ее в рекламное агентство. О более подробном описании структуры и функциях данной системы можно узнать в этой работе.
Abstract
Advertisement plays an important role in everyday life because it pays consumer attention to different products and forms our desire to buy something. In this paper, the author considers information technologies in advertisement types which have a significant impact on advertising development. So far, there are some main types such as TV advertising, internet advertising, outdoor advertising and word to mouth. Nowadays, TV advertising is the leader of commercial market, but Internet advertising gains popularity and probably will get ahead. Each advertising helps companies to draw consumer's attention and as a result increase its profit.
The aim of the work is a development of system of client cost recognition from the campaigns for advertising agencies. The development consists of three main parts. The first part is database engineering and its normalization. A creation of convenient interface for users with calculation function of advertising campaigns depending on advertiser preferences is the second one. The last one is the main part, which implies the integration of designed database and convenient interface in order to create complete and reliable information system. This system will be described in greater detail in the work.
Оглавление
Введение
1. Описание рынка рекламы
2. Информационные системы в бизнес-сфере
3. Описание бизнес-процесса взаимодействия между рекламными агентствами и клиентами при помощи информационной системы
4. Модель расчета стоимости рекламной кампании
5. Реализация практических задач
5.1 Проектирование базы данных и ее нормализация
5.2 Разработка пользовательского интерфейса
5.3 Интеграция БД с пользовательским интерфейсом
6. Результаты
Перечень сокращений
Список литературы
Приложение 1
Приложение 2
Введение
Реклама - один из видов распространения информации с целью привлечения внимания потенциального потребителя или клиента к различным товарам и услугам. Значение рекламы в рыночной экономике сложно недооценить, ведь с детства мы знаем такую фразу: "Реклама - двигатель торговли". Эту фразу еще в начале 19 века сказал польский военный деятель Людвиг Метцель, основавший в России свое первое рекламное агентство.
Реклама считается очень значимым показателем потому, что без нее уже не может обойтись ни одна сфера деятельности или бизнеса в современном мире. Сейчас любая крупная корпорация имеет в штате PR отдел, который занимается продвижением своих продуктов на рынке, и выделяет финансирование на рекламу. Суммарные денежные средства, вырученные от ее продажи на территории Российской Федерации, насчитывают примерно около 1,5% от всего ВВП страны.
Реклама является основным инструментом маркетинга для продвижения и продажи товаров и услуг в условиях совершенной конкуренции и получила широкое распространение как в развитых странах, так и в развивающихся. Одним из основных направлений маркетинга является анализ и прогноз эффективности рекламы, поэтому стоит изучить ее влияние на показатели компаний в нашей стране. Хорошо спланированная рекламная кампания позволяет увеличить прибыль компании, а прогноз эффективности позволит при этом запланировать финансовые потоки и избежать дополнительных затрат.
С использованием компьютерных технологий в сфере медиа-индустрии, стали появляться новые возможности для создания рекламы. Появился широкий выбор современных технологий: графические пакеты, интернет-технологии, мультимедиа и другие. Благодаря всему этому, дизайнеры стали тратить гораздо меньше времени на создание рекламных роликов или плакатов, тем самым облегчив свою работу.
Главной целью моей выпускной квалификационной работы является разработка информационной системы расчета стоимости рекламной кампании и учета затрат клиентов для рекламных агентств. Актуальность и популярность данного направления подтверждается большим количеством публикаций и статей на эту тему, как например в книгах [3], [4], [5] и [6]. Схема расчета стоимости рекламной кампании будет наиболее приближена к реальной модели ценообразования и ее оценка будет проводиться на основе реальных данных компании "НРА" ("Национальный Рекламный Альянс").
Для реализации данного дипломного проекта необходимо решить ряд следующих задач:
· Описание бизнес-процессов взаимодействия рекламодателей с рекламными агентствами путем использования информационной системы.
· Создание и проектирования реляционной базы данных при помощи формального языка программирования SQL.
· Разработка удобного пользовательского интерфейса для менеджеров рекламных агентств в среде Visual Basic.NET (VB.NET).
· Интеграция базы данных с пользовательским интерфейсом.
· Реализация информационной системы расчета затрат рекламных кампаний для агентств.
Значимость дипломного проекта состоит в том, что данная информационная система может быть использована на практике в рекламных агентствах для автоматизации работы менеджеров при расчете стоимости рекламной кампании клиента при размещении на телевидении. Все оформленные заказы можно будет отследить в системе и выгрузить в MS Excel для более детального анализа деятельности рекламного агентства, что будет способствовать более прозрачному сотрудничеству между рекламными агентствами и медиа-селлерами.
1. Описание рынка рекламы
Современный рынок рекламы представляет собой отдельный экономический сектор, внутри которого взаимодействуют следующие субъекты:
· Рекламодатель - заказчик рекламы, который отвечает за производство, распространение и размещение рекламы (фирмы, дистрибьюторы, государственные органы или частные лица).
· Рекламопроизводитель - разработчик рекламы, который преобразуют рекламную информацию в более удобную форму для человеческого восприятия.
· Рекламораспространитель - лицо, отвечающее за размещение и распространение рекламы в СМИ.
· Потребитель рекламы - конкретная аудитория людей, для которых была проведена рекламная кампания, с целью привлечения их внимания к различным товарам и услугам.
Рекламный рынок состоит из множества субрынков таких как: рынок телерекламы, рынок радиорекламы, рынок наружной рекламы и другие. По своей структуре функционирования каждый из этих рынков мало чем отличается от других экономических рынков. Ему присущи все те же принципы:
· наличие спроса и предложения на рекламные услуги.
· конкуренция между рекламопроизводителями.
· развитая инфраструктура и концепция рынка.
· наличие правовых отношений между субъектами рынка, регламентируемых законами о рекламе.
Более подробно о структуре рекламного рынка и о его отличии от других рынков можно узнать в книге [1] и [2].
Информационные технологии оказывают огромное влияние на жизнь человека и развиваются стремительными темпами. В связи с этим, одни субрынки рекламы стали утрачивать свое значение, а другие наоборот, только набирают популярность с каждым днем. Например, реклама в различных печатных изданиях и интернет-реклама соответственно. Для сравнения ниже приведены наглядные данные о распределении рекламных бюджетов по субрынкам рекламы в 2000 и 2016 годах.
2. Информационные системы в бизнес-сфере
За последние десятилетия технологический прогресс достиг такого уровня, когда роль информации приобрела решающее значение в современном обществе. Информация во всех ее представлениях встречается человеку повсюду. Огромные потоки информации нужно хранить и обрабатывать где-то. Возможности человека для этого ограничены, поэтому именно для таких целей были придуманы информационные системы. Такие системы очень эффективны и широко распространены в бизнесе в наши дни. Они помогают фирмам и предприятиям собирать и хранить большие объемы полезной информации, а также автоматизировать рабочий процесс. В связи с увеличением конкуренции на рынке, наличие новых и инновационных локальных продуктов создает преимущество для компании и может сделать ее основным игроком в своей отрасли. Благодаря информационным системам, можно спрогнозировать различные показатели и выбрать наиболее оптимальный путь развития компании, тем самым уменьшив риски и количество неверно принятых решений.
Информационные системы делятся на два основных типа:
· информационно-поисковые системы (Google, Yandex).
· системы обработки данных (АСУ, ГИС, САПР, СУБД и др.).
Каждая информационная система состоит в свою очередь из базы данных, где хранится огромное количество данных, а также удобного и понятного пользовательского интерфейса. База данных обычно хранится на локальном сервере, к которому имеют доступ сотрудники компании в пределах своего офиса. Пользовательский интерфейс является творческой составляющей ИС и имеет широкий диапазон для полета фантазий разработчика. Любой разработчик имеет свое видение дизайна интерфейса. Однако, он должен учитывать желание пользователей и правильно описать связи с БД, чтобы в дальнейшем пользователям было приятно и удобно работать с этой информационной системой.
Для создания качественного продукта требуются отлаженные взаимодействия всей команды, работающей над проектом, что является достаточно трудоемким и непростым процессом. Перед выводом окончательной версии любой информационной системы в общедоступное пользование, обычно производится тестирование работоспособности ИС целиком или отдельных ее частей на проверку соответствия требованиям заказчика. Существует 4 вида тестирования, каждое из которых может помочь увеличить качество ИС и уменьшить количество ошибок:
· Функциональное тестирование (проводится на этапе разработки и включает в себя ряд испытаний, проводимых для проверки выполнения функциональных требований заказчика к системе и корректности их работы).
· Тестирование производительности (проводится на этапе проектирование и заключается в определении быстродействия системы и границ ее производительности).
· Тестирование перед эксплуатацией (комплексное тестирование, проводимое на компьютерных ресурсах заказчика).
· Модульное тестирование (проводится при обновлении одного из модулей ИС с целью выявления возможных ошибок, которые могло повлечь за собой это обновление).
3. Описание бизнес-процесса взаимодействия между рекламными агентствами и клиентами при помощи информационной системы
В этой главе будет описан бизнес-процесс деятельности рекламного агентства с использованием информационной системы учета затрат клиента на рекламную кампанию для понимания принципов функционирования и структуры информационной системы в агентстве. Данный программный продукт позволит менеджерам в рекламных агентствах вести учет утвержденных заявок на размещение рекламных кампаний в тайм-слотах на телевидении и заводить информацию о клиентах и их заказах. Ниже представлен бизнес-процесс взаимодействия (рис. 3):
Рис. 3 Бизнесс-процесс взаимодействия с ИСУЗ.
Для понимания основной сути бизнес-процесса опишем пример, показывающий полный цикл взаимодействия каждого из объектов (от рекламодателя до медиа-селлера). На начальных этапах рекламодатель определяет объект (товар или услуга) для рекламы, который мог бы привлечь внимание потребителя. После определения целей рекламы и аудитории потребителей, на которую она направлена, делается заказ на изготовление рекламного ролика у специализированных организаций или создается самим клиентом на его территории. Как ролик изготовился, клиент приходит в рекламное агентство, чтобы менеджер рассчитал через ИСУЗ стоимость всей рекламной кампании согласно требованиям рекламодателя. Если клиента устраивает стоимость, то по его согласию менеджер оформляет заявку через систему, которая в свою очередь параллельно отправляется на рассмотрение медиа-селлеру. Он может либо утвердить заявку, либо отказать по причине несоответствия рекламного ролика каким-нибудь требованиям или закону о рекламе. В рекламе тоже существуют свои законы, регулируемые федеральной антимонопольной службой (ФАС), при несоблюдении которых могут накладываться штрафные санкции. После прохождения всех этих этапов заявка получает статус утверждена или нет, после чего сделка считается завершенной.
В первой версии ИСУЗ сотруднику агентства будет доступен следующий функционал (рис. 4):
Рис. 4 Основной функционал первой версии ИСУЗ.
4. Модель расчета стоимости рекламной кампании
В любой сфере деятельности, которая занимается продажей своих товаров или услуг, необходим правильный расчет стоимости этих продаваемых продуктов. Это позволит избежать убытков в компании и не отпугнуть потенциальных потребителей слишком завышенными ценами на свою продукцию. В сфере медиа-индустрии все работает также. Объектом продажи здесь выступает площадка для рекламы (например, канал, афиша или сайт), а заказчиком является рекламодатель, который хочет провести рекламную кампанию для привлечения интереса со стороны потребителей к своему продукту. В реализуемой системе модель расчета стоимости рекламной кампании чуть упрощена по сравнению с реальной моделью, но наиболее приближена к существующей модели ценообразования компании "НРА". Расчет стоимости рекламной кампании ведется на основе реальных данных, взятых из компании "НРА".
Стоимость РК (ACC) в системе рассчитывается по следующей формуле:
где
Базовая цена на канале определяется обычно медиа-селлером. Любая информация об изменении цен приходит в виде уведомлений на электронную почту рекламным агентствам.
В среднем длительность рекламного составляет около 30 секунд, что является самой оптимальной длительностью рекламы. После 30 секунды ролика внимание зрителя притупляется, он может переключить канал или уйти заниматься своими делами, пока идет реклама.
Продолжительность рекламной кампании в ИСУЗ указывается периодом (с какого по какое число). Система автоматически рассчитывает количество дней, находящихся в этом периоде.
Коэффициент прайма характеризует наличие наценки за размещение рекламы в прайм-тайм (с 18 до 23 часов). Исходя из этого, размещение в этот период времени является более дорогостоящим, но охватывает гораздо большую аудиторию телезрителей.
Дополнительная скидка - скидка, которую может дать рекламное агентство клиенту при пользовании его услугами для размещения рекламы. Например, для привлечения новых клиентов агентство может давать скидку за первое размещение или наоборот давать скидку постоянным клиентам. Это зависит от самого агентства. Максимально возможная агентская скидка, которую может дать менеджер клиент, в ИСУЗ составляет 10% от рекламного бюджета.
Скидка за холдинг - заранее рассчитанная скидка, которую дает холдинг за размещение рекламы на его каналах. На данный момент существует всего 3 холдинга: ВИ, ГПМ и СТС. Разбивку каналов по холдингам можно посмотреть в таблице 1 ниже:
Табл 1.
Холдинг |
Каналы |
|
ВИ |
Первый, Россия 1, ТВЦ, РЕН ТВ, Пятый канал, Ю, Звезда, Россия 24, Муз-ТВ, Карусель, Disney |
|
ГПМ |
НТВ, ТНТ, Пятница, ТВ-3, ТНТ 4, Матч ТВ, 2х2 |
|
СТС |
СТС, Домашний, Че, СТС Love |
Скидка за раннее бронирование предоставляется клиенту при размещении рекламы через 90 дней со дня оформления заказа. Также она зависит от холдинга, каждый холдинг дает свою скидку за раннее бронирование.
5. Реализация практических задач
5.1 Проектирование базы данных и ее нормализация
В современных фирмах или компаниях накапливаются очень большие объемы полезной информации и данных, характеризующие деятельность предприятия. Для хранения информации в современном мире компании используют базы данных (БД). Реляционная база данных - совокупность таблиц, содержащих в себе всю необходимую информацию и соединенных различными связями между собой.
Алгоритм проектирования БД обычно схож во всех СУБД. Он состоит из 6 основных этапов:
1) Первый этап включает в себя определение целей и информационных потребностей, для которых будет разрабатываться БД.
2) Моделирование объектов реального мира и сопоставление их характеристик в базе данных.
3) Присваивание каждому объекту (кортежу) уникального идентификационного номера и определение первичного ключа для каждого отношения между сущностями БД. Они будут идентифицировать каждый кортеж уникальным образом (наличие первичного ключа гарантирует унификацию данных).
4) Определения подходящего типа данных для каждого из атрибутов и установление правил, которые будут отвечать за поддержку целостности данных.
5) Установление связей между сущностями и атрибутами БД и их нормализация во избежание избыточности данных.
6) Заключительным этапом является формирование прав для различных типов пользователей ИС с целью сохранения конфиденциальности информации.
В соответствии с техническими требованиями к информационной системе была спроектирована база данных в программе MySQL Workbench 6.3 CE и проведена нормализация связей между сущностями к типу связи "один-ко-многим". Представление базы данных может быть схематически изображено в виде ER-модели.
Опишем характеристики и значения каждого из атрибутов сущностей в таблице 2 ниже:
Табл. 2
Атрибут |
Расшифровка |
Тип |
Размер |
|
Holding |
Холдинг |
|||
id_holding |
Ключ холдинга (уникальный) |
Автоинкрементный Целый |
||
name_holding |
Наименование холдинга |
Символьный |
10 |
|
Channel |
Канал |
|||
id_channel |
Ключ канала (уникальный) |
Автоинкрементный Целый |
||
id_holding |
Ключ холдинга (внешний ключ) |
Целый |
||
name_channel |
Наименование канала |
Символьный |
20 |
|
price |
Цена 1 с/день рекламного ролика на канале |
Вещественный |
7 |
|
Advertiser |
Рекламодатель |
|||
id_advertiser |
Ключ рекламодателя (уникальный) |
Автоинкрементный Целый |
||
INN |
ИНН рекламодателя |
Символьный |
10 |
|
name_advertiser |
Название рекламодателя |
Символьный |
45 |
|
ph_num |
Номер телефона |
Символьный |
14 |
|
DurDisc |
Скидки |
|||
id_disc |
Ключ скидки |
Символьный |
2 |
|
id_holding |
Ключ холдинга (внешний ключ) |
Целый |
||
disc_coef |
Значение скидки |
Вещественный |
3 |
|
Manager |
Менеджер |
|||
id_manager |
Ключ менеджера (уникальный) |
Автоинкрементный Целый |
||
login |
Логин менеджера для входа в ИС |
Символьный |
30 |
|
password |
Пароль менеджера для входа в ИС |
Символьный |
5 |
|
name_manager |
ФИО менеджера |
Символьный |
45 |
|
manager_phnum |
Телефонный номер менеджера |
Символьный |
14 |
|
Prime |
Наличие прайм-тайма |
|||
id_prime |
Ключ прайм-тайма |
Символьный |
1 |
|
prime_coef |
Наценочный коэффициент за прайм-тайм |
Вещественный |
3 |
|
Order_info |
Информация о заказе |
|||
id_order |
Ключ заказа (уникальный) |
Автоинкрементный Целый |
||
id_advertiser |
Ключ рекламодателя (внешний ключ) |
Целый |
||
id_manager |
Ключ менеджера (внешний ключ) |
Целый |
||
date_order |
Дата оформления заказа |
Дата |
||
id_channel |
Ключ канала (внешний ключ) |
Целый |
||
date_adstart |
Дата начала рекламной кампании |
Дата |
||
date_adend |
Дата окончания рекламной кампании |
Дата |
||
adduration |
Длительность рекламного ролика в секундах |
Целый |
3 |
|
id_prime |
Ключ прайм-тайма (внешний ключ) |
Символьный |
1 |
|
cost |
Стоимость рекламной кампании с учетом НДС |
Вещественный |
12 |
Спроектировав базу данных, в целях проверки правильности создания БД и типов данных для атрибутов, можно занести тестовые данные и посмотреть наличие ошибок .
Программа MySQL Workbench 6.3 CE очень удобна и понятна при проектировании баз данных. Она имеет возможность автоматической генерации кода создания таблиц после проектирования БД с проверкой на наличие несоответствий и ошибок (код создания БД описан в приложении 1).
5.2 Разработка пользовательского интерфейса
Для создания интерфейса была выбрана среда Visual Basic. NET > Приложение Windows Forms. В этой среде удобно создавать и перемещать пользовательские формы, как удобно пользователю. А также удобно работать c языком программирования VBA для экспорта данных в MS Excel. Информационная система учета затрат рекламодателя на рекламные кампании состоит из 4 основных форм:
1) Форма "Авторизация" авторизует пользователя в системе (
2) Форма "Расчет РК" отвечает за расчет стоимости рекламной кампании по множеству критериев с возможностью оформления итогового заказа в БД и выгрузки его в MS Excel
3) Форма "Каналы и БЦ" отвечает за изменения базовых цен на каналах и добавления нового канала в БД с возможностью выгрузки данных в MS Excel и их визуализации с помощью линейчатой диаграммы
4) Форма "Новый клиент", с ее помощью вносятся данные о новом рекламодателе в БД
Почти у каждого поля в системе, есть свои ограничения, при нарушении которых будут выскакивать уведомления об ошибке, и система подскажет пользователю, что нужно сделать и на какое поле ему следует обратить свое внимание. Ниже представлены некоторые категории возможных уведомлений об ошибках и их примеры:
На форме "Каналы и БЦ" есть кнопка "Просмотр БЦ на каналах" при нажатии на которую, появляется таблица с каналами и базовыми ценами на них и две кнопки: экспорт в Excel и построение линейчатой диаграммы. Пример визуализации базовых цен на каналах в виде линейчатой диаграммы и пример выгрузки информации о каналах и базовых ценах в MS Excel выглядят следующим образом:
5.3 Интеграция БД с пользовательским интерфейсом
После завершения проектирования базы данных и создания пользовательского интерфейса, их необходимо соединить вместе в единую информационную систему, которая и будет окончательным результатом этого проекта. Сначала база данных должна быть синхронизирована на сервер, в нашем случае на локальный сервер компьютера. В программе MySQL Workbench 6.3 CE есть специальная функция для этого Database > Synchronize Model. Затем после подключения базы данных к локальному серверу на языке Visual Basic.NET прописывается свой код к каждому отдельному полю на форме интерфейса, чтобы они отвечали за какую-то сущность или атрибут в БД (код создания интерфейса и его интеграции с БД описан в приложении 2).
Для построения приложения и создания иконки на рабочем столе, необходимо использовать встроенную функцию Build Project и потом задать ключевые свойства приложению: версия, товарный знак, иконка, название и некоторые по выбору. Построенное приложение можно найти в папке проекта Release с выбранной вами иконкой, что и есть запускающим файлом ИС. После этого менеджер рекламного агентства может легко запускать эту информационную систему у себя на компьютере с рабочего стола.
6. Результаты
Цели и задачи, сформулированные в техническом задании на выпускную квалификационную работу, были полностью выполнены и достигнуты. За период выполнения дипломного проекта была разработана информационная система для учета рекламных затрат клиентов для рекламных агентств. стоимость база нормализация интерфейс
Система состоит из базы данных с нормализованным связями между сущностями БД и удобного пользовательского интерфейса, с помощью которого можно изменять, удалять или добавлять данные в БД. Также есть возможность посмотреть визуальную информацию, представленную в виде линейчатой диаграммы, и выгружать основные данные (базовые цены на каналах, утвержденные заказы) в MS Excel, что делает систему более удобной для простых пользователей, которые очень часто на рабочем месте сталкиваются с различными продуктами MS Office. Эта первая версия данной информационной системы. Данная система имеет широкий спектр развития, в будущем можно улучшать старый и добавлять новый функционал в систему, автоматизируя работу менеджеров в рекламных агентствах.
Перечень сокращений
ИС - информационная система
БД - база данных
PR отдел - отдел в компании, занимающийся продвижением продуктов.
ВВП - валовый внутренний продукт
СМИ - средства массовой информации
ИСУЗ - информационная система учета затрат
СУБД - система управления базами данных
РК - рекламная кампания
БЦ - базовая цена на канале
Список литературы
1) Семенов Б.Д. Рекламный менеджмент: учебное пособие. -- 2-е изд. - М.: Информационно-внедренческий центр "Маркетинг", 2001 г.
2) Антипов К.В. Основы рекламы: Учебник -- М.: Издательско-торговая корпорация "Дашков и К", 2009 г.
3) Белов В.С. Информационно-аналитические системы. Основы проектирования и применения /МЭСИ. - М., 2004 г.
4) Макарова Т.В. Основы информационных технологий в рекламе. - М.: Юнити-Дана, 2009г.
5) Соколова Г.Н. Информационные технологии экономического анализа. - М.: Экзамен, 2002 г.
6) Smith M., "Targeted: How Technology Is Revolutionizing Advertising and the Way Companies Reach Consumers", 2014
7) Suehring S., "The MySQL Bible", Wiley Publishing, 2009
8) Connel J., "Developing Microsoft .NET Controls with Microsoft Visual Basic .NET", Microsoft Press, 2004
Приложение 1
-- MySQL Script generated by MySQL Workbench
-- 04/17/17 17:03:23
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
-- -----------------------------------------------------
-- Schema adagency
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `adagency` DEFAULT CHARACTER SET utf8 ;
USE `adagency` ;
-- -----------------------------------------------------
-- Table `adagency`.`Holding`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `adagency`.`Holding` (
`id_holding` INT NOT NULL,
`name_holding` VARCHAR(10) NOT NULL,
PRIMARY KEY (`id_holding`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `adagency`.`Channel`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `adagency`.`Channel` (
`id_channel` INT NOT NULL AUTO_INCREMENT,
`id_holding` INT NOT NULL,
`name_channel` VARCHAR(20) NOT NULL,
`price` DECIMAL(7,2) NOT NULL,
PRIMARY KEY (`id_channel`),
INDEX `ChannelHoldingFK_idx` (`id_holding` ASC),
CONSTRAINT `ChannelHoldingFK`
FOREIGN KEY (`id_holding`)
REFERENCES `adagency`.`Holding` (`id_holding`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `adagency`.`Advertiser`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `adagency`.`Advertiser` (
`id_advertiser` INT NOT NULL AUTO_INCREMENT,
`INN` VARCHAR(10) NOT NULL,
`name_advertiser` VARCHAR(45) NOT NULL,
`ph_num` VARCHAR(14) NULL,
PRIMARY KEY (`id_advertiser`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `adagency`.`Manager`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `adagency`.`Manager` (
`id_manager` INT NOT NULL,
`login_manager` VARCHAR(30) NOT NULL,
`password_manager` VARCHAR(5) NOT NULL,
`name_manager` VARCHAR(45) NOT NULL,
`manager_phnum` VARCHAR(14) NULL,
PRIMARY KEY (`id_manager`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `adagency`.`Prime`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `adagency`.`Prime` (
`id_prime` CHAR(1) NOT NULL,
`prime_coef` DECIMAL(3,2) NULL,
PRIMARY KEY (`id_prime`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `adagency`.`DurDisc`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `adagency`.`DurDisc` (
`id_disc` CHAR(2) NOT NULL,
`id_holding` INT NOT NULL,
`disc_coef` DECIMAL(3,2) NOT NULL,
PRIMARY KEY (`id_disc`),
INDEX `DurDiscHoldingFK_idx` (`id_holding` ASC),
CONSTRAINT `DurDiscHoldingFK`
FOREIGN KEY (`id_holding`)
REFERENCES `adagency`.`Holding` (`id_holding`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `adagency`.`Order_info`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `adagency`.`Order_info` (
`id_order` INT NOT NULL AUTO_INCREMENT,
`id_advertiser` INT NOT NULL,
`id_manager` INT NOT NULL,
`date_order` DATE NOT NULL,
`id_channel` INT NOT NULL,
`date_adstart` DATE NOT NULL,
`date_adend` DATE NOT NULL,
`adduration` INT(3) NOT NULL,
`id_prime` CHAR(1) NOT NULL,
`cost` DECIMAL(12,2) NOT NULL,
PRIMARY KEY (`id_order`),
INDEX `OrderChannelFK_idx` (`id_channel` ASC),
INDEX `OrderAdvertiserFK_idx` (`id_advertiser` ASC),
INDEX `OrderManagerFK_idx` (`id_manager` ASC),
INDEX `OrderPrime_idx` (`id_prime` ASC),
CONSTRAINT `OrderChannelFK`
FOREIGN KEY (`id_channel`)
REFERENCES `adagency`.`Channel` (`id_channel`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `OrderAdvertiserFK`
FOREIGN KEY (`id_advertiser`)
REFERENCES `adagency`.`Advertiser` (`id_advertiser`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `OrderManagerFK`
FOREIGN KEY (`id_manager`)
REFERENCES `adagency`.`Manager` (`id_manager`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `OrderPrimeFK`
FOREIGN KEY (`id_prime`)
REFERENCES `adagency`.`Prime` (`id_prime`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
-- -----------------------------------------------------
-- Data for table `adagency`.`Holding`
-- -----------------------------------------------------
START TRANSACTION;
USE `adagency`;
INSERT INTO `adagency`.`Holding` (`id_holding`, `name_holding`) VALUES (1, 'ВИ');
INSERT INTO `adagency`.`Holding` (`id_holding`, `name_holding`) VALUES (2, 'СТС');
INSERT INTO `adagency`.`Holding` (`id_holding`, `name_holding`) VALUES (3, 'ГПМ');
COMMIT;
-- -----------------------------------------------------
-- Data for table `adagency`.`Channel`
-- -----------------------------------------------------
START TRANSACTION;
USE `adagency`;
INSERT INTO `adagency`.`Channel` (`id_channel`, `id_holding`, `name_channel`, `price`) VALUES (1, 1, 'Первый', 1828.57);
INSERT INTO `adagency`.`Channel` (`id_channel`, `id_holding`, `name_channel`, `price`) VALUES (2, 1, 'Россия 1', 904.76);
INSERT INTO `adagency`.`Channel` (`id_channel`, `id_holding`, `name_channel`, `price`) VALUES (3, 3, 'НТВ', 933.33);
INSERT INTO `adagency`.`Channel` (`id_channel`, `id_holding`, `name_channel`, `price`) VALUES (4, 3, 'ТНТ', 1419.05);
INSERT INTO `adagency`.`Channel` (`id_channel`, `id_holding`, `name_channel`, `price`) VALUES (5, 2, 'СТС', 1695.24);
INSERT INTO `adagency`.`Channel` (`id_channel`, `id_holding`, `name_channel`, `price`) VALUES (6, 2, 'Домашний', 1123.81);
INSERT INTO `adagency`.`Channel` (`id_channel`, `id_holding`, `name_channel`, `price`) VALUES (7, 3, 'Пятница', 1657.14);
INSERT INTO `adagency`.`Channel` (`id_channel`, `id_holding`, `name_channel`, `price`) VALUES (8, 1, 'ТВЦ', 847.62);
COMMIT;
-- -----------------------------------------------------
-- Data for table `adagency`.`Advertiser`
-- -----------------------------------------------------
START TRANSACTION;
USE `adagency`;
INSERT INTO `adagency`.`Advertiser` (`id_advertiser`, `INN`, `name_advertiser`, `ph_num`) VALUES (1, '7705034202', 'PepsiCo', '+7(495)9370550');
INSERT INTO `adagency`.`Advertiser` (`id_advertiser`, `INN`, `name_advertiser`, `ph_num`) VALUES (2, '7802849641', 'Балтика', '+7(495)6477595');
INSERT INTO `adagency`.`Advertiser` (`id_advertiser`, `INN`, `name_advertiser`, `ph_num`) VALUES (3, '7701032910', 'Procter & Gamble', '+7(495)2585800');
COMMIT;
-- -----------------------------------------------------
-- Data for table `adagency`.`Manager`
-- -----------------------------------------------------
START TRANSACTION;
USE `adagency`;
INSERT INTO `adagency`.`Manager` (`id_manager`, `login_manager`, `password_manager`, `name_manager`, `manager_phnum`) VALUES (1, 'Admin', '00000', 'Админ', '');
INSERT INTO `adagency`.`Manager` (`id_manager`, `login_manager`, `password_manager`, `name_manager`, `manager_phnum`) VALUES (2, 'AIvanov', '12345', 'Иванов А.С.', '+7(903)5553535');
INSERT INTO `adagency`.`Manager` (`id_manager`, `login_manager`, `password_manager`, `name_manager`, `manager_phnum`) VALUES (3, 'SMilina', '67890', 'Милина С.В.', '+7(906)5671290');
INSERT INTO `adagency`.`Manager` (`id_manager`, `login_manager`, `password_manager`, `name_manager`, `manager_phnum`) VALUES (4, 'FPetrov', '13579', 'Петров Ф.А.', '+7(985)3812516');
COMMIT;
-- -----------------------------------------------------
-- Data for table `adagency`.`Prime`
-- -----------------------------------------------------
START TRANSACTION;
USE `adagency`;
INSERT INTO `adagency`.`Prime` (`id_prime`, `prime_coef`) VALUES ('0', 1);
INSERT INTO `adagency`.`Prime` (`id_prime`, `prime_coef`) VALUES ('1', 1.6);
COMMIT;
-- -----------------------------------------------------
-- Data for table `adagency`.`DurDisc`
-- -----------------------------------------------------
START TRANSACTION;
USE `adagency`;
INSERT INTO `adagency`.`DurDisc` (`id_disc`, `id_holding`, `disc_coef`) VALUES ('H1', 1, 0.07);
INSERT INTO `adagency`.`DurDisc` (`id_disc`, `id_holding`, `disc_coef`) VALUES ('H2', 2, 0.09);
INSERT INTO `adagency`.`DurDisc` (`id_disc`, `id_holding`, `disc_coef`) VALUES ('H3', 3, 0.06);
INSERT INTO `adagency`.`DurDisc` (`id_disc`, `id_holding`, `disc_coef`) VALUES ('E1', 1, 0.03);
INSERT INTO `adagency`.`DurDisc` (`id_disc`, `id_holding`, `disc_coef`) VALUES ('E2', 2, 0.03);
INSERT INTO `adagency`.`DurDisc` (`id_disc`, `id_holding`, `disc_coef`) VALUES ('E3', 3, 0.04);
COMMIT;
Приложение 2
Формы "Расчет РК" и "Каналы и БЦ":
Imports MySql.Data.MySqlClient
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
Dim myconn As New MySqlConnection("Server=localhost; User Id=root;Password= qwerty12345;Database=adagency")
Dim COMMAND As MySqlCommand
Dim READER As MySqlDataReader
Dim id_holding As Integer
Dim id_channel As Integer
Dim id_advertiser As Integer
Dim prime As String
Dim dur_ad As Integer
Dim ad_cost As Double
Dim ChPriceTable As DataSet
Dim item_ch_price(20) As String
Dim ch_price(,)
Private Sub add_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles add_button.Click
Try
myconn.Open()
Dim Query As String
Query = "insert into channel (id_holding, name_channel, price) values ('" & id_holding & "','" & addname_ch.Text & "','" & addprice_ch.Text & "')"
Request_handler(Query, myconn)
If addname_ch.Text = "" Then
MsgBox("Введите название канала!", MsgBoxStyle.OkOnly, "Ошибка добавления канала")
ElseIf Val(addprice_ch.Text) <= 0 Then
MsgBox("БЦ канала указана неверна!", MsgBoxStyle.OkOnly, "Ошибка добавления канала")
End If
MessageBox.Show("Канал добавлен")
myconn.Close()
addname_ch.Clear()
addprice_ch.Clear()
ComboBox_addhold_ch.SelectedIndex = -1
TabControl1.SelectedTab = TabControl1.TabPages("Calc_Tab")
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
Channel_Update_Form()
End Sub
Public Sub Holding_Update_Form()
Try
myconn.Open()
Dim Query As String
Query = "select * from holding"
Request_handler(Query, myconn)
ComboBox_addhold_ch.Items.Clear()
While READER.Read
Dim name_holding = READER.GetString("name_holding")
ComboBox_addhold_ch.Items.Add(name_holding)
End While
myconn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
End Sub
Public Sub Advertiser_Update_Form()
Try
myconn.Open()
Dim Query As String
Query = "select * from advertiser"
Request_handler(Query, myconn)
ComboBox_CalcAdvertiser.Items.Clear()
While READER.Read
Dim name_advertiser = READER.GetString("name_advertiser")
ComboBox_CalcAdvertiser.Items.Add(name_advertiser)
End While
myconn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
End Sub
Private Sub ComboBox_CalcAdvertiser_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox_CalcAdvertiser.SelectedIndexChanged
Try
myconn.Open()
Dim Query As String
id_holding = 0
Query = "select * from advertiser where name_advertiser = '" & ComboBox_CalcAdvertiser.Text & "'"
Request_handler(Query, myconn)
While READER.Read
id_advertiser = READER.GetInt32("id_advertiser")
End While
myconn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
End Sub
Private Sub ComboBox_addhold_ch_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox_addhold_ch.SelectedIndexChanged
Try
myconn.Open()
Dim Query As String
id_holding = 0
Query = "select * from holding where name_holding = '" & ComboBox_addhold_ch.Text & "'"
Request_handler(Query, myconn)
While READER.Read
id_holding = READER.GetInt32("id_holding")
End While
myconn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
End Sub
Public Sub Channel_Update_Form()
Try
myconn.Open()
Dim Query As String
Query = "select * from channel"
Request_handler(Query, myconn)
ComboBox_CalcChannel.Items.Clear()
While READER.Read
Dim name_channel = READER.GetString("name_channel")
ComboBox_CalcChannel.Items.Add(name_channel)
End While
myconn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Advertiser_Update_Form()
Channel_Update_Form()
Holding_Update_Form()
End Sub
Public Sub Request_handler(ByVal request As String, ByVal connect As MySqlConnection)
COMMAND = New MySqlCommand(request, myconn)
READER = COMMAND.ExecuteReader
End Sub
Private Sub CalcButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcButton.Click
Try
myconn.Open()
Dim Query_prime, Query_hold_disc, Query_early_disc, QueryAll As String
Dim price, prime_coef, hold_disc, early_disc As Decimal
Dim day_count = DateDiff(DateInterval.Day, Calc_DateTimeFrom.Value, Calc_DateTimeTo.Value)
dur_ad = Val(Calc_dur.Text)
Dim add_discount = Val(Calc_add_disc.Text) / 100
If add_discount > 0.1 Then
MsgBox("Введите корректное значение доп. скидки!", MsgBoxStyle.OkOnly, "Ошибка ввода")
If MsgBoxResult.Ok Then
Calc_add_disc.Clear()
End If
ElseIf id_channel = 0 Then
MsgBox("Выберите канал!", MsgBoxStyle.OkOnly, "Ошибка ввода")
ElseIf (Calc_DateTimeTo.Value < Calc_DateTimeFrom.Value) Or (Calc_DateTimeFrom.Value < Now) Then
MsgBox("Неправильно указан период размещения!", MsgBoxStyle.OkOnly, "Ошибка ввода")
ElseIf dur_ad = 0 Then
MsgBox("Укажите длительность рекламного ролика!", MsgBoxStyle.OkOnly, "Ошибка ввода")
Else
QueryAll = "select price from channel where id_channel = '" & id_channel & "'"
Request_handler(QueryAll, myconn)
While READER.Read
price = (READER.Item("price"))
End While
myconn.Close()
myconn.Open()
If Calc_prime.Checked Then
Query_prime = "select prime_coef from prime where id_prime='1'"
prime = 1
Else
Query_prime = "select prime_coef from prime where id_prime='0'"
prime = 0
End If
Request_handler(Query_prime, myconn)
While READER.Read
prime_coef = (READER.Item("prime_coef"))
End While
myconn.Close()
myconn.Open()
If id_holding > 0 Then
Query_hold_disc = "select disc_coef from DurDisc where id_disc = 'H" & id_holding.ToString & "'"
Request_handler(Query_hold_disc, myconn)
End If
While READER.Read
hold_disc = (READER.Item("disc_coef"))
End While
myconn.Close()
myconn.Open()
Dim early = DateDiff(DateInterval.Day, Now, Calc_DateTimeFrom.Value)
If early > 90 Then
Query_early_disc = "select disc_coef from DurDisc where id_disc = 'E" & id_holding.ToString & "'"
Request_handler(Query_early_disc, myconn)
While READER.Read
early_disc = (READER.Item("disc_coef"))
End While
Else
early_disc = 0
End If
ad_cost = prime_coef * price * dur_ad * day_count * (1 - add_discount) * (1 - hold_disc) * (1 - early_disc)
ad_cost = Math.Round(ad_cost, 2)
Calc_itog.Text = ad_cost
CalcLabel_itog.Visible = True
Calc_itog.Visible = True
Label7.Visible = True
Order_Button.Visible = True
End If
myconn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
End Sub
Private Sub ComboBox_CalcChannel_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox_CalcChannel.SelectedIndexChanged
Try
myconn.Open()
Dim Query As String
id_holding = 0
Query = "select * from channel where name_channel = '" & ComboBox_CalcChannel.Text & "'"
Request_handler(Query, myconn)
While READER.Read
id_channel = READER.GetInt32("id_channel")
id_holding = READER.GetInt32("id_holding")
End While
myconn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
End Sub
Private Sub ShowTableButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowTableButton.Click
Try
myconn.Open()
Dim Query As String
Dim Adapter As MySqlDataAdapter
Dim k As Long
k = 0
ListChPrice.Items.Clear()
Erase ch_price
Query = "Select channel.name_channel, holding.name_holding, channel.price from channel join holding on channel.id_holding=holding.id_holding"
COMMAND = New MySqlCommand(Query, myconn)
Adapter = New MySqlDataAdapter(COMMAND)
ChPriceTable = New DataSet
Adapter.Fill(ChPriceTable, "Table")
ReDim Preserve ch_price(0 To ChPriceTable.Tables(0).Rows.Count - 1, 0 To 2)
For i = 0 To ChPriceTable.Tables(0).Rows.Count - 1
For j = 0 To ChPriceTable.Tables(0).Columns.Count - 1
item_ch_price(j) = ChPriceTable.Tables(0).Rows(i)(j).ToString()
If (k <> 0) Then
If (j <> 1) Then
ch_price(i, j) = item_ch_price(j)
Else
ch_price(i, j) = item_ch_price(j)
End If
Else
ch_price(i, j) = item_ch_price(j)
k = k + 1
End If
Next
Dim lvi As New ListViewItem(item_ch_price)
ListChPrice.Items.Add(lvi)
Next
ListChPrice.Visible = True
XlBasePriceButton.Visible = True
BarChartButton.Visible = True
myconn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles XlBasePriceButton.Click
Dim appXL As Excel.Application
Dim wbXl As Excel.Workbook
Dim shXL As Excel.Worksheet
Dim headerXL As Excel.Range
Dim averXL As Excel.Range
' Start Excel and get Application object.
appXL = CreateObject("Excel.Application")
appXL.Interactive = False
' Add a new workbook.
wbXl = appXL.Workbooks.Add
shXL = wbXl.ActiveSheet
With shXL
.Cells(1, 1).Value = "Отчет сформирован: " & Now & ""
.Cells(2, 1).Value = "Шаблон: Выгрузка БЦ на каналах"
.Cells(4, 1).Value = "Канал"
.Cells(4, 2).Value = "Холдинг"
.Cells(4, 3).Value = "Базовая цена"
End With
headerXL = shXL.Range("A4", "C4")
For i = 0 To UBound(ch_price)
For j = 0 To 2
shXL.Cells(i + 5, j + 1).Value = ch_price(i, j)
shXL.Cells(i + 5, 3).Value = CDbl(shXL.Cells(i + 5, 3).Value)
Next (j)
Next i
averXL = shXL.Range("A" & UBound(ch_price) + 7 & "", "B" & UBound(ch_price) + 7 & "")
shXL.Cells(UBound(ch_price) + 7, 1).Value = "Средняя цена"
shXL.Range("B" & UBound(ch_price) + 7 & "").Formula = "=AVERAGE(C5:C" & UBound(ch_price) + 5 & ")"
With headerXL
.Font.Bold = True
.Font.Size = 11.5
.Font.Name = "Calibri Light"
.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
.Interior.Color = QBColor(8)
.EntireColumn.ColumnWidth = 14
End With
With averXL.Font
.Bold = True
.Size = 11.5
.Name = "Calibri Light"
End With
appXL.Interactive = True
appXL.Visible = True
appXL.UserControl = True
End Sub
Private Sub BarChartButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BarChartButton.Click
Form2.Show()
Me.Hide()
For i = 0 To UBound(ch_price)
Form2.Chart1.Series("БЦ канала").Points.AddXY(ch_price(i, 0), Val(ch_price(i, 2)))
Next i
End Sub
Private Sub addButton_advertiser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles addButton_advertiser.Click
Form3.Show()
Me.Hide()
End Sub
Private Sub Order_Button_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Order_Button.Click
Try
myconn.Open()
Dim Query As String
Dim now1 = Format(Now, "yyyy-MM-dd")
Dim now2 = Format(Calc_DateTimeFrom.Value, "yyyy-MM-dd")
Dim now3 = Format(Calc_DateTimeTo.Value, "yyyy-MM-dd")
Query = "insert into order_info (id_advertiser, id_manager, date_order, id_channel, date_adstart, date_adend, adduration, id_prime, cost) values ('" & id_advertiser & "','" & Form4.id_manager & "','" & now1 & "','" & id_channel & "','" & now2 & "','" & now3 & "','" & dur_ad & "','" & prime & "','" & Val(Calc_itog.Text) & "')"
Request_handler(Query, myconn)
If id_advertiser = 0 Then
MsgBox("Выберите рекламодателя!", MsgBoxStyle.OkOnly, "Ошибка ввода")
End If
MessageBox.Show("Заказ оформлен!")
myconn.Close()
ComboBox_CalcAdvertiser.SelectedIndex = -1
ComboBox_CalcChannel.SelectedIndex = -1
Calc_DateTimeFrom.ResetText()
Calc_DateTimeTo.ResetText()
Calc_dur.ResetText()
Calc_prime.ResetText()
Calc_add_disc.ResetText()
CalcLabel_itog.Visible = False
Calc_itog.Visible = False
Label7.Visible = False
Order_Button.Visible = False
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
myconn.Dispose()
End Try
End Sub
Private Sub ImportXLS_order_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ImportXLS_order.Click
Try
myconn.Open()
Dim Query As String
Dim Adapter As MySqlDataAdapter
Dim orderColumns As DataSet
Dim order(,)
Dim xlOrderItem() As String
Dim appXL As Excel.Application
Dim wbXl As Excel.Workbook
Dim shXL As Excel.Worksheet
Dim headerXL As Excel.Range
ReDim xlOrderItem(0 To 0)
Query = "select advertiser.name_advertiser, manager.name_manager, order_info.date_order, channel.name_channel, order_info.date_adstart, order_info.date_adend, order_info.adduration, order_info.id_prime, order_info.cost from order_info join advertiser on order_info.id_advertiser = advertiser.id_advertiser join manager on order_info.id_manager = manager.id_manager join channel on order_info.id_channel = channel.id_channel"
COMMAND = New MySqlCommand(Query, myconn)
Adapter = New MySqlDataAdapter(COMMAND)
orderColumns = New DataSet
Adapter.Fill(orderColumns, "Table")
ReDim Preserve order(0 To orderColumns.Tables(0).Rows.Count - 1, 0 To 8)
For i = 0 To orderColumns.Tables(0).Rows.Count - 1
For j = 0 To orderColumns.Tables(0).Columns.Count - 1
order(i, j) = orderColumns.Tables(0).Rows(i)(j).ToString()
Next j
Next i
' Start Excel and get Application object.
appXL = CreateObject("Excel.Application")
appXL.Interactive = False
' Add a new workbook.
wbXl = appXL.Workbooks.Add
shXL = wbXl.ActiveSheet
With shXL
.Cells(1, 1).Value = "Отчет сформирован: " & Now & ""
.Cells(2, 1).Value = "Шаблон: Краткая инфа о сделках"
.Cells(4, 1).Value = "Рекламодатель"
.Cells(4, 2).Value = "Менеджер"
.Cells(4, 3).Value = "Дата заказа"
.Cells(4, 4).Value = "Канал"
.Cells(4, 5).Value = "Начало РК"
.Cells(4, 6).Value = "Конец РК"
.Cells(4, 7).Value = "Длительность РР"
.Cells(4, 8).Value = "Наличие прайма"
.Cells(4, 9).Value = "Стоимость заказа"
End With
headerXL = shXL.Range("A4", "I4")
For Each cell In headerXL
cell.Value = Replace(cell.Value, Chr(32), Chr(10))
Next
For i = 0 To UBound(order)
For j = 0 To 8
shXL.Cells(i + 5, j + 1).Value = order(i, j).ToString()
shXL.Cells(i + 5, 9).Value = CDbl(shXL.Cells(i + 5, 9).Value)
Next j
shXL.Cells(i + 5, 10) = Microsoft.VisualBasic.Strings.Left(shXL.Cells(i + 5, 3).Value, 10)
shXL.Cells(i + 5, 11) = Microsoft.VisualBasic.Strings.Left(shXL.Cells(i + 5, 5).Value, 10)
shXL.Cells(i + 5, 12) = Microsoft.VisualBasic.Strings.Left(shXL.Cells(i + 5, 6).Value, 10)
shXL.Cells(i + 5, 13).Formula = "=IF(" & shXL.Cells(i + 5, 8).Value & " = 0, ""Нет"" ,""Есть"")"
Next i
shXL.Range("J5", "J" & UBound(order) + 5 & "").Copy()
shXL.Range("C5", "C" & UBound(order) + 5 & "").PasteSpecial(Excel.XlPasteType.xlPasteValues)
shXL.Range("J5", "J" & UBound(order) + 5 & "").Clear()
shXL.Range("K5", "K" & UBound(order) + 5 & "").Copy()
shXL.Range("E5", "E" & UBound(order) + 5 & "").PasteSpecial(Excel.XlPasteType.xlPasteValues)
shXL.Range("K5", "K" & UBound(order) + 5 & "").Clear()
shXL.Range("L5", "L" & UBound(order) + 5 & "").Copy()
shXL.Range("F5", "F" & UBound(order) + 5 & "").PasteSpecial(Excel.XlPasteType.xlPasteValues)
shXL.Range("L5", "L" & UBound(order) + 5 & "").Clear()
shXL.Range("M5", "M" & UBound(order) + 5 & "").Copy()
shXL.Range("H5", "H" & UBound(order) + 5 & "").PasteSpecial(Excel.XlPasteType.xlPasteValues)
shXL.Range("M5", "M" & UBound(order) + 5 & "").Clear()
shXL.Range("A1").Select()
With headerXL
.Font.Bold = True
.Font.Size = 11.5
.Font.Name = "Calibri Light"
.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
.Interior.Color = QBColor(8)
End With
shXL.Columns("A:I").ColumnWidth = 15
shXL.Range("A4", "I" & UBound(order) + 5 & "").Borders.LineStyle = True
Подобные документы
Описание особенностей функционирования магазина. Проектирование системы: инфологическое моделирование и построение диаграммы потоков данных. Моделирование и программная реализация информационной системы. Проектирование пользовательского интерфейса.
курсовая работа [1,6 M], добавлен 18.02.2013Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.
дипломная работа [2,3 M], добавлен 25.05.2014Разработка информационной системы для отдела учета приема пациентов и медицинского секретариата. Описание исходной (входной) информации и пользовательского интерфейса, логической структуры и технических средств. Построение реляционной базы данных.
дипломная работа [1,9 M], добавлен 16.04.2012Информационные технологии: современное состояние, роль в бизнесе и тенденции развития. Анализ информационной культуры предприятия. Разработка базы данных "Base" и программного обеспечения, обслуживающего базу. Описание интерфейса информационной системы.
дипломная работа [1,8 M], добавлен 02.11.2015Требования к программному обеспечению, выбор методологии проектирования информационной системы учета и анализа деятельности руководящего аппарата. Проектирование пользовательского программного интерфейса, взаимодействие приложения с источниками данных.
дипломная работа [2,4 M], добавлен 12.01.2011Анализ области автоматизации. Проектирование пользовательского интерфейса и баз данных. Выбор платформы создания информационной системы. Взаимодействие приложения с источниками данных. Оценка длительности и стоимости разработки программного обеспечения.
дипломная работа [2,2 M], добавлен 09.08.2011Анализ предметной области. Разработка генетического алгоритма для оптимизации инвестиций. Спецификация требований и прецедентов. Проектирование пользовательского интерфейса информационной системы. Модели данных, используемые в системе и их взаимодействие.
дипломная работа [2,1 M], добавлен 24.08.2017Детализация функций системы и требования к информационной системе. Анализ категорий пользователей. Этапы внедрения автоматизированной информационной системы на предприятии. Описание таблиц базы данных. Защита данных от несанкционированного доступа.
дипломная работа [1,0 M], добавлен 22.07.2015Разработка информационной системы, позволяющей повысить эффективность управления деятельностью автосервиса за счет использования современных компьютерных технологий. Построение базы данных в Microsoft SQL Server. Описание пользовательского интерфейса.
дипломная работа [417,5 K], добавлен 27.01.2009Разработка информационно-логической модели проектируемой информационной системы. Алгоритм функционирования информационной системы. Описание базы данных. Описание входной, промежуточной и выходной информации. Техническое и программное обеспечение.
реферат [28,1 K], добавлен 09.01.2009