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

СУБД менеджера по продажам комплектующих должна выполнять функции облегчающие работу с перечнем комплектующих, имеющихся на складе фирмы. Программа должна выполнять поиск необходимых комплектующих с заданными параметрами. Необходимо предусмотреть вывод всех наименований изделий, добавление записей в базу данных, удаление записей, а также редактирование записей. При выводе всех наименований требуется осуществить сортировку по всем отображаемым полям. Структура базы данных должна быть идентична структуре прайс-листов компьютерных фирм г. Минска. В качестве примера выступает прайс-лист фирмы «Конструктив».

Комплектующие характеризуются следующими параметрами:

Раздел – наименование изделия.

Позиция – информация о производителе и модели изделия.

Характеристики - дополнительные параметры.

Гарантия – гарантийный срок эксплуатации изделия.

Розничная цена.

Мелкооптовая цена.

Оптовая цена.

Три последних поля введены из-за необходимости работы фирмы с различными клиентами.

Программа должна осуществлять управление БД с помощью интуитивно понятного современному пользователю интерфейса, предлагаемого операционной системой Windows 95/98, используя стандартные элементы управления.

5. Руководство пользователя

Разработка программы велась на языке управления базами данных Visual FoxPro 6.0 использующем технологию объектно-ориентированного визуального программирования.

Элементы использованные при разработке программы являются стандартными для ОС Windows и описаны выше в п.2 данной записки.

После запуска программы появляется главное окно (рис.2), которое содержит меню для работы с формой, таблицу, содержащую все записи базы данных, а также закладки для перехода на страницу работы с отдельной записью и страницу формирования SQL-запроса.


Рис.2

В этом окне можно осуществить сортировку записей по всем признакам с возможностью сортировки по возрастанию и убыванию. Это действие выполняется нажатием левой кнопки мыши при подведении курсора к заголовку поля. Причём сортировка по убыванию осуществляется с нажатием кнопки Ctrl на клавиатуре и щелчком мыши по заголовку поля, в котором требуется произвести сортировку. Перемещение по таблице выполняется с помощью курсоров клавиатуры, а также с помощью мыши и правого скроллера. Редактировать или каким-нибудь образом изменять содержимое БД из этого окна нельзя.

Для этого необходимо переместится на страницу Тек. Запись. (рис. 3)

Рис. 3

При этом запись, на которой находился курсор на предыдущей странице будет отображаться на этой.

Эта страница содержит кнопки навигации по базе данных, кнопки удаления, редактирования.

«Начало»- перемещение указателя БД на первую запись.

«Вверх»- перемещение указателя на одну запись вверх.

«Редактировать»- разрешает изменение значений полей текущей записи.

«Новая запись» - добавление новой пустой записи и возможность ввода значений.

«Удалить» - удаление после утвердительного ответа на подтверждающий запрос.

«Вниз» – перемещение указателя текущей записи на одну запись вниз.

«Конец» - перемещение указателя БД на последнюю запись.

При нажатии кнопки «Редактировать» поля записи становятся доступными для изменения.

Главное окно содержит кнопку «Выход», которая доступна со всех страниц.

Пункты меню, также доступные с любой страницы. Рассмотрим их.

File – пункт меню для работы с файлами, содержит одну опцию – Quit.

Edit – пункт меню для редактирования базы данных, содержит 3 опции:

Add record – добавить пустую запись.

(аналогично кнопке «Новая запись» страницы «Тек. запись»)

Delete record – удалить текущую запись.

(аналогично кнопке «Удалить» страницы «Тек. запись»)

Edit record – редактировать текущую запись.

(аналогично кнопке «Редактировать» страницы «Тек. запись»)

Query - делает активной страницу формирования запроса

(аналогично нажатию закладки «Запрос»)

Help – пункт меню помощи, содержит одну опцию About – вызов окна «О программе»

Выбор закладки «Запрос» главного окна делает активным страницу формирования SQL -запроса.(рис. 4)


Рис. 4

Элементы данной страницы позволяют создать SQL- запрос по трём полям базы данных с различными знаками связок в условиях и соединений (и/или) критериев отбора между собой. Выбор поля, по которому осуществляется запрос происходит из элемента управления ComboBox, который содержит все наименования полей базы. Если не указаны имена полей для выборки, кнопка «Выполнить», которая запускает сформированный запрос, неактивна.

Кнопка «Очистить» приводит форму создания запроса в исходное состояние и очищает её от ранее введённых значений.

Приведём пример создания запроса по разделу «Мониторы» с обязательным размером по диагонали 17 дюймов или гарантией больше 12 месяцев. Заполнив соответствующие поля и нажав кнопку выполнить, наблюдаем следующие результаты (рис. 5)

Рис. 5

Результаты работы запроса выводятся в стандартном окне «Browse». Если в базе данных нет записи полностью удовлетворяющей созданному запросу, на экран будет выдано соответствующее сообщение.

При выборе пункта меню Help/About на экран выводится окно с информацией о программе и её разработчике:

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

При внесении определённых корректив в функции программы, она вполне может стать действующей АРМ менеджера по продажам комплектующих.


Заключение

Среда программирования Visual FoxPro является составной частью интегрированного пакета программ VISUAL STUDIO. Это предоставляет пользователю комфортный и унифицированный интерфейс разработки приложений для различных языков программирования, включая Visual Basic и C++. Также это позволяет использовать общие сервисные программы, например для тестирования объектов ActiveX.

Набор команд и функций предлагаемых разработчикам программных продуктов в среде FoxPro, по мощи и гибкости отвечает любым современным требованиям к представлению и обработке данных. Здесь может быть реализован максимально удобный, гибкий и эффективный пользовательский интерфейс. Visual FoxPro является первым продуктом разработки, предназначенным для создания общекорпоративных, объектно-ориентированных приложений типа клиент/сервер, работающих как в локальном, так и в глобальном варианте (т.е. в Internet).


Список использованных источников

1.  И.Ю. Баженова «Visual FoxPro 6.0» – Москва, «Диалог-МИФИ», 1999

2.  Л. Омельченко «Самоучитель Visual FoxPro 6.0» – «BHV-Санкт-Петербург», 1999

3.  М. Базиян и др. «Использование Visual FoxPro 6» – Москва, Санкт-Петербург, Киев, Издательский дом «Вильямс», 1999

4.  А.А. Попов «Создание приложений для FoxPro 2.5/2.6 в DOS и WINDOWS» – Москва, «ДЕСС», 1999

5.  Microsoft Developer Network (MSDN) Documentation On Visual FoxPro.

6.  http://alpha.netis.ru/win/db/toc.html

7.  http://www.cit-forum.com/

8.  http://www.vlata.com/vfp


Приложение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.cboField1.clear

THIS.pageframe1.page3.cboField2.clear

THIS.pageframe1.page3.cboField3.clear

FOR nLoop = 1 TO THIS.nFields

IF!THIS.aStructure[nLoop,2]$"MGO"

THIS.pageframe1.page3.cboField1.AddItem(THIS.aStructure[nLoop,1])

THIS.pageframe1.page3.cboField2.AddItem(THIS.aStructure[nLoop,1])

THIS.pageframe1.page3.cboField3.AddItem(THIS.aStructure[nLoop,1])

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.page3.cboField1.Value)

HISFORM.pageframe1.page3.cmdExecute.Enabled =.F.

RETURN

ELSE

IF THISFORM.pageframe1.page3.opgOperand1.Value > 0 AND;

EMPTY(THISFORM.pageframe1.page3.cboField2.Value)

THISFORM.pageframe1.page3.cmdExecute.Enabled =.F.

RETURN

ELSE

 IF THISFORM.pageframe1.page3.opgOperand2.Value > 0 AND;EMPTY(THISFORM.pageframe1.page3.cboField3.Value)THISFORM.pageframe1.page3.cmdExecute.Enabled =.F.

RETURN

ENDIF

ENDIF

ENDIF

*-------------------------------------------------------------------

lcWHERE = ""

lcAlias = ALIAS()

** Retrieve the values of the controls into variables

lcField1 = THISFORM.pageframe1.page3.cboField1.Value

lcRelation1 = THISFORM.pageframe1.page3.cboRelation1.Value

lcValue1 = ALLTRIM(THISFORM.pageframe1.page3.txtValue1.Value)

DO CASE

CASE THISFORM.pageframe1.page3.opgOperand1.Value = 0

lcOperand1 = ""

CASE THISFORM.pageframe1.page3.opgOperand1.Value = 1

lcOperand1 = " AND "

CASE THISFORM.pageframe1.page3.opgOperand1.Value = 2

lcOperand1 = " OR "

ENDCASE

DO CASE

CASE THISFORM.pageframe1.page3.opgOperand2.Value = 0

lcOperand2 = ""

CASE THISFORM.pageframe1.page3.opgOperand2.Value = 1

lcOperand2 = " AND "

CASE THISFORM.pageframe1.page3.opgOperand2.Value = 2

lcOperand2 = " OR "

ENDCASE

lcField2 = THISFORM.pageframe1.page3.cboField2.Value

lcRelation2 = THISFORM.pageframe1.page3.cboRelation2.Value

lcValue2 = ALLTRIM(THISFORM.pageframe1.page3.txtValue2.Value)

lcField3 = THISFORM.pageframe1.page3.cboField3.Value

lcRelation3 = THISFORM.pageframe1.page3.cboRelation3.Value

lcValue3 = ALLTRIM(THISFORM.pageframe1.page3.txtValue3.Value)

** Need to put the proper delimiters around comparison values of certain types

lcValue1 = THISFORM.ValidateType(THIS.pageframe1.page3.cboField1.Value,lcValue1)

** Create the second part of the WHERE condition

IF!EMPTY(lcOperand1)

lcValue2 = THISFORM.ValidateType(THIS.pageframe1.page3.cboField2.Value,lcValue2)

lcWHERE = lcOperand1 + " " + lcField2 + " " +;

lcRelation2 + " " + lcValue2

ENDIF

IF!EMPTY(lcOperand2)

lcValue3 = THISFORM.ValidateType(THIS.pageframe1.page3.cboField3.Value,lcValue3)

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.cmdClear.Enabled =.T.

THISFORM.pageframe1.page3.cmdExecute.Enabled =.T.

Form1.clearsql

THISFORM.pageframe1.page3.cboField1.Value = ""

THISFORM.pageframe1.page3.cboRelation1.Value = "="

THISFORM.pageframe1.page3.txtValue1.Value = ""

THISFORM.pageframe1.page3.opgOperand1.Value = 0

THISFORM.pageframe1.page3.cboField2.Value = ""

THISFORM.pageframe1.page3.cboRelation2.Value = "="

THISFORM.pageframe1.page3.cboField2.Enabled =.F.

THISFORM.pageframe1.page3.cboRelation2.Enabled =.F.

THISFORM.pageframe1.page3.txtValue2.Enabled =.F.

THISFORM.pageframe1.page3.txtValue2.Value = ""

THISFORM.pageframe1.page3.opgOperand2.Value = 0

THISFORM.pageframe1.page3.cboField3.Value = ""

THISFORM.pageframe1.page3.cboRelation3.Value = "="

THISFORM.pageframe1.page3.txtValue3.Value = ""

THISFORM.pageframe1.page3.cboField3.Enabled =.F.

THISFORM.pageframe1.page3.cboRelation3.Enabled =.F.

THISFORM.pageframe1.page3.txtValue3.Enabled =.F.

THISFORM.pageframe1.page3.cmdClear.Enabled =.F.

THISFORM.pageframe1.page3.cmdExecute.Enabled =.F.

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.Column1.Header1.MouseUp

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.Column2.Header1.MouseUp

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.Column3.Header1.MouseUp

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.Column4.Header1.MouseUp

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.Activate

this.refresh

Form1.PageFrame1.Page2.commandgroup1.Command1.Click

go top

if BOF ()

MESSAGEBOX("Вы достигли первой записи",0+64+0,"Уведомление")

endif

_screen.activeForm.refresh()

Form1.PageFrame1.Page2.commandgroup1.Command2.Click

if!bof()

skip -1

else

MESSAGEBOX("Вы достигли первой записи",0+64+0,"Уведомление")

endif

_screen.activeForm.refresh()

Form1.PageFrame1.Page2.commandgroup1.Command3.Click

hisform.pageframe1.page2.command1.visible =.T.

thisform.pageframe1.page2.cmdCancel.visible =.T.

thisform.pageframe1.page2.text1.readonly =.F.

thisform.pageframe1.page2.text2.readonly =.F.

thisform.pageframe1.page2.text3.readonly =.F.

thisform.pageframe1.page2.text4.readonly =.F.

thisform.pageframe1.page2.text5.readonly =.F.

thisform.pageframe1.page2.text6.readonly =.F.

thisform.pageframe1.page2.text7.readonly =.F.

thisform.pageframe1.page2.commandgroup1.command1.enabled =.F.

thisform.pageframe1.page2.commandgroup1.command2.enabled =.F.

thisform.pageframe1.page2.commandgroup1.command3.enabled =.F.

thisform.pageframe1.page2.commandgroup1.command4.enabled =.F.

thisform.pageframe1.page2.commandgroup1.command5.enabled =.F.

thisform.pageframe1.page2.commandgroup1.command6.enabled =.F.

thisform.pageframe1.page2.commandgroup1.command7.enabled =.F.

Form1.PageFrame1.Page2.commandgroup1.Command4.Click

append blank

thisform.refresh

thisform.pageframe1.page2.commandgroup1.command3.Click

Form1.PageFrame1.Page2.commandgroup1.Command5.Click

if messagebox("Вы действительно хотите удалить эту запись?", 4+48+256, "Комплектующие")=6

delete

reindex

thisform.pageframe1.page1.grid1.Refresh

thisform.refresh

thisform.pageframe1.ActivePage = 1

endif

Form1.PageFrame1.Page2.commandgroup1.Command6.Click

skip

if!eof()

skip

else

MESSAGEBOX("Вы достигли последней записи",0+64+0,"Уведомление")

skip-1

thisform.Refresh()

endif

thisform.Refresh()

Form1.PageFrame1.Page2.commandgroup1.Command7.Click

go bottom

thisform.pageframe1.page2.Refresh

Form1.PageFrame1.Page2..Command1.Click

thisform.pageframe1.page2.command1.visible =.F.

pozic = thisform.pageframe1.page2.text2.value

razdel = thisform.pageframe1.page2.text1.value

charakt= thisform.pageframe1.page2.text3.value

garant = thisform.pageframe1.page2.text4.value

cena_1 = thisform.pageframe1.page2.text5.value

cena_2 = thisform.pageframe1.page2.text6.value

cena_3 = thisform.pageframe1.page2.text7.value

thisform.pageframe1.page1.grid1.refresh

thisform.pageframe1.page2.text1.readonly =.T.

thisform.pageframe1.page2.text2.readonly =.T.

thisform.pageframe1.page2.text3.readonly =.T.

thisform.pageframe1.page2.text4.readonly =.T.

thisform.pageframe1.page2.text5.readonly =.T.

thisform.pageframe1.page2.text6.readonly =.T.

thisform.pageframe1.page2.text7.readonly =.T.

thisform.pageframe1.page2.commandgroup1.command1.enabled =.T.

thisform.pageframe1.page2.commandgroup1.command2.enabled =.T.

thisform.pageframe1.page2.commandgroup1.command3.enabled =.T.

thisform.pageframe1.page2.commandgroup1.command4.enabled =.T.

thisform.pageframe1.page2.commandgroup1.command5.enabled =.T.

thisform.pageframe1.page2.commandgroup1.command6.enabled =.T.

thisform.pageframe1.page2.commandgroup1.command7.enabled =.T.

thisform.pageframe1.ActivePage = 1

Form1.PageFrame1.Page3.cboField1.InteractiveChange

THISFORM.SetTextboxFormat(THIS, THISFORM.pageframe1.page3.txtValue1)

THISFORM.BldSQL

Form1.PageFrame1.Page3.cboField2.InteractiveChange

THISFORM.SetTextboxFormat(THIS, THISFORM.pageframe1.page3.txtValue2)

THISFORM.BldSQL

Form1.PageFrame1.Page3.cboField3.InteractiveChange

THISFORM.SetTextboxFormat(THIS, THISFORM.pageframe1.page3.txtValue3)

THISFORM.BldSQL

Form1.PageFrame1.Page3.cboRelation1.InteractiveChange

THISFORM.BldSQL

Form1.PageFrame1.Page3.cboRelation2.InteractiveChange

THISFORM.BldSQL

Form1.PageFrame1.Page3.cboRelation3.InteractiveChange

THISFORM.BldSQL

Form1.PageFrame1.Page3.txtValue1

THISFORM.BldSQL

Form1.PageFrame1.Page3.txtValue2

THISFORM.BldSQL

Form1.PageFrame1.Page3.txtValue3

THISFORM.BldSQL

Form1.PageFrame1.Page3.opgOperand1. InteractiveChange

THISFORM.pageframe1.page3.cboField2.Enabled =.T.

THISFORM.pageframe1.page3.cboRelation2.Enabled =.T.

THISFORM.pageframe1.page3.txtValue2.Enabled =.T.

THISFORM.BldSQL

Form1.PageFrame1.Page3.opgOperand2. InteractiveChange

THISFORM.pageframe1.page3.cboField3.Enabled =.T.

THISFORM.pageframe1.page3.cboRelation3.Enabled =.T.

THISFORM.pageframe1.page3.txtValue3.Enabled =.T.

THISFORM.BldSQL

Form1.PageFrame1.Page3.cmdExecute.Click

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,TITLE_LOC)

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.cmdClear.Click

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|FXP;PRG","WHERE is MENU1?")

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|FXP;PRG","WHERE is MENU1?")

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|FXP;PRG","WHERE is MENU1?")

ON SELECTION BAR 2 OF (a_menupops[2]);

DO _03s1d87a8;

IN LOCFILE("MY\MENU1","MPX;MPR|FXP;PRG","WHERE is MENU1?")

ON SELECTION BAR 3 OF (a_menupops[2]);

DO _03s1d87aa;

IN LOCFILE("MY\MENU1","MPX;MPR|FXP;PRG","WHERE is MENU1?")

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|FXP;PRG","WHERE is MENU1?")

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.commandgroup1.command4.Click()

PROCEDURE _03s1d87a8

mainform.pageframe1.Activepage = 2

mainform.pageframe1.page2.commandgroup1.command5.Click(PROCEDURE _03s1d87aa

mainform.pageframe1.Activepage = 2

mainform.pageframe1.page2.commandgroup1.command3.Click

PROCEDURE _03s1d87ac

do form Fabout.scx


Информация о работе «АРМ менеджера по продажам комплектующих»
Раздел: Информатика, программирование
Количество знаков с пробелами: 59903
Количество таблиц: 0
Количество изображений: 5

Похожие работы

Скачать
98880
9
6

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

Скачать
886960
0
0

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

Скачать
46844
0
0

... . Управление персоналом: автоматизация кадрового учета. Важной составляющей автоматизированной системы управления персоналом предприятия является кадровый учет. Основные преимущества HRM-системы "КОМПАС: Управление персоналом" в части автоматизации кадрового учета. Личная карточка содержит все традиционные сведения, необходимые для управления персоналом, включая фотографию сотрудника, сведения ...

Скачать
100658
15
18

... . Таким образом, разработка справочной системы должна быть подготовлена на этапе внедрения. Глава 2. Проектирование автоматизированной системы торговой деятельности   2.1 Принципиальное проектное решение В качестве автоматизированной системы управления торговой деятельностью предприятия предлагается использовать многопользовательское клиент-серверное приложение(двухуровневая архитектура), ...

0 комментариев


Наверх