GoToXY(22,3);Textcolor(10);writeln('Kод товара ');
GoToXY(33,3);Textcolor(11);writeln(Baza.FKod);
GoToXY(43,3);Textcolor(10);writeln('Раздел ');
GoToXY(50,3);Textcolor(11);writeln(Baza.FRazdel);
GoToXY(60,3);Textcolor(10);writeln('Подраздел ');
GoToXY(70,3);Textcolor(11);writeln(Baza.FPodRazdel);
GoToXY(22,5);Textcolor(10);writeln('Название: ');
opis1:=copy(Baza.FName,1,58);
opis2:=copy(Baza.FName,59,117);
opis3:=copy(Baza.FName,118,126);
GoToXY(22,6);Textcolor(11);writeln(Opis1);
GoToXY(22,7);Textcolor(11);writeln(Opis2);
GoToXY(22,8);Textcolor(11);writeln(Opis3);
GoToXY(22,10);Textcolor(10);writeln('Серия:');
GoToXY(30,10);Textcolor(11);writeln(Baza.FSeria);
GoToXY(22,12);Textcolor(10);writeln('Производитель:');
GoToXY(22,13);Textcolor(11);writeln(Baza.FProizvod);
opis1:=copy(Baza.FOpisan,1,58);
opis2:=copy(Baza.FOpisan,59,117);
opis3:=copy(Baza.FOpisan,118,126);
GoToXY(22,15);Textcolor(10);writeln('Описание:');
GoToXY(22,16);Textcolor(11);writeln(Opis1);
GoToXY(22,17);Textcolor(11);writeln(Opis2);
GoToXY(22,18);Textcolor(11);writeln(Opis3);
GoToXY(22,20);Textcolor(10);writeln('Стоимость');
GoToXY(35,20);Textcolor(11);writeln(Baza.FMany);
end;
procedure writeSpisok; {Процедура вывода позиций товара чей код
последним записан в список}
var f:text;
begin
if ScetRP<>0 then
tek:=nach;{Считать первый элемент списка и найти в файле товар с
таким кодом}
assign(f,'e:\prog\bd.dat');
reset(f);
while not Eof(f) do {Считываем из файла бд}
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 {Если код товара из списка = коду товара
из файла значит вывести на экран позиции товара}
clrscr;
shapka; podRazdel;
GoToXY(1,1); {write ('MRazdel=',MRazdel,' Podrazd=',lom);}
GoToXY(60,1); Write('Всего позиций: ',ScetRP);
Tablo;
close(f);
end
else
GoToXY(22,11);Textcolor(10);writeln('Товаров нет, для выхода из данной категории нажмите ESC');
f1:=7;f2:=11;f3:=7;f4:=7;f8:=7;pu:=7;pd:=7;f10:=7; {Цвета нижних кнопок}
Text1:='Двигайтесь кнопками';
Text2:='PageDown,PageUp '; {Подсказки}
Text3:='Для выхода нажмите ';
Text4:='ESC ';
shapka;podrazdel;
{writeln('Enter');
readln;}
procedure DelSpisok; {Удаляет последний элемент списка}
tek:=nach; {Переходим в начало}
nach:=tek^.next; {Связываем}
dispose(tek); {Удаляем}
tek:=nach;
kolvo:=kolvo-1; {Уменьшаем количество элементов в списке на 1}
procedure RP; {Считывает из файла первый товар соответствующий разделу
и подразделу}
{var lon:boolean;
{ f:text;}
{lon:=false;{}
assign (f,'e:\prog\bd.dat');
while (not Eof(f)) do
{Если раздел из файла = выбранному разделу и подраздел
из файла=выбранному подразделу}
If (Baza.FRazdel=MRazdel) and (Baza.FPodRazdel=Podrazd) then
addspisok; {Добавляем в список}
break;
procedure PoiskFPR; {Поиск элемента соответствующей разделу и
подразделу в списке и в файле}
var {f:text;}
Good,Nal:boolean;
zed:integer;
nal:=false;
while (not Eof(f)) or (nal=false) do {Считывает данные из файла бд}
If ((Baza.FRazdel=MRazdel) and (Baza.FPodRazdel=Podrazd)) then
begin {Если очередной товар в бд соответствует разделу и
подразделу тогда проверяется есть ли очередной код товара
в списке, если есть то ищет в бд следующий товар, если
нет то добавляет в список}
zed:=0;
Good:=false;
d:=nil;
while (tek<>NIL) or (Good=false) do
if tek^.nomer = Baza.FKod then Good:=true;
d:=tek;
tek:=tek^.next;
zed:=zed+1;
if zed=kolvo then break;
if Good<>true then
nal:=true;
procedure schet; {Процедура выводит количество позиций в выбранном разделе
и подразделе}
{var f:text;{}
ScetRP:=0;
while not Eof(f) do
if (Baza.FRazdel=MRazdel) and (Baza.FPodRazdel=Podrazd) then
ScetRP:=ScetRP+1;
Procedure Del; {Процедура удаление товара}
var FDel:text;{Временный файл для не удаленных товаров}
GoToXY(27,21);Textcolor(21);
writeln('Вы действительно хотите удалить файл Y/N');
ch:=readkey;
if (ord(ch)=121) or (ord(ch)=173) then
assign(fDel,'e:\prog\bdvr.dat');
rewrite(fdel);
while not Eof(f) do {Считывается очередной товар из бд}
If Baza.FKod<>tek^.nomer then {Если текущая позиция в списке не
равно текущему коду товара то все позиции товара переносятся
во временный файл bddvr}
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);
close(fDel);
reset(fDel);
rewrite(f);
while not Eof(fDel) do {После переноса во временный файл, но уже без
удаленного элемента происходит перезапись файла бд из временного}
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);
close(fdel);
GoToXY(27,21);Textcolor(21); writeln('Запись удалена для продолжения работы нажмите ESC');
if ord(ch)=110 then begin
GoToXY(27,21);Textcolor(21); writeln('Удаление отменено для продолжения работы нажмите ESC');
Procedure PrintF; {Процедура Печать в файл}
var fname1,fname2,fname3:string; {Переменные указывающие путь к файлу}
fotchet:text; {переменная файла отчета}
GoToXY(10,10); Textcolor(11);writeln('Для печати всех позиций текущего подраздела нажмите F3');
GoToXY(10,12);writeln('Для печати текущей позиций нажмите F5');
GoToXY(10,14);writeln('Для выхода нажмите Backspace');
repeat
if (ord(ch)=61) or (ord(ch)=63) then {Вводится имя будущего
файла и создается шапка в файле отчета}
fname1:='e:\prog\';
fname3:='.txt';
GoToXY(10,16);writeln('Введите имя файла в который необходимо сохранить отчет');
GoToXY(10,17);writeln('и нажмите ввод. Файл отчета находится в корневой папке');
Страницы: 1, 2, 3, 4, 5, 6, 7, 8