Курсовая работа: Создание справочника "Парфюмерный магазин" при помощи программы Turbo Pascal
readln(f,Baza.FMany);
readln(f,Baza.FSim);
If
Baza.FKod<>tek^.nomer then {Если текущая позиция в списке не
равно текущему коду товара то все позиции товара переносятся
во временный файл bddvr}
begin
writeln(fdel,Baza.FKod);
writeln(fdel,Baza.FRazdel);
writeln(fdel,Baza.FPodrazdel);
writeln(fdel,Baza.FName);
writeln(fdel,Baza.FSeria);
writeln(fdel,Baza.FProizvod);
writeln(fdel,Baza.FOpisan);
writeln(fdel,Baza.FMany);
writeln(fdel,Baza.FSim);
end
end;
close(f);
close(fDel);
reset(fDel);
rewrite(f);
while
not Eof(fDel) do {После переноса во временный файл, но уже без
удаленного элемента происходит перезапись файла бд из временного}
begin
readln(fDel,Baza.FKod); writeln(f,Baza.FKod);
readln(fDel,Baza.FRazdel); writeln(f,Baza.FRazdel);
readln(fDel,Baza.FPodRazdel);
writeln(f,Baza.FPodrazdel);
readln(fDel,Baza.FName); writeln(f,Baza.FName);
readln(fDel,Baza.FSeria); writeln(f,Baza.FSeria);
readln(fDel,Baza.FProizvod);
writeln(f,Baza.FProizvod);
readln(fDel,Baza.FOpisan); writeln(f,Baza.FOpisan);
readln(fDel,Baza.FMany); writeln(f,Baza.FMany);
readln(fDel,Baza.FSim); writeln(f,Baza.FSim);
end;
close(fdel);
close(f);
GoToXY(27,21);Textcolor(21);
writeln('Запись удалена для продолжения работы нажмите ESC');
end;
if ord(ch)=110 then begin
GoToXY(27,21);Textcolor(21);
writeln('Удаление отменено для продолжения работы нажмите ESC');
end;
end;
Procedure PrintF; {Процедура Печать
в файл}
var
fname1,fname2,fname3:string; {Переменные указывающие путь к файлу}
fotchet:text; {переменная файла отчета}
begin
clrscr;
GoToXY(10,10);
Textcolor(11);writeln('Для печати всех позиций текущего подраздела нажмите
F3');
GoToXY(10,12);writeln('Для
печати текущей позиций нажмите F5');
GoToXY(10,14);writeln('Для
выхода нажмите Backspace');
repeat
ch:=readkey;
if
(ord(ch)=61) or (ord(ch)=63) then {Вводится имя будущего
файла и создается шапка в файле отчета}
begin
fname1:='e:\prog\';
fname3:='.txt';
GoToXY(10,16);writeln('Введите имя файла в который необходимо сохранить
отчет');
GoToXY(10,17);writeln('и нажмите ввод. Файл отчета находится в корневой
папке');
GoToXY(10,19);readln(fname2);
assign(fotchet,fname1+fname2+fname3);
assign(f,'e:\prog\bd.dat');
reset(f);
rewrite(fotchet);
end;
if ord(ch)=61
then {Если нажата F3 то создается отчет состоящий из
товаров текущего подраздела}
begin
writeln(fotchet,'Отчет по подразделу ');
writeln;
writeln(fotchet,'---------------------------------------------------------');
while not Eof(f) do
begin
readln(f,Baza.FKod);
readln(f,Baza.FRazdel);
readln(f,Baza.FPodRazdel);
readln(f,Baza.FName);
readln(f,Baza.FSeria);
readln(f,Baza.FProizvod);
readln(f,Baza.FOpisan);
readln(f,Baza.FMany);
readln(f,Baza.FSim);
if (Baza.FRazdel=MRazdel) and (Baza.FPodRazdel=Podrazd) then
begin
write (fotchet,'Код товара '); writeln(fotchet,Baza.FKod);
write (fotchet,'Название ');writeln(fotchet,Baza.FName);
write (fotchet,'Серия ');writeln(fotchet,Baza.FSeria);
write (fotchet,'Производитель ');writeln(fotchet,Baza.FProizvod);
write (fotchet,'Описание ');writeln(fotchet,Baza.FOpisan);
write (fotchet,'Цена ');writeln(fotchet,Baza.FMany);
writeln(fotchet,'-----------------------------------------');
end;
end;
close(fotchet);
close(f);
end;
if
ord(ch)=63 then {Если нажата F5 то в файл отчета добавляется только
текущая позиция}
begin
tek:=nach;
writeln(fotchet,'Отчет по текущему товару');
writeln;
writeln(fotchet,'---------------------------------------------------------');
while not Eof(f) do
begin
readln(f,Baza.FKod);
readln(f,Baza.FRazdel);
readln(f,Baza.FPodRazdel);
readln(f,Baza.FName);
readln(f,Baza.FSeria);
readln(f,Baza.FProizvod);
readln(f,Baza.FOpisan);
readln(f,Baza.FMany);
readln(f,Baza.FSim);
if (Baza.FKod=tek^.nomer) then
begin
write (fotchet,'Код товара '); writeln(fotchet,Baza.FKod);
write (fotchet,'Название ');writeln(fotchet,Baza.FName);
write (fotchet,'Серия ');writeln(fotchet,Baza.FSeria);
write (fotchet,'Производитель ');writeln(fotchet,Baza.FProizvod);
write (fotchet,'Описание ');writeln(fotchet,Baza.FOpisan);
write (fotchet,'Цена ');writeln(fotchet,Baza.FMany);
writeln(fotchet,'-----------------------------------------');
end;
end;
close(fotchet);
close(f);
end;
until (ord(ch)=8) or (ord(ch)=61) or (ord(ch)=63);
{Закрыте
файлов и вывод на прежнее место}
clrscr;
shapka;
writespisok;
end;
procedure
NewTovar; {Процедура добавления нового товара}
var
f1,f2,f3:text; {Файловые переменные}
kod:integer; {Переменная которой присваивается новый код товара}
begin
clrscr;
Baza.FRazdel:=MRazdel; Baza.FPodRazdel:=PodRazd;
{Форма
заполнения данных о новом товаре}
GoToXY(10,1);
Textcolor(10); Writeln('Заполните форму. После заполнение очередного пункта
нажмите ввод');
GoToXY(3,4);
writeln('Раздел ',Baza.FRazdel);
GoToXY(3,5);
writeln('Подраздел ',Baza.FPodRazdel);
GoToXY(3,6);
Writeln('Опешите назначение товара');
GoToXY(3,8);
Writeln('Введите серию товара, если нет то введите символ "-" ');
GoToXY(3,10);
Writeln('Введите производителя');
GoToXY(3,12);
Writeln('Опешите товар подробнее');
GoToXY(3,22); Writeln('Цена товара');
GoToXY(3,5); Textcolor(11);
GoToXY(3,7);readln(Baza.FName);
GoToXY(3,9);readln(Baza.FSeria);
GoToXY(3,11);readln(Baza.FProizvod);
GoToXY(3,13);readln(Baza.FOpisan);
GoToXY(20,22);readln(Baza.FMany);
GoToXY(10,23);Textcolor(10); Writeln('Сохранить Y, Отмена N');
ch:=readkey;
if (ord(ch)= 121) or
(ord(ch)= 173) then {Если нажата Y на английском
и Н на
русском, то считывается из файла, который хранит коды товаров,
запоминает последний, увеличивает на единицу и добавляет новый код
в файл кодов}
begin
clrscr;
assign(f2,'e:\prog\kod.dat');
reset(f2);
while not Eof(f2) do readln(f2,Kod);
close(f2);
Baza.FKod:=Kod+1;
append(f2);
write(f2,'');
writeln(f2,Baza.FKod);
close(f2);
assign(f3,'e:\prog\bd.dat');
{Записывает
в БД информацию о новом товаре}
append(f3);
writeln(f3,Baza.FKod);
writeln(f3,Baza.FRazdel);
writeln(f3,Baza.FPodRazdel);
writeln(f3,Baza.FName);
writeln(f3,Baza.FSeria);
writeln(f3,Baza.FProizvod);
writeln(f3,Baza.FOpisan);
writeln(f3,Baza.FMany);
writeln(f3,'*');
close(f3);
GoToXY(18,12); writeln('Запись сохранена для продолжения нажмите ввод');
readln;
end;
clrscr;
shapka;
podRazdel;
GoToXY(27,21);Textcolor(21);
writeln('Для продолжения работы нажмите ESC');
end;
procedure
vivod; {Основная процедура вывода}
{Общий
принцип: На экране появляется первый элемент выбранного раздела и подраздела
Далее
пользователь при помощи кнопок PageUp PageDown перемещается по всем товарам}
var
hod:integer; {Счетчик ходв}
begin
schet;
{Считать общее количество позиций}
f1:=7;f2:=11;f3:=7;f4:=11;f8:=11;pu:=11;pd:=11;f10:=7; {Переменные цвета нижних
кнопок}
Text1:='Двигайтесь кнопками';
Text2:='PageDown,PageUp'; {Подсказки}
Text3:='Для выхода нажмите';
Text4:='ESC';
RP;
{Выводится первый товар}
hod:=1;
{Сделан первый ход}
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9 |