Создание html-отчета из Delphi
Может подскажет как это можно проще осуществить?
Может подскажет как это можно проще осуществить?
Сформировать хтмл код на основе данных из БД и при желании либо сохранить в файл, либо кинуть этот код в WebBrowser (либо загрузкой через поток, либо загрузкой через строку, либо навигацией на созданный файл)
То есть банально создать файл с хтмл тегами и нужной мне инфой из БД, далее просто сохранить его? Я все правильно понимаю?
А каким лучше методом сделать, просто работа файла? Если делать через код, то как это проще реализовать?
Правильно
А каким лучше методом сделать, просто работа файла? Если делать через код, то как это проще реализовать?
проще будет наверно создать шаблон типа
<html>
<body>
Param_1
Param_2
Param_3
...
...
Param_N
</body>
</html>
записать его в файл (в ресурс) потом при формировании отчета читать в TStringList (например), заменить Param_1 ... Param_N и затем сохранить все это дело в новый файл.
Примерно так...
Может подскажет как это можно проще осуществить?
сделай вот как:
в usese укажешь:
а на кнопке пропишешь:
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 BGCOLOR="#FFFFEE">');
HTMLStr.Add('<H1><CENTER> Инфа из файла '+Table1.TableName+'</CENTER></H1>');
HTMLStr.Add('<table border>');
HTMLStr.Add('<tr>');
for i:=0 to Table1.FieldCount-1 do
HTMLStr.Add('<th>'+Table1.Fields.FieldName + '</th>');
HTMLStr.Add('</tr>');
Table1.First;
while not Table1.Eof do begin
HTMLStr.Add('<tr>');
for i:=0 to Table1.FieldCount-1 do
if Table1.Fields.DisplayText='' then
HTMLStr.Add('<td>'+'___'+'/<td>')
else HTMLStr.Add('<td>'+Table1.Fields.DisplayText+'</td>');
HTMLStr.Add('</tr>');
Table1.Next;
end;
HTMLStr.Add('</TABLE>');
HTMLStr.Add('</BODY>');
HTMLStr.Add('</HTML>');
HTMLStr.SaveToFile('HTML.html');
HTMLStr.Free;
ShellExecute(Handle, 'open', pchar('HTML.html'), '', '', sw_ShowNormal);
end;
Если отчет в HTML нужен довольно сложный, с группировкой и кроссами, то рекоментую http://alfareport.rork.ru/sample/index.html.
Там есть демки и сорцы.