Анализ средств программирования 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Анализ средств программирования



ВВЕДЕНИЕ 2

1. ОБЩАЯ ЧАСТЬ 3

1.1. Цель разработки 3

1.2. Анализ средств программирования 3

1.2.1. Обзор методов решения 3

1.2.2. Описание языка 4

1.2.2.1. Общие сведения 4

1.2.2.2. Элементы языка 5

1.2.2.3. Способы структурирования программы 13

1.2.2.4. Средства обмена данными 16

1.2.2.5. Дополнительные средства языка 20

1.2.2.5.1. Концепция ActiveX Data Objects (ADO)

1.2.2.5.2. Технология OLE для работы с приложением Excel

1.2.2.6. Средства отладки программы 20

2. СПЕЦИАЛЬНАЯ ЧАСТЬ 44

2.1. Постановка задачи 44

2.1.1. Назначение задачи 44

2.1.2. Требования к программе 44

2.1.2.1. Требования к функциональным характеристикам 44

2.1.2.2. Требования к надежности 44

2.1.2.3. Требования к составу и параметрам технических средств 45

2.2. Описание алгоритма 46

2.3. Описание программы 50

2.3.1. Общие сведения 50

2.3.2. Функциональное назначение 50

2.3.3. Описание структуры программы 51

2.3.4. Входные данные 52

2.3.5. Выходные данные 52

2.3.6. Организация данных в программе 52

2.4. Инструкция пользователя 52

2.5. Оценка результатов решения задачи 59

3. ЭКОНОМИЧЕСКАЯ ЧАСТЬ 60

ЗАКЛЮЧЕНИЕ 66

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 67

ПРИЛОЖЕНИЕ 1. Исходный текст программы

ПРИЛОЖЕНИЕ 2. Результаты работы программы

 

ВВЕДЕНИЕ

В наше время человечество переживает научно-техническую революцию, в качестве материальной основы которой служит электронно-вычислительная техника. На базе этой техники появляется новый вид технологий – информационные. К ним относятся процессы, где “исходным материалом” и “продукцией” (выходом) является информация.

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

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

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

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

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

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

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

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

 

ОБЩАЯ ЧАСТЬ

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

 

Цель разработки

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

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

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

Анализ средств программирования

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

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

Обзор методов решения

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

Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах. Есть много языков программирования, на которых можно было бы написать программу обработки информации, хранимых в таблицах баз данных: Visual Basic, Delphi, C++. Дипломный проект будет реализовываться в графической интегрированной среде программирования C++ Builder, используя технология ADO ведения и обработки баз данных. Для реализации общей схемы и структуры базы данных будет использоваться СУБД Access.

 

Описание языка

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

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

Общие сведения

Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах. C++ Builder – современная система программирования, основное назначение которой – быстрая разработка приложений. С ее помощью можно быстро и качественно создавать любые программы: от простейшего калькулятора до многоуровневой системы управления предприятием.

Программирование в C++ Builder строится на тесном взаимодействии двух процессов: процесса конструирования визуального проявления программы (т. е. ее Windows-окна) и процесса написания кода, придающего элементам этого окна и программе в целом необходимую функциональность. Для написания кода используется окно кода, для конструирования программы - остальные окна C++ Builder, и прежде всего - окно формы.

Одним из достоинств среды программирования C++ Builder – это система подсказок. В процессе набора текста программы редактор кода выводит справочную информацию. Например, если на форме располагается компонент кнопка Button1 и, когда пользователь в окне кода программы напишет Button1 и поставит точку, то появится окно с параметрами функций, свойствами и методами объектов. Система подсказок существенно облегчает процесс подготовки текста программы, избавляет от рутины. Кроме того, если во время набора программы подсказка не появилась, это значит, что программист допустил ошибку: скорее всего, неверно набрал имя функции.

Среда программирования C++ Builder первоначально создавалась только для платформы Microsoft Windows. Поздние версии, содержащие кроссплатформенную компонентную библиотеку Borland, поддерживают и Windows, и Linux.

C++ Builder объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода и многие другие компоненты. C++ Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному WYSIWYG — редактору интерфейса и пр.

Среда С++ Builder — это среда быстрой разработки программ. В основе систем быстрой разработки лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий. Производительность программиста при этом фантастическая! Поэтому C++ Builder является наиболее удобным инструментом для Windows-программирования.

Рис.1. Общий вид среды программирования C++Builder с открытыми окнами

С++ Builder - это комбинация нескольких важнейших технологий:

Ø Высокопроизводительный компилятор в машинный код;

Ø Объектно-ориентированная модель компонент;

Ø Визуальное а, следовательно, и скоростное построение приложений из программных прототипов;

Ø Масштабируемые средства для построения баз данных.

На C++ Builder можно одинаково хорошо писать как приложения к корпоративным базам данных, так и, к примеру, игровые программы. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в C++ Builder является самой простой задачей для программиста.

Cреда C++ Builder включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE.

 

Элементы языка

Язык C++ Builder, поддерживая концепцию объектно-ориентированного программирования, дает возможность определять классы. Класс — это сложная структура, включающая, помимо описания данных, описание функций, которые могут быть выполнены над представителем класса — объектом.

Вот пример объявления простого класса:

TPerson = class

{

private:

String name, address;

public:

void show(void);

}

Данные класса называются полями, функции — методами.

В приведенном примере TPerson — это имя класса, fname и faddress - имена полей, show — имя метода. Объекты являются представителями класса, например:

TPerson student, *professor;

После объявления и инициализации объект можно использовать, например, установить значение поля объекта. Доступ к полю объекта осуществляется указанием имени объекта и имени поля, которые отделяются друг от друга точкой (для обычной переменной) или операцией стрелка (для переменной-указателя). Например, для доступа к полю fname объекта professor надо писать:

student.address

professor->fname

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

professor->show();

вызывает применение метода show к объекту professor. Фактически инструкция применения метода к объекту — это специфический способ записи инструкции вызова функции. Методы класса определяются в программе точно так же, как и обычные функции, за исключением того, что имя функции, являющейся методом, состоит из двух частей: имени класса, к которому принадлежит метод, и имени метода. Имя класса от имени метода отделяется парой двоеточий.

Ниже приведен пример определения метода show класса TPerson:

void TPerson::show(void)

{

ShowMessage(“Имя:” + name + “ Адрес:” + address);

}

В инструкциях метода доступ к полям объекта осуществляется без указания имени объекта.

Для реализации интерфейса C++ Builder использует библиотеку классов, которая содержит большое количество разнообразных классов, поддерживающих форму и различные компоненты формы (командные кнопки, поля редактирования и т. д.).

Во время проектирования формы приложения C++ Builder автоматически добавляет в текст программы необходимые объекты. Когда программист, добавляя необходимые компоненты, создает форму, C++ Builder формирует описание класса формы. Когда программист создает функцию обработки события формы или ее компонента, C++ Builder добавляет объявление метода в описание класса формы приложения.

Помимо классов визуальных компонентов в библиотеку классов входят и классы так называемых невизуальных (невидимых) компонентов, которые обеспечивают создание соответствующих объектов и доступ к их методам и свойствам. Типичным примером невизуального компонента является таймер (тип TTimer) и компоненты доступа и управления базами данных.

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

Основной упор объектно-ориентированной модели программных компонент в C++ Builder делается на максимальном использовании готового и отлаженного кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды C++ Builder. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, все в C++ Builder написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В стандартную поставку C++ Builder входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов.

Рис.2. Палитра Компонент - хранилище объекты, которые будут помещены на форму

C++ Builder полностью поддерживает передовые программные концепции, включая инкапсуляцию, наследование, полиморфизм.

Инкапсуляция

Класс представляет собой единство трех сущностей - полей, методов и свойств. Объединение этих сущностей в единое целое и называется инкапсуляцией. Инкапсуляция позволяет во многом изолировать класс от остальных частей программы, сделать его “самодостаточным” для решения конкретной задачи. В результате класс всегда несет в себе некоторую функциональность. Например, класс TForm содержит (инкапсулирует в себе) все необходимое для создания Windows-окна, класс TMemo представляет собой полнофункциональный текстовый редактор, класс TTimer обеспечивает работу программы с таймером и т. д.

Инкапсуляция представляет собой мощное средство обмена готовыми к работе программными заготовками. Библиотека классов C++ Builder - это фактически набор “кирпичиков”, созданных программистами Borland для построения ваших программ.

Наследование

Любой класс может быть порожден от другого класса. Для этого при его объявлении указывается имя класса-родителя:

TChildClass = class (TParentClass)

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

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

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

Полиморфизм

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

Средства обмена данными

Задача дипломного проекта состоит в отслеживании товарооборота складского хозяйства. Для выполнения поставленной задачи требуется использование таблиц базы данных. Среда C++ Builder не является СУБД, т.е. с ее помощью невозможно создать структуру базы данные и ее таблиц. Для этих целей можно воспользоваться встроенного в среду средства BDE, либо использовать внешнюю СУБД, например, приложение Microsoft Access. База данных склада состоит из главной таблицы «Склад», которая содержит информацию о товарообороте всего склада. Так же имеются таблицы поставок «Поставки» и отпуска товара «Отпуск». Связи между таблицами организованы программными средствами, что приводит к взаимной коррекции всех трех таблиц при внесении изменений хотя в одну из них.

Структура строки связи

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

Формирование строки связи

Для соединения с базой данных используется стандартный компонент C++ Builder – ADOConnection, который находится на вкладке ADO палитры компонентов. Компонент относится к группе не визуальных компонентов, то есть во время работы приложения он не виден. Настроить соединение с сервером базы данных можно сделать двумя способами: с помощью окна Инспектора объектов на эапе проектирования и программными строчка во время выполнения приложения.

Для настройки через окно Инспектора объектов, необходимо для компонента ADOConnection настроить свойство ConnetionString. При щелчке на кнопке с многоточием в строке свойства ConnectionString компонента ADOConnection появляется окно, показанное на Рис.4.


Рис.4. Диалоговое окно для формирования соединения с объектом ADO

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

Установка переключателя Use Connection String позволяет с помощью кнопки Build воспользоваться специальным диалоговым окном с четырьмя вкладками. Вкладка Поставщик данных (Рис.5) используется для выбора механизма, который будет непосредственно взаимодействовать с данными, получая их от клиента и посылая их ему.

Фактически в списке этой вкладки отображается состав провайдеров OLE DB, установленных на машине. Выбор провайдера является определяющим фактором. Для разных типов данных должны использоваться только строго определенные провайдеры. Например, в файл-серверных БД должен использоваться провайдер MicrosoftOLE DB Provider for ODBC driver с предварительной настройкой соответствующего драйвера. Для работы с БД Access выбирается провайдер MicrosoftJet 4.0 OLE DB Provider. Если используется сервер Oracle или MS SQL Server, БД работает совместно соответственно с провайдером MicrosoftOLE DB Provider for Oracle или MicrosoftOLE DB Provider for SQL Server и т. д.. Некоторые типы данных (например, БД InterBase, Informix SQL Server) не имеют провайдеров и поэтому (пока не будут созданы нужные провайдеры) не могут использоваться в технологии ADO. Настройки остальных трех вкладок зависят от выбранного провайдера. В дипломе использовался провайдера MicrosoftJet 4.0 OLE DB Provider.

Рис.5. Настройка связи: выбор провайдера

Вкладка Подключение определяет необходимые связные параметры для выбранного провайдера (Рис.6). В строке «Выберите или введите имя базы данных» надо указать путь к файлу БД (с указанием сетевого каталога). Здесь же можно указать входное имя пользователя и пароль. Для простейшего варианта связи с MicrosoftJet 4.0 OLE DB Provider этих параметров вполне достаточно, поэтому с помощью кнопки «Проверить подключение» можно протестировать созданную связь с базой данных.

Рис.6. Вкладка Подключение окна настройки связи с провайдером

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

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

Настройку соединения с базой данных можно осуществить и программным способом. Для этого необходимо добавить в программу строчку кода:

Adoconnection1->ConnectionString= “Provider=Microsoft.jet.oledb.4.0;

DataSource=c:\\first.mdb;

persist security info=false”;

В первой строке задается провайдер, во второй – путь к подключаемой базе данных. Третья строка persist security означает сохранять информацию о безопасности или нет. В принципе, эта строка не играет особого значения и следует оставить значение false.

Для удобства работы с базой данных следует отключить окна ввода пароля. За это отвечает свойство LoginPromt объекта ADOConnection. Отключить или включить это свойство можно через окно Инспектора объектов, выбрав одноименное свойство. Или же программно:

ADOConnection1->LoginPromt= false;

Осталось включить соединения с базой данных. Для этого необходимо выставить свойство Connection в значение true через окно Инспектора объектов или же выполнить программно, для этого в программе следует написать следующую строку:

ADOConnection1->Conected= true;

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

Компонент ADODataSet

Этот компонент обеспечивает доступ к одной или нескольким таблицам базы данных с помощью запроса типа select. Компонент рассчитан на возврат набора данных, поэтому его нельзя использовать для выполнения подмножества операторов DDL. (В компоненте есть свойство CommandText, однако в него можно поместить только оператор select. Для выполнения DDL - предложений языка SQL можно использовать метод Execute компонента TADOCommand или метод ExecSQL компонента TADOQuery). В отличие от TADOTable, компонент может обращаться не только к одной, но сразу к нескольким таблицам.

Например, чтобы выполнить запрос к двум таблицам с помощью компонента ADODataSet, в свойство CommandText необходимо занести следующий оператор SQL:

SELECT с.CustNo, с.company, o.SaleDate

FROM customer с, orders о

WHERE о.CustNo=c.CustNo

Компонент ADOTable

Этот компонент способен получать и обслуживать набор данных, состоящий из записей единственной физической таблицы БД, имя которой содержит его свойство TableName. Укажем в свойстве Connection компонента ADOTable созданный нами, компонент соединения с базой дынных. Сделать это можно как в окне Инспектора объектов, так и программно. Для того что бы сделать это программно необходимо написать в коде программы следующую строку:

ADOTable1->Connection = ADOConnection1;

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

ADOTable1->TableName=”Справочник”;

Необходимо активизировать соединение. Для этого надо выставить свойство Active в значение true в окне Инспекторае объектов или же программно:

ADOTable1->Active=true;

Компонент TADOQuery

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

Компонент Datasource

Этот компонент является контейнером данных, полученных от компонентов ADOTable и ADOQuery. Для него необходимо указать данные какой таблицы или запроса он будет отображать. Сделать это можно выбрав в свойстве Dataset необходимую таблицу (ADOtable).

На этом необходимые настройки можно считать законченными и можно переходить к непосредственной работе с базой данных.

Компонент DBGrid

Этот компонент представляет собой двумерную таблицу, в которой строки представляют собой записи, а столбцы — поля определенной таблицы из базы данных. В компоненте TDBGrid можно отображать произвольное подмножество полей используемого набора данных, но число записей ограничить нельзя — в компоненте всегда присутствуют все записи связанного набора данных. Требуемый набор полей можно составить при помощи специального Редактора столбцов, который открывается при двойном щелчке на компоненте, перенесенном на форму, или кнопкой свойства Columns в окне Инспектора объектов. При помощи кнопки Add All Fields в сетку можно добавить все поля из набора данных.

Для каждого поля можно настроить отображение более детально. Для этого необходимо выделить нужное поле и в инспекторе объектов изменить нужное свойство.

1.2.2.5.2. Технология OLE для работы с приложением Excel

Несмотря на то, что C++ Builder позволяет строить мощные приложения любого назначения, нередко желательно привлекать как вспомогательное средство программы, входящие в состав Microsoft Office. Интеграция С++ Builder и программы Excel является прекрасным средством использования сильные стороны каждого из этих программных продуктов. С++ Builder обеспечивает создание удобного интерфейса пользователя и сколь угодно сложной обработки данных. А Excel является прекрасным инструментом формирования стандартных документов, их печати, пересылке, защиты.

Одним из способов взаимодействия Excel с приложением C++Builder является использование сервера автоматизации OLE. Приложения, использующие данных метод, являются более надежными и универсальными, позволяющими работать с любыми версиями Microsoft Office, не зависимыми от версии C++ Builder и установленными его пакетами. При работе с сервером автоматизации не требуется подключения к приложению каких-то специальных модулей.

Серверы имеют множество объектов, свойств, методов, которыми можно управлять. Метод сервера OlePropertyGet (имя свойства) возвращает значение нужного свойства, имя которого как строка указывается в скобках. Метод сервера OlePropertySet (имя свойства, значение) задает необходимое значение нужному свойству. Метод сервера OleProcedure (имя метода, параметры) вызывает нужный метод, который либо не возвращает никакого результата, либо возвращаемый результат не имеет в данный момент значения. Метод сервера OleFunction (имя метода, список параметров) вызывает нужный метод, который возвращает значение. Для каждого метода используется разное количество параметров (до 32). Для большого количества параметров используется массив Variant. Параметры передаются в той последовательности, в которой они указаны в объявлении метода. Значение необязательного параметра в списке задается Variant::NoParam() – значение параметра по умолчанию. Для последних в списке необязательных параметров значение Variant::NoParam() задавать не требуется. Строковые значения параметров должны иметь тип WideString.

Соединение с сервером

Метод CreateObject (“Excel.Application”) создает новый экземпляр сервера и связывается с ним, даже если на ПК уже работает другое приложение. Это гарантирует независимость работы запущенных приложений. Методу передается имя сервера. Метод возвращает объект типа Variant, связанный с вызванным сервером.

ExAp=Variant::CreateObject ("Excel.Application");

Действия с рабочей книгой

С рабочей книгой можно связать некоторую переменную, например:

Variant Book;

Далее эта переменная-объект может быть подключена к рабочей книге, открытой в сервере Excel. Свойство ActiveWorkbook сервера Excel возвращает активную книгу Excel – открытую в окне Excel. Свойство Name возвращает имя книги, которое видит пользователь в заголовке окна Excel.

Book=ExAp.OlePropertyGet (“ActiveWorkbook”);

Form1->Caption=Book.OlePropertyGet ("Name");

Создание новой книги

Метод Add коллекции Workbooks создает новую книгу в коллекции, делая ее активной, и возвращает ее как результат. Новые книги создаются с числом страниц по умолчанию, заданным в настройках Excel. Данное значение храниться в свойстве сервера SheetsInNewWorkbook. Для создания книги с нужным числом страниц перед вызовом метода Add требуется в свойстве сервера SheetsInNewWorkbook задать нужное значение.

ExAp.OlePropertySet ("SheetsInNewWorkbook", Form1->CSpinEdit1->Value);

Book=ExAp.OlePropertyGet ("Workbooks").OleFunction ("Add");

Открыть книгу

Метод Open открывает книгу из указанного файла, добавляет ее в коллекцию книг и активизирует. Первым параметром передается строка с именем файла книги.

if (Form1->OpenDialog1->Execute())

Book=ExAp.OlePropertyGet ("Workbooks")

.OleFunction("Open", WideString (Form1->OpenDialog1->FileName));

Сохранение рабочих книг

Метод Save сохраняет книгу в файле, имя которого совпадает с именем книги, например, «Книга1.xls» в каталоге, который задан в качестве рабочего в настройках Excel. Этот каталог указывается в свойстве DefaultFilePath сервера и может не совпасть с каталогом, в котором расположен исходный файл. Если файл уже имеется на диске, то появится окно с вопросом о перезаписи такого файла. Если пользователь откажется от сохранения, то сгенерируется исключение. Лучше в этом случае программно организовать сохранение файла. Для этого надо отключить появления стандартных окон путем присвоения значения false свойству DisplayAlerts сервера.

Метод SaveAs сохраняет книгу в файле, имя которого указывается первым параметром. Если указать только имя файла, то файл сохранится в текущей папке.

//Сохраняет книгу, с которой связан объект

Book.OleProcedure (“SaveAs”, WideString (SaveDialog1->FileName));

//Сохранит активную книгу

ExAp.OlePropertyGet (“ActiveWorkbook”).

.OleProcedure (“SaveAs”, WideString (SaveDialog1->FileName));

Закрыть книгу

Метод Close без параметров коллекции Workbooks закрывает все открытые в Excel книги. Если в закрывающейся книге есть несохраненные изменения, пользователю задается вопрос об их сохранении.

Метод Close (SaveChanges, Filename) с параметрами может закрыть конкретную книгу. Параметр SaveChanges определяет, что надо выполнить, если были сделаны изменения в книге. Если имеет значение true, то изменения сохраняются в файле, указанном в параметре Filename. Если параметр Filename не задан (значение EmptyParam), то пользователю предлагается указать его имя. Если параметр SaveChanges имеет значение false, то изменения не сохраняются, независимо от значения параметра Filename. Следующая команда закроет активную книгу:

ExAp.OlePropertyGet (“ActiveWorkbook”).OleProcedure (“Close”);

Работа с листами книги

Объекты листов активной книги содержатся в коллекции Worksheets сервера. Свойство Count определяет количество листов в книге. Сервер имеет свойство ActiveSheet, определяющее ак



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 1620; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.223.172.252 (0.128 с.)