Автор работы: Пользователь скрыл имя, 28 Апреля 2015 в 19:05, курсовая работа
Базы данных нужны человеку для систематизации своих знаний. На основе этой систематизации он может создать новые знания. Так или иначе, любая база данных служит человеку именно для описания происшедших в прошлом событий и на основе знания этих событий помогает принять то или иное решение на будущее. Поясним эту мысль примерами. Начнем с простых случаев. К примеру, описание склада необходимо для знания наличия на складе товаров на основе ввода движения товара на склад и со склада. Иначе, человеку пришлось бы постоянно сверяться с реальным наличием, т.е. пересчитывать товар по-нескольку раз на день перед выписыванием исходящей накладной. Как дополнительная и нужная функция может рассматриваться возможность статистического анализа расхода товара со склада по месяцам. К примеру, есть сезонные колебания расхода медикаментов. На основе таких наблюдений можно прогнозировать план закупок.
Введение
1. Обзор возможностей Visual Foxpro
2. Обзор базовых классов и элементов управления Microsoft Visual Foxpro
3. Описание функций и возможностей языка SQL
4. Постановка задачи
5. Руководство пользователя
Заключение
Список использованных источников
Приложение 1. Листинг программы
При выборе пункта меню Help/About на экран выводится окно с информацией о программе и её разработчике:
Программа выполняет основные требования, которые предъявлялись к ней на этапе постановки задач, обладая при этом интуитивно понятным интерфейсом.
При внесении определённых корректив в функции программы, она вполне может стать действующей АРМ менеджера по продажам комплектующих.
Заключение
Среда программирования Visual FoxPro является составной частью интегрированного пакета программ VISUAL STUDIO. Это предоставляет пользователю комфортный и унифицированный интерфейс разработки приложений для различных языков программирования, включая Visual Basic и C++. Также это позволяет использовать общие сервисные программы, например для тестирования объектов ActiveX.
Набор команд и функций предлагаемых разработчикам программных продуктов в среде FoxPro, по мощи и гибкости отвечает любым современным требованиям к представлению и обработке данных. Здесь может быть реализован максимально удобный, гибкий и эффективный пользовательский интерфейс. Visual FoxPro является первым продуктом разработки, предназначенным для создания общекорпоративных, объектно-ориентированных приложений типа клиент/сервер, работающих как в локальном, так и в глобальном варианте (т.е. в Internet).
Список использованных источников
Приложение1. Листинг программы
В качестве листинга программы выступают процедуры и методы-обработчики визуальных компонент изменённые вручную, а также текст меню сгенерированный программой.
Form1.init
SET SAFETY OFF
SET DELETED ON
copy structure to temp.dbf
set order to pozic ASCENDING
DO menu1.mpr WITH THISFORM,.T.
THIS.pageframe1.page3.
THIS.pageframe1.page3.
THIS.pageframe1.page3.
FOR nLoop = 1 TO THIS.nFields
IF!THIS.aStructure[nLoop,2]$"
THIS.pageframe1.page3.
THIS.pageframe1.page3.
THIS.pageframe1.page3.
ENDIF
ENDFOR
Form1.load
THIS.Alias = ALIAS()
THIS.nFields = AFIELDS(THIS.aStructure)
Form1.unload
IF USED(THIS.Alias)
USE IN (THIS.Alias)
ENDIF
Form1.Destroy
PACK
reindex
close databases
Form1.bldsql
LOCAL lcOperand1,lcOperand2,lcWHERE;
lcField1, lcRelation1, lcValue1,;
lcField2, lcRelation2, lcValue2,;
lcField3, lcRelation3, lcValue3,;
lcAlias, lcSQL, lcType
Test to make sure all values that are required have been entered
*-----------------------------
IF EMPTY(THISFORM.pageframe1.
HISFORM.pageframe1.page3.
RETURN
ELSE
IF THISFORM.pageframe1.page3.
EMPTY(THISFORM.pageframe1.
THISFORM.pageframe1.page3.
RETURN
ELSE
IF THISFORM.pageframe1.page3.
RETURN
ENDIF
ENDIF
ENDIF
*-----------------------------
lcWHERE = ""
lcAlias = ALIAS()
** Retrieve the values of the controls into variables
lcField1 = THISFORM.pageframe1.page3.
lcRelation1 = THISFORM.pageframe1.page3.
lcValue1 = ALLTRIM(THISFORM.pageframe1.
DO CASE
CASE THISFORM.pageframe1.page3.
lcOperand1 = ""
CASE THISFORM.pageframe1.page3.
lcOperand1 = " AND "
CASE THISFORM.pageframe1.page3.
lcOperand1 = " OR "
ENDCASE
DO CASE
CASE THISFORM.pageframe1.page3.
lcOperand2 = ""
CASE THISFORM.pageframe1.page3.
lcOperand2 = " AND "
CASE THISFORM.pageframe1.page3.
lcOperand2 = " OR "
ENDCASE
lcField2 = THISFORM.pageframe1.page3.
lcRelation2 = THISFORM.pageframe1.page3.
lcValue2 = ALLTRIM(THISFORM.pageframe1.
lcField3 = THISFORM.pageframe1.page3.
lcRelation3 = THISFORM.pageframe1.page3.
lcValue3 = ALLTRIM(THISFORM.pageframe1.
** Need to put the proper delimiters around comparison values of certain types
lcValue1 = THISFORM.ValidateType(THIS.
** Create the second part of the WHERE condition
IF!EMPTY(lcOperand1)
lcValue2 = THISFORM.ValidateType(THIS.
lcWHERE = lcOperand1 + " " + lcField2 + " " +;
lcRelation2 + " " + lcValue2
ENDIF
IF!EMPTY(lcOperand2)
lcValue3 = THISFORM.ValidateType(THIS.
lcWHERE = lcWhere + " " + lcOperand2 + " " + lcField3 + " " +;
lcRelation3 + " " + lcValue3
ENDIF
** Create the first part of the WHERE condition
lcWHERE = "WHERE " + lcField1 + " " + lcRelation1 + " ";
+ lcValue1 + " " + lcWHERE
** Create the full SQL command using the base table for the form
lcSQL = "SELECT * FROM " + lcAlias + " " + lcWHERE
THISFORM.DataSql = lcSQL
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
Form1.clearsql
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
Form1.Settexboxformat
LPARAMETERS oSource, oTxt
LOCAL lcType
oTxt.Value = ""
lcType = TYPE(oSource.Value)
DO CASE
CASE lcType = "D"
oTxt.Format = "D"
CASE lcType = "L"
oTxt.Inputmask = ".T.,.F."
oTxt.Format = "M"
CASE lcType = "T"
oTxt.Inputmask = "99/99/99 99:99:99"
ENDCASE
Form1.validatetype
LPARAMETERS lField, lcValue
LOCAL lcType
lcType = TYPE(lField)
DO CASE
CASE lcType $ "CM"
lcValue = CHR(34) + lcValue + CHR(34)
CASE lcType $ "DT"
lcValue = "{" + lcValue + "}"
CASE lcType $ "NY"
IF EMPTY(lcValue)
lcValue = "0"
ENDIF
CASE lcType $ "L"
IF!INLIST(UPPER(lcValue), ".T.", ".F.")
lcValue = ".T."
ENDIF
ENDCASE
RETURN lcValue
Form1.PageFrame1.Grid1.
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nShift = 2
SET ORDER TO razdel DESCENDING
ELSE
SET ORDER TO razdel ASCENDING
ENDIF
GO TOP
THISFORM.Refresh
Form1.PageFrame1.Grid1.
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nShift = 2
SET ORDER TO pozic DESCENDING
ELSE
SET ORDER TO pozic ASCENDING
ENDIF
GO TOP
THISFORM.Refresh
Form1.PageFrame1.Grid1.
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nShift = 2
SET ORDER TO garant DESCENDING
ELSE
SET ORDER TO garant ASCENDING
ENDIF
GO TOP
THISFORM.Refresh
Form1.PageFrame1.Grid1.
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nShift = 2
SET ORDER TO cena_1 DESCENDING
ELSE
SET ORDER TO cena_1 ASCENDING
ENDIF
GO TOP
THISFORM.Refresh
Form1.PageFrame1.Page2.
this.refresh
Form1.PageFrame1.Page2.
go top
if BOF ()
MESSAGEBOX("Вы
достигли первой записи",0+64+
endif
_screen.activeForm.refresh()
Form1.PageFrame1.Page2.
if!bof()
skip -1
else
MESSAGEBOX("Вы
достигли первой записи",0+64+
endif
_screen.activeForm.refresh()
Form1.PageFrame1.Page2.
hisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
Form1.PageFrame1.Page2.
append blank
thisform.refresh
thisform.pageframe1.page2.
Form1.PageFrame1.Page2.
if messagebox("Вы действительно хотите удалить эту запись?", 4+48+256, "Комплектующие")=6
delete
reindex
thisform.pageframe1.page1.
thisform.refresh
thisform.pageframe1.ActivePage = 1
endif
Form1.PageFrame1.Page2.
skip
if!eof()
skip
else
MESSAGEBOX("Вы
достигли последней записи",0+
skip-1
thisform.Refresh()
endif
thisform.Refresh()
Form1.PageFrame1.Page2.
go bottom
thisform.pageframe1.page2.
Form1.PageFrame1.Page2..
thisform.pageframe1.page2.
pozic = thisform.pageframe1.page2.
razdel = thisform.pageframe1.page2.
charakt= thisform.pageframe1.page2.
garant = thisform.pageframe1.page2.
cena_1 = thisform.pageframe1.page2.
cena_2 = thisform.pageframe1.page2.
cena_3 = thisform.pageframe1.page2.
thisform.pageframe1.page1.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.page2.
thisform.pageframe1.ActivePage = 1
Form1.PageFrame1.Page3.
THISFORM.SetTextboxFormat(
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.SetTextboxFormat(
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.SetTextboxFormat(
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.BldSQL
Form1.PageFrame1.Page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.pageframe1.page3.
THISFORM.BldSQL
Form1.PageFrame1.Page3.
LOCAL lcOldAlias
lcOldAlias = ALIAS()
cMacro = ALLTRIM(THISFORM.DataSql) + "INTO CURSOR TEMPQUERY"
&cMacro
IF _TALLY = 0
#DEFINE MSG_LOC "No records were found to match the criteria you specified."
#DEFINE TITLE_LOC "No Results"
=MESSAGEBOX(MSG_LOC,64+0+0,
ELSE
BROWSE NORMAL TITLE SUBSTR(THISFORM.DataSql, AT("WHERE",THISFORM.DataSql)+ 6)
ENDIF
IF USED("TEMPQUERY")
USE IN TEMPQUERY
ENDIF
IF USED(lcOldAlias)
SELECT (lcOldAlias)
ENDIF
Form1.PageFrame1.Page3.
THISFORM.ClearSQL
Form1.FormExit.Click
thisform.release
Main Menu
LPARAMETERS oFormRef, getMenuName, lUniquePopups, parm4, parm5, parm6, parm7, parm8, parm9
LOCAL cMenuName, nTotPops, a_menupops, cTypeParm2, cSaveFormName
IF TYPE("m.oFormRef") # "O" OR;
LOWER(m.oFormRef.BaseClass) # 'form' OR;
m.oFormRef.ShowWindow # 2
MESSAGEBOX([This menu can only be called from a Top-Level form. Ensure that your form's ShowWindow property is set to 2. Read the header section of the menu's MPR file for more details.])
RETURN
ENDIF
m.cTypeParm2 = TYPE("m.getMenuName")
m.cMenuName = SYS(2015)
m.cSaveFormName = m.oFormRef.Name
IF m.cTypeParm2 = "C" OR (m.cTypeParm2 = "L" AND m.getMenuName)
m.oFormRef.Name = m.cMenuName
ENDIF
IF m.cTypeParm2 = "C" AND!EMPTY(m.getMenuName)
m.cMenuName = m.getMenuName
ENDIF
DIMENSION a_menupops[3]
IF TYPE("m.lUniquePopups")="L" AND m.lUniquePopups
FOR nTotPops = 1 TO ALEN(a_menupops)
a_menupops[m.nTotPops]= SYS(2015)
ENDFOR
ELSE
a_menupops[1]="file"
a_menupops[2]="edit"
a_menupops[3]="help"
ENDIF
LOCAL lHasNewMenu
lHasNewMenu = (TYPE("CNTPAD(m.cMenuName)") # "N")
IF m.lHasNewMenu
DEFINE MENU (m.cMenuName) IN (m.oFormRef.Name) BAR
ENDIF
DEFINE PAD _03s1d879u OF (m.cMenuName) PROMPT "\<File" COLOR SCHEME 3;
KEY ALT+F, ""
DEFINE PAD _03s1d879v OF (m.cMenuName) PROMPT "\<Edit" COLOR SCHEME 3;
KEY ALT+E, ""
DEFINE PAD _03s1d879w OF (m.cMenuName) PROMPT "\<Query" COLOR SCHEME 3;
KEY ALT+Q, ""
DEFINE PAD _03s1d879x OF (m.cMenuName) PROMPT "\<Help" COLOR SCHEME 3;
KEY ALT+H, ""
ON PAD _03s1d879u OF (m.cMenuName) ACTIVATE POPUP (a_menupops[1])
ON PAD _03s1d879v OF (m.cMenuName) ACTIVATE POPUP (a_menupops[2])
ON SELECTION PAD _03s1d879w OF (m.cMenuName);
DO _03s1d879z;
IN LOCFILE("MY\MENU1","MPX;MPR|
ON PAD _03s1d879x OF (m.cMenuName) ACTIVATE POPUP (a_menupops[3])
DEFINE POPUP (a_menupops[1]) MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF (a_menupops[1]) PROMPT "\<Quit";
MESSAGE "Выход из программы"
ON SELECTION BAR 1 OF (a_menupops[1]);
DO _03s1d87a4;
IN LOCFILE("MY\MENU1","MPX;MPR|
DEFINE POPUP (a_menupops[2]) MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF (a_menupops[2]) PROMPT "\<Add record"
DEFINE BAR 2 OF (a_menupops[2]) PROMPT "\<Delete record"
DEFINE BAR 3 OF (a_menupops[2]) PROMPT "\<Edit record"
ON SELECTION BAR 1 OF (a_menupops[2]);
DO _03s1d87a6;
IN LOCFILE("MY\MENU1","MPX;MPR|
ON SELECTION BAR 2 OF (a_menupops[2]);
DO _03s1d87a8;
IN LOCFILE("MY\MENU1","MPX;MPR|
ON SELECTION BAR 3 OF (a_menupops[2]);
DO _03s1d87aa;
IN LOCFILE("MY\MENU1","MPX;MPR|
DEFINE POPUP (a_menupops[3]) MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF (a_menupops[3]) PROMPT "\<About"
ON SELECTION BAR 1 OF (a_menupops[3]);
DO _03s1d87ac;
IN LOCFILE("MY\MENU1","MPX;MPR|
ACTIVATE MENU (m.cMenuName) NOWAIT
IF m.cTypeParm2 = "C"
m.getMenuName = m.cMenuName
m.oFormRef.Name = m.cSaveFormName
ENDIF
PROCEDURE _03s1d879z
mainform.pageframe1.Activepage = 3
PROCEDURE _03s1d87a4
mainform.release
PROCEDURE _03s1d87a6
mainform.pageframe1.Activepage = 2
mainform.pageframe1.page2.
PROCEDURE _03s1d87a8
mainform.pageframe1.Activepage = 2
mainform.pageframe1.page2.
mainform.pageframe1.Activepage = 2
mainform.pageframe1.page2.
PROCEDURE _03s1d87ac
do form Fabout.scx