把存储过程获取的数据输出到报表的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;
把存储过程获取的数据输出到报表的html模板中的更多相关文章
- PHP自学4——通过函数将数组数据输出到html的Table标签中(使用函数的例子)
这一节其实说实话并没有什么干货,不过为了防止PO主的懒癌的复发,还是坚持放一点东西,即使是内容和长度都令人发指.这一节通过一个函数来实现将数组中的内容输出html的Table标签当中显示. 函数文件— ...
- servletActionContext.getContext默认获取contextmap 数据默认存储在contextmap的request中
- Java使用POI实现数据导出excel报表
Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...
- HTML5操作麦克风获取音频数据(WAV)的一些基础技能
基于HTML5的新特性,操作其实思路很简单. 首先通过navigator获取设备,然后通过设备监听语音数据,进行原始数据采集. 相关的案例比较多,最典型的就是链接:https://developer. ...
- ffmpeg 从内存中读取数据(或将数据输出到内存)
更新记录(2014.7.24): 1.为了使本文更通俗易懂,更新了部分内容,将例子改为从内存中打开. 2.增加了将数据输出到内存的方法. 从内存中读取数据 ffmpeg一般情况下支持打开一个本地文件, ...
- android客户端从服务器端获取json数据并解析的实现代码
今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的U ...
- (转)android客户端从服务器端获取json数据并解析的实现代码
今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码 ...
- android客户端从服务器端获取json数据并解析的实现代码(重要)
首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exc ...
- 工具篇-Spark-Streaming获取kafka数据的两种方式(转载)
转载自:https://blog.csdn.net/weixin_41615494/article/details/7952173 一.基于Receiver的方式 原理 Receiver从Kafka中 ...
随机推荐
- ibatis的there is no statement named xxx in this SqlMap
报错情况如下: com.ibatis.sqlmap.client.SqlMapException: There is no statement named Control.insert-control ...
- 命令格式 kill -3 pid
命令格式 kill -3 pid 作用 打印进程号为pid的进程中,每个线程的执行日志 到 nohup文件 中,如果nohup的输出做了重定向,那么输出到重定向以后的文件中. 命令格式 top -Hp ...
- tomcat集群部署
1.apache只有处理静态事物的能力, 而tomcat的强项就是处理动态的请求 2.由apache作为入口,如果是请求静态页面或者是静态文件,由apache直接提供,如果是请求动态页面,则让apac ...
- java编写二叉树以及前序遍历、中序遍历和后序遍历 .
/** * 实现二叉树的创建.前序遍历.中序遍历和后序遍历 **/ package DataStructure; /** * Copyright 2014 by Ruiqin Sun * All ri ...
- SSH应该使用密钥还是密码?
关于SSH,几乎每个人都同意密钥要优于密码,更安全,并且更先进,但我并不同意这个观点. 虽然密钥的确可以更好,但它有着还没被意识到的严重风险,并且我认为比得到妥善管理的密码更不安全. 通常密钥更好的理 ...
- JBoss7 局域网无法访问 解决方法
JBoss7 局域网无法访问 解决方法 在standalone模式,修改/standalone/configuration/standalone.xml.如下 修改或新增一个interface. &l ...
- iScroll-5拉动刷新功能实现与iScroll-4上拉刷新的一点改进
近来在学习移动设备的应用开发,接触了jQuery mobile,在网上查阅相关资料时发现一个叫”iScroll“的小插件.其实这个iScroll插件跟jQuery mobile没有多大关系,并不是基于 ...
- Java集群优化——dubbo+zookeeper构建高可用分布式集群
不久前,我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的需求,这时,我们要考虑另外一种,我们熟悉的内容, ...
- Cookie设置HttpOnly,Secure,Expire属性
在eclipese中创建Web工程时,有个dynamic web module version选项,首先解释下这个选项的意思: http://stackoverflow.com/questions/3 ...
- UVA 1658 Admiral 海上将军(最小费用流,拆点)
题意: 一个有v个点的有向图,要从点1到点v需要找两条路径,两路径不可经过同一个点(除了1和v点).求这两条路径的最小费用(保证有解). 分析: 难在建图,其他套模板. 此图给的是超级复杂图,两个点之 ...