СОДЕРЖАНИЕ
ВВЕДЕНИЕ 4
1 ЭКОНОМИЧЕСКАЯ ХАРАКТЕРИСТИКА ОБЪЕКТА 5
2 ПОСТАНОВКА ЗАДАЧИ 6
2.1 Экономическое содержание задачи 6
2.2 Входная информация 6
2.3 Выходная информация 6
2.4 Описание справочной информации 8
3 ТЕХНИЧЕСКИЕ И ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ОБЕСПЕЧЕНИЯ ЗАДАЧИ 9
3.1 Обоснование выбора языка программирования 9
3.2 Техническое описание выбранного языкового средства 10
3.3 Технические требования к ПК для решения данной задачи 12
4 ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ЗАДАЧИ 13
4.1 Структура баз данных 13
4.2 Структура файлов, имен и каталогов 14
4.3 Схема данных 16
5 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЗАДАЧИ 19
5.1 Процедуры и функции 19
5.2 Блок-схема программы 19
5.3 Описание блок-схемы 19
5.4 Описание интерфейса 19
5.5 Отладка программы 20
5.6 Инструкция по работе с программой 20
ЗАКЛЮЧЕНИЕ 22
СПИСОК СОКРАЩЕНИЙ 23
СПИСОК ЛИТЕРАТУРЫ 24
ПРИЛОЖЕНИЕ 1 25
ПРИЛОЖЕНИЕ 2 26
ВВЕДЕНИЕ
Задачей данного курсового проекта является составление программы «Сбыт готовой продукции» в среде Microsoft Visual FoxPro 8.0. База данных Сбыт хранит информацию о договорах с заказчиками, документах на отпуск продукции, содержит справочники поставщиков, заказчиков, товаров и услуг, пользователей, регионов. Приложение позволяет:
1) оформлять заказы с организациями и частными лицами, с последующим оформлением накладных, счетов-фактур, счетов на предоплату.
2) регистрировать поступления денежных средств от заказчика.
3) представляет пользователю информацию о текущем ходе выполнения договоров (оплата, отгрузки).
4) позволяет делать из базы выборки для анализа продаж по видам продукции, по регионам.
Интуитивно понятные названия пунктов главного меню (всплывающего меню) делают доступными экранные формы для редактирования и ввода информации а также делают возможным конфигурирование и работу с базой данных.
Разветвлённая справочная система позволяет найти ответ на интересующие вас вопросы.
ЭКОНОМИЧЕСКАЯ ХАРАКТЕРИСТИКА ОБЪЕКТА
Оптимизация сбыта готовой продукции. В программе СБЫТ имеется таблицы Описание заказа, Поставщики, Товар, Заказчик и Заказы. Фирма занимается розничной и оптовой продажей различных товаров. В зависимости от количества можно выбрать различные варианты стоимости товара с учетом скидки для оптовых покупателей.
Товары могут закупаться на разных складах, в соответствии с фирмами, выпускающими эти товары и поставщиков представляющих эти фирмы. В соответствии с установлением заказа необходимо составить ведомости отправки товара с учетом его стоимости.
ПОСТАНОВКА ЗАДАЧИ
Экономическое содержание задачи
Задача: создать программу, позволяющую ввести данные по каждому заказу и вывести эти данные в виде накладной на печать. Информация должна выводиться по каждой фамилии заказчика и выводить все его заказы.
Также программа осуществляет поиск, вывод справки, ввод различной информации о поставщиках, заказчиках и товаре, и самое главное вывод накладной.
В данном курсовом проекте для решения поставленной задачи применяются некоторые особенности: При выводе товара будет учитываться скидка, если товара заказано большое количество (более 100).
Входная информация
Входной информацией в данной задаче является информация о заказчиках (информация берется непосредственно со слов заказчика):
Номер;
ФИО;
Адрес;
Почтовый индекс города;
Телефон;
Факс;
БИК;
Расчетный счет;
Кор счет;
Название банка;
ИНН.
Выходная информация
В результате работы программы будет выведена форма с данными заказчика, какой он заказал товар и у какого поставщикаственно со сллов .
Описание справочной информации
Для успешной эксплуатации разработанное мною приложение должно быть дружественным к пользователю. При возникновении затруднений пользователь должен быстро и просто получить справку о его возможных действиях. Одним из средств обеспечения дружественности является наличие в приложении справочной систем, содержащей информацию о приложении, описание его основных функций и инструкций по работе с приложением. Microsoft Visual FoxPro 8.0 предоставляет различные средства для создания справочной системы. Для отображения справочной системы может использоваться строка состояния, а также окна диалога. Кроме того, можно создавать справочную систему в стандарте Windows XP и использовать ее в приложении.
В данной программе мною были создана справочная система и предметный указатель в стандарте Windows XP.
ТЕХНИЧЕСКИЕ И ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ОБЕСПЕЧЕНИЯ ЗАДАЧИ
Обоснование выбора языка программирования
Visual FoxPro является постоянно развивающейся системой. По сравнению с предыдущей версией, в Visual FoxPro 8.0 сделан еще один шаг в расширении функциональных возможностей системы, улучшены имеющиеся средства, касающиеся интерфейса среды разработки.
Visual FoxPro 8.0 поддерживает технологию IntelliSense, облегчающую создание программного кода. Суть данной технологии состоит в том, что при вводе операторов, свойств и функций FoxPro предлагает на выбор возможные варианты написания. Это уменьшает количество вводимого вручную кода и избавляет разработчика от необходимости лишний раз обращаться к документации. Технология IntelliSense Visual FoxPro содержит следующие функции:
показывает список допустимых дочерних объектов (свойств, событий, методов) для указанного объекта. Для СОМ-объектов информация считывается из библиотеки типов;
показывает окно подсказки, содержащее список допустимых параметров или аргументов для команд, функций, свойств, методов и событий.
В редактор Visual FoxPro были добавлены следующие возможности:
использование для выделения текста на выбор пробела или табулятора с настраиваемыми параметрами;
настройка строк комментария;
поддержка в редакторе гиперссылок на Web-страницы или документацию;
поддержка Dirty File Indicator для отображения времени внесения изменений в код;
удобная установка точек прерывания в программном коде;
использование закладок для быстрого возврата на нужный фрагмент кода.
Для настройки параметров редактора используются новые вкладки Editor (Редактор) и IDE (Интерактивная среда разработки) диалогового окна Options (Параметры), которое открывается при выполнении команды Options (Параметры) из меню Tools (Сервис).
Для облегчения работы пользователя с несколькими окнами, такими как Command (Команда), Properties (Свойства) и окном редактора, Visual FoxPro 8.0 позволяет перемещать и закреплять окна, т. е. манипулировать ими по своему усмотрению. Например, вы можете установить командное окно и окно свойств в одно окно-контейнер и привязать его к правому краю экрана, а окно редактора — в другое окно-контейнер, привязав его к левому краю экрана.
СОМ-компоненты Visual FoxPro могут использовать свойства, события и методы СОМ-интерфейса, определенного в другом СОМ-компоненте. В Visual FoxPro появилось средство Task List (Список заданий), позволяющее пользователю формировать список задач в проекте и управлять их выполнением.
Приложение Object Browser (Браузер объекта), входящее в состав Visual FoxPro и запускаемое из меню Tools (Сервис), позволяет просматривать свойства, методы и события СОМ-объектов, что очень удобно при работе с объектами, на которые нет документации.
В Visual FoxPro появились новые средства управления XML-файлами:
XMLTOCURSOR — преобразовывает XML-текст в курсор или таблицу Visual FoxPro;
CURSORTOXML — преобразовывает курсор Visual FoxPro в XML-текст. Поддержка Active Accessibility в Visual FoxPro позволяет создавать приложения, которые могут использовать люди с проблемами зрения, слуха или моторики.
В базе данных, созданной в Visual FoxPro, вы можете использовать события, связанные с базой данных, такие как открытие таблицы, добавление или удаление таблицы для проверки прав доступа при открытии таблицы, трассировки выполняемых действий и т. п.
Техническое описание выбранного языкового средства
В таблице 1 приводятся количественные характеристики Microsoft Visual FoxPro 8.0.
Таблица 1 – Количественные характеристики Visual FoxPro
Параметр |
Значение |
Максимальное количество записей в таблице |
1000000000
|
Максимальный размер таблицы |
2 Гбайт |
Максимальное количество символов на запись |
65500
|
Максимальное количество полей в записи |
255
|
Максимальное количество одновременно открытых таблиц |
2551
|
Максимальное количество символов в поле |
254
|
Максимальное количество байт на ключ для некомпактного индекса |
100
|
Максимальное количество байт на ключ для компактного индекса |
240 |
Максимальное количество открытых индексов на таблицу |
Не ограничено |
Максимальное количество индексов во всех рабочих областях |
Не ограничено
|
Максимальное количество связей между таблицами |
Не ограничено
|
Максимальная длина выражения связи |
Не ограничено |
Максимальный размер поля типа Character |
254
|
Максимальный размер поля типа Numeric и Float |
20
|
Максимальная длина названия поля в свободных (не входящих в базу данных) таблицах |
10
|
Максимальная длина названия поля в таблицах, входящих в базу данных |
128 |
Диапазон значений типа Integer |
От -2147483647 до +2147483647 |
Количество переменных по умолчанию |
1024
|
Максимальное количество переменных |
65000 |
Максимальное количество массивов |
65000 |
Максимальное количество элементов в массиве |
65000 |
Максимальное количество срок кода в программном файле |
Не ограничено |
Максимальное количество процедур |
Не ограничено |
Максимальная вложенность вызовов DO |
128
|
Максимальная вложенность Read |
5 |
Максимальное количество параметров |
27
|
Максимальная вложенность транзакций |
5 |
Максимальное количество объектов в определении отчетов |
Не ограничено |
Максимальная длина определения отчета |
20 дюймов |
Максимальное количество сгруппированных уровней в отчете |
128 |
Максимальное количество открытых окон Browse |
255 |
Максимальный размер символьной строки |
16777184 |
Максимальный размер командной строки |
8192 |
Максимальное количество символов в элементе управления типа Label в отчете |
252
|
Максимальное количество символов в макроподстановке |
8192
|
Максимальное число открытых файлов |
Ограничение ОС |
Максимальное количество нажатий клавиш в клавиатурном макросе |
1024 |
Технические требования к ПК для решения данной задачи
Для работы системы необходимы следующие ресурсы:
Операционная система (для среды) Microsoft Windows 2000 с Service Pack 2 и выше или Microsoft Windows XP. Microsoft Windows NT 4.0 не поддерживается.
IBM-совместимый компьютер с процессором не хуже Pentium.
Наличие мыши.
Не менее 64 Мбайт оперативной памяти (рекомендуется 128 Мбайт).
20 Мбайт свободной памяти – для минимальной установки, 165 Мбайт – для типичной и максимальной установки.
Монитор типа 800x600 или более высокой разрешающей способности с палитрой 256 цветов (Рекомендуется 16-битовый High Color).
ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ЗАДАЧИ
Структура баз данных
В результате работы с изучаемой предметной областью, которая касается работы сбыта готовой продукции, мною была разработана логическая схема базы данных. Схема состоит из пяти таблиц. Рассмотрим таблицу «Заказчик».
Каждому полю проставлен соответствующий тип и размер. Информация приведена в рисунке 1.
Рисунок 1 – Информация о таблице «Заказчик»
Структура файлов, имен и каталогов
Схема данных
Заказчик 1 М Заказы
Заказы 1 М Описание заказа
Описание заказа 1 М Товар
Товар 1 М Поставщик
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЗАДАЧИ
Процедуры и функции
В программе используются процедуры. При создании ссылочной целостности таблиц Microsoft Visual FoxPro 8.0 автоматически генерирует хранимые процедуры:
Ridelete
Riopen
Rierror
Riend
Riupdate
Riuse
__ri_delete
__ri_delete_
__ri_update_
__ri_update_
Эти процедуры необходимы для сохранения целостности и правильности данных.
Блок-схема программы
Блок-схему программы смотрите в Приложении 1.
Описание блок-схемы
Главное меню, Pad-меню Popup-меню и все формы, активирующиеся при каждом из пунктов меню. А также файл справки, запускаемом при нажатии пункта Помощь Справка и предметного указателя при активизации пункта Помощь Поиск.
Описание интерфейса
Программу необходимо запускать из каталога Sbit. Для нормальной работы программы необходимы файлs, которые описаны в разделе «Структура файлов, имен и каталогов»
Файл Sbit.app или Sbit.exe – является основной программой приложения, активизирует главную форму и меню
Интерфейс программы строится на базе меню, содержащего пять пунктов: Файл, Документы, Справочники, Поиск, Справка. Пункт Файл Выход служит для закрытия всех открытых окон и выхода из программы.
При нажатии на этот пункт меню запускается процедура, которая и производит выход, как из среды, так и из проекта приложения.
При выборе пункта меню Справка выходит ниспадающее меню, состоящее из трех пунктов. Один из них «Справка». При нажатии на него запускается файл справки, который содержит краткий обзор программы и основные принципы работы с ней.
При выборе пункта меню Поиск также выходит ниспадающее меню, состоящее из двух подпунктов: По поставщикам и По заказчикам. При выборе подпункта горизонтального меню запускается форма, где можно осуществить поиск.
При выборе пункта Документы Заказы запускается форма, где можно добавлять или удалять информацию о заказе.
Отладка программы
Отладчик Microsoft Visual FoxPro 8.0 представляет собой мощное средство, предназначенное для тестирования приложения. Отладчик позволяет:
Показать трассировку выполнения программы
Установить точки останова
Просмотреть и изменить значения переменных
Отследить происходящие события
Выполнить программу в пошаговом режиме
Для настройки работы отладчика используется вкладка «Debug» окна диалога «Options», открываемого при выполнении команды Tools/Options.
Инструкция по работе с программой
Программа имеет удобный интерфейс для работы пользователя и содержит меню приложения:
Меню
файл
Выход
– Закрывает приложение.
Меню
документы
Заказы
– Открывает Форму ввода заказов.
Накладная – Открывает Форму накладной.
Меню
справочники
Заказчики
– Отображает Форму заказчиков для
добавления и модификации данных о
заказчике.
Товар – Отображает Форму товара и услуг для добавления и модификации данных.
Поставщики – Отображает Форму поставщиков для добавления и модификации данных о поставщике.
Меню
поиск
По
поставщикам – Критерием поиска
является данные поставщика.
По заказам – Критерием поиска является данные заказа.
Меню
помощь
Справка
– Отображает содержание справки
приложения Сбыт.
Поиск – Отображает форму для поиска тем по ключевым словам.
О программе – Краткая информация о программе.
Программа очень проста в использовании. А справочная система очень понятна и доходчива.
ЗАКЛЮЧЕНИЕ
В данной работе я попытался автоматизировать предприятие Сбыт готовой продукции.
Для решения данной задачи была использована среда Microsoft Visual FoxPro 8.0. Для приложения были использованы элементы Microsoft Visual FoxPro 8.0, такие как формы, таблицы, базы данных, отчеты, запросы, программные файлы и т.д.
СПИСОК СОКРАЩЕНИЙ
OC – операционная система
ПЭВМ – персональная электронно-вычислительная машина
ИБП – источник бесперебойного питания
ПК – персональный компьютер
ЭВМ – электронная вычислительная машина
ПО – программное обеспечение
БД – база данных
СУБД – система управления базами данных
СБЫТ – сбыт готовой продукции
СПИСОК ЛИТЕРАТУРЫ
Мусина Т.В. «Visual FoxPro 8.0 Учебный курс» – К.: ВЕК+, СПб.: КОРОНА принт, К.: НТИ, 2004. – 464с.
С.А.Каратыгин, А.Ф. Тихонов, Л.Н. Тихонова «Visual FoxPro 7.0 Руководство пользователя с примерами», М: «БИНОМ», 2003.
Л. Омельченко «Visual FoxPro 8.0. Самоучитель», С-П: «БХВ-Петербург», 2003.
«Создание приложений для Visual FoxPro 8.0» М.: Издательство “ДЕСС” , - 672стр.
ПРИЛОЖЕНИЕ 1
Блок-схема программы «Сбыт готовой продукции»
ПРИЛОЖЕНИЕ 2
Листинг программы на языке Microsoft Visual FoxPro 8.0
Формы
nakladnaya.scx
LPARAMETERS nButton, nShift, nXCoord, nYCoord
_screen.activeform.refresh()
LPARAMETERS nRow, nCol
SET FILTER TO zakazi.nomer_zakaza = opis_zakaza.nomer_zak
SET FILTER TO opis_zakaza.tabnom = zakazchik.fio
_screen.activeform.refresh()
LPARAMETERS cItem
LPARAMETERS cItem
opis_zakaza.scx
REPORT FORM report\opis_zakaza for opis_zakaza.nomer_zak=a preview
LPARAMETERS nButton, nShift, nXCoord, nYCoord
replace opis_zakaza.cena WITH tovar.cina
replace opis_zakaza.shtrih WITH tovar.shtrih
replace opis_zakaza.opt WITH tovar.optovaia
_screen.activeform.refresh()
LPARAMETERS nButton, nShift, nXCoord, nYCoord
ThisForm.Command3.Enabled = .T.
If BOF()=.f.
SKIP -1
ELSE
ThisForm.Command2.Enabled = .f.
ENDIF
_screen.activeform.refresh()
ThisForm.Command2.Enabled = .T.
If EOF()=.F.
Skip
ELSE
ThisForm.Command3.Enabled = .F.
ENDIF
_screen.activeform.refresh()
DELETE
append blank
replace opis_zakaza.nomer_zak WITH a
replace opis_zakaza.tabnom WITH j
_screen.activeform.refresh()
_screen.activeform.release()
poiskpost.scx
LOCATE for FIO = ALLTRIM(a)
IF fio=ALLTRIM(a)
REPORT FORM report\poisk_pos FOR fio = ALLTRIM(a) preview
ELSE
=MESSAGEBOX("ПО ВАШЕМУ ЗАПРОСУ НЕТ ДАННЫХ", 0+64+0, "ПРЕДУПРЕЖДЕНИЕ")
ENDIF
_screen.ActiveForm.release()
poiskzak.scx
LOCATE for FIO = ALLTRIM(q)
IF fio=ALLTRIM(q)
REPORT FORM report\poisk_zak FOR fio = ALLTRIM(q) preview
ELSE
=MESSAGEBOX("ПО ВАШЕМУ ЗАПРОСУ НЕТ ДАННЫХ", 0+64+0, "ПРЕДУПРЕЖДЕНИЕ")
ENDIF
_screen.ActiveForm.release()
postavshiki.scx
report FORM report\postavshik.frx preview
DO FORM form\tovar
append blank
_screen.activeform.refresh()
ThisForm.Command3.Enabled = .T.
If BOF()=.f.
SKIP -1
ELSE
ThisForm.Command2.Enabled = .f.
ENDIF
_screen.activeform.refresh()
ThisForm.Command2.Enabled = .T.
If EOF()=.F.
Skip
ELSE
ThisForm.Command3.Enabled = .F.
ENDIF
_screen.activeform.refresh()
_screen.activeform.release()
tovar.scx
REPORT FORM report\otchetovar PREVIEW
append blank
_screen.activeform.refresh()
DELETE
ThisForm.Command5.Enabled = .T.
If EOF()=.F.
Skip
ELSE
ThisForm.Command4.Enabled = .F.
ENDIF
_screen.activeform.refresh()
ThisForm.Command4.Enabled = .T.
If BOF()=.f.
SKIP -1
ELSE
ThisForm.Command5.Enabled = .f.
ENDIF
_screen.activeform.refresh()
_screen.activeform.release()
LPARAMETERS nRow, nCol
zakaz.scx
a=zakazi.nomer_zakaza
j=zakazchik.fio
DO FORM form\opis_zakaza
LPARAMETERS cItem
IF thisform.chkScidka.Value = .t. then
z=zakazi.summa
replace zakazi.summa WITH zakazi.summa-z*0.1
ENDIF
_screen.activeform.refresh()
ThisForm.Command6.Enabled = .T.
If BOF()=.f.
SKIP -1
ELSE
ThisForm.Command5.Enabled = .f.
ENDIF
_screen.activeform.refresh()
ThisForm.Command5.Enabled = .T.
If EOF()=.F.
SKIP
ELSE
ThisForm.Command6.Enabled = .F.
ENDIF
_screen.activeform.refresh()
z=0
append blank
_screen.activeform.refresh()
_screen.activeform.release()
zakazchik.scx
REPORT FORM report\zakazchik.frx PREVIEW
DO FORM form\zakaz
append blank
skip -1
c=zakazchik.nomer
skip
replace zakazchik.nomer with c+1
_screen.activeform.refresh()
ThisForm.Command3.Enabled = .T.
If BOF()=.f.
SKIP -1
ELSE
ThisForm.Command2.Enabled = .f.
ENDIF
_screen.activeform.refresh()
ThisForm.Command2.Enabled = .T.
If EOF()=.F.
Skip
ELSE
ThisForm.Command3.Enabled = .F.
ENDIF
_screen.activeform.refresh()
delete
_screen.activeform.release()
Меню
main.mnx
Выход
pack
SET SYSMENU TO DEFAULT
Заказы
DO form form\zakaz
Накладная
DO FORM form\nakladnaya
Поставщики
DO FORM form\postavshiki
Товар
DO form form\tovar
Заказчики
DO form form\zakazchik
По поставщикам
DO FORM form\poiskpost
По заказчикам
DO FORM form\poiskzak
О программе
DO FORM form\about
Поиск
_mst_hpsch
Справка
_mst_help
Сформировать справку
set HELP help\СБЫТ.HLP