- •Содержание
- •Раздел 1. Специальный раздел
- •1.1. Введение 8
- •Раздел 2. Технологический раздел
- •Раздел 3. Организационно-экономическая часть
- •Раздел4. Производственно-экологическая безопасность
- •Приложения
- •Введение
- •1.3. Предварительные нир
- •1.3.1.1. Евфрат 99
- •1.4. Информационные потребности пользователя
- •1.5. Требования к системе
- •1.5.1. Состав выполняемых функций
- •1.5. 2. Требования к надежности
- •1.5.3. Требования к информационной и программной совместимости
- •1.6. Структура входных и выходных данных
- •1.7. Общий алгоритм работы системы
- •1.8. Выбор платформы проектирования и его обоснование
- •1.9. Проектирование бд системы
- •1.9.1. Создание инфологической модели
- •1.9.4. Вторичные индексы в таблицах
- •1.10. Конфигурация технических средств
- •1.12. Алгоритмы работы программы
- •Глава 2. Технологический раздел. Технология создания баз данных в среде Borland Delphi. Базовые принципы написания программ
- •2.1. Введение
- •2.2.1. Концепция баз данных
- •2.2.2. Архитектура субд
- •2.2.3. Инфологическая модель данных
- •2.2.4. Характеристика связей и язык моделирования
- •2.2.5. Даталогическая модель данных
- •2.3.Базовые понятия для работы с базами данных в Borland Delphi
- •2.3.1. База данных и таблицы
- •2.3.3. Индексы
- •2.4. Средства работы с бд в Borland Delphi
- •2.4.1. Borland Database Engine
- •2.4.2. Псевдонимы
- •2.4.3. Database Desktop
- •2.4.4. Компоненты Borland Delphi для работы с базами данных
- •2.5. Методика отладки и результаты работы программы
- •2.5.1. Особенности тестирования программных продуктов
- •2.5.2. Типичный процесс тестирования программного обеспечения
- •2.5.3. Особенности среды программирования
- •2.5.4. Основные факторы, влияющие на надежность разрабатываемой системы
- •2.5.5.1. Вывод отладочной информации в форме
- •2.5.5.2. Использование процедуры ShowMessage
- •2.5.5.3. Вывод на консоль и запись в log- файл.
- •2.6.1. Общие сведения
- •2.6.2. Внедрение и связывание объектов
- •2.6.3. Автоматизация ole. Компоненты — серверы сом в Delphi 5
- •3.1 Введение
- •3.2. Цели использования рыночной сегментации
- •3.4.Информация, используемая для сегментации рынка
- •Аналитические методы сегментировании рынка
- •Подготовка данных
- •3.7. Анализ Данных
- •3.7.1. Кластерный анализ
- •3.7.2. Chaid и cart
- •3.7.3. Нейронные сети
- •3.7.4. Структуры латентных классов
- •3.8. Классификационные алгоритмы
- •3.9. Количество сегментов
- •3.11. Поиск сегментов рынка для системы “Эксперт”
- •3.12. Выводы.
- •Раздел 4. Производственно-экологическая безопасность. Сравнение эргономических аспектов труда при работе с документами в печатном виде и при автоматизации с помощью пэвм
- •4.1. Введение
- •4.2. Производственная безопасность
- •4.2.2. Защита от излучений
- •4.2.3. Освещение рабочего места
- •4.2.4. Электробезопасность
- •4.3. Заболевания, связанные с работой на компьютере.
- •4.3.1. Введение
- •4.3.2. Зрительная работа за компьютером и ее последствия
- •4.3.3. Компьютерная аллергия
- •4.3.4 Болезни опорно-двигательного аппарата
- •Правильная осанка
- •Неправильная осанка
- •Сутулость
- •4.3.5. Синдром запястного канала
- •4.3.6. Эргономичная организация рабочего места
- •Положение за компьютером
- •4.4. Заключение
- •Список литературы
2.6.3. Автоматизация ole. Компоненты — серверы сом в Delphi 5
Внедрение и связывание позволяют запустить приложение, обрабатывающее соответствующий документ как единое целое. Автоматизация OLE позволяет управлять этим приложением (сервером OLE), используя экспонированные им функции и процедуры. Это и было следующей задачей приложения – необходимо было использовать данные из таблицы Excel в программе.
Взаимодействие с Word, Excel и многими другими распространенными программами, входящими в стандартную установку Word и Microsoft Office, может осуществляться из приложений Delphi 5 с помощью компонентов, размещенных в библиотеке на странице Servers. Эти компоненты отображают множество импортируемых серверов СОМ. Все они являются потомками своего базового класса TOleServer. В этом классе объявлены абстрактные методы и свойства, позволяющие устанавливать связь с сервером. Поэтому объекты класса TOleServerg нельзя создавать непосредственно. В приложениях используются только потомки этого класса — конкретные серверы СОМ. Они создаются импортом библиотек типов, осуществляемым в среде Delphi командой Project | Import.
Рис 2.15. Закладка в среде Borland Delphi 5 с компонентами серверами COM.
В программе испоьзуются сервера ExcelApplication и WordApplication. Ниже приводится описание компонентa ExcelApplication.
Свойства этого компонента. Их очень немного. Кроме обычных для всех компонентов Name и Tag имеется всего 4 свойства (во многих компонентах — серверах их всего 3).
Свойство AutoConnect определяет, должен ли сервер автоматически загружаться с началом выполнения приложения. Бели установить AutoConnect = true, то соединение с сервером произойдет в момент начала выполнения вашего приложения. Если же оставить значение AutoConnect = false, принятое по умолчанию, то соединение с сервером можно установить вызовом метода Connect. Например;
ExcelApplicationl->Connect();
Впрочем, совершенно не обязательно устанавливать соединение свойством AutoConnect или методом Connect. Соединение автоматически устанавливается, когда выполняется вызов какого-то метода сервера или задается значение какому-то его свойству.
При использовании свойства AutoConnect надо иметь в виду, что установка в true влияет только при запуске приложения, т.е. если это свойство установлено во время проектирования. Задание AutoConnect — true во время выполнения приложения ни на что не влияет;
Свойство ConnectKind определяет, как именно осуществляется соединение с сервером. Это свойство может принимать следующие значения:
Таблица 2.1
Значения свойства ConnectKind компонентов WordApplication и ExcelApplication
CkRunningOrNew ckNewInstance ckRunninglnstance ckRemote ckAttachTohiterface
|
Подсоединиться к выполняющемуся серверу или создать новый экземпляр сервера Всегда создавать новый экземпляр сервера Только подсоединиться к выполняющемуся серверу Подсоединиться к удаленному серверу. Эта опция должна сочетаться с заданием свойства RemoteMachineName Не подсоединяться к серверу. Вместо этого приложение обеспечивает интерфейс методом ConnectTo (об этом методе будет сказано позднее). Опция ckAttachToInterface не может использоваться совместно с установкой в true свойства AutoConnect
|
После того, как установлено соединение с сервером, он еще не становится видимым пользователю. Впрочем, приложение может работать с этим сервером, вызывать любые его методы, изменять или читать свойства, но сам сервер останется для пользователю за кадром. Имеенно в фоновом режиме происходит работа с COM серверами в программе Однако при отладке программы, для определения того корректно ли завершена работа с сервером я делал его видимым. Для этого свойству Visible сервера задавалось значение true. Например:
ExcelApplicationl->Visible = true;
Разрыв соединения с сервером осуществляется методом Disconnect.
Для работы с Excel в программе использовался следующий код:
procedure TfmFromExcel.BitBtn2Click(Sender: TObject);
var i:integer;
str2,str5:string[150];
str,str3,str4,str9,str8,str10,str12,str13,str14:string[20];
str6,str7:string[60];
str11:string[100];
FileName1: OleVariant;
begin
Filename1:=Edit1.Text;
xa1.Workbooks.Open(Filename1, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, false, 0);
i:=2;
str:='A'+IntToStr(i);
xa1.Connect;
while xa1.Range[str,EmptyParam].Text<>'' do begin
str2:='B'+IntToStr(i);
str3:='C'+IntToStr(i);
str4:='D'+IntToStr(i);
str5:='F'+IntToStr(i);
str6:='E'+IntToStr(i);
str7:='G'+IntToStr(i);
str8:='H'+IntToStr(i);
str9:='I'+IntToStr(i);
str10:='K'+IntToStr(i);
str11:='M'+IntToStr(i);
str12:='J'+IntToStr(i);
str13:='L'+IntToStr(i);
str14:='N'+IntToStr(i);
Modal.taPclient.Insert;
Modal.taPclient.FieldByName('CompanyName').Value:=xa1.Range[str2,EmptyParam].Text;
Modal.taPclient.FieldByName('Adres').Value:=xa1.Range[str3,EmptyParam].Text+' '+//
xa1.Range[str4,EmptyParam].Text+' '+//
xa1.Range[str5,EmptyParam].Text;
Modal.taPclient.FieldByName('Director').Value:=xa1.Range[str6,EmptyParam].Text;
Modal.taPclient.FieldByName('EMail').Value:=xa1.Range[str7,EmptyParam].Text;
Modal.taPclient.FieldByName('Thone').Value:=xa1.Range[str8,EmptyParam].Text;
Modal.taPclient.FieldByName('Fax').Value:=xa1.Range[str9,EmptyParam].Text;
Modal.taPclient.FieldByName('Type').Value:=xa1.Range[str10,EmptyParam].Text;
Modal.taPclient.FieldByName('Comments').Value:=xa1.Range[str11,EmptyParam].Text;
if xa1.Range[str14,EmptyParam].Text='Интернет' then begin
Modal.taPClient.FieldByName('CManage').asString:='Интернет';
Modal.taPClient.FieldByName('Manage').asString:='i';
end;
………………………………………………………………………..
if xa1.Range[str14,EmptyParam].Text='Каталоги' then begin
Modal.taPClient.FieldByName('CManage').asString:='Каталоги';
Modal.taPClient.FieldByName('Manage').asString:='k';
end;
if xa1.Range[str14,EmptyParam].Text='Другие источники' then begin
Modal.taPClient.FieldByName('CManage').asString:='Другие источники';
Modal.taPClient.FieldByName('Manage').asString:='d';
end;
if xa1.Range[str13,EmptyParam].Text='НИИ' then begin
Modal.taPClient.FieldByName('COtrasl').asString:='НИИ';
Modal.taPClient.FieldByName('Otrasl').asString:='n';
end;
…………………………………………………………….
if xa1.Range[str13,EmptyParam].Text='Юр. лицо' then begin
Modal.taPClient.FieldByName('COtrasl').asString:='Юр. лицо';
Modal.taPClient.FieldByName('Otrasl').asString:='j';
end;
if xa1.Range[str13,EmptyParam].Text='Другое' then begin
Modal.taPClient.FieldByName('COtrasl').asString:='Другое';
Modal.taPClient.FieldByName('Otrasl').asString:='d';
end;
if xa1.Range[str12,EmptyParam].Text='Ген. директор' then begin
Modal.taPClient.FieldByName('CDoljnost').asString:='Ген. директор';
Modal.taPClient.FieldByName('Doljnost').asString:='g';
end;
………………………………………….
if xa1.Range[str12,EmptyParam].Text='Сотрудник' then begin
Modal.taPClient.FieldByName('CDoljnost').asString:='Сотрудник';
Modal.taPClient.FieldByName('Doljnost').asString:='s';
end;
Modal.taPclient.Post;
i:=i+1;
str:='A'+IntToStr(i);
end;
xa1.Disco nnect;
end;
Титул Экономики
Сегментация рынка