gotoxy(15, 9); textcolor(15);
write('ОТЧЕТ НОМЕР 1 - ПРОЦЕНТ ЖЕНЩИН, ВСТАВШИХ НА УЧЕТ');
textbackground(1); gotoxy(14, 14); write('За ');
case mm of
1: write('январь');
2: write('февраль');
3: write('март');
4: write('апрель');
5: write('май');
6: write('июнь');
7: write('июль');
8: write('август');
9: write('сентябрь');
10: write('октябрь');
11: write('ноябрь');
12: write('декабрь');
end; {case mm}
write(' ',gggg,' г. на учет встало ');
if femperc=0 then write('0') else write(femperc:3:1); write('% женщин');
bottom(21); {вывод строки состояния}
readkey;
reports; {вызов меню отчетов}
end; {report1}
{раздел инициализации модуля}
begin
end.
{Модуль, реализующий выполнение отчёта номер 2 – вывод на экран в виде таблицы списка всех вставших на учёт за указанный пользователем месяц.}
unit agrep2;
{интерфейсная часть модуля}
interface
uses crt, agsub, agthird;
procedure report2; {процедура формирования отчета номер 2}
{раздел реализации модуля}
implementation
procedure report2;
var
mm, gggg, s, comp, comp1, comp2: integer;
bot, screens, scr, i, x, y, code: integer;
flag: boolean;
test: string;
begin
bottom(2); {вывод строки состояния}
repeat {ввод месяца с проверкой правильности}
flag:=true;
repeat
top(31); {вывод заголовка окна}
write('Введите месяц (в формате ММ): '); readln(test);
val(test,mm,code);
until code=0;
if (mm<1) or (mm>12) then
begin
errors(2); flag:=false;
end; {if (mm<1) or (mm>12)}
until(flag);
repeat {ввод года с проверкой правильности}
flag:=true;
repeat
top(32); {вывод заголовка окна}
write('Введите год (в формате ГГГГ): '); readln(test);
val(test,gggg,code);
until code=0;
if (gggg<curyear-25) or (gggg>curyear) then
begin
errors(3); flag:=false;
end; {if (gggg<curyear-25) or (gggg>curyear)}
until(flag);
assign(fildata, filename);
reset(fildata);
s:=filesize(fildata); {определение количества записей в файле базы данных}
comp:=0;
for i:=0 to s-1 do {расчет общего числа соискателей в указанный месяц}
begin
seek(fildata, i);
read(fildata, buf);
if (buf.month=mm) and (buf.year=gggg) then comp:=comp+1;
end; {for i:=0 to s-1}
close(fildata);
comp2:=comp;
if comp2=0 then
begin
windows(2, 3, 78, 22, 1); textbackground(12);
for x:=2 to 78 do
begin
gotoxy(x, 4); write(' ');
end; {for x:=2 to 78}
gotoxy(13, 4); textcolor(15);
write('ОТЧЕТ НОМЕР 2 - СПИСОК ВСТАВШИХ НА УЧЕТ ЗА ');
case mm of
1: write('ЯНВАРЬ');
2: write('ФЕВРАЛЬ');
3: write('МАРТ');
4: write('АПРЕЛЬ');
5: write('МАЙ');
6: write('ИЮНЬ');
7: write('ИЮЛЬ');
8: write('АВГУСТ');
9: write('СЕНТЯБРЬ');
10: write('ОКТЯБРЬ');
11: write('НОЯБРЬ');
12: write('ДЕКАБРЬ');
end; {case mm}
write(' ',gggg,' Г.');
textbackground(1); gotoxy(3, 6); write('За указанный месяц соискателей нет!');
bottom(21); {вывод строки состояния}
end {if comp2=0}
else
begin
bot:=comp;
{определение числа экранов для отображения соискателей за указанный месяц}
screens:=(comp div 13)+1;
comp1:=1;
for scr:=1 to screens do
begin
windows(2, 3, 78, 22, 1); textbackground(12);
for x:=2 to 78 do
begin
gotoxy(x, 4); write(' ');
end; {for x:=2 to 78}
if screens>1 then gotoxy(5, 4) else gotoxy(13, 4);
textcolor(15);
write('ОТЧЕТ НОМЕР 2 - СПИСОК ВСТАВШИХ НА УЧЕТ ЗА ');
case mm of
1: write('ЯНВАРЬ');
2: write('ФЕВРАЛЬ');
3: write('МАРТ');
4: write('АПРЕЛЬ');
5: write('МАЙ');
6: write('ИЮНЬ');
7: write('ИЮЛЬ');
8: write('АВГУСТ');
9: write('СЕНТЯБРЬ');
10: write('ОКТЯБРЬ');
11: write('НОЯБРЬ');
12: write('ДЕКАБРЬ');
end; {case mm}
write(' ',gggg,' Г.');
if screens>1 then write(' (СТРАНИЦА ',scr,')');
textbackground(1);
gotoxy(3, 6);
write('┌───────┬────────────────────────────────────────────────┬─────────────────┐');
gotoxy(3, 7); write('│ N. │ ФИО соискателя');
gotoxy(59, 7); write('│ Дата постановки │'); gotoxy(3, 8);
write('├──────┼────────────────────────────────────────────────┼─────────────────┤');
comp:=1+12*(scr-1);
y:=1;
assign(fildata, filename);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.