close

Вход

Забыли?

вход по аккаунту

?

Лабораторная работа №5

код для вставкиСкачать
Лабораторная работа №5.
Пополнение базы данных и создание отчета.
Выполнил студент группы И-42
Журавлев Владимир.
Текст программы с комментариями.
Set date to german
Set talk off && Результаты не выводятся на экран
clear && Очищаем экран
set default to d:\fp_26\laba4\
use zakaz in 0 order tag nom_zak
use zakazch in 0 order tag kod_zakazc
use detail in 0 order tag nom_zak
use nomenkl in 0 order tag kod_izdel
select zakaz
set relation to kod_zakazc into zakazch
define window zakazi from 1,15 to 10,66;
double title "Заказ";
color scheme 10 && Определяем окно заказов
activate window zakazi && Активируем окно заказов
@0,1 say "Номер заказа" get m.nom_zak;
default 0 size 1,2;
valid number();
error 'Такой номер уже существует!' && Форматированный вывод на
&& экран кода заказчика с
&& проверкой его на уникальность
select zakazch && Делаем текущей таблицу заказчиков
count to kolklient && Число записей в таблице
dimension client(kolklient) && Массив для кодов и названий
i=1 && Счетчик цикла
scan && Цикл по записям таблицы заказчиков
client(i)=zakazch.name_zakaz+str(zakazch.kod_zakazc,2)
i=i+1
m.date_zak=date()
endscan
@0,34 say "Дата" get m.date_zak && Выводим текущую дату из временной
&& переменной
@1,15 say "Заказчик и его код"
t=0
@2,12 get t function '^' from client;
default t=' ' && Заполнение меню
x=1
@6,1 get x function '*nh Выбор товаров; Запись заказа;;
Счет; Выход';
valid knopki() && Выбор кнопки
define window vibor_tovarov from 11,15 to 20,66;
color scheme 10 && Создание окна для выбора товаров
read cycle && Состояние ожидания ввода данных
close database && Закрытие всех БД
clear window all && Удаление из ОЗУ всех окон,
&& созданных данной программой
*Проверка номера заказа
function number
select detail
locate for nom_zak=m.nom_zak
e = !found()
return e
*Выбор кнопки
function knopki
do case
case x=1
do tovar && Выбор товаров
case x=2
do zapis && Запись заказа
case x=3
do schet && Счет
case x=4
clear read && Выход
show gets
endcase
*Выбор товара
function tovar
select nomenkl
browse window vibor_tovarov title 'Выбор товара' fields;
nomenkl.name_izdel :h='Изделие',;
nomenkl.sumza1_izd :h='Цена изделия',;
nomenkl.kol_izdel :h='Кол-во',;
sum_zakaza=nomenkl.sumza1_izd * nomenkl.kol_izdel;
:h='Сумма' :p='9999999.99' noappend nodelete
return
*Запись заказа
function zapis
if (m.nom_zak # 0)
if (t # 0)
m.kod_zakazch = val(right(client(t),2))
m.sum_zak = 0
select nomenkl
scan for kol_izdel # 0
select detail
append blank
replace detail.nom_zak with m.nom_zak,;
kod_izdel with nomenkl.kod_izdel,;
dkol_v_zak with nomenkl.kol_izdel,;
sum_zak with nomenkl.kol_izdel*nomenkl.sumza1_izd
m.sum_zak = m.sum_zak+nomenkl.kol_izdel*nomenkl.sumza1_izd
select nomenkl
replace kol_izdel with 0
endscan
select zakaz
append blank
gather memvar
wait window "Заказ записан!"
else
wait window "Не выбран заказчик!"
endif
else
wait window "Не указан номер заказа!"
endif
return
*Меню заказов
function schet
select zakaz
on key label enter do save_schet
browse window vibor_tovarov title 'Выбор заказа - ENTER, Выход - Esc' fields;
zakaz.nom_zak :h='Номер заказа',;
zakaz.date_zak :h='Дата заказа',;
zakaz.sum_zak :h='Сумма заказа',;
zakazch.name_zakaz :h='Заказчик' noedit noappend nodelete
push key clear
*Запись файла счета
function save_schet
Nzakaz=zakaz.nom_zak
set textmerge on to 'Schet'+str(Nzakaz,2)+'.txt' noshow
\ Счет № <<zakaz.nom_zak>> от <<Dtoc(zakaz.date_zak)>>
\
\ Заказчик <<zakazch.name_zakaz>>
\ ╔═════════════════════════╦══════╦══════════╦══════════╗
\ ║ Изделие ║ Кол. ║ Цена ║ Сумма ║
\ ╠═════════════════════════╬══════╬══════════╬══════════╣
select detail
scan for nom_zak=Nzakaz
=seek(detail.kod_izdel,4)
\ ║<<nomenkl.name_izdel>>║ <<str(detail.dkol_v_zak,2)>>║
\\<<str(nomenkl.sumza1_izd,10)>>║<<str(detail.sum_zak,10)>>║
endscan
\ ╚═════════════════════════╩══════╩══════════╩══════════╝
\ Всего: <<str(zakaz.sum_zak,10)>>
set textmerge to
deactivate window vibor_tovarov
activate window zakazi
do prosmved with 'Schet'+str(Nzakaz,2)+'.txt'
return
*Просмотр файла счета
procedure prosmved
parameters filnam
define window prosmved from 1,1 to 23,79;
title 'Esc - Выход';
system;
color scheme 10
activate window prosmved
modify command (filnam);
noedit;
window prosmved
release windows prosmved
show windows zakazi top
return
Документ
Категория
Рефераты
Просмотров
7
Размер файла
34 Кб
Теги
работа, лабораторная
1/--страниц
Пожаловаться на содержимое документа