Разработка программы складского учёта
Требования к функциональным характеристикам программы. Выбор средств проектирования. Язык SQL как стандартный язык баз данных. Локальные базы данных и архитектура "файл-сервер". Пользовательский интерфейс. Руководство программиста. Работа с программой.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 24.03.2016 |
Размер файла | 288,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Тип
Описание
id
integer
Уникальный ключ записи
name
varchar 20
Название операции
SignOp
integer
Знак операции (-1 расход, +1 приход)
В таблице 6 представлено описание полей таблицы kl_uslug
Таблица 6.
Название |
Тип |
Описание |
|
id |
integer |
Уникальный ключ записи |
|
name |
varchar 20 |
Название услуги |
|
cost |
float |
Цена услуги |
В таблице 7 представлено описание полей таблицы Orders
Таблица 7.
Название |
Тип |
Описание |
|
id |
integer |
Уникальный ключ записи |
|
prim |
varchar 100 |
Примечание |
|
dt |
Date |
Дата заказа |
|
Operation |
integer |
Код операции |
|
summ |
float |
Сумма за товары и услуги |
|
waluta |
varchar 10 |
Расчет в валюте |
|
NDSProc |
float |
Процент НДС |
|
SummNDS |
float |
Итоговая сумма |
|
PostawId |
integer |
Код поставщика |
|
ClientId |
integer |
Код клиента |
В таблице 8 представлено описание полей таблицы SkladData
Таблица 8.
Название |
Тип |
Описание |
|
id |
integer |
Уникальный ключ записи |
|
TowarId |
integer |
Код товара |
|
Kolwo |
float |
Количество на складе |
В таблице 9 представлено описание полей таблицы towar
Таблица 9.
Название |
Тип |
Описание |
|
id |
integer |
Уникальный ключ записи |
|
name |
varchar 50 |
Название товара |
|
Rasmern |
varchar 6 |
Размерность товара |
|
kategory |
integer |
Код категории |
|
cost |
float |
Цена |
|
adres |
varchar 50 |
Адрес |
В таблице 10 представлено описание полей таблицы TowForOrder
Таблица 10.
Название |
Тип |
Описание |
|
TowarId |
integer |
Код товара |
|
OrderId |
integer |
Код заказа |
|
CostPerEd |
float |
Цена за единицу |
|
cnt |
float |
Количество |
4.4 Спецификация программы
В таблице 12 находится список файлов проекта.
Таблица 12.
Имя файла |
Тип файла |
Описание |
|
1.mdb |
База данных Access |
Тестовая БД |
|
About.dfm |
Файл формы |
О программе |
|
About.pas |
Файл программного модуля |
||
config.mdb |
База данных Access |
База конфигурации программы |
|
create.sql |
SQL скрипт |
Скрипт создания БД |
|
dat.dfm |
Файл формы |
Форма данных |
|
dat.pas |
Файл программного модуля |
||
disc.dfm |
Файл формы |
Дисконтные карты |
|
disc.pas |
Файл программного модуля |
||
empty.mdb |
База данных Access |
Пустая база, используется для создания нового файла БД |
|
help |
Директория |
Директория с файлами помощи |
|
kl_kat.dfm |
Файл формы |
Категории товоров |
|
kl_kat.pas |
Файл программного модуля |
||
kl_usl.dfm |
Файл формы |
Виды услуг |
|
kl_usl.pas |
Файл программного модуля |
||
Klients.dfm |
Файл формы |
Клиенты |
|
Klients.pas |
Файл программного модуля |
||
Main.dfm |
Файл формы |
Главная форма |
|
Main.pas |
Файл программного модуля |
||
MovUn.dfm |
Файл формы |
Форма заказов |
|
MovUn.pas |
Файл программного модуля |
||
MSWord.pas |
Файл программного модуля |
Работа с WORD |
|
naklPrep.dfm |
Файл формы |
Параметры накладной |
|
naklPrep.pas |
Файл программного модуля |
||
NumToStr.pas |
Файл программного модуля |
Число строкой |
|
orders.dfm |
Файл формы |
Заказы |
|
orders.pas |
Файл программного модуля |
||
Ost.dfm |
Файл формы |
Остатки |
|
Ost.pas |
Файл программного модуля |
||
RusDlg.pas |
Файл программного модуля |
Русифицированные диалоги |
|
Sett.dfm |
Файл формы |
Настройки |
|
Sett.pas |
Файл программного модуля |
||
sg2word.pas |
Файл программного модуля |
Вывод в Word |
|
shet.doc |
Документ Word |
Шаблон счета |
|
sklads.dfm |
Файл формы |
Поставщики |
|
sklads.pas |
Файл программного модуля |
||
SQLAdoTools.pas |
Файл программного модуля |
Работа с SQL |
|
storer.cfg |
Файл конфигурации проекта |
||
storer.doc |
Документ Word |
Этот документ |
|
storer.dof |
Файл параметров проекта |
||
storer.dpr |
Файл проекта |
||
storer.dsk |
Файл концигурации проекта |
||
storer.exe |
Исполняемый файл |
||
storer.ini |
Файл настроек |
||
storer.res |
Файл ресурсов |
||
StrTools.pas |
Файл программного модуля |
Строковые утилиты |
|
template.doc |
Документ Word |
Шаблон накладной |
|
towars.dfm |
Файл формы |
Товары |
|
towars.pas |
Файл программного модуля |
||
WaitUnit.dfm |
Файл формы |
Форма ожидания |
|
WaitUnit.pas |
Файл программного модуля |
4.5 Пользовательский интерфейс
Пользовательский интерфейс - первое, с чем сталкивается пользователь при запуске программы. Весь человеко-машинный интерфейс при работе с компьютером является интерфейсами операционной системы и программ, с которыми пользователь работает.
Понятие дружелюбного пользовательского интерфейса включает в себя всю совокупность удобства, информативности и интуитивной понятности пользовательского интерфейса. Косвенно, хороший дружественный интерфейс свидетельствует о хорошем уровне программы. Наличие удобного интерфейса ускоряет работу с программой, уменьшает время на обучение персонала работе с ней.
Информативность представления информации жизненно важна во многих прикладных областях, например управление технологическим процессом на ответственных участках производства. По тому насколько быстро оператор увидит выход какой-либо величины за заданные границы, тем быстрее он среагирует на эту исключительную ситуацию, тем меньшие последствия будут. Кроме того, его реакция на подобную ситуацию опять же должна использовать некие органы управления технологическим процессом, находящиеся перед ним, другими словами - это также пользовательский интерфейс.
Даже если не брать столь ответственные области применения компьютерной техники, роль пользовательского интерфейса нельзя недооценивать. Представим себе программу, с которой ежедневно работают миллионы людей во всем мире, например текстовый редактор Word. Возьмем, к примеру, операцию поиска. Если представить, что такая операция в новой версии будет экономить при работе одну десятую секунды времени, а за час один человек будет прибегать к такой операции хотя бы один раз, то за рабочий день (8 часов) один миллион человек сэкономит 222 часа рабочего времени! А из-за чего может получиться разница в 0,1 секунду? Да практически из-за ничего - разное положение кнопок, например.
Таким образом, важность пользовательского интерфейса ни в коем случае не стоит приуменьшать.
4.6 Отчеты
Для работы с ms Word, разработан класс tMsWord, использующий технологию OLE для работы. Данный класс содержит в себе методы, реализующие интерфейс с основными функциями, предоставляемыми OLE сервером. Описание методов класса представлено в таблице 13.
Таблица 13
Название метода |
Описание |
|
Create |
Конструктор класса, параметром может передаваться имя файла |
|
Open |
Функция установления связи с OLE объектом |
|
Save |
Сохраняет документ |
|
Show |
Открывает приложение Word с открытым документом |
|
New |
Создает новый документ |
|
SaveAs |
Сохранить документ под другим именем |
|
Replace |
Заменить одну строку в документе на другую |
|
Find |
Поиск строки. |
|
InsertText |
Вставить строку в документ |
|
InsertCenterText |
Вставить строку в документ c сортировкой по центру |
|
InsertPicture |
Вставить картинку |
|
InsertFile |
Вставить другой документ в текущий |
|
InsertTable |
Вставка таблицы |
|
InsertTableHead |
Вставка заголовка таблицы |
|
InsertTableLine |
Вставить запись в таблицу |
|
EndOfTable |
Завершить таблицу |
|
OpenFile |
Открыть файл |
Ниже представлено описание класса tMsWord.
TMSWord = class(TObject)
public
Word: Variant;
DocFileName: string;
constructor Create(FileName: string='');
Function Open: boolean;
Procedure Close;
Procedure Save;
Procedure Show;
Procedure New;
Procedure SaveAs(FileName:string);
Procedure Replace(a,b:string);
Procedure Find(a:string);
Procedure InsertText(Text: string);
Procedure InsertCenterText(Text: string);
Procedure InsertPicture(FileName: string);
Procedure InsertFile(FileName: string);
Procedure InsertTable(Columns, Attributes: integer);
Procedure InsertTableHead(Width: array of integer; Names: array of string);
Procedure InsertTableLine(Names: array of string;bold:boolean=false);
Procedure EndOfTable;
procedure openfile(fn:string);
end;
Открытие связи с ms Word происходит с помощью выполнения слкдующей команды:
Word := CreateOleObject('Word.Basic');
5. Руководство программиста
5.1 Аппаратные требования
Для функционирования системы необходимы следующие аппаратные средства:
· Процессор не ниже Pentium III 500 Mhz;
· Память 128 Mb и выше;
· Не менее 200 Mb свободного дискового пространства;
· Видеоподсистема AGP 32 Mb.
5.2 Программные требования
Для функционирования системы необходимы следующие программные средства:
· ОС Windows 9x, NT, 2000, XP;
· Память 128 Mb и выше;
· Не менее 200 Mb свободного дискового пространства;
· Видеоподсистема AGP 32 Mb.
5.3 Комплект поставки
В комплект поставки входят следующие файлы:
- storer.exe - исполняемый файл системы;
- empty.mdb - пустая БД Access, используемая программой при создании новой базы данных путем копирования;
- create.sql - скрипт создания БД, сохраненный в этом файле набор SQL команд выполняется при создании новой БД.
- template.doc - шаблон накладной;
- shet.doc - шаблон счета;
- [help] - папка содержит набор гипертекстовых файлов, представляющих собой справку по программе и открывающихся из программы.
После первого запуска в текущей директории будет создан и в дальнейшем изменяться файл storer.ini, хранящий настройки программы.
Для работы с программой не требуется никаких дополнительных программных средств, кроме уже имеющихся в стандартной установке операционной системы.
В ходе работы с программой, пользователь может создавать новые и открывать уже существующие БД. При запуске программы автоматически открывается последняя используемая БД.
5.4 Шаблоны документов
Для формирования накладной и счета используется разработанная технология составления отчетов с помощью шаблонов документов. Шаблоном документа будем называть сохраненный ранее документ Word, организованный произвольно, но с учетом специфики. В тексте документа могут встречаться имена переменных, чьи значения будут подставлены позже. Список переменных для накладной представлен в таблице 14.
Таблица 14.
Имя переменной |
Описание |
|
_INN_ |
ИНН клиента |
|
_clientname_ |
Название клиента |
|
_NDOC_ |
Номер накладной |
|
_DateDOC_ |
Дата накладной |
|
_start_ |
Начало таблицы данных |
|
_summass_ |
Всего вес |
|
_allmass_ |
Всего вес по накладной |
|
_sbez_ |
Сумма без НДС |
|
_allbez_ |
Всего без НДС |
|
_snds_ |
Сумма НДС |
|
_allnds_ |
Всего НДС |
|
_ssnds_ |
Сумма с НДС |
|
_allsnds_ |
Всего с НДС |
|
_punkts_ |
Количество пунктов |
|
_mest_ |
Количество мест |
|
_summprop_ |
Сумма прописью |
В таблице 15 находится список констант для счета.
Таблица 15.
Имя переменной |
Описание |
|
_INN_ |
ИНН клиента |
|
_clientname_ |
Название клиента |
|
_ndisc_ |
Номер дисконтной карты |
|
_start_ |
Начало таблицы данных |
|
_summ1_ |
Сумма без НДС |
|
_nds_ |
Процент НДС |
|
_skidka_ |
Процент скидки |
|
_itog_ |
Итоговая сумма |
6. Руководство оператора
6.1 Введение
Данное руководство содержит описание применения программы АСУ СКЛАД.
6.2 Назначение и условия применения
Данная программа проста в освоении и рассчитана не только на профессионалов, но и на рядовых пользователей, работающих под Windows. Удобный интуитивно понятный интерфейс в сочетании с мощной системой вспомогательных рисунков и всплывающих подсказок позволят работать с программой без предварительной подготовки.
В отличие от дорогих и сложных программ складского учета типа "1С-Склад" и ей подобных, программа " АСУ СКЛАД" хорошо подходит для представителей малого и среднего бизнеса, так как будет включать все, что им необходимо, но не перегружена избыточными возможностями. Использование технологии создания программы в визуальных средах программирования сделает ее интерфейс универсальным и совместимым с операционными системами Windows 95/98/2000/XP.
6.3 Вызов и загрузка
Для запуска программы необходимо активизировать средствами ОС исполняемый файл “Storer.exe”
6.4 Работа с программой
После запуска программы открывается главное окно, представленное на рисунке 3.
Рисунок 3 - главное окно программы
Главное окно состоит из следующих составных частей:
- главное меню программы содержит пункты, выполняющие все функции системы;
- панель инструментов содержит кнопки, дублирующие основные пункты главного меню;
- таблица продаж - содержит список операций по продажам;
- поле дополнительной информации содержит текстовую дополнительную информацию по выбранной в таблице записи;
- строка состояния содержит контекстную помощь по выбранному пользователем органу управления.
В таблице 13 находится описание пунктов главного меню.
Таблица 13
Пункт меню |
Описание |
|
Файл / Создать пустую базу |
Создает новую БД и сохраняет ее под выбранным пользователем именем. |
|
Файл / Открыть базу данных |
Позволяет выбрать существующую БД и открыть ее |
|
Файл / Создать резервную копию |
Копирует текущую БД под новым именем |
|
Файл / Выход |
Выход из программы |
|
Справочники / Дисконтные карты |
Просмотр зарегистрированных дисконтных карт и накопившихся на них сумм. |
|
Справочники / Категории товаров |
Открывает список категорий товаров |
|
Справочники / Поставщики |
Список зарегистрированных поставщиков |
|
Справочники / Клиенты |
Список зарегистрированных клиентов |
|
Движение / Прием на склад |
Открывает окно приема на склад |
|
Движение / Отгрузка товара |
Открывает окно отгрузки(продажи) товара |
|
Данные / Редактировать |
Позволяет редактировать данные по выбранной в главном окне записи. |
|
Данные / Товары |
Список зарегистрированных в системе товаров |
|
Данные / Остатки |
Просмотр остатков на складе |
|
Данные / Статистика |
Просмотр статистики БД |
|
Данные / Движение |
Просмотр архива операций |
|
Отчеты / Отчет по продажам за месяц |
Открывает диалог выбора отчетного месяца, а затем окно, содержащее данный отчет |
|
Отчеты / Продажи по клиентам |
Открывает форму, в которой можно выбрать клиента и просмотреть историю продаж по нему. |
|
Настройки / Настройки |
Открывает окно настроек программы |
|
Помощь / О программе |
Открывает окно с информацией о программе |
|
Помощь / Помощь |
Открывает главный html файл помощи. |
На рисунке 4 представлено окно отгрузки товаров.
Рисунок 4 - отгрузка товаров
В данном окне указываются параметры отгрузки. В панели "Покупатель" выбирается один из зарегистрированных покупателей. Ниже указывается примечание к сделке. Поле дата осуществление содержит дату и время осуществления сделки. По умолчанию оно заполняется текущим временем.
Группа "Список товаров" содержит таблицу, в которой указываются продаваемый товар и его количество. Здесь цветом помечены недоступные для редактирования поля. Поле "Количество" не может содержать значение больше, чем остаток данного товара на складе. Если пользователь вводит значение больше этого значения, то введенное значение автоматически корректируется и становится равным максимально допустимому значению.
Группа полей "Цены" содержит информацию о ценах. Здесь показаны:
- всего пунктов - содержит количество позиций в списке товаров;
- товар на сумму - содержит сумму, на которую введено товаров;
- скидка - содержит процент скидки. Поле заполняется на основе количества денег на дисконтной карте покупателя и настроек программы;
- расчет в валюте - здесь указывается валюта, которой расплачивается клиент;
- процент НДС - содержит процент НДС, взятый из настроек программы;
- Сумма с НДС - итоговая сумма, значение которой рассчитывается с учетом скидки и НДС.
Внизу формы содержится следующий набор кнопок:
- "Накладная" - печатает накладную по данным с использованием шаблона "template.doc";
- "Печать" - произвольная форма отчета;
- "Счет" - печать счета с использованием шаблона "shet.doc"
- "Принять" - записывает введенные данные в БД и создает новую запись для дальнейшего ввода;
- "Отмена" - отменяет текущую операцию, закрывает окно без сохранения данных.
На рисунке 5 представлено окно "Клиенты"
Рисунок 5 - Клиенты системы.
На рисунке 6 представлено окно со списком товаров. Здесь находятся все зарегистрированные в системе товары. В поле "Фильтр" содержится список всех зарегистрированных категорий товаров. При выборе любого пункта выпадающего меню кроме "Без фильтра" в таблице данных останутся только товары выбранной категории.
Одно из полей таблицы помечено в заголовке жирным цветом. По данному полю происходит сортировка данных. Для изменения порядка сортировки необходимо кликнуть на заголовке нужной колонки. В строке состояния дополнительно показывается поле, по которому в данный момент происходит сортировка.
Нажатие кнопки "В Word" выведет содержание таблицы в Word с учетом фильтра и поля сортировки.
Рисунок 5 - Список товаров.
На рисунке 6 показан вид окна "Остатки на складе". В поле "Фильтр" содержится список всех зарегистрированных категорий товаров. При выборе любого пункта выпадающего меню кроме "Без фильтра" в таблице данных останутся только товары выбранной категории.
Рисунок 6 - Остатки на складе.
На рисунке 7 показан вид окна с отчетом продаж по клиентам. Здесь в левой части экрана находится таблица, содержащая список клиентов. При выборе одного из клиентов в правой части экрана будет открыта таблица, содержащая список операций продажи по выбранному клиенту.
Рисунок 7 - Продажи по клиенту.
7. Тестирование
Тестирование программы производилось методом покрытия переходов.
В процессе тестирования не выявлено ошибок. Программа выполняет все требуемые функции.
Заключение
В ходе работы над данной работой была проанализирована предметная область. Были изучены источники. Были разработаны и закодированы методы доступа к данным. Был разработан пользовательский интерфейс. После комплексного тестирования было сделано заключение о отсутствии ошибок. Все требования ТЗ были выполнены.
Литература
1. Лэнгсам Й., Огенстайн М., Тененбаум А. Структуры данных для персональных ЭВМ. - М.: Мир, 1989
2. Дайитбегов Д.М., Черноусов Е.А. Основы алгоритмизации и алгоритмические языки (второе издание). - М.: Финансы и статистика, 2012
3. В.Гофман, А.Хомоненко Delphi 5. Наиболее полное руководство. СПб, БХВ, 2010
4. В.В.Фаронов Delphi 5. Руководство программиста. - М., «Нолидж», 2011
5. Йодан Э. Структурное проектирование и конструирование программ. -, Мир, 2009
6. А.Я.Архангельский Delphi 5. - М., ЗАО «Издательство «Бином», 2001
7. А.Я.Архангельский Delphi 5. Справочное пособие. - М., ЗАО «Издательство «Бином», 2001
8. С.Бобровский Delphi 5. Учебный курс. - СПб, Изд. «Питер», 2000.
9. Роб Баас, Марк Фервай, Хайдемария Гюнтер Delphi 5. Киев, БХВ-«Ирина» 2010.
10. Фаронов В.В. Turbo Pascal 7.0. Учебное пособие. М.,Нолидж,1998
11. Фаронов В.В.Delphi 5. Учебный курс. М.,Нолидж,2010
12. WWW.READUS.RU
13. WWW.Delphikingdom.ru
Приложение А - Листинг программы
Параметр |
Значение |
|
Имя файла |
BayBase.pas |
|
Имя модуля |
BayBase |
|
Количество строк |
70 |
|
Количество символов |
1593 |
|
Размер файла |
1,69 Кб |
|
Количество комментариев |
0 |
|
Процент закоментированности |
0,00 % |
Модуль : BayBase.pas
Всего строк : 70
unit BayBase;
interface
uses CSVObj,windows,SysUtils,SqlAdoTools,StrTools;
type
tBayBase=class(tCSV)
public
constructor Create(dt:tDateTime);
procedure SaveSQL(selectSQL: string;sumFieldInd:integer=-1);
procedure SaveLine(id:string;others:array of string;sumFieldInd:integer=-1);
end;
implementation
uses DB, Classes;
constructor tBayBase.Create(dt:tDateTime);
var s:string;
begin
s:=ExtractFilePath(paramstr(0))+'BayBase';
ForceDirectories(s);
s:=s+'\'+FormatDateTime('yyyy_mm_dd',now)+'.csv';
inherited Create(s);
setKeyInd(0);
SortBy(1,0);
end;
procedure tBayBase.SaveSQL(selectSQL: string;sumFieldInd:integer=-1);
var s,s2:string;
i,j:integer;
toadd:boolean;
begin
toadd:=false;
with MakeCursor(SelectSQL) do
begin
while not eof do
begin
s:='';
s2:=Fields[0].AsString;
j:=self.Locate(s2);
if j=-1 then j:=Add(s2)
else toadd:=true;
for i:=1 to FieldDefs.Count-1 do
begin
if (not toadd)or(sumFieldInd<>i) then
self.fields[j,i]:=fields[i].AsString
else
self.fields[j,i] :=FloatToStr(StrToFloat(self.fields[j,i])+fields[i].AsFloat);
end;
next;
end;
free;
end;
end;
procedure tBayBase.SaveLine(id:string;others:array of string;sumFieldInd:integer=-1);
var s,s2:string;
i,j:integer;
toadd:boolean;
begin
toadd:=false;
j:=self.Locate(id);
if j=-1 then j:=add(s2) else toadd:=true;
for i:=0 to high(others) do
if (not toadd)or(sumFieldInd<>i) then
fields[j,i+1]:=others[i]
else fields[j,i+1]:=FloatToStr(StrToFloat(fields[j,i+1])+StrToFloat(others[i]));
end;
end.
Параметр |
Значение |
|
Имя файла |
disc.pas |
|
Имя модуля |
disc |
|
Количество строк |
66 |
|
Количество символов |
1542 |
|
Размер файла |
1,63 Кб |
|
Количество комментариев |
10 |
|
Процент закоментированности |
13,36 % |
Модуль : disc.pas
Всего строк : 66
unit disc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBCtrls, Grids, DBGrids, ExtCtrls, Buttons, StdCtrls,
ComCtrls, ADODB;
type
TFrmDisc = class(TForm)
Panel1: TPanel;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
ds: TDataSource;
BtnRep: TSpeedButton;
StatusBar: TStatusBar;
ADOTable1: TADOTable;
ADOTable1numcard: TIntegerField;
ADOTable1summmany: TFloatField;
procedure BtnRepClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure dsDataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmDisc: TFrmDisc;
implementation
uses dat,sg2word,msword,rusdlg;
{$R *.dfm}
procedure TFrmDisc.BtnRepClick(Sender: TObject);
var word:TMSWord;
i:integer;
begin
i:=0;
word:=TMSWord.Create; //создать класс TMSWord
if not word.Open then //открыть связь с Ole объектом
begin
Error('Не могу открыть msWord');
exit;
end;
word.New; //новый документ
word.InsertCenterText(caption+#13); //вставить заголовок документа
DataSetToWordTable(DBGrid1,ds.DataSet,word); //вставить таблицу
word.Show; //показать Word
word.Free; //Освободить память
end;
procedure TFrmDisc.FormCreate(Sender: TObject);
begin
ds.DataSet.Close;
ds.DataSet.Open;
end;
procedure TFrmDisc.dsDataChange(Sender: TObject; Field: TField);
begin
StatusBar.SimpleText :='Всего записей '+IntToStr(ds.DataSet.RecordCount);
end;
end.
Параметр |
Значение |
|
Имя файла |
kl_kat.pas |
|
Имя модуля |
kl_kat |
|
Количество строк |
91 |
|
Количество символов |
1990 |
|
Размер файла |
2,12 Кб |
|
Количество комментариев |
18 |
|
Процент закоментированности |
15,48 % |
Модуль : kl_kat.pas
Всего строк : 91
unit kl_kat;
//категории товаров
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, Buttons;
type
TFrmKlKat = class(TForm)
Panel1: TPanel;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
BtnRep: TSpeedButton;
SpeedButton1: TSpeedButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BtnRepClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure prepare;
{ Public declarations }
end;
var
FrmKlKat: TFrmKlKat;
implementation
uses dat,msWord,rusdlg;
{$R *.dfm}
//подготовка - открыть запрос
procedure TFrmKlKat.prepare;
begin
DataSource1.DataSet.Open;
end;
//закрытие формы
procedure TFrmKlKat.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DataSource1.DataSet.close; //закрыть запрос
end;
//отчет
procedure TFrmKlKat.BtnRepClick(Sender: TObject);
var word:TMSWord;
i:integer;
begin
i:=0;
word:=TMSWord.Create(''); //создать объект word
if not word.Open then
begin
Error('Не могу открыть msWord');
exit;
end;
word.New; //новый документ
word.InsertCenterText(caption+#13); //вставить текст
word.InsertTable(2,0); //таблицу
word.InsertTableHead([50,300], ['№ п.п.','Название']);
with DataSource1.DataSet do
begin
First;
while not eof do
begin
inc(i);
word.InsertTableLine([IntToStr(i), //запись в таблицу
FieldByName('name').AsString]);
next;
end;
word.EndOfTable;
end;
word.Show; //показать word
word.Free; //освободить память
end;
procedure TFrmKlKat.SpeedButton1Click(Sender: TObject);
begin
ShowHelp(name); //показать хелп
end;
//создание формы
procedure TFrmKlKat.FormCreate(Sender: TObject);
begin
dm.UpdateSettings(self); //визуальные настройки
dm.TblKlKat.Open;
end;
end.
Параметр |
Значение |
|
Имя файла |
Klients.pas |
|
Имя модуля |
Klients |
|
Количество строк |
65 |
|
Количество символов |
1512 |
|
Размер файла |
1,6 Кб |
|
Количество комментариев |
11 |
|
Процент закоментированности |
15,15 % |
Модуль : Klients.pas
Всего строк : 65
unit Klients;
//классификатор моделей
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBCtrls, Grids, DBGrids, ExtCtrls, Buttons, StdCtrls,
ComCtrls;
type
TFrmClients = class(TForm)
Panel1: TPanel;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
ds: TDataSource;
BtnRep: TSpeedButton;
StatusBar: TStatusBar;
procedure BtnRepClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure dsDataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmClients: TFrmClients;
implementation
uses dat,sg2word,msword,rusdlg;
{$R *.dfm}
procedure TFrmClients.BtnRepClick(Sender: TObject);
var word:TMSWord;
i:integer;
begin
i:=0;
word:=TMSWord.Create(''); //создать класс TMSWord
if not word.Open then //открыть связь с Ole объектом
begin
Error('Не могу открыть msWord');
exit;
end;
word.New; //новый документ
word.InsertCenterText(caption+#13); //вставить заголовок документа
DataSetToWordTable(DBGrid1,ds.DataSet,word); //вставить таблицу
word.Show; //показать Word
word.Free; //Освободить память
end;
procedure TFrmClients.FormCreate(Sender: TObject);
begin
ds.DataSet.Close;
ds.DataSet.Open;
dm.UpdateSettings(self);
end;
procedure TFrmClients.dsDataChange(Sender: TObject; Field: TField);
begin
StatusBar.SimpleText :='Всего записей '+IntToStr(ds.DataSet.RecordCount);
end;
end.
Параметр |
Значение |
|
Имя файла |
MSWord.pas |
|
Имя модуля |
MSWord |
|
Количество строк |
191 |
|
Количество символов |
3973 |
|
Размер файла |
4,25 Кб |
|
Количество комментариев |
35 |
|
Процент закоментированности |
26,25 % |
Модуль : MSWord.pas
Всего строк : 191
unit MSWord;
//модуль работы с ВОрдом
interface
type
TMSWord = class(TObject)
public
Word: Variant;
DocFileName: string;
constructor Create(FileName: string='');
Function Open: boolean;
Procedure Close;
Procedure Save;
Procedure Show;
Procedure New;
Procedure SaveAs(FileName:string);
Procedure Replace(a,b:string);
Procedure Find(a:string);
Procedure InsertText(Text: string);
Procedure InsertCenterText(Text: string);
Procedure InsertPicture(FileName: string);
Procedure InsertFile(FileName: string);
Procedure InsertTable(Columns, Attributes: integer);
Procedure InsertTableHead(Width: array of integer; Names: array of string);
Procedure InsertTableLine(Names: array of string;bold:boolean=false);
Procedure EndOfTable;
procedure openfile(fn:string);
end;
implementation
uses ComObj, OleCtnrs, sysutils, Dialogs;
////////////////////////////////////////////////////////
//
constructor TMSWord.Create(FileName: string='');
begin
DocFileName := FileName;
end;
procedure TMSWord.openfile(fn:string);
begin
word.fileopen(fn);
end;
Procedure TMSWord.InsertFile(FileName: string);
begin
word.InsertFile(FileName);
end;
////////////////////////////////////////////////////////
//
Function TMSWord.Open: boolean;
begin
Result := True;
try
Word := CreateOleObject('Word.Basic');
{ Word.FileNew;
Word.FileSaveAs(DocFileName);}
except
Word.AppClose;
Result := False;
end;
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.SaveAs(FileName:string);
begin
DocFileName:=FileName;
Word.FileSaveAs(FileName);
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.Show;
begin
Word.AppShow;
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.InsertText(Text: string);
begin
Word.Insert(Text);
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.New;
begin
Word.FileNew;
Word.Filepagesetup(2,1,60,60,60,60);
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.Find(a:string);
begin
word.paraup(500,0);
Word.EditFind(a);
end;
Procedure TMSWord.Replace(a,b:string);
begin
word.paraup(500,0);
Word.EditReplace(a,b,0,0,0,0,0,1,0,1,0);
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.InsertCenterText(Text: string);
begin
Word.CenterPara;
Word.Insert(Text);
Word.LeftPara;
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.InsertPicture(FileName: string);
begin
Word.InsertPicture(FileName);
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.InsertTable(Columns, Attributes: integer);
begin
Word.TableInsertTable(0,Columns,2,50,0,Attributes);
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.InsertTableHead(
Width: array of integer; Names: array of string);
var
i: integer;
begin
Word.TableColumnWidth(Width[0]);
Word.Insert(Names[0]);
for I := 1 to High(Names) do
begin
Word.CharRight;
Word.TableColumnWidth(Width[i]);
Word.Insert(Names[i]);
end;
Word.EndOfColumn;
end;
////////////////////////////////////////////////////////
//
procedure TMSWord.InsertTableLine(Names: array of string;bold:boolean=false);
var
i: integer;
begin
Word.TableInsertRow;
for I := 0 to High(Names) do
begin
if i>0 then Word.CharRight;
word.bold(bold);
Word.Insert(Names[i]);
end;
Word.CharRight;
word.Insert(#13);
// Word.EndOfColumn;
end;
////////////////////////////////////////////////////////
//
procedure TMSWord.EndOfTable;
begin
Word.TableDeleteRow;
Word.Insert(chr(13));
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.Close;
begin
// Word.FileSave;
Word.AppClose;
end;
////////////////////////////////////////////////////////
//
Procedure TMSWord.Save;
begin
Word.FileSave;
end;
////////////////////////////////////////////////////////
end.
Параметр |
Значение |
|
Имя файла |
naklPrep.pas |
|
Имя модуля |
naklPrep |
|
Количество строк |
36 |
|
Количество символов |
646 |
|
Размер файла |
718 б |
|
Количество комментариев |
4 |
|
Процент закоментированности |
13,62 % |
Модуль : naklPrep.pas
Всего строк : 36
unit naklPrep;
//форма ввода параметров накладной
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, AxCtrls, OleCtrls, VCF1, ComCtrls;
файл сервер программист
type
TFrmprepareNakl = class(TForm)
LabeledEdit1: TLabeledEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label1: TLabel;
dt: TDateTimePicker;
Bevel1: TBevel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmprepareNakl: TFrmprepareNakl;
implementation
{$R *.dfm}
procedure TFrmprepareNakl.FormCreate(Sender: TObject);
begin
dt.Date:=date;
end;
end.
Параметр |
Значение |
|
Имя файла |
NumToStr.pas |
|
Имя модуля |
NumToStr |
|
Количество строк |
139 |
|
Количество символов |
2408 |
|
Размер файла |
2,62 Кб |
|
Количество комментариев |
4 |
|
Процент закоментированности |
7,48 % |
Модуль : NumToStr.pas
Всего строк : 139
unit NumToStr;
//Преобразование из числа в строку
//код взят из Кулибы
interface
function TextDbl2(S: double): string;
function TextCurr(S: double): string;
implementation
uses sysutils;
{------------------------ Деньги прописью ---------------------}
function TextSum(S: double;rub,kop:string): string;
function Conv999(M: longint; fm: integer): string;
const
c1to9m: array [1..9] of string [6] =
('один','два','три','четыре','пять','шесть','семь','восемь','девять');
c1to9f: array [1..9] of string [6] =
('одна','две','три','четыре','пять','шесть','семь','восемь','девять');
c11to19: array [1..9] of string [12] =
('одиннадцать','двенадцать','тринадцать','четырнадцать','пятнадцать',
'шестнадцать','семнадцать','восемнадцать','девятнадцать');
c10to90: array [1..9] of string [11] =
('десять','двадцать','тридцать','сорок','пятьдесят','шестьдесят',
'семьдесят','восемьдесят','девяносто');
c100to900: array [1..9] of string [9] =
('сто','двести','триста','четыреста','пятьсот','шестьсот','семьсот',
'восемьсот','девятьсот');
var
s: string;
i: longint;
begin
s := '';
i := M div 100;
if i<>0 then s:=c100to900[i]+' ';
M := M mod 100;
i := M div 10;
if (M>10) and (M<20) then s:=s+c11to19[M-10]+' '
else
begin
if i<>0 then s:=s+c10to90[i]+' ';
M := M mod 10;
if M<>0 then
...
Подобные документы
Разработка системы "РЭО-ГАИ" и соответствующей ей базы данных, позволяющей документировать в электронном виде автоматизацию учета движений автомобилей. Язык SQL - стандартный язык доступа к реляционным базам данных. Структура программы и описание модулей.
курсовая работа [83,1 K], добавлен 18.08.2009Техническое задание на разработку программного продукта и требования к программе. Написание алгоритма работы и разработка интерфейса программы. Руководство системного программиста и оператора. Основные методы и принципы тестирования базы данных.
дипломная работа [2,7 M], добавлен 27.01.2013Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.
курсовая работа [1,6 M], добавлен 29.05.2013Понятие банка и базы данных, их назначение. Создание базы данных "Учет нарушений ПДД" с удобным пользовательским интерфейсом. Требования к функциональным характеристикам. Условия эксплуатации и программные требования. Описание входных и выходных данных.
курсовая работа [2,9 M], добавлен 22.09.2012Обоснование выбора языков разметки гипертекста HTML и стилей CSS. Описание архитектуры клиент-сервер. Разработка базы данных средствами структурированного языка запросов SQL. Пользовательский интерфейс и руководство пользователя для работы с программой.
курсовая работа [2,1 M], добавлен 16.04.2017Эволюция концепций баз данных. Требования, которым должна удовлетворять организация базы данных. Модели представления данных. Язык SQL как стандартный язык баз данных. Архитектуры баз данных. Среда Delphi как средство для разработки СУБД.
дипломная работа [278,9 K], добавлен 26.11.2004Анализ аналогов и выбор прототипа, разработка алгоритма и графического интерфейса, кодирование и тестирование. Логическая модель данных "Нотариальная контора". Особенности реализации в MS SQL. Требования к функциональным характеристикам базы данных.
курсовая работа [1,3 M], добавлен 12.01.2013Описание экспертной системы по подбору кадров. Требования к функциональным характеристикам программы. Состав и параметры технических средств ЭВМ. Структура входных данных. Руководство программиста и пользователя. Тестирование программного средства.
курсовая работа [897,0 K], добавлен 13.11.2016Разработка инфологической модели базы данных "Рабочее место кассира", требования к ее функциональным характеристикам. Создание программы в Delphi. Описание компонентов для реализации графического интерфейса и интерфейса ввода справочника кассиров.
курсовая работа [2,2 M], добавлен 17.04.2014Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.
курсовая работа [2,1 M], добавлен 08.06.2012Реализация прямого проектирования в архитектуре "файл-сервер". Процесс изменения структуры базы данных, реализация прямого проектирования в архитектуре "клиент-сервер", генерирование SQL-кода создания базы данных на основе физической модели данных.
контрольная работа [697,8 K], добавлен 16.02.2015Требования к функциональным характеристикам программы, составу и параметрам технических средств, программной совместимости. Особенности программирования в среде Access. Описание интерфейса программы, ввод и редактирование данных, добавление новых книг.
курсовая работа [1,5 M], добавлен 17.11.2010Информационная поддержка деятельности магазина по продаже компьютеров. Работа с программой. Этапы проектирования базы данных. Анализ информационных задач. Выбор программных средств. Особенности проектирования программного комплекса информационной системы.
курсовая работа [1,8 M], добавлен 09.06.2016Использование основных свойств объектно-ориентированного языка программирования C ++ при написании программы по реализации списка футболистов разных амплуа. Руководство пользователя и руководство программиста. Работа со списком, программный интерфейс.
курсовая работа [516,5 K], добавлен 20.07.2014Разработка программы на языке Visual Basic. Спецификация на программный модуль. Ввод, изменение и удаление данных по определенным требованиям. Руководство системного программиста, программиста и оператора. Ведение базы данных в виде таблицы Excel.
курсовая работа [272,5 K], добавлен 21.04.2014Исследование технологии проектирования базы данных. Локальные и удаленные базы данных. Архитектуры и типы сетей. Программная разработка информационной структуры предметной области. Обоснование выбора архитектуры "клиент-сервер" и операционной системы.
дипломная работа [1,1 M], добавлен 15.02.2017Разработка программы, позволяющей реализовать шифрование и дешифрование текстового файла методом замены и методом перестановки. Требования к функциональным характеристикам, надежности, составу и параметрам технических средств ПО. Интерфейс пользователя.
курсовая работа [19,0 K], добавлен 30.04.2011Виды связей между объектами в системе управления базами данных MS Access. Ввод и редактирование данных в таблицах, обработка информации базы данных. Архитектура БД по принципу файл-сервер. Создания формы в окне базы данных, использование отчетов.
презентация [511,9 K], добавлен 20.01.2014Функциональная модель системы. Проектирование схемы базы данных. Проектирование архитектуры системы. Принцип технологии клиент-сервер. Построение схемы ресурсов. Выбор программных средств. Разработка базы данных с использованием Microsoft SQL Server.
дипломная работа [1,1 M], добавлен 30.03.2015Модели информационного процесса обработки данных. Классификация баз данных. Сеть архитектуры и технология клиент-сервер. Создание запросов к реляционным базам данных на SQL. Работа с электронными таблицами MS Excel: форматирование данных, вычисления.
контрольная работа [17,8 K], добавлен 17.01.2010