Алгоритмизация и программирование процессов на Fox

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

?о действие Добавление новых данных

Do AddFd

EndCase

Case L1=2

Do Case

Case L2=1&& Выбрано задание №1 из курсового проекта

Do Zad1

Case L2=2 && Выбрано задание №2 из курсового проекта

Do Zad2

Case L2=3 && Выбрано задание №3 из курсового проекта

Do Zad3

EndCase

Case L1=3

Do Case

Case L2=1 && Выбран пункт Выход в Fox

Return

Case L2=2&& Выбран пункт Выход из Fox

Quit

EndCase

EndCase

EndDo

EndDo

  1. Создание файла данных

* Командный файл CreateFd - создание нового файла данных

set Talk off

set Status off

set Escape off

Clear

Zag=Процесс создания нового файла данных

@ 4,22 to 4,58 Color u/w*

@ 3,22 Say Zag Color u/w*

@ 12,0

Accept Укажите имя создаваемого файла данных: to NameFd

If Len(NameFd) > 0&& Если имя файла не ввели, то делать нечего

 

* Изменение заголовка

Zag=Zag + : + NameFd + .dbf

LenZag=Int(Len(Zag))

@ 4,Int((80-lenZag)/2) to 4,Int((80-lenZag)/2)+LenZag Color u/w*

@ 3,Int((80-LenZag)/2) Say Zag Color u/w*

@ 14,0

Text

Хотите автоматически создать пустую структуру

с указанным именем, по заданию курсового проекта (Д/Н)?

EndText

 

* Ответ на поставленный вопрос

Do While .T.

@ 16,57

Wait to ABC&& Ожидание нажатия клавиши

If ABC=н Or ABC=д

ABC=Chr(Asc(ABC)-32)&& Смена регистра

EndIf

If ABC=Н Or ABC=Д

Exit

EndIf

EndDo

 

* Создание ФД

If ABC=Д && Автоматическое создание ФД

Create Table &NameFd ;

(KodOrg N(3,0), VidProd C(20), Volum N(4,0), Price N(6,2))

@ 8,0

set Talk on

Display Structure&& Вывод созданной структуры

set Talk off

Else&& Создание ФД с возможностью заполнения полей

Create &NameFd

EndIf

EndIf

 

* Конец работы

@ 24,0

Wait Для возврата в меню нажмите любую клавишу ...

@ 24,0 Clear

Return

  1. Чтение файла данных

* Командный файл ReadFd - чтение файла данных

set Talk off

set Status off

set Escape off

Clear

@ 4,27 to 4,54 Color u/w*

@ 3,27 Say Процесс чтения файла данных Color u/w*

@ 12,0

Accept Введите имя считываемого файла данных: to NameFd

If Len(NameFd) >0&& Если имя файла не ввели, то делать нечего

 

* Изменение заголовка

@ 3,0 Clear to 5,79

Zag=Содержимое файла данных: + NameFd + .dbf

LenZag=Int(Len(Zag))

@ 4,Int((80-lenZag)/2) to 4,Int((80-lenZag)/2)+LenZag Color u/w*

@ 3,Int((80-LenZag)/2) Say Zag Color u/w*

 

* Вывод содержимого файла

Use &NameFd

Do While .Not.EOF()&& Цикл вывода порций записей ФД

&& В определенную область экрана

@ 7,0

Display Next 15

If EOF()=.F.&& В последнем цикле не нужно переводить

&& указатель и держать паузу

Skip&& Перевод указателя, чтобы новый экран не начинался

&& с последней записи предыдущего экрана

@ 24,0

Wait Нажмите любую клавишу для просмотра следующих 15 записей ...

EndIf

EndDo

Close DataBases && Закрытие ФД

EndIf

 

* Конец работы

@ 24,0

Wait Для возврата в меню нажмите любую клавишу ...

@ 24,0 Clear

Return

 

 

  1. Добавление данных в файл данных

* Командный файл AddFd - добавление файла данных

set Talk off

set Status off

set Escape off

Clear

@ 4,25 to 4,56 Color u/w*

@ 3,25 Say Процесс добавления файла данных Color u/w*

@ 12,0

Accept Введите имя файла данных для добавления данных: to NameFd

If Len(NameFd) >0&& Если имя файла не ввели, то делать нечего

 

* Изменение заголовка

@ 3,0 Clear

Zag=Добавление данных в файл данных: + NameFd + .dbf

LenZag=Int(Len(Zag))

@ 4,Int((80-lenZag)/2) to 4,Int((80-lenZag)/2)+LenZag Color u/w*

@ 3,Int((80-LenZag)/2) Say Zag Color u/w*

 

* Добавление данных в ФД

Use &NameFd

Append

Close DataBases && Закрытие ФД

EndIf

 

* Конец работы

@ 24,0

Wait Для возврата в меню нажмите любую клавишу ...

@ 24,0 Clear

Return

  1. Печать сведений о суммарной стоимости продукции заданного вида по каждому предприятию и о среднем выпуске этой продукции одним предприятием.

* Командный файл Zad1 - печать сведений о заданной продукции

set Talk off

set Status off

set Escape off

Clear

@ 4,18 to 4,62 Color u/w*

@ 3,18 Say Процесс печати сведений о заданной продукции Color u/w*

@ 12,0

Accept Введите имя файла данных: to NameFd

@ 12,0 Clear

@ 12,0

Accept Введите вид продукции: to TypeProd

If Len(NameFd) >0And Len(TypeProd) > 0&& Если имя файла или

&& вид продукции не ввели,

&& то делать нечего

* Изменение заголовка

@ 3,0 Clear

Zag=Сведения о продукции: + TypeProd

LenZag=Int(Len(Zag))

@ 4,Int((80-lenZag)/2) to 4,Int((80-lenZag)/2)+LenZag Color u/w*

@ 3,Int((80-LenZag)/2) Say Zag Color u/w*

Use &NameFd

 

* Формирование шапки

L=+-----------------+---------------+--------+-----------+

@ 7,12 Say L

@ 8,12 Say | Код предприятия | Объем выпуска | Цена | Стоимость |

@ 9,12 Say L

Row=10&& Текущий номер строки для вывода данных

Do While .Not.EOF()

If VidProd=TypeProd

 

* Формирование строки

@ Row,12 Say |

@ Row,20 Say KodOrg

@ Row,30 Say |

@ Row,36 Say Volum Picture # ###

@ Row,46 Say |

@ Row,48 Say Price Picture ###.##

@ Row,55 Say |

@ Row,57 Say Volum*Price Picture ## ###.##

@ Row,67 Say |

Row=Row+1

EndIf

Skip

EndDo

 

* Формирование итоговой части таблицы

@ Row,12 Say L

Row=Row+1

 

* Расчет суммарной стоимости

Sum Volum*Price For VidProd=TypeProd to AllPrice

 

* Расчет среднего выпуска

Average Volum For VidProd=TypeProd to AvVol

@ Row,29 Say Общая суммарная стоимость:

@ Row,56 Say AllPrice Picture ### ###.##

@ Row+1,21 Say Средний выпуск одним предприятием:

@ Row+1,58 Say AvVol Picture # ###

Close DataBases && Закрытие ФД

EndIf

 

* Конец работы

@ 24,0

Wait Для возврата в меню нажмите любую клавишу ...

@ 24,0 Clear

Return

  1. Печать сведений о суммарной стоимос