procedureTSDIAppForm.Button1Click(Sender: TObject);
varF: textFile;
h: hwnd; //переменная описывающая динамически открываемое окно
s, ball,chislo: string;
i:integer;
begin
assignFile(f,'C:\temp\vedom1.html'); // {*} создадим временный html-файл
rewrite(f); //Откроем его на запись
With DataModule1 do
begin
TempSQL.Close;
TempSQL.SQL.Clear;
TempSQL.SQL.Add('Select * from Session_Result ');
TempSQL.SQL.Add(' where (Dis_shifr =' + chr($27)+ Disc_table.FieldByName ('Dis_Shifr').value +chr($27)+')');
TempSQL.SQL.Add(' and (forma_otchetnosti ='+chr($27)+SDIAppForm.Otchetnost.Text +chr($27)+')');
TempSQL.SQL.Add(' and (st_bilet in ');
TempSQL.SQL.Add('(Select Student.st_bilet from student where gruppa='+chr($27) +SDIAppForm.GrName.Text +chr($27)+'));');
// SDIAppForm.Memo1.lines.Assign(TempSQL.SQL);
TempSQL.Open;
TempSQL.First;
//строки ниже формируют заголовок html-документа.
// т.е. шапку ведомости
Write(f,'<html><title> экзаменационная ведомость </title>');
write(f,'<body><h2> <center>Федеральное агентство по образованию<br> ');
write(f,'Московский государственный университет <br> ');
write(f,'Приборостроения и информатики. <br> ');
write(f,'');
write(f,' </h2> ');
write(f,' <h3> Ведомость ('+otchetnost.Text+')<br>');
write(f,' по дисциплине: '+dm1.Disc_table.FieldByName('Dis_name').Value+'<br>');
write(f,' преподаватель: '+TempSQL.FieldByName('teacher').value +'<br></h3>');
write(f,'</center><br>');
//рисуем шапку таблицы
if NoGrid.Checked then //без прорисовки сетки
s:='<table border="0"> <tr><td width="5%"> №</td>'
else // и с таковой
s:='<table border="1"> <tr><td width="5%"> №</td>';
s:=s+'<td width="40%"> ФИО</td>';
s:=s+'<td width="10%"> № ст. билета</td>';
s:=s+'<td width="15%"> Оценка</td>';
s:=s+'<td width="15%"> Подпись</td>';
s:=s+'<td width="15%"> Дата</td></tr>';
write (f,s);
i:=1; // первый студент в списке
whilenotTempSQL.Eofdo // пока не закончилось содержимое запроса
begin
if empty.Checked then
begin
ball:=' ';
chislo:=' ';
end
else
begin
ball:=TempSQL.FieldByName('ozenka').value;
chislo:=DateToStr(TempSQL.FieldByName('Data_sdachi').value);
end;
s:='<tr><td>'+IntTostr(i)+'</td><td> '+ TempSQL.FieldByName('Surname').value;
s:=s+' '+copy((TempSQL.FieldByName('FirstName').value),1,1)+'.';
s:=s+' '+copy((TempSQL.FieldByName('otch').value),1,1)+'.</td>';
s:=s+'<td>'+ TempSQL.FieldByName('st_bilet').value+'</td>';
s:=s+'<td>'+ ball+'</td>';
s:=s+'<td> </td>'; //это графа для подписи
s:=s+'<td>'+ chislo+'</td>';
s:=s+'</tr>';
Write(f, s);
TempSQL.Next;
end;
write(f,'</table></body></html>');
end;
closeFile(f);
ShellExecute(h,'open', pchar('winword.exe'), pchar('C:\temp\vedom1.html'),nil, SW_ShowNormal);
End;
Последняя строка (с ShellExecute) имеет следующую особенность: файл, имеющий структуру html- документа сохраняется с расширением *.doc для того, чтобы по завершении работы программы двойным щелчком по файлу можно было открыть его для редактирования, например, в MS Word. Сохранив файл с расширением *.html, двойным щелчком мы сможем только просмотреть наш отчёт в броузере без возможности редактирования (если настройками ОС Windows не определено открывать локальные html-файлы с помощью Word).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.