Интернет-решения от доктора Боба




Записи


После анализа полей таблицы, мы можем пройтись по всей таблице и получить значения полей. Для каждой записи в таблице мы сгенерируем HTML-страницу. Мы можем использовать имена полей как заголовки, используя тег <H2> для ключевых  полей и тег <H3>  для не ключевых полей. Код просматривает всю таблицу т преобразовывает поля в текст и выводит их в HTML-файл:

while not

Eof do

begin

  Inc(RecNr);

  System.Assign(f,FileName+'/'+PageNr(RecNr));

  System.Rewrite(f);

  writeln(f,'<HTML>');

  writeln(f,'<HEADER>');

  writeln(f,'<TITLE>');

  writeln(f,Format('%s %d/%d',[ATable,RecNr,RecordCount]));

  writeln(f,'</TITLE>');

  writeln(f,'</HEADER>');

  writeln(f,'<BODY>');

  { print fields }

  for i:=0 to

Pred(FieldCount) do

    if FieldTypes[i] > sf_UnKnown then

    begin

      if (keys >= i) then writeln(f,'<H2>')

                     else writeln(f,'<H3>');

      writeln(f,FieldDefs[i].Name,':');

      if (keys >= i) then writeln(f,'</B><BR>') { </H2> }

                     else

writeln(f,'</B><BR>'); { </H3> }

      if FieldTypes[i] = sf_Memo then

        writeMemo(f,Fields[i])

      else

writeln(f,Fields[i].AsString);

      if (keys = i) then writeln(f,'<HR>');

    end;

    writeln(f,'</BODY>');

    writeln(f,'</HTML>');

    System.Close(f);

    Next

  end;

Заметим, что я использую здесь одно недокументированное свойство HTML: для окончания заголовка вы можете написать </B>, но вы должны использовать <BR> для разрыва строки. Таким образом, вы можете иметь заголовки, и текст, начинающийся правее и ниже заголовка. Пожалуйста, учтите, что это недокументированное свойство и вы должны заменить его раз комментировав </H2> и </H3> если вы не желаете жить на угле <юмор>. Следующий листинг показывает как получить информацию из мемо поля базы данных и поместить его в текстовый файл. И наконец после этого мы отформатируем немного, помня что HTML игнорирует множественные переводы строки и пробелы.




Содержание  Назад  Вперед