把存储过程获取的数据输出到报表的html模板中

制作报表的html模板

<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<TITLE>报表模板</TITLE> 
<BODY>

<TABLE BORDER="1" cellpadding="0" cellspacing="0">

<TR>
      <TH>公司名称</TH>
   <TH>联系人</TH>
   <TH>产品名称</TH>
   <TH>产品名称</TH>
</TR>

<TR>
     <TD>Exotic Liquids</TD>
  <TD>Charlotte Cooper</TD>
  <TD>Chai</TD>
  <TD>18.0000</TD>
</TR>

<TR>
    <TD>Exotic Liquids</TD>
  <TD>Charlotte Cooper</TD>
  <TD>Chang</TD>
  <TD>19.0000</TD>
</TR>

</TABLE>
</BODY>
</HTML>

浏览器打开效果图

通过存储过程获取报表的数据,然后生成上面的报表模板html

function TForm1.DataToHtml(cds: TClientDataSet): Boolean;
var
l: TStringList;
i: Integer;
begin
Result := False;
if (cds = nil) or (not cds.Active) or (cds.IsEmpty) then
Exit;
l := TStringList.Create;
try
try
// html头
l.Add('<HTML>');
l.Add('<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />');
l.Add('<TITLE>报表模板</TITLE>');
l.Add('<BODY>');
l.Add('<TABLE BORDER="1" cellpadding="0" cellspacing="0">');
// 表头
l.Add('<TR>');
l.Add('<TH>门店编号</TH>');
l.Add('<TH>门店名称</TH>');
l.Add('<TH>系统版本</TH>');
l.Add('<TH>协议版本</TH>');
l.Add('<TH>离开时间</TH>');
l.Add('</TR>');
// 数据
cds.First;
while not cds.Eof do
begin
l.Add('<TR>');
for i := 0 to cds.FieldCount - 1 do
begin
l.Add('<TD>' + cds.Fields[i].Text + '</TD>');
end;
l.Add('</TR>');
cds.Next;
end;
// html尾
l.Add('</TABLE>');
l.Add('</BODY>');
l.Add('</HTML>');
// 保存成html文件
l.SaveToFile(ExtractFilePath(Application.ExeName) + '1.html');
Result := True;
except
Result := False;
end;
finally
l.Free;
end;
end;

posted @ 2014-07-22 09:38  delphi中间件  阅读(550)  评论(0编辑  收藏  举报