Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Управление в маркетинге средствами электронной почты. Учебное пособие
.pdf
91
делять именно такое содержание информации. Единственное,
чтоэтаформадолжнапредусматривать—возможностьперехода
кдругойформе,позволяющейвводитьбольшийобъеминформациидляданногоКонтакта.
Известно,чтомногиелюдинеохотносообщаютинформациюосебе.Иесливестисебясклиентомневмерунастойчиво, то можно потерять этого клиента. Поэтому первый совет
такой:сделайтетак, чтобыклиентпонял,длячеговамнужна
именноэта информацияо нем. И попроситесообщить ровно
столько информации, сколько необходимо для решения конкретнойзадачи.
Приорганизациитренинганаэтапе,когдадататренингаеще
неназначена,минимальнонеобходимаяинформацияопределяетсяследующимнабором:
NickName,еслиговоритьвтерминахэлектроннойпочты;−
сотовыйтелефон;−
домашнийтелефон;−
рабочийтелефон;−
адресэлектроннойпочты.−
Клиент выказывает вам заинтересованность в ваших предложениях.Естественно,вамнужнаинформациядлятого,чтобы
сообщитьклиентудатуиместопроведенияследующеготренинга.Этонеможетвызватьвозражений.Ноприэтомследуетучитыватьследующее:
рабочийтелефонпрактическиникогданесообщается;сле-−
довательно,ненужнонаэтомнастаивать;
домашнийтелефонсообщаетсямногореже,чемсотовый;−
сотовый телефон является не самым надежным каналом−
связи,т.к.частобываетнедоступным;
если вам дали только сотовый телефон, не спрашивайте:−
«дайте мне ваш домашний телефон»; спросите: «с вами можно
связатьсядругимспособом?»;
лучшим способом обмена информацией является элек-−
троннаяпочта;ноприэтомнеобходимопомнить,чтосегодняеще
не все ежедневно обращаются к Интернету; поэтому, если вам

92
потребуетсясообщить информацию срочно, необходимо всегда
иметьальтернативныйканалсвязи;наиболеевероятно,этобудет
всетотжесотовыйтелефон.
Рисунок26представляетодинизвозможныхвариантовформыдляполучениянеобходимойнапервомэтапеработысклиентоминформации.
Рис. 26.Формадляполученияначальнойинформацииоклиенте
Этаформаможетоказатьсяполезной,еслисотрудник,например,принимаетинформациюотпотенциальногоклиентапотелефону.Вэтомслучае щелчкоммышкойпокнопкеNewсоздается
новыйКонтакт,которыйсохраняетсящелчкомпо кнопкеSave.
Есликлиентработаетвкомпьютерномклассе,тосозданныйконтактследуетотправитьпоэлектроннойпочте.ДляэтогонеобходимощелкнутьмышьюпокнопкеОтправить.

93
Замысел работы с формой
Приинициализацииформывсекнопкиделаютсянедоступными,иактивнойостаетсятолькокнопкасозданияновогоКонтакта
New.Врезультатеу пользователяневозникаетсомненийотом,
чтонеобходимоделать.ПрищелчкемышьюпокнопкеNewсама
кнопкаделаетсянедоступной,авсеостальныекнопкистановятсяактивными.Текстовыеокна, ассоциированные с телефонами,
заполняютсяначальнойинформацией.ПоявляетсяначальнаяинформацияивтекстовомокнеЗаметки.Послезаполненияформы
инажатиякнопкиОтправитьосуществляетсяпроверкаправиль-
ностизаполненияформы.
Обязательнымявляетсязаполнение поля имени (NickName).
Еслиполе не заполнено,то выдаетсяОкно сообщения(Msgbox)
ивтекстовоеокноименипередаетсяфокус.Есливведенномердомашнеготелефона,тоондолженсостоятьнеменеечемиз8цифр;
аномерсотовоготелефона—неменеечемиз12цифр.
Еслинезаполненополеадресаэлектроннойпочты,тобудетвыданоОкно сообщенияфункцииMsgbox(), котороепредложитпользователюпринятьодноизтрехвозможныхвариантовдействий.
Листинг19представляетпроцедурыобработкисобытийформыNickName.
Листинг 19. Процедуры обработки событий формы
Option Explicit
'Блок объявления переменных
Dim aOl As Outlook.Application
Dim oNS As Outlook.NameSpace 'объект NameSpace
Dim iM As MailItem ‘элемент Сообщение электронной почты
Dim iCn As Outlook.ContactItem 'элемент Контакт
Private Sub btNew_Click()
txtNickName = “”
тстТлфДом = «495-»
тстТлфСот = «8-919-»
тстТлфРаб = «495-»
тстЗаметки.Text = «Предпочтительные дни для занятий» & vbCrLf & vbCrLf _

94
& “Желательно звонить до” & vbCrLf & vbCrLf & _
«Желательно звонить после»
Set iCn = CreateItem(olContactItem)
End Sub
Private Sub btSave_Click()
'макрос сохраняет начальную информацию о Контакте
iCn.NickName = txtNickName.Text
iCn.HomeTelephoneNumber = тстТлфДом
iCn.MobileTelephoneNumber = тстТлфСот
iCn.BusinessTelephoneNumber = тстТлфРаб
iCn.Body = тстЗаметки.Text
iCn.Save
End Sub
Private Sub кнОтправить_Click()
‘отправляет сообщение в адрес Тренера с электронной визитной карточкой
Dim Text As String ‘текст, используемый в функции MsgBox()
Dim Решение As String ‘значение функции MsgBox()
Text = “Получить консультацию по созданию адреса электронной почты? - Yes”
Text = Text & vbCrLf & “Отправить без адреса электронной почты? - No”
Text = Text & vbCrLf & “Вы вспомните свой адрес - Cancel”
Text = Text & vbCrLf & “Получить консультацию - “
Set iM = CreateItem(olMailItem)
iM.Subject = «Регистрация; Тренинги; «
If Outlook Then iM.Subject = iM.Subject & «Outlook»
iM.Categories = «Тренинги; Тренинги»
iM.To = «kuu@bk.ru»
iM.Body = тстЗаметки.Text
If iCn.Email1Address = «» Then
Решение = MsgBox(Text, vbOKCancel + vbInformation)
End If
Select Case Решение
Case vbYes

95
Exit Sub ‘работа прерывается, чтобы получить консультацию
Case vbNo
iM.Send ‘Сообщение отправляется без адреса электронной почты клиента
Case vbCancel
txtEmail.SetFocus
‘пользователь вспомнит свой адрес электронной почты
End Select
End Sub
Комментарии к процедурам
Форма Заказ тренингов предназначена для получения начальнойинформацииоклиенте.Этаинформацияможетлибосохраняться на компьютере, если сотрудник ведет сбор информации, либо
направляться клиентом по электронной почте в адрес компании.
При инициации формы она готова для ввода новой информации.
Поля телефона, как и после щелчка мышью по кнопке New в поляхтелефоновоказываютсявнесенныминекоторыецифры,которые
наиболее вероятно будут введены. В поле Заметки при создании
нового Контакта записываются три строки. Они, с одной стороны, призваны служить напоминанием,чтобы задатьклиенту соответствующиевопросы.Сдругойстороны,ониизбавляютоператора
отнеобходимостивводасоответствующейинформации.
Len(txtNickName.Text) < 1
txtNickName.Text) = «»
Есликлиентунужнаконсультацияпо созданиюадресаэлектронной почты, то он прекращает работу с программой. Методыработы с формойload, hide,show. Событияформыinitialize,
terminate. Можно предположить, что load можно использовать,
чтобыразместить программно наформе Элементы управления.
Вовсякомслучае,еслидоэтогособытияпопытатьсяобратиться
кЭлементу управления,товозникнетошибка.
Специалистысоветуюттщательнопродумыватьлогикуработы
программы.Можносказать,чтоэтохорошийсоветдлятех,ктоимеетопытразработкипрограммвовполнеопределеннойсредеивполне определенной предметной области. Опытные программисты

96
обычнотакихсоветовнедают.Чтожекасаетсяработыначинающих
программистов или работы программистов в новой для них предметнойобласти,томожноуверенносказать,чтостщательнымпродумываниемлогикиработы вполнеопределеннобудутпроблемы.
Ибопрограммистнезнаетпредметнойобласти,аспециалистзнает,
что,когдаигдевзять,что,когдаикудаотнести,т.е.онзнаетвсе,но
незнаетлогикиработы.Идажееслиразобратьсявтом,чтоотчего
зависитичтоизчегоследует,можнонауровнездравогосмысла,все
равновэтомдолжнабытьоченьтвердаяпривычка,преждечемзаработаетэтот,вобщем,правильныйсовет.
ЕслиотсутствуетNickName,осуществляетсявыходизпроцедуры обработки события Click по кнопке Отправить.
Приэтомвтекстовыхполяхсохраняетсявведеннаяинформация. Необходимо продолжать ввод информации и щелкнуть
покнопкеОтправить.
Обязательным является заполнение полей, обеспечивающее один из возможных каналов обмена информацией. При
этомжелательно сообщить хотя бы один из трех возможных
телефонов.Безусловно,предпочтительнеевсегосвязьпоэлектроннойпочте.Болеетого,есликлиентнеработаетсэлектроннойпочтой,емупредлагаетсяоставитьнанекотороевремязаказтренинга (работу с формой Заказ тренингов) и получить
консультацию у сотрудника компьютерного класса по работе
сэлектроннойпочтой.Этотребуетнеболее10минут.
Желательноопределитьсяи свидомтренинга, ноэтоне являетсяобязательным.Принципиальното, чточеловекзаинтересованвконтактахскомпанией,готовприниматьинформациюо
предстоящихмероприятиях.
Достаточночастоможновстретитьплохоструктурированную
информациюв текстовомформате. Это не таблица. Но определеннаяструктурностьможетбытьподмечена.Источникомтаких

97
данныхмогутбытьсайтыИнтернета,этомогутбытьфайлысправочныхдисков.Нижеприведенфрагментподобногофайла.
Авантаж Аудит (Аудиторская фирма)
Общий и инвестиционный аудит, ведение и восстановление
бухгалтерского учета, разработка схем оптимизации налогообложения, составление и экспертиза договоров. Консультации
по налогообложению и юридическим вопросам. Налоговые споры.
Оценка. Трансформация российской бухгалтерской отчетности
в соответствии с МФСО.
Лицензия на общий аудит N Е-005409, приказ МФ РФ
от 09.12.2003 N 387
Лицензия N 009637, приказ МФ РФ от 06.02.2002 N 22 (аудит
бирж, внебюджетных фондов и инвестиционных институтов)
Лицензия N Б-328936, приказ МФ РФ от 04.03.2004 (право
на работу с документами, содержащими секретные сведения),
приказ N 5729
Лицензия N 006511 на осуществление оценочной деятельности от 13.05.2003, приказ МФ РФ N 192 от 08.05.2003
Адрес: 103030, Москва, Новослободская, 18, стр. 1
Телефон: (095) 787-6429/6430
Факс: (095) 787-6431
E-mail: info@avantage-audit.ru
Web: http://www.avantage-audit.ru
Тематика: аудит и бухгалтерский учет, оценка, регистрация
и лицензирование, юридические услуги.
Отметимособенностипредставленнойинформации.Во-первых,
текстможетбытьразбитнанекоторыеинформационныеблоки,которыеначинаютсяназванием организации изавершаютсястрокой,
в которой можновыделить слово Тематика.В этой строке содержитсяинформация,котораясоответствуетсодержимомуполяПро-
фессияКонтактаOutlook.Втекстеможноотметитьстроки,которые

98
начинаютсясловамиАдрес,Телефон,Факс,которымлегкопоставить
всоответствиеполяКонтакта.Очевидно,чтоэтисловалегковыде-
литьвтекущейстроке,используяфункциюInStr(i,Строка,Слово).
Если,начинаяспозицииi Строки,будетнайденослово,тофункция
InStr(i, Строка, Слово)будетбольшенуля.
Алгоритммакросапредставленвкомментарияхкода.Листинг
20представляетсобойкодмакроса.
Листинг 20. Создание Контакта из плохо структурированных данных
Sub КнтСздИзТекста()
'Макрос создает Контакты на основе данных текстового файла
'Блок объявления переменных
Dim aOl As Outlook.Application
Dim fso As FileSystemObject
Dim ts As TextStream
Dim icn As Outlook.ContactItem
Dim Свойство As String
Dim Строка As String 'Текущая строка
‘Бизнес-задача
‘Название Создание Контактов из плохо структурированного текстового файла
‘Замысел
‘ просматривается текстовый файл (сканируется по строкам файл)
‘ при появлении в строке слова “Тематика” создается Контакт
‘ первая непустая строка будет представлять название фирмы
‘ пустые строки будут игнорироваться
‘ все, что следует до Адеса, будет помещено в поле Заметка
‘ в поле Профессия будет помещено все, что находится в строке Тематика
‘Блок присваивания значений переменным
Set aOl = New Outlook.Application
Set fso = CreateObject(«scripting.lesystemobject»)
Set ts = fso.OpenTextFile(«d:\Вр\Проекты\Книги\01_Ol_0601\Glava1\info.txt», ForReading)
Set icn = CreateItem(olContactItem)

99
'Алгоритм
Do While Not ts.AtEndOfStream
Строка = ts.ReadLine
‘строки нулевой длины будут игнорироваться
If Len(Строка) > 0 Then
‘обработка строк ненулевой длины
‘первая непустая строка всегда есть название компании
'если поле Организация непустое
If Len(icn.CompanyName) > 0 Then
'текущая строка проверяется на наличие в ней признаков Адрес,
Телефон и т.д.
If InStr(1, Строка, «Адрес:») > 0 Then
Строка = Mid(Строка, 8, Len(Строка) - 8)
icn.BusinessAddress = Строка
ElseIf InStr(1, Строка, «Телефон:») > 0 Then
Строка = Mid(Строка, 9, Len(Строка) - 9)
icn.BusinessTelephoneNumber = Строка
ElseIf InStr(1, Строка, «Факс:») > 0 Then
Строка = Mid(Строка, 6, Len(Строка) - 6)
icn.BusinessFaxNumber = Строка
ElseIf InStr(1, Строка, «Web:») > 0 Then
Строка = Mid(Строка, 5, Len(Строка) - 5)
icn.WebPage = Строка
ElseIf InStr(1, Строка, «E-mail:») > 0 Then
Строка = Mid(Строка, 9, Len(Строка) - 9)
icn.Email1Address = Строка
‘это суть признак окончания информационного блока
ElseIf InStr(1, Строка, “Тематика:”) > 0 Then
Строка = Mid(Строка, 9, Len(Строка) - 9)
icn.Profession = Строка
icn.Display ‘выполняется одна из инструкций
icn.Save

100
Set icn = CreateItem(olContactItem)
Else
icn.Body = icn.Body & Строка
End If
Else
icn.CompanyName = LTrim(Строка) ‘подавление пробелов слева
End If
End If ‘обработка строк ненулевой длины
Loop
ts.Close
End Sub
Рисунок27иллюстрируетрезультатвыполнениямакроса.
Рис. 27. РезультатработымакросасозданияКонтакта
изтекстовогофайласплохоструктурированнойинформацией
Если вам необходимо создатьКонтакты для двух-трехорганизаций,топроще будетэтосделатьвручную.Еслиречьидет
о сотнях Контактов, то имеет смысл попробовать автоматизироватьпроцесс.Одниизвозможныхспособовавтоматизациимы
рассмотреливыше.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
