От менеджера
1.3 Описание структуры базы данных
База данных имеет три таблицы, которые подробно описаны в таблице 1.3.1.
Таблица 1.3.1 - Описание структуры базы данных
Назначение таблицы
|
Физическое имя таблицы
|
Наименование поля
|
Шифр поля
|
Формат поля
|
1
|
2
|
3
|
4
|
5
|
Информация по мастерам
|
Мастера
|
ID мастера*
|
ID*
|
Счетчик
|
|
|
Фамилия
|
Фамилия
|
Текст
|
|
|
Имя
|
Имя
|
Текст
|
|
|
Отчество
|
Отчество
|
Текст
|
|
|
Стаж работы
|
СтажРаботы
|
Число
|
|
|
Стиль работы
|
СтильРаботы
|
Текст
|
|
|
Номер телефона
|
НомерТелефона
|
Число
|
Информация по клиентам
|
Клиенты
|
ID клиента*
|
ID*
|
Счетчик
|
|
|
Фамилия
|
Фамилия
|
Текст
|
|
|
Имя
|
Имя
|
Текст
|
|
|
Отчество
|
Отчество
|
Текст
|
|
|
Контактный телефон
|
КонтактныйТелефон
|
Число
|
Информация о сеансах
|
Сеансы
|
ID мастера
|
ID*
|
Счетчик
|
|
|
Мастер
|
Мастер
|
Текст
|
|
|
Клиент
|
Клиент
|
Текст
|
|
|
Дата и время
|
Дата/Время
|
Дата
|
Схема отношений базы данных представлена на рисунке 1.3.1.
Рисунок
1.3.1 - Схема отношений базы данных
Выходными документами в данной задаче является отчет о проделанной работе
каждым мастером.
Описание выходных документов представлено в таблице 1.4.1.
Таблица 1.4.1 - Описание выходных документов
Наименование документа
|
Периодичность выдачи
документа
|
Кол-во экз.
|
Куда передаются
|
1
|
2
|
3
|
4
|
Отчет оп роделанной работе
каждым мастером
|
Каждый месяц
|
1
|
Менеджеру салона
|
Форма выходных документов представлена в приложении В.
1.5 Общие требования к программному продукту
Обоснование целесообразности решения задачи: задание на дипломный проект,
рассмотренное на заседании цикловой комиссии, а также необходимость в простом,
удобном, надёжном и функциональном программном средстве учета выполненных работ
на предприятии.
Целевые задачи:
- программа должна максимально
автоматизировать бумажную работу сотрудников салона;
- программа должна сохранять и
отображать необходимую информацию;
- программа должна формировать
необходимые отчеты.
Программное обеспечение разрабатывается для персональной вычислительной
техники типа не ниже Windows 7 со следующими характеристиками:
- объем ОЗУ не ниже 256 Мб;
- графический адаптер SVGA;
- монитор;
- сетевая карта;
- манипулятор типа "мышь";
- клавиатура;
- принтер.
ЭВМ должна работать под управлением операционной системы с графическим
интерфейсом (не ниже Windows XP/7), а также поддерживать СУБД Microsoft SQL
Server 2008 R2.
Функциональные возможности:
- программный продукт должен
формировать и отображать выходные документы;
- должен быть обеспечен просмотр базы
данных с возможностью добавления, редактирования и удаления из нее данных;
- должен быть обеспечен вывод данных в
MS Word.
Требования к надежности:
- программа должна обрабатывать
ошибочные действия пользователя и сообщать ему об этом;
- программа должна обеспечивать
контроль входной и выходной информации;
- в программе должно быть предусмотрено
разграничение прав доступа и защита от несанкционированного доступа к данным.
Требования к практичности:
- программа должна работать в
многооконном графическом режиме и поддерживать работу, как клавиатуры, так и
манипулятора типа "мышь";
- программа должна содержать присвоение
значений по умолчанию;
- программа должна обеспечивать возможность
работы пользователям с начальными знаниями работы на компьютере.
Требования к информационной и программной совместимости:
обеспечить работу с таблицами баз данных типа БД MS SQL Server 2008 R2 в
качестве входной и выходной информации. Предусматривается взаимодействие с
программными продуктами Microsoft Office.
2. Экспериментальный раздел
.1 Обоснование выбора языка программирования и СУБД
Для создания программы использовались среда разработки Delphi 7 с
использование сервера баз данных Microsoft SQL Server 2008 R2. Выбор языка
программирования оказывает непосредственное влияние на быстроту разработки,
надежность и эффективность программы. В качестве среды программирования для
реализации системы был выбран пакет Delphi 7.
Интегрированная среда разработки Delphi с ее инструментами визуального
редактирования, библиотекой компонент, механизмом баз данных и многим другим,
идеально подходит для написания разумных 32-разрядных приложений Windows,
используя свой диалект языка Object Pascal - Delphi Pascal, который является объектно-ориентированным.
Обоснованием выбора служат следующие факторы:
- быстрота разработка зависит, прежде
всего, цена программного продукта. Для увеличения скорости написания
Windows-приложений необходимо использовать средства визуального
программирования. Delphi как нельзя более подходит для выполнения данной
задачи, так как назначение Delphi - быстрая разработка приложений. Разработка
приложений интерфейса пользователя с помощью Delphi - в основном процесс
проектирования, с весьма небольшим количеством фактического программирования,
что существенно сокращает время на создание удобного интерфейса, отвечающего
стандартам разработки Windows-приложений. Delphi может компилировать 32-битные
программы, обеспечивая высокую скорость выполнения;
рассматриваемая относится к разряду вычислительных с использованием баз
данных. В состав Delphi входит высокоэффективный компилятор с языка Object
Pascal, основанный на концепции объектно-ориентированного программирования.
Данный компилятор генерирует оптимизированный код, позволяющий увеличить
скорость выполнения программ, что немаловажно для данного программного
продукта. Delphi создает действительно откомпилированные программы, готовые для
исполнения. Кроме того, для увеличения быстродействия программы и уменьшения
объема занимаемой памяти используется возможность работы с динамическими
структурами данных;
- постановка задачи исключает необходимость доступа к аппаратным
средствам ЭВМ, поэтому отсутствует надобность выбора языка низкого уровня для
написания программы или ее частей;
создание приложений “Клиент - Сервер”. В настоящее время широко
используются многозвенные информационные системы. Delphi предоставляет широкие
возможности для создания приложений, поддерживающих трехзвенную систему,
компонентами которой являются “тонкий” клиент, сервер приложений и сервер баз
данных.
Таким образом, среда программирования Delphi является оптимальным выбором
для решения поставленной задачи, так как:
- обеспечивает простоту написания вычислительных частей
приложения, высокую скорость вычисления скомпилированной программы;
- обладает широкими средствами визуального построения
интерфейса;
- обладает обширными средствами поддержки баз данных.
Microsoft SQL Server представляет собой СУБД, обеспечивающую создание информационных
систем с архитектурой “клиент-сервер”, в которой он играет роль сервера баз
данных. SQL Server поддерживает: тиражирование данных, параллельную обработку,
создание и обработку больших баз данных, отличается простотой управления и использования.
Эта СУБД обеспечивает высокую степень защиты данных, как от случайных
потерь, так и от несанкционированного доступа, обладает развитыми средствами
обработки данных и хорошим быстродействием. SQL-Server предназначен для
хранения большого объема данных.Server добавляет к сетевым компонентам
специальные сервисы, такие как OLE DB (Object Linking and Embedding-Database -
связывание и внедрение объектов базы данных) и ODBC (Open Database Connectivity
- совместимость открытых баз данных). С их помощью обеспечивается
совместимость различных клиентских приложений при работе с сервером.
.2 Схема алгоритма
Рисунок
2.1 - Схема алгоритма главного окна системы
.3 Описание программы
Программа Programm.exe имеет
модульную структуру. При ее запуске выполняется проект Project1.dpr, который состоит из тринадцати модулей программы,
описаных в таблице 2.3.1.. Модульная схема приведена в приложении Д.
Таблица 2.3.1 - Описание модулей
Процедуры
|
Назначение
|
1
|
2
|
TForm1.BitBtn1Click
|
Вход в систему
|
TForm1.BitBtn2Click
|
«О системе»
|
TForm1.BitBtn3Click
|
Выход
|
Модуль form3.
pas -панель авторизации
|
TForm3.BitBtn1Click
|
Вход в систему
|
TForm3.FormShow
|
Очищение поля ввода пароля
|
Модуль form4.
pas - главная панель
|
TForm4.FormShow
|
Показ окна с функциями для
разных пользователей
|
TForm4.N1Click
|
Показ окна «Пользователи»
|
TForm4.N2Click
|
Показ окна «Мастера»
|
TForm4.N3Click
|
Показ окна «Клиенты»
|
TForm4.N4Click
|
Показ окна «О системе»
|
TForm4.N5Click
|
Выход на панель входа
|
TForm4.BitBtn1Click
|
Создание отчета в MS Word
|
Модуль form5.
pas - окно «Пользователи»
|
TForm5.N1Click
|
Показ окна «О системе»
|
TForm5.N2Click
|
Выход на панель входа
|
Модуль form6.pas
- окно «Мастера»
|
Tform6.N1Click
|
Показ окна «О системе»
|
Tform6.N2Click
|
Выход на панель входа
|
Модуль form7.pas
- окно «Мастера»
|
Tform7.N1Click
|
Показ окна «О системе»
|
Tform7.N2Click
|
Выход на панель входа
|
Модуль form8.pas
- окно «О системе»
|
TForm8.BitBtn1Click
|
Выход на панель входа
|
|
|
|
2.4 Протокол тестирования программного продукта
Данный программный продукт удовлетворяет всем функциональным требованиям,
имеет дружественный интерфейс, легок и понятен в пользовании, максимально
исключает появление системных ошибок.
Таблица 2.4.1 - Сообщения пользователю
Сообщение
|
Причина
|
Действия
|
1
|
2
|
3
|
«Выберите пользователя!»
|
Не выбран пользователь
|
Нажать кнопку «ОК» и выбрать
пользователя
|
«Введите пароль!»
|
Не введен пароль
|
Нажать кнопку «ОК» и ввести
пароль
|
«Неверный пароль!»
|
Пароль введен не
верноподключение к базе данных
|
Нажать кнопку «ОК» и
повторить набор пароля
|
При тестировании программного продукта на данных контрольного примера
обработка данных (т.е. изменение, удаление, вывода выходных документов)
осуществляется корректно.
Результаты тестирования полностью совпадают с ожидаемыми. Результаты
корректных выходных документов представлены в приложении Е.
.5 Руководство пользователя
Для запуска программы необходимо запустить приложение Project1.exe. Во избежание неполадок не следует удалять,
переименовывать и перемещать файлы из рабочего каталога программы.
Первая форма - форма входа в систему (рисунок 2.5.1).
Рисунок 2.5.1 - Вход в систему
При нажатии на кнопку «О системе» открывается одноименное окно (рисунок
2.5.2).
Рисунок 2.5.2 - Окно о системе
Для закрытия окна нужно нажать кнопку «Выход». Снова появляется форма
входа в систему. Для того чтобы войти в систему, необходимо нажать одноименную
кнопку. Появляется окно авторизации в системе (рисунок 2.5.3).
Рисунок 2.5.3 - Авторизация в системе
Существует три типа учетных записей: мастер, менеджер и администратор
системы. Войдем в систему через администратора. Перед нами появляется главное
окно системы (рисунок 2.5.4).
Рисунок 2.5.4 - Главное окно системы
На главном окне расположены вкладки «Пользователи», «Мастера», «Клиенты»,
«О системе», «Выход».
Пункт «Пользователи» на главном окне системы (рисунок 2.5.4) открывает
одноименное окно. В данном окне имеется возможность добавления, редактирования
и удаления данных(рисунок 2.5.5).
Рисунок 2.5.5 - Окно "Пользователи"
Пункт «Выход» соответственно производит выход на главное окно системы.
Вкладка «Мастера» на главном окне системы (рисунок 2.5.4). В окне
«Мастера» возможны добавление, редактирование, удаление иинформации по мастерам
(рисунок 2.5.6).
Рисунок 2.5.6 - Окно "Мастера"
Вкладка «Клиенты» на главном окне системы (рисунок 2.5.4) вызывает
одноименное окно (рисунок 2.5.7) .
Рисунок 2.5.7 - Окно "Клиенты"
В данном окне возможно формирование отчета.
Вкладка «О системе» на главном окне системы (рисунок 2.5.4) соотвествует
окну «О системе» (рисунок 2.5.2).
Заключение
В процессе выполнения дипломного проекта были разработаны структура и
алгоритм работы приложения студии художественной татуировки, разработана
постановка задачи, описана входная и выходная информация, составлен контрольный
пример, сформулированы требования к продукту. Результатом работы стало создание
программного продукта, облегчающего работу студии хулжественной татуировки.
Программное обеспечение написано на языке Object Pascal с использованием
среды разработки Delphi 7. Результаты выводятся в MS Word. Код программы
представлен в приложении А.
Были проведены опытная эксплуатация и отладочное тестирование
программного обеспечения. По результатам отладочного тестирования были
устранены некоторые недостатки. После этого были написаны руководство
пользователей.
Список использованых источников
1 Российская
Федерация. Законы. О персональных данных [Текст]: федер. закон [принят Гос.
Думой 8 июля 2006 г., одобр. Советом Федерации 14 июля 2006 г. от 27.07. 2006 N
152-ФЗ (ред. от 21.07.2014) ]// Информационно-правовая система КонсультантПлюс.
2 Российская
Федерация. Законы. Об информации, информационных технологиях и о защите
информации [Текст]: федеральный закон [принят Гос. Думой 8 июля 2006 г., от
27.07.2006 N 149-ФЗ (ред. от 13.07.2015) ] // Информационно-правовая система
КонсультантПлюс.
3 ГОСТ
19.001-77. ЕСПД. Единая система программной документации Общие положения.
[Текст]. - Введ. 1980 - 01 - 01. - М.: Стандартинформ, 2010.
4 ГОСТ
19.003-80. ЕСПД. Единая система программной документации. Схемы алгоритмов и
программ. [Текст]. - Введ. 1981 - 01 - 07. - М.: Стандартинформ, 2010.
ГОСТ
19.104-78. ЕСПД. Единая система программной документации. Основные надписи. ( с
изменением № 1) [Текст]. - Введ. 1980 -01 - 01. - М.: Стандартинформ, 2010 .
ГОСТ
19.401. - 78. Текст программы. Требования к содержанию и оформлению. Единая
система программной документации [Текст]. - Введ. 1980 - 01 - 01. - М.:
Стандартинформ, 2010.
ГОСТ
19.402 - 78. Описание программы. Единая система программной документации
[Текст]. - Введ. 1980 - 01 - 01. - М.: Стандартинформ, 2010 .
ГОСТ
19.404 - 79. Пояснительная записка. Требования к содержанию и оформлению.
Единая система документации [Текст]. - Введ. 1981 - 01 - 01. - М.:
Стандартинформ, 2010.
ГОСТ
19.701 - 90 ( ИСО 5807 - 85 ). Схемы алгоритмов, программ, данных и систем.
Обозначения условные и правила выполнения. Единая система программной
документации [Текст]. - Введ. 1992 - 01 - 01. - М.: Стандартинформ, 2010.
Вендров
А. М., Case-технологии. Современные методы и средства проектирования
информационных систем [Текст] / А. М. Вендров. - М.: Финансы и статистика,
2004. - 235 с.
Горев
А., Эффективная работа с СУБД. [Текст] / А., Горев , Р. Ахаян , С. Макашарипов
. - СПб.: Питер, 2007. - 700 с.
Грабер
М., Введение в SQL. [Текст]: пер. с англ. / М. Грабер - М.: "ЛОРИ",
2006. - 418с;
Дейт
К. Дж., Введение в системы баз данных [Текст]: пер. с англ./ Дейт К. Дж. - 6-е
изд. - СПб.: Издательский дом "Вильямс", 2000. - 482с;
Карпова,
И.П. Базы данных. Учебное пособие. Курс лекций и материалы для практических
занятий [Текст] / И.П. Карпова.. - СПб.: Питер, 2013. - 240 с.
Кочеткова,
А. И. Основы управления в условиях хаоса (неопределенности). Часть 1
[Электронный ресурс] / А. И. Кочеткова. - М.: ИНФРА-М, Znanium.com, 2014. - 484
с. - ISBN 978-5-16-101634-3 (online).
16 Культин
Н.Б Основы программирования в Delphi 7 [Текст] / Н.Б Культин. - СПб.:
БХВ-Петербург, 2007 г. - 608 с.: ил.
17 Маклаков
С. В., BPWin и ERWin. CASE-средства разработки информационных систем [Текст] /
С. В., Маклаков - М.:Диалог-МИФИ, 2006. - 256с;
18 .
Фаронов В.В. Программирование баз данных в Dephi 7. Учебный курс [Текст] /
В.В.Фаронов. - СПб.: Питер, 2006 г. - 459с.: ил.
.
Хомоненко А.Д., Гофман В.Э. Работа с БД в Dephi [Текст] / А.Д. Хомоненко. -
СПб.: «БХВ-Петербург», 2009. - 1230с.
20 . Википедия: свободная
энциклопедия // Режим доступа: https:// ru.wikipedia.org/wiki/, свободный.
Приложение А
Форма выходного документа
id
|
Мастер
|
Клиент
|
Дата/Время
|
1
|
Исхакова
|
Петров
|
24.02.2017 10:00:00
|
Приложение Б
Исходный код программы
unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, Buttons;= class(TForm): TBitBtn;: TBitBtn;:
TBitBtn;BitBtn1Click(Sender: TObject);BitBtn2Click(Sender:
TObject);BitBtn3Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm1;Unit3, Unit8;
{$R *.dfm}TForm1.BitBtn1Click(Sender:
TObject);.Show;;TForm1.BitBtn2Click(Sender:
TObject);.Show;;TForm1.BitBtn3Click(Sender: TObject);;;.Unit3;, Messages,
SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons,
ExtCtrls, Unit2, DBCtrls;= class(TForm): TLabeledEdit;: TBitBtn;:
TDBLookupComboBox;: TLabel;BitBtn1Click(Sender: TObject);FormShow(Sender:
TObject);
{ Private declarations }
{ Public declarations };: TForm3;Unit4;
{$R *.dfm}TForm3.BitBtn1Click(Sender: TObject);
if
DBLookupComboBox1.Text='' then
ShowMessage('Âûáåðèòå
ïîëüçîâàòåëÿ.')
else if LabeledEdit2.Text='' then begin
ShowMessage('Ââåäèòå
ïàðîëü!');
LabeledEdit2.SetFocus;
else if
LabeledEdit2.Text=DataModule2.Users.FieldByName('Ïàðîëü').AsString
then begin
Form4.Show;;else begin
{ Private declarations }
{ Public declarations };: TForm4;Unit5, Unit6, Unit7, Unit8;
{$R *.dfm}TForm4.FormShow(Sender: TObject);
if
DataModule2.Users.FieldByName('Äîëæíîñòü').AsString='Ìàñòåð'
then begin
N1.Visible:=False;.Visible:=False;.Visible:=False;;
if
DataModule2.Users.FieldByName('Äîëæíîñòü').AsString='Ìåíåäæåð'
then begin
N1.Visible:=False;;;;TForm4.N1Click(Sender:
TObject);.Show;;TForm4.N2Click(Sender: TObject);.Show;;TForm4.N3Click(Sender:
TObject);.Show;;TForm4.N4Click(Sender: TObject);.Show;;TForm4.N5Click(Sender:
TObject);;;TForm4.BitBtn1Click(Sender: TObject);:integer;CreateWord then
begin(false);;.Works.DisableControls;(DBGrid1,true,table);(true);.Works.EnableControls;;;.Unit5;,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Unit2,
Menus, ExtCtrls, DBCtrls, Grids, DBGrids;= class(TForm): TDBGrid;:
TDBNavigator;: TMainMenu;: TMenuItem;: TMenuItem;N1Click(Sender:
TObject);N2Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm5;Unit7, Unit8;
{$R *.dfm}TForm5.N1Click(Sender:
TObject);.Show;;TForm5.N2Click(Sender: TObject);;;.Unit6;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, Unit2, Grids, DBGrids, ExtCtrls,
DBCtrls, Menus;= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;:
TDBNavigator;: TDBGrid;N3Click(Sender: TObject);N4Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm6;Unit8;
{$R *.dfm}TForm6.N3Click(Sender: TObject);.Show;;TForm6.N4Click(Sender:
TObject);;;.Unit7;, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,, Unit2, ExtCtrls, DBCtrls, Grids, DBGrids, Menus;= class(TForm):
TMainMenu;: TMenuItem;: TMenuItem;: TDBGrid;: TDBNavigator;N1Click(Sender:
TObject);N2Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm7;Unit8;
{$R *.dfm}TForm7.N1Click(Sender:
TObject);.Show;;TForm7.N2Click(Sender: TObject);;;.Unit8;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons;=
class(TForm): TBitBtn;: TLabel;: TLabel;: TLabel;BitBtn1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm8;
{$R *.dfm}TForm8.BitBtn1Click(Sender:
TObject);;;.MyWord;Grids,SysUtils,DBGrids;=integer;
{ wdStyleNormal = $FFFFFFFF;= $FFFFFFBD;= $FFFFFFFE;=
$FFFFFFFD;= $FFFFFFFC; }= -1;= -1;= -2;= -3;=
-4;=integer;=$00000000;=$00000001;= $00000002;= $00000003;= $00000004;=
$00000005;= $00000006;= $00000007;= $00000008;= $00000009;= $0000000A;=
$0000000B;= $0000000C;= $0000000D;= $0000000E;= $0000000F;=
$00000010;=0;=1;=2;=0;=0;=1;=1;=0;=2;=0;=1;= $FFFFFFFF;= $FFFFFFFE;=
$FFFFFFFD;= $FFFFFFFC;= $FFFFFFFB;= $FFFFFFFA;=0;= $00000054;= $00000056;=
$00000057;= $00000058;= $00000061;= $00000063;= $00000067;= $0000006F;=
$00000070;=
$00000075;CreateWord:boolean;VisibleWord(visible:boolean):boolean;AddDoc:boolean;AddDocFile(FileName:string):boolean;OpenDoc(file_:string):boolean;SaveDocAs(file_:string):boolean;CloseDoc:boolean;CloseWord:boolean;InsertBreak(WdBreakType:WdUnits):boolean;InsertParagraphAfter:boolean;InsertParagraphAfterTable(table:integer):boolean;MoveInDoc(UnitType:WdUnits;Count:integer):boolean;PageCount:integer;WordCount:integer;StartOfDoc:boolean;EndOfDoc:boolean;TypeTextDoc(text_:string):boolean;SetTextToDoc(text_:string
;InsertAfter_:boolean):boolean;GetDocToText(var text:string;
wordNum:integer):boolean;FindTextDoc(text_:string):boolean;PasteTextDoc(text_:string):boolean;FindAndPasteTextDoc(findtext_,pastetext_:string):boolean;FindAndInsert(FindText,ReplacementText:string):boolean;DialogWord(Dialog:Wdunits):boolean;SetFont(FontName:WdFonts):boolean;
//Table-------CreateTable(NumRows, NumColumns:integer;var
index:integer):boolean;GetWordTablesCellValue(Table,Row,Column:integer;var
S:string );SetWordTablesCellValue(Table,Row,Column:integer;S:string);GetTableInStringGrid(Table:integer;var
StringGrid:TStringGrid);GetStringGridInTable(StringGrid:TStringGrid;var
Table:integer);GetStringGridInTable2(StringGrid:TStringGrid;var
Table:integer;ColArr:array of integer);WordTableAddFromDBGrid(DBGrid:
TDBGrid;CollSize:boolean;var
Table:integer);SetSizeTable(Table:integer;RowsHeight,
ColumnsWidth:real):boolean;GetSizeTable(Table:integer;var
RowsHeight,ColumnsWidth:real):boolean;SetHeightRowTable(Table,Row:integer;RowHeight:real):boolean;GetHeightRowTable(Table,Row:integer;var
RowHeight:real):boolean;SetWidthColumnTable(Table,Column:integer;ColumnWidth:real):boolean;GetWidthColumnTable(Table,Column:integer;var
ColumnWidth:real):boolean;SetTextToTable(Table:integer;Row,Column:integer;text:string):boolean;GetTextFromTable(Table:integer;Row,Column:integer;var
text:string);CopyHereRawFromTable(table,Row1,Row2:integer):boolean;SetLineStyleBorderTable(Table:integer;Row,Column,wdBorderType,wdBorderStyle:WdUnits):boolean;SetMergeCellsTable(Table:integer;Row1,Column1,Row2,Column2:integer):boolean;TableAutoFit(Table:integer);MakeNewLineInTable(Table,AfterRow,NewRowCount:integer);DeleteRowInTable(Table,Row:integer);
//Table-------InsertPicture(FileName:string);ComObj;W:variant;CreateWord:boolean;:=true;:=CreateOleObject('Word.Application');.Options.CheckGrammarAsYouType:=False;.Options.CheckSpellingAsYouType:=False;:=false;;;VisibleWord(visible:boolean):boolean;:=true;.visible:=
visible;:=false;;;AddDoc:boolean;Doc_:variant;:integer;:=true;_:=W.Documents;_.Add;:=false;;;AddDocFile(FileName:string):boolean;Doc_:variant;;:=true;_:=W.Documents;_.Add(FileName);:=false;;;InsertBreak(WdBreakType:WdUnits):boolean;.Selection.InsertBreak(WdBreakType);;InsertParagraphAfter:boolean;.Selection.InsertParagraphAfter;.Selection.InsertParagraphAfter;.Selection.Move(wdParagraph,1);;InsertParagraphAfterTable(table:integer):boolean;.Selection.Start:=W.ActiveDocument.Tables.Item(Table).Range.End;.Selection.End:=W.ActiveDocument.Tables.Item(Table).Range.End;.Selection.InsertParagraphAfter;;MoveInDoc(UnitType:WdUnits;Count:integer):boolean;.Selection.Move(UnitType,Count);;PageCount:integer;:=W.ActiveDocument.ComputeStatistics(2);;WordCount:integer;:=W.ActiveDocument.Words.Count;;SetTextToDoc(text_:string
;InsertAfter_:boolean):boolean;Rng_:variant;:=true;_:=W.ActiveDocument.Range;InsertAfter_
then Rng_.InsertAfter(text_) else
Rng_.InsertBefore(text_);:=false;;;GetDocToText(var text:string;
wordNum:integer):boolean;Rng_:variant;:=true;:=W.ActiveDocument.Words.Item(wordNum).Text:=false;;;SaveDocAs(file_:string):boolean;:=true;.ActiveDocument.SaveAs(file_);:=false;;;CloseDoc:boolean;:=true;.ActiveDocument.Close;:=false;;;CloseWord:boolean;:=true;.Quit;:=false;;;OpenDoc(file_:string):boolean;Doc_:variant;:=true;_:=W.Documents;_.Open(file_);.ActiveDocument.ShowSpellingErrors:=false;:=false;;;StartOfDoc:boolean;:=true;.Selection.End:=0;.Selection.Start:=0;:=false;;;EndOfDoc:boolean;:=true;.Selection.End:=W.ActiveDocument.Characters.Count;.Selection.Start:=W.ActiveDocument.Characters.Count;:=false;;;FindTextDoc(text_:string):boolean;:=true;.Selection.Find.Forward:=true;.Selection.Find.Text:=text_;:=
W.Selection.Find.Execute;:=false;;;PasteTextDoc(text_:string):boolean;:=true;.Selection.Delete;.Selection.InsertAfter
(text_);:=false;;;TypeTextDoc(text_:string):boolean;:=true;.Selection.Delete;.Selection.TypeText(text_);:=false;;;FindAndPasteTextDoc(findtext_,pastetext_:string):boolean;:=true;.Selection.Find.Forward:=true;.Selection.Find.Text:=
findtext_;W.Selection.Find.Execute then
begin.Selection.Delete;.Selection.InsertAfter (pastetext_);else
FindAndPasteTextDoc:=false;:=false;;;FindAndInsert(FindText,ReplacementText:string):boolean;wdReplaceAll=2;.
Selection.Find.Text:=FindText;.Selection.Find.Replacement.Text:=ReplacementText;:=W.Selection.Find.Execute(Replace:=wdReplaceAll);;DialogWord(Dialog:Wdunits):boolean;:=true;.Dialogs.Item(Dialog).Show;:=false;;;SetFont(FontName:WdFonts):boolean;.Selection.Style:=(FontName);;CreateTable(NumRows,
NumColumns:integer;var index:integer):boolean;Range:variant;:=true;;.ActiveDocument.Tables.Add(W.Selection.Range,
NumRows:=NumRows,
NumColumns:=NumColumns);:=W.ActiveDocument.Tables.Count;.ActiveDocument.Tables.Item(index).Borders.Enable:=true;.ActiveDocument.Range.InsertAfter('
');:=false;;;GetWordTablesCellValue(Table,Row,Column:integer;var
S:string);:=W.ActiveDocument.Tables.Item(Table).Cell(Row,Column).Range.Text;:=StringReplace(S,
#$D,'',[rfReplaceAll]);:=StringReplace(S,
#$7,'',[rfReplaceAll]);;SetWordTablesCellValue(Table,Row,Column:integer;S:string);.ActiveDocument.Tables.Item(Table).Cell(Row,Column).Range.Text:=S;;GetTableInStringGrid(Table:integer;var
StringGrid:TStringGrid);:string;,j,icols,irows:integer;:=W.ActiveDocument.Tables.Item(Table).Rows.Count;:=W.ActiveDocument.Tables.Item(Table).Columns.Count;.RowCount:=irows;.ColCount:=icols;i:=1
to irows doj:=1 to icols
do(Table,i,j,S);.Cells[j-1,i-1]:=S;;;;;GetStringGridInTable(StringGrid:TStringGrid;var
Table:integer);:string;,irows,iGridRows,jGridCols:integer;:=StringGrid.ColCount;:=StringGrid.RowCount;(iRows,iCols,Table);iGridRows
:= 1 to iRows dojGridCols := 1 to iCols
do.ActiveDocument.Tables.Item(Table).Cell(iGridRows,
jGridCols).Range.Text:=.Cells[jGridCols - 1, iGridRows -
1];.ActiveDocument.Range.InsertAfter(' ');:=W.ActiveDocument.Tables.Count;.ActiveDocument.Tables.Item(Table).AutoFitBehavior(wdAutoFitContent);(Table);;;GetStringGridInTable2(StringGrid:TStringGrid;var
Table:integer;ColArr:array of
integer);:string;,irows,iGridRows,jGridCols:integer;:=Length(ColArr);:=StringGrid.RowCount;(iRows,iCols,Table);iGridRows
:= 1 to iRows dojGridCols := Low(ColArr) to High(ColArr)
do.ActiveDocument.Tables.Item(Table).Cell(iGridRows,
jGridCols+1).Range.Text:=.Cells[ColArr[jGridCols], iGridRows -
1];.ActiveDocument.Range.InsertAfter(' ');:=W.ActiveDocument.Tables.Count;.ActiveDocument.Tables.Item(Table).AutoFitBehavior(wdAutoFitContent);(Table);;;WordTableAddFromDBGrid(DBGrid:
TDBGrid;CollSize:boolean;var Table:integer);i, j,Col,Row,ColWidth:
Integer;:string;:=DBGrid.Columns.Count;:=DBGrid.DataSource.DataSet.RecordCount+1;
//SetTextToDoc(DBGrid.Columns.Items[0].Title.Caption,true);(Row,Col,Table);CollSize
then ColWidth:=DBGrid.Columns.Items[0].Width;
//W.Selection.Tables.Item(Table).Columns.Item(1).SetWidth(ColumnWidth:=ColWidth,RulerStyle:=wdAdjustNone);j:=0
To Col-1 Do:=DBGrid.Columns.Items[j].Title.Caption;(Table,1,j+1,S);CollSize
then ColWidth:=DBGrid.Columns.Items[j].Width;
//W.Selection.Tables.Item(Table).Columns.Item(j+1).
//
SetWidth(ColumnWidth:=ColWidth,RulerStyle:=wdAdjustNone);;.DataSource.DataSet.First;i:=1
To Row-1 Doj:=0 To Col-1
Do(Table,i+1,j+1,DBGrid.Columns.Items[j].Field.AsString);.DataSource.DataSet.Next;;.DataSource.DataSet.First;.ActiveDocument.Tables.Item(Table).AutoFitBehavior(wdAutoFitContent);;SetSizeTable(Table:integer;RowsHeight,
ColumnsWidth:real):boolean;:=true;.ActiveDocument.Tables.Item(Table).Columns.Width:=ColumnsWidth;.ActiveDocument.Tables.Item(Table).Rows.Height:=RowsHeight;:=false;;;GetSizeTable(Table:integer;var
RowsHeight,ColumnsWidth:real):boolean;:=true;:=W.ActiveDocument.Tables.Item(Table).Columns.Width;:=W.ActiveDocument.Tables.Item(Table).Rows.Height;:=false;;;SetHeightRowTable(Table,Row:integer;RowHeight:real):boolean;:=true;.ActiveDocument.Tables.Item(Table).Rows.item(Row).Height:=RowHeight;:=false;;;GetHeightRowTable(Table,Row:integer;var
RowHeight:real):boolean;:=true;:=W.ActiveDocument.Tables.Item(Table).Rows.item(Row).Height;:=false;;;SetWidthColumnTable(Table,Column:integer;ColumnWidth:real):boolean;:=true;.ActiveDocument.Tables.Item(Table).Columns.Item(Column).Width:=ColumnWidth;:=false;;;GetWidthColumnTable(Table,Column:integer;var
ColumnWidth:real):boolean;:=true;:=W.ActiveDocument.Tables.Item(Table).Columns.Item(Column).Width;:=false;;;SetTextToTable(Table:integer;Row,Column:integer;text:string):boolean;:=true;.ActiveDocument.Tables.Item(Table).Columns.Item(Column).Cells.Item(Row).Range.Text:=text;:=false;;;GetTextFromTable(Table:integer;Row,Column:integer;var
text:string);:=W.ActiveDocument.Tables.Item(Table).Columns.Item(Column).Cells.Item(Row).Range.Text;;;SetLineStyleBorderTable(Table:integer;Row,Column,wdBorderType,wdBorderStyle:wdUnits):boolean;:=true;.ActiveDocument.Tables.Item(Table).Columns.Item(Column).Cells.Item(Row).Borders.Item(wdBorderType).LineStyle:=wdBorderStyle;:=false;;;SetMergeCellsTable(Table:integer;Row1,Column1,Row2,Column2:integer):boolean;cel_:variant;:=true;_:=W.ActiveDocument.Tables.Item(Table).Cell(Row2,Column2);.ActiveDocument.Tables.Item(Table).Cell(Row1,Column1).Merge(cel_);:=false;;;CopyHereRawFromTable(table,Row1,Row2:integer):boolean;:integer;:=W.Selection.Start;.Selection.Start:=W.ActiveDocument.Tables.Item(Table).Rows.Item(Row1).Range.start;.Selection.End:=W.ActiveDocument.Tables.Item(Table).Rows.Item(Row2).Range.end;.Selection.Copy;.Selection.Start:=Here;.Selection.PasteAndFormat
(0);;TableAutoFit(Table:integer);.ActiveDocument.Tables.Item(Table).AutoFitBehavior(wdAutoFitContent);;MakeNewLineInTable(Table,AfterRow,NewRowCount:integer);.ActiveDocument.Tables.Item(Table).Rows.Item(AfterRow).Select;.Selection.InsertRowsBelow(NewRowCount);;;DeleteRowInTable(Table,Row:integer);.ActiveDocument.Tables.Item(Table).Rows.Item(Row).Select;.Selection.Rows.Delete;;;InsertPicture(FileName:string);.Selection.InlineShapes.AddPicture(FileName);.ActiveDocument.Range.InsertParagraphAfter;;.
Похожие работы на - Разработка информационной системы для автоматизации работы салона художественной татуировки
|