制作报表的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;

把存储过程获取的数据输出到报表的html模板中的更多相关文章

  1. PHP自学4——通过函数将数组数据输出到html的Table标签中(使用函数的例子)

    这一节其实说实话并没有什么干货,不过为了防止PO主的懒癌的复发,还是坚持放一点东西,即使是内容和长度都令人发指.这一节通过一个函数来实现将数组中的内容输出html的Table标签当中显示. 函数文件— ...

  2. servletActionContext.getContext默认获取contextmap 数据默认存储在contextmap的request中

  3. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  4. HTML5操作麦克风获取音频数据(WAV)的一些基础技能

    基于HTML5的新特性,操作其实思路很简单. 首先通过navigator获取设备,然后通过设备监听语音数据,进行原始数据采集. 相关的案例比较多,最典型的就是链接:https://developer. ...

  5. ffmpeg 从内存中读取数据(或将数据输出到内存)

    更新记录(2014.7.24): 1.为了使本文更通俗易懂,更新了部分内容,将例子改为从内存中打开. 2.增加了将数据输出到内存的方法. 从内存中读取数据 ffmpeg一般情况下支持打开一个本地文件, ...

  6. android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下   首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的U ...

  7. (转)android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下       首先客户端从服务器端获取json数据 1.利用HttpUrlConnection   复制代码 ...

  8. android客户端从服务器端获取json数据并解析的实现代码(重要)

    首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exc ...

  9. 工具篇-Spark-Streaming获取kafka数据的两种方式(转载)

    转载自:https://blog.csdn.net/weixin_41615494/article/details/7952173 一.基于Receiver的方式 原理 Receiver从Kafka中 ...

随机推荐

  1. php关于private、public成员变量访问问题

    如果类里面定义了__get($name)方法,则不论类的private成员还是public成员,都能够在类的外面通过类似$class->name访问到.如果是public变量,则不会自动调用ge ...

  2. linux 配置java环境变量

    修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题. ·用文本编辑器打开/etc/profi ...

  3. 命令行添加用户的“作为服务登录”权利(添加Windows用户的时候,门道不是一般的多)good

    1.打开控制台(“开始”|“运行”中输入:MMC) 2.“文件”菜单|“添加删除管理单元”|“添加...”|选“安全模板”|“关闭”. 3.在“C:\Windows\Security\template ...

  4. Android安全问题 抢先拦截短信

    同上篇文章一样,这里只陈述结果,代码分析稍后给出 导读:本文叙述如何先于某些伪杀毒软件.病毒.常规软件获取到短信 众所周知,android系统在收到短信息的时候会发送广播,但是此广播是有序广播,也就是 ...

  5. Vim 配色设置与配色脚本语法

    几个给tag加颜色的插件 https://github.com/octol/vim-cpp-enhanced-highlight:基于tag的c family语法高亮 https://github.c ...

  6. CodeWars题目筛选

    http://www.codewars.com/kata/search/csharp?q=&r%5B%5D=-8&xids=completed&beta=false 语言选择C ...

  7. 中国海洋大学第四届朗讯杯高级组 Cash Cow(模拟)

    题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2721 题意: 给定n个左标,跟那n个坐标 ...

  8. bzoj1471

    转化补集的思想,首先求出任意两点之间路径数目 然后求两条路径第一次相交在点k(按照拓扑排序的顺序)的数目,显然这里要用到容斥 然后pascal有坑爹的范围检测,所以运算中有些不会影响到答案但会爆int ...

  9. UVa 129 (回溯法) Krypton Factor

    回溯法确实不是很好理解掌握的,学习紫书的代码细细体会. #include <cstdio> ]; int n, L, cnt; int dfs(int cur) { if(cnt++ == ...

  10. 在 Azure 中使用公用 IP 创建多 NIC VM

    Russ Slaten  2014年 11 月 18日下午 4点 我们最近宣布了支持具有多个网络接口控制器 (NIC) 的虚拟机 (VM).我仍在努力了解此功能适用的所有新场景,但首先,我希望亲自测试 ...