![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Печать отчета в html из бд access с выводом полей типа MEMO, OLE [D7, XP]
seco2nd © (2011-02-09 20:59:00)Всем привет. Есть БД access, вывожу отчет в html-страницу так:
procedure TForm2.Btn1Click(Sender: TObject);
var HTMLStr:TStringList;
i:integer;
begin
HTMLStr:=TstringList.Create;
HTMLStr.Clear;
HTMLStr.Add('<HTML>');
HTMLStr.Add('<HEAD>');
HTMLStr.Add('<TITLE>'+'HTML-ка'+'</TITLE>');
HTMLStr.Add('</HEAD>');
HTMLStr.Add('<BODY>');
HTMLStr.Add('<H1><CENTER> Инфа из файла </CENTER></H1>');
HTMLStr.Add('<table border>');
HTMLStr.Add('<tr>');
for i:=0 to qry1.FieldCount-1 do
HTMLStr.Add('<th>'+qry1.Fields[i].FieldName + '</th>');
HTMLStr.Add('</tr>');
qry1.First;
while not qry1.Eof do begin
HTMLStr.Add('<tr>');
for i:=0 to qry1.FieldCount-1 do
if qry1.Fields[i].DisplayText='' then
HTMLStr.Add('<td>'+'___'+'/<td>')
else HTMLStr.Add('<td>'+qry1.Fields[i].DisplayText+'</td>');
HTMLStr.Add('</tr>');
qry1.Next;
end;
HTMLStr.Add('</TABLE>');
HTMLStr.Add('</BODY>');
HTMLStr.Add('</HTML>');
HTMLStr.SaveToFile('report.html');
HTMLStr.Free;
wb1.Navigate(ExtractFilePath(Application.ExeName)+'report.html');
end;
Получаю такое: http://dl.dropbox.com/u/15840231/1.JPG
Как выводить MEMO, OLE-картинки?
Anatoly Podgoretsky (2011-02-10 08:58:00) [1]
> seco2nd (09.02.11 21:55) [11]
Так ты еще и без кнопочек не умеешь смайлики ставить, кнопкодав :-)
seco2nd (2011-02-09 22:09:00) [2]
> И. Павел
Благодарю )
И. Павел (2011-02-09 22:05:00) [3]По поводу Base64:
http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=728704
Ну или просто набить я google "картинку в Base64 Delphi" и выбирать.
И. Павел (2011-02-09 22:05:00) [4]"я google" -> "в google"
Leonid Troyanovsky (2011-02-09 21:59:00) [5]
> И. Павел © (09.02.11 21:46) [10]
> 4) А за помощь нужно благодарить
К дельфи оно ж ортогонально.
А если придираться, то зачем чистить девственный лист.
И зачем лист, когда был где-то TPageProducer.
--
Regards, LVT.
seco2nd (2011-02-09 21:55:00) [6]
> И. Павел
Да я пошутил, а у вас смайлов к сожалению нет. Спасибо sniknik человеческое! За помощь я всегда благодарю, просто тема еще в обсуждении.
sniknik (2011-02-09 21:46:00) [7]> можн ссылку?)
это не дельфи...
И. Павел (2011-02-09 21:46:00) [8]
> seco2nd (09.02.11 21:40) [7]
Хотите, чтобы только к Delphi придирались? Хорошо:
1)почему форма называется Form2 - это плохой стиль именования - название формы должно отражать ее назначение.
2) Почему работа с созданным TstringList не помещена в блок try/finally?
3) Код нужно выравнивать
4) А за помощь нужно благодарить
seco2nd (2011-02-09 21:45:00) [9]
> преобразовать в бейсе64
можн ссылку?)
seco2nd (2011-02-09 21:40:00) [10]тут же форум delphi, зачем к html придираться))
sniknik (2011-02-09 21:27:00) [11]вот так, чтоб браузер не резал -
sniknik (2011-02-09 21:25:00) [12]& nbsp;
sniknik (2011-02-09 21:24:00) [13]> if qry1.Fields[i].DisplayText='' then
> HTMLStr.Add('<td>'+'___'+'/<td>')
блин.
sniknik (2011-02-09 21:20:00) [14]формировать html проще/нагляднее с помощью PageProducer-а или вариации типа DataSetPageProducer.
вместо DisplayText используй AsString везде кроме картинок, с картинками сложнее, их придется вытащить, обрезать признак OLE (префикс постфикс), и либо сохранять в файлы, вставляя ссылки, либо, чтобы было все "одним куском" преобразовать в бейсе64 и вставлять тегом <img src="data:image/gif;base64,R0lGODl ........
> Изображения - это двоичные данные.
да что ты говоришь... капитан очевидность?
seco2nd (2011-02-09 21:14:00) [15]Изображения - это двоичные данные.
seco2nd (2011-02-09 21:05:00) [16]Кто боится картинок, тому вот: http://dl.dropbox.com/u/15840231/report.html