Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.15;
Скачать: CL | DM;

Вниз

Печать отчета в html из бд access с выводом полей типа MEMO, OLE   Найти похожие ветки 

 
seco2nd   (2011-02-09 20:59) [0]

Всем привет. Есть БД 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-картинки?


 
seco2nd   (2011-02-09 21:05) [1]

Кто боится картинок, тому вот: http://dl.dropbox.com/u/15840231/report.html


 
seco2nd   (2011-02-09 21:14) [2]

Изображения - это двоичные данные.


 
sniknik ©   (2011-02-09 21:20) [3]

формировать html проще/нагляднее с помощью PageProducer-а или вариации типа DataSetPageProducer.

вместо DisplayText используй AsString везде кроме картинок, с картинками сложнее, их придется вытащить, обрезать признак OLE (префикс постфикс), и либо сохранять в файлы, вставляя ссылки, либо, чтобы было все "одним куском" преобразовать в бейсе64 и вставлять тегом <img src="data:image/gif;base64,R0lGODl ........

> Изображения - это двоичные данные.
да что ты говоришь... капитан очевидность?


 
sniknik ©   (2011-02-09 21:24) [4]

> if qry1.Fields[i].DisplayText="" then
>        HTMLStr.Add("<td>"+"___"+"/<td>")
  блин.


 
sniknik ©   (2011-02-09 21:25) [5]

& nbsp;


 
sniknik ©   (2011-02-09 21:27) [6]

вот так, чтоб браузер не резал - &amp;nbsp;


 
seco2nd   (2011-02-09 21:40) [7]

тут же форум delphi, зачем к html придираться))


 
seco2nd   (2011-02-09 21:45) [8]


> преобразовать в бейсе64

можн ссылку?)


 
sniknik ©   (2011-02-09 21:46) [9]

> можн ссылку?)
это не дельфи...


 
И. Павел ©   (2011-02-09 21:46) [10]


> seco2nd   (09.02.11 21:40) [7]

Хотите, чтобы только к Delphi придирались? Хорошо:
1)почему форма называется Form2 - это плохой стиль именования - название формы должно отражать ее назначение.
2) Почему работа с созданным TstringList не помещена в блок try/finally?
3) Код нужно выравнивать
4) А за помощь нужно благодарить


 
seco2nd   (2011-02-09 21:55) [11]


> И. Павел

Да я пошутил, а у вас смайлов к сожалению нет. Спасибо sniknik человеческое!  За помощь я всегда благодарю, просто тема еще в обсуждении.


 
Leonid Troyanovsky ©   (2011-02-09 21:59) [12]


> И. Павел ©   (09.02.11 21:46) [10]

> 4) А за помощь нужно благодарить

К дельфи оно ж ортогонально.

А если придираться, то зачем чистить девственный лист.
И зачем лист, когда был где-то TPageProducer.

--
Regards, LVT.


 
И. Павел ©   (2011-02-09 22:05) [13]

По поводу Base64:
http://www.sql.ru/forum/actualthread.aspx?bid=20&tid=728704
Ну или просто набить я google "картинку в Base64 Delphi" и выбирать.


 
И. Павел ©   (2011-02-09 22:05) [14]

"я google" -> "в google"


 
seco2nd   (2011-02-09 22:09) [15]


> И. Павел

Благодарю )


 
Anatoly Podgoretsky ©   (2011-02-10 08:58) [16]


> seco2nd   (09.02.11 21:55) [11]

Так ты еще и без кнопочек не умеешь смайлики ставить, кнопкодав :-)



Страницы: 1 вся ветка

Текущий архив: 2011.05.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.01 c
2-1296568705
Rembo
2011-02-01 16:58
2011.05.15
Обмен пакетами между сервером и клиентом


15-1296336581
Юрий
2011-01-30 00:29
2011.05.15
С днем рождения ! 30 января 2011 воскресенье


15-1296724683
KSergey
2011-02-03 12:18
2011.05.15
Win2003: восстановить административный RDP


15-1296736261
Smile
2011-02-03 15:31
2011.05.15
Тем, у кого есть немного свободного времени:)


6-1237214179
FireMan_Alexey
2009-03-16 17:36
2011.05.15
Вопрос про метод CONNECT в HTTP протоколе