Работа с сервером автоматизации




ЗНАЕТЕ ЛИ ВЫ?

Работа с сервером автоматизации



Создание объекта сервера автоматизации Application требует описания объекта класса Variant, который в дальнейшем будет связан с сервером:

Variant ExAp; //Глобальная переменная

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

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

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

Завершающие действия с экземпляром сервера

Метод Quit вызывает закрытие сервера. Метод Clear() очищает память.

ExAp.OleProcedure("Quit"); //Закрытие сервера

ExAp.Clear(); //Очистка памяти

Отобразить экземпляр сервера Excel

Свойство Visible определяет видимость сервера. Задание свойства значением true вызывает отображение окна Excel.

ExAp.OlePropertySet ("Visible", true);

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

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

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, определяющее активный лист активной книги. Для работы с листом надо создать объект класса Variant и подключить его к листу книги.

Variant Sheet;

Sheet=ExAp.OlePropertyGet (“ActiveSheet”);

Объект книга содержит свойство ActiveSheet, связанное с активным листом этой книги, не обязательно активной. Пример, поясняющий это действие:

Sheet=Book.OlePropertyGet (“ActiveSheet”);

К конкретному листу из коллекции Worksheets можно обратиться по индексу. Например, связаться с первым листом книги и активизировать его (выдвинуть его на первый план в окне Excel) можно строчками:

Sheet=Book.OlePropertyGet (“Worksheets”, 1);

Sheet.OleProcedure (“Active”);

К конкретному листу можно обратиться и по имени

Sheet=Book.OlePropertyGet (“Worksheets”, WideString (“Лист1”));

Sheet=Book.OlePropertyGet (“Worksheets”, WideString (Edit1->Text));

Sheet.OleProcedure (“Active”);

Если лист с указанным именем отсутствует в книге, возникнет исключение.

Метод Add коллекции Worksheet добавляет новый лист. Все параметры метода необязательны. Первый и второй параметры Before и After – это объект листа, перед которым или после которого осуществляется вставка. Если оба параметра не заданы (Variant::NoParam()), то новые листы вставляются перед текущим активным листом. Третий параметр Count указывает число вставляемых листов. Если он не указан, то вставляется один лист. Метод возвращает добавленный лист. Если добавлено несколько листов, то возвращается первый из них.

Метод Copy копирует лист на место, заданное или первым параметром Before (перед), или вторым параметром After (после). Метод Move не создает копию листа, а перемещает его на новое место. Имеет те же параметры, что и метод Copy. Метод Delete удаляет лист из книги.

Sheet.OleProcedure (“Delete”);

Работа с ячейками

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

Работа с одной ячейкой

Свойство Value объекта Range используется для чтения или изменения данных диапазона ячеек. Пример: Работа с одной ячейкой B3.

Variant cell; //Объект-ячейки

cell=ExAp.OlePropertyGet ("Range", WideString ("B3")); //Связь с ячейкой

Form1->Label2->Caption=cell.OlePropertyGet ("Value"); //ее значение

cell.OlePropertySet("Value",WideString(Form1->Edit1->Text));//Новое значение

//Записать в ячейку B1 текущую дату

s=DateToStr (Date()); //Получить дату и преобразовать ее в строку

ExAp.OlePropertyGet ("Range", WideString ("B1") )

.OlePropertySet ("Value", WideString (s) );

Свойство Value можно использовать и для занесения в нужную ячейку формулы. Например: завести в ячейку A12 сумму ячеек диапазона A2:A11.

cell=ExAp.OlePropertyGet ("Range", WideString("A12"));

cell.OlePropertySet ("Value", WideString ("=Сумм (A2:A11)" ) );

Вместо свойства Value для занесения формулы в ячейку можно использовать свойство Formula объекта Range.

Пример: В ячейку A12 поместить сумму ячеек A2-A11.

cell.OlePropertySet ("Formula", WideString ("=Сумм (A2:A11)" ) );

Различие в применении свойств Value и Formula проявляются при чтении данных.

Form1->Edit1->Text=cell.OlePropertyGet ("Value");

Form1->Edit2->Text=cell.OlePropertyGet ("Formula");

Результатом первой строки является число, содержащиеся в ячейки. Результатом второй команды является формула, т.е. “=СУММ(A2:A11)”. Если в считываемой ячейки содержится не формула, то свойство Formula вернет значение в этой ячейке.

Для задания диапазона ячеек можно использовать свойство Cells либо сервера, либо листа. В свойство Cells можно передавать два параметра: индекс строки и индекс столбца, на пересечении которых находится ячейка (формат R1C1). Можно использовать доступ к конкретной ячейке:

cell=ExAp.OlePropertyGet (“Cells”, 3, 2 ); //Ячейка B3

Удобно использовать свойство Cells в цикле, перебирая нужные ячейки

for (i=1; i<=10; i++)

ExAp.OlePropertyGet ("Cells", i, 3).OlePropertySet ("Value", i);

Фрагмент заполняет ячейки столбца C1:C10 порядковыми номерами.

Свойство Offset объекта Range возвращает объект Range, соответствующий ячейкам, смещенных на указанное в свойстве количество строк и столбцов относительно выбранного диапазона.

//Значение в ячейке, сдвинутой относительно активной на 2 строки вверх и 3

//столбца вправо

ShowMessage (ExAp.OlePropertyGet ("ActiveCell")

.OlePropertyGet (“Offset”, -2, 3).OlePropertyGet ("Value"));

//Заполнить ячейки от B20:K20 номерами по порядку

for (i=1; i<=10; i++)

ExAp.OlePropertyGet ("Range", WideString ("A20"))

.OlePropertyGet ("Offset", 0, i).OlePropertySet ("Value", i);

Часто надо обратиться к первым пустым ячейкам после заполненных, например, чтобы записать формулу для суммы предыдущих заполненных столбцов. Для этого сначала находят последнюю заполненную ячейки, и от нее, смещаясь на единицу, достигают нужной ячейки. Свойство End объекта Range определяет последнюю заполненную ячейку. Свойство имеет параметр – направление: 0xFFFFEFE7 – вниз, 0xFFFFEFC1 – влево, 0xFFFFEFBF – вправо, 0xFFFFEFBE – вверх. Свойство End срабатывает, если непрерывных ячеек более одной.

 

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

Правило программистов гласит: в каждой программе есть хотя бы одна ошибка. Для обнаружения ошибок этапа выполнения программы служат специальные программы-отладчика. Они бывают специализированными - встроенными в среду программирования. Такие отладчики отлаживают программу только для конкретного языка программирования. Имеются универсальные отладчика, они поставляются отдельно от среды. Программисту В C++ Builder имеется средство отладки - Инспектор Отладки (Debug Inspector). Он позволяет получать исчерпывающую информацию о любой переменной в приложении и дает возможность изменять ее значение. Вызов этого окна осуществляется командой Run | Inspect, которая доступна только во время выполнения приложения при остановке программы средствами отладки или вследствие генерации исключения. Где можно задать имя контролируемого объекта. Таким контролируемым объектом может быть переменная, массив, класс, функция, указатель. Вот несколько примеров окна Инспектора Отладки при различных типах контролируемого объекта.

1) Имя переменной. После добавления имени переменной окно Инспектора Отладки принимает вид, показанный на Рис.7.


Рис.7. Внешний вид окна Инспектора Отладки при выборе переменной

2) Имя элемента управления (кнопка, строка редактирования и т.п.). В этом случае окно имеет три вкладки: Data, Methods, Properties. (Рис. 8).


Рис.8. Внешний вид окна Инспектора Отладки при выборе кнопки

Более интересной является вкладка Properties, где перечисляются все свойства компонента. После слов read= располагаются значения соответствующих свойств. Для изменения значения свойства нужно его выделить и нажать появившуюся кнопку.

Рис.9. Контекстно-зависимое меню окна Инспектора Отладки

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

Change - перейти в окно Change для изменения значения элемента;

Show Inherited - при включении этого флага отображаются все свойства и методы, как объявленные в данном классе, так и наследуемые. В противном случае отображается то, что объявлено в данном классе;

Inspect - открытие нового окна для выделенного элемента данных. Это позволяет детальнее исследовать данные типа "структура", "класс" и т.п.;

Descend - аналогично Inspect, только данные выводятся в этом же окне;

New Expression - задание нового выражения;

Type Cast - изменение типа рассматриваемого объекта.

 

 

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

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

 

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

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

- выдавать справочную информацию о складе;

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

- осуществлять поставку нового товара на склад;

- рассчитывать отпуск товара со склада с учетом розничных и оптовых цен;

- проводить рейтинг товара на складе;

- осуществлять при желании проведение торговой акции на отдельные товары;

- готовить все необходимые отчеты в формате Excel.

Каждое действия должно сопровождаться проверкой вводимой информации. Информация должна быть при необходимости защищена паролем.

Назначение задачи

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

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

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

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

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

 

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

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

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

- производить промежуточные и итоговые расчеты по закупке товара;

- выполнять коррекцию цен в зависимости от ценовой политики;

- в стандартной форме представлять отчеты по основным операциям с товаром на складе;

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

- упрощать ввод новой информации в базу данных;

- выполнять всевозможный контроль при изменении данных.

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

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

- все файлы игры должны находиться в одной папке;

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

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

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

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

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

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

 

Интерфейсная часть проекта

       
 
Информационная форма
 
Форма поступления


               
   
   
   
Форма склада
 
Форма рейтинга
 
 
 


                       
 
Главная форма
 
   
   
 
   
     
   
 
 


Программная часть проекта

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

1. Модуль GlUnit.

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

2. Модуль PostUnit.

Основная задача – обработка поступление нового товара на склад. Отображается сначала пустая таблица и поля ввода кода или названия поступающего товара. Основные функции модуля:

- обработчик отображения формы (событие OnShow), в котором выполняются подготовительные действия по приемке товара: очищается таблица и поля ввода;

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

- обработчик закрытия данной формы (событие OnClose) выполняет перенос информации из заполненной таблицы в таблицу базы данных, с учетом поставок товара на склад;

- обработчик события щелчка по кнопке «Создать отчет» (событие OnClick) выполняет заполнения заранее подготовленного шаблона в Excel по поступлению товара; здесь идет работа с применением технологии сервера автоматизации;

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

3. Модуль Unit1.

Основная задача модуля – отображение и обработка информации о всем товаре склада. Здесь отображается таблица базы данных «Склад», выполняются сортировки по всем полям в нужном направлении, выполняется поиск товара по его артиклю или названию, создается отчет в формате Excel-таблицы. Именно на этой форме можно выполнить настройку защиты данных. Основные обработчики модуля:

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

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

- событие отображение формы на экране (событие OnShow) устанавливает связь с таблицей базы данных «Склад», отображает всю информацию о текущем состоянии склада, а так же общее количество сумму товара на складе;

- щелчок по кнопке «Создать отчет в Excel» по имеющему шаблону заполняет пустые ячейки таблицы информацией из базы данных;

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

4. Модуль UnitIssledovanie.

Основная задача модуля – проведения исследования по рейтингу товара и предоставление возможности работнику склада провести акцию на любой товар с любой скидкой. Основные обработчики событий этого модуля:

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

- щелчок по флажку «Акция» (событие OnClick) отображает список флажков для каждого товара, чтобы работник склада мог выбрать этот товара для участия в акции;

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

5. Модуль UnitOtp.

Основная задача модуля – это отпуск товара со склада с учетом оптовой или розничной цены. Изменения отражаются в главной таблице склада и таблицы отпуска товара со склада. Основные обработчики событий:

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

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

- щелчок по кнопке «Отпуск товара» переносит все заполненные поля отпускаемого товара в таблицу и подготавливает все для следующего выбора товара;

- при закрытии формы (событие OnClose) происходит перенос информации из заполненной таблицы в таблицу склада и таблицу отпуска товара;

- щелчок по кнопке «Отчет в Excel» заполняет подготовленную заранее форму накладной на отпуск товара.

6. Модуль UnitTabl.

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

- щелчок по контейнеру радиокнопок осуществляет выбор фильтрации по полю;

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

- щелчок по кнопке «Создать отчет» заполняет подготовленный заранее шаблон Excel информацией о выбранной таблице и результатах фильтрации.

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

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

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

В данном дипломном проекте реализована программа для автоматизации труда работника складского предприятия для отслеживания товарооборота на складе. Программа написана на языке Borland C++ Builder 6. Техническая документация подготовлена с использованием офисного программного продукта Microsoft Word 2003. В программе создаются отчеты из таблиц баз данных в формате Excel, используя технология сервера автоматизации. В программе реализована ADO-технология обработки таблиц базы данных. Сама структура базы данных и ее полей создана в СУБД Access. В базе данных имеется три таблицы: Склад – для хранения и обработки товара скола, Отпуск товара – хранится информация о всех отпущенных товаров со склада и таблица Приход товара – хранятся сведения о всех поставках товара на склад.

 

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

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

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

- осуществлять поставку нового товара на склад;

- рассчитывать отпуск товара со склада с учетом розничных и оптовых цен;

- проводить рейтинг товара на складе;

- осуществлять при желании проведение торговой акции на отдельные товары;

- готовить все необходимые отчеты в формате Excel.

Каждое действия должно сопровождаться проверкой вводимой информации. Информация должна быть при необходимости защищена паролем.

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





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

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