报表编程
Ⅰ 在Java编程语言里报表(excel和pdf)是怎么实现的
excel报表的导入导出要用poi.jar这个包,pdf报表你可以用ireport做,具体怎么做也不是一两句话讲得清的,你可以网上查查资料自己跟着做做看,一点都不难的...
Ⅱ delphi 报表
Grid++Report 报表组件具有如下特点:
1、适用范围广:VB.NET、C#、VB、VC、Delphi、C++Builder、VFP、易语言等一切支持 COM 的开发工具。
2、功能强大:实现普通格式报表、表格报表、多层表头、票据套打、交叉表等各种报表非常简便;报表完全可编程定义,非常适合开发通用软件中的动态报表。
3、独有的报表查询显示功能:除了提供报表的打印、打印预览、数据导出等功能,还提供独有的报表查询显示功能,既提供报表查询与输出的集成一次性实现,又能保证数据的一致性与完整性。
4、特有的分组单元格合并功能,轻松实现常见的中国式报表分组在列中展现并垂直居中。
5、提供图表功能,在报表中直接实现图表功能。包括:饼图、叠加饼图、柱状图,连线图、散列点图等。
6、报表数据导出格式丰富,格式包括:Excel、PDF、图像、HTML、文本,CSV 等。
7、提供脚本编程功能,直接在报表模板中自定义报表行为,采用通用的 VBScript 与 JScript 脚本引擎。
8、支持参数化报表查询sql语句,轻松实现动态过滤条件筛选报表数据。
9、报表查询显示时提供报表内容文字查找功能。
10、全中文界面,针对中国报表进行了很多专门实现,如:报表表格线、财务金额线、大写金额、发票打印圆圈中画叉图标、负数红字显示、多层表头等。很多在国外报表控件中很难实现的功能在本报表控件中可以轻易实现。
11、组件提供丰富交互事件,轻松实现报表穿透(透视)查询和报表交互。
12、重新发布简单:只需分发两个 DLL 文件。
13、易学易用:完全可视化设计,完善的复制/剪切/粘贴(Copy/Cut/Paste)和恢复重做(Undo/Redo)功能,专业的拖放操作与即时编辑功能。
14、编写了完整详尽的帮助文档。提供了丰富例程,包括VB.NET、C#、VB、VC、Delphi、C++Builder、VFP、中文编程易语言。
15、为 Delphi、C++Builder 编写专门的包装类,象使用 VCL 控件一样使用 Grid++Report。
16、支持所有常规条形码,打印条形码精度高易读取。
不过好像是商业控件。
在Delphi盒子上有下载,
要先登录才可以下载
Ⅲ 用Delphi实现自己的Excel报表
Excel是大家都比较熟悉的表格处理软件 用它来做自由报表载体其好处有1 从用户角度
载体本身具有脚本支持 公式编辑 模板支持 格式 版式设计等诸多功能 而这些功能对于大部分用户是比较熟悉的 省去了用户培训环节 多数办公用电脑都装有Office软件 所以 其输出的报表可以被任何装有Office软件的计算机浏览
2 从开发者角度
可以通过OLE访问 提供了大量的编程接口 几乎所有的操作都可以用程序来控制 利用宏 VBA等技术可以很轻松地编写报表设计模块
整体思路
程序通过OLE获取Excel的Sheet对象 遍历每个单元格 将模板中的元素以变量 表格等替换 就生成了最终报表 其中元素种类可分为变量元素 数据集元素 数据字段元素和其它标志元素 它们都是处于单元格内的包含特殊格式的字符串 格式可以自由定义 但要保证此格式不会与正文相冲突
如
#ValueAA# (变量名两边加入#号 当遍历到其所在的单元格时在程序中对单元格进行相应处理)
报表功能实现
首先新建Excel模板 如下图 模板保存为template xlt
现在模板有了 现在需要实现的功能就是分析此模板 将模板中的元素替换为程序中将要输出的变量或数据表
下面我们来设计一个简单的模板分析类(TXlTemplateAnalyzer)
1 公有方法generateReport //套用模板生成最终报表
registerDataSet //在DataSet列表中新增数据集
registerParam //在Param列表中新增变量
removeDataSet //在DataSet列表中删除数据集
removeParam //在Param列表中删除变量 SetSheetObject //设置模板的Sheet对象
2 私有成员变量
FBoundLeft FBoundRight //保存左右列边界FDataSetList //用于维护数据集列表的私有成员
FParamList //用于维护变量列表的的私有成员
FExcelSheetObject // *** 作模板的Sheet对象 FCurrentRow //当前处理的行号
FCurrentCol //当前处理的列号
3 私有工具方法
ProcessDataSetElement //处理数据集元素
getTemplateBoundary //获取边界索引号
parsorFieldNameFromElement //从模板元素中提取字段名
FindParam //从FParamList中查找特定Name的变量
FindDataSet //从DataSetList中查找特定Name的DataSet
IsTamplateElement //判断是否为元素
IsDataSetFieldElement //是否为数据字段元素
IsDataSetBeginElement //是否为DataSet起始元素
IsControlTag //是否为控制元素
IsParamElement //是否为变量元素
4 事件
OnParamElement
OnDataSetOperationElement
OnControlElement
OnDataSetFieldElement
OnElement
写到这里大家可能已经知道我的用意了 其实这么多类成员中 但其核心就在于generateReport和ProcessDataSetElement这两个方法
(以下代码只是描述性的脚本代码 在Delphi中不能编译)
generateReport:
循环遍历单元格
FCurrentRow := iRow;
FCurrentCol := iCol;//保存当前正在处理的行列索引号
CellObj := FExcelSheetObject Cells[iRow iCol];//取当前单元格对象
CellValue := CellValue Value; //取单元格内容
if IsTamplateElement(CellValue) //判断是否为模板元素
begin
if IsDataSetBeginElement(CellValue) then //判断是否为数据集开始元素
begin
ProcessDataSetElement (CellValue); //处理数据集元素
end;
if IsParamElement then(CellValue) then //判断是否为变量元素
CellObj Value := FindParam(CellValue); //查找变量值 填到当前单元格中
if IsControlTag(CellValue) then
…………………
end;
遍历循环结束
执行到这里 报表生成完毕
ProcessDataSetElement
ADataSet := FindDataSet(CellValue);
for j:= to ADataSet RecordCount do
begin
FExcelSheetObject Rows[FCurrentRow + j] Delete;//将当前行删除(也就是#Table Begin()#所在的行)
FExcelSheetObject Rows[FCurrentRow + j] Insert;//新增行
FExcelSheetObject Rows[FCurrentRow + j] Copy(FExcelSheetObject Rows[FCurrentRow + ]);
for i:= FBoundLeft to FBoundLeft do
begin
fieldCellStr := FExcelSheetObject Rows[FCurrentRow + j] Cell[i] Value; //获取数据字段元素
fieldname := parsorFieldNameFromElement(fieldCellStr); //从元素中解析字段名
FExcelSheetObject Rows[FCurrentRow + j] Cell[i] := ADataSet FieldByName(fieldname) Value; //将//相应字段的值赋入单元格
end;
ADataSet Next;
end
FCurrentRow := FCurrentRow + j;
到这里 这个模板分析类的核心功能基本完成了 我想如果这个类的实现代码全部完成后 应该把这个类做成一个Component 并注册到Delphi的IDE中 以便以后使用 在上面提到的类的事件 是用来实时通知客户当前正在处理哪个Element和Cell 客户可以在此事件中做更进一步的特殊处理(例如将上述模板中产值小于完成计划数的单元格置为红色等等) 非常灵活 但是出于代码整洁 在这里我没有加到代码中 另外在程序中还可以在报表中加入Excel的各种Chart Shape等对象 这些留着我以后再写吧
TXlTemplateAnalyzer类的是这样调用
begin
1 先将数据集 变量注册
templtAnalyzer RegisterDataSet(DataSet Table);
templtAnalyzer RegisterParam(Now Date );
templtAnalyzer RegisterParam(totalQu TotalQuantity );
templtAnalyzer RegisterParam(totalPlan TotalPlan );
templtAnalyzer RegisterParam(totalPer TotalPercent );
2 生成报表
templtAnalyzer generateReport;
end;
参考文档 MSDN:Microsoft Developer Net
好了 大家不妨按我的思路试试 希望我的这篇文章能给大家带来帮助
lishixin/Article/program/Delphi/201311/8465
Ⅳ Access如何制作报表
很明显,使用 Excel 输出报表第一个弱点能够必须同时打开 Access 和 Excel (当然,您得在一台机器上同时安装 Access 和 Excel),当然可能您和我一样拥有工作在 966MHz 上的 CPU 和 256M 内存还有大空间硬盘时,那就不必考虑了,继续吧。 第1步找到 VBA 编程界面并找到"软件"菜单并点击"引用..."菜单项,在弹出的"引用"窗体中找到"现有引用"列表,在名为"Microsoft Excel x.0 Object Library"的项目前的方框内打钩。 接下来,您要做好一张空白的 Excel 电子表格,设定好显示字体、边框、打印纸张等等并用其存盘。(下面示例中该表格名为 "temp.xls" )当然啦,直接使用空白的 Excel 文件也是能够的,但是您要编程自动生成表格边框、背景颜色、单元格格式等多数内容,这些涉及到 Excel 编程,我将来会在 Excel 专栏里详细叙述,这里就不多说了。 接下来您就能够在 Access 里面制作您个人的打印预览窗体了,在窗体中安排 2 个命令选项,在名为预览的选项的 click 事件里敲入下面代码: Private Sub ExcelPrevIE游览器w_Click() Dim xlApp As Excel.Application Dim xlBook As Workbook, xlSheet As Worksheet Set xlApp = CreateObject("Excel.Application") Set xlApp = New Excel.Application xlApp.Visible = True Set xlBook = xlApp.Workbooks.Open("c:\reprot\temp.xls") Set xlSheet = xlBook.Worksheets(1) xlSheet.Cells(3, 1) = "制表日期:" + "12" + " 月" '以上只更改了一个单元格内的数据,可根据就得没有限次加入
Ⅳ 以预览方式输出报表 怎么编程
Docmd.OpenReport="报表名",acViewPreview
根据需要灵活应用的特点,但需编写程序。下附代码,第一段代码定义基本变量,第二段代码定义打印函数,第三段代码是具体打印代码,含数据转换。第四段代码是窗体加载代码,具体连接数据库和打印代码根据你所涉及的数据要求进行修改。
function window.onbeforeprint()
{
//将一些不需要打印的隐藏
}
function window.onafterprint()
{
//放开隐藏的元素
}
事实上,很多用户都是采用这种方式打印,但是这种方式最致命的缺点是不能设置打印参数,比如纸型,页边距,选择打印机等等。

(5)报表编程扩展阅读:
VB下数据报表打印输出方法有多种,
一是通过自己的设计和编程完成报表打印输出。
二是通过MS OFFICE实现报表打印输出。
三是应用数据报表设计器的报表打印输出。本人经常使用第一种方法,它具有根据需要灵活应用的特点,但需编写程序。
打印输出是将报表进行保存、报送有关部门而不可缺少的一种报表输出方式。
但在付诸打印之前必须在报表系统中做好打印机的有关设置以及报表打印的格式设置,并确认打印机已经与主机正常连接。打印报表之前可以在“预览”窗口预览。
Ⅵ ASP水晶报表的编程怎么搞
只有xml内容没有数据库内容么?
Ⅶ 编程:需要经常打印报表用什么语言编程好用些
SQL编程,好多编程工具都可以的,仅仅是需要用点SQL语句把数据搞出来,按一定的格式做成报表。。。 比如DELPHI什么的。。。事实上,这个工具是最傻瓜化的,而且效率比其它工具也快多了
Ⅷ 制作一个统计报表软件用什么编程语言
如果是要单纯的制作报表和打印,那么我推荐PowerBuilder(简称PB),它有自带的数据库:sqlanywhere,非常好用。PB的一大特点就在与DateWindow上,它能很容易的让你制作出各种各样的报表样式,我们公司为其他大型企业开发业务系统就是用PB的,因为对方的报表和单据特别多。
下面是powerbuilder的一部分介绍:
PowerBuilder一个很大的特点就是提出了数据窗口对象的概念。数据窗口对象也是PowerBuilder中的一种对象类型,与其它对象不同的是数据窗口对象是专门为了访问后台的数据库服务的,在数据窗口对象中我们定义了数据的来源和数据的显示风格,这样在应用程序中我们就可以把精力完全放在程序的运行流程控制上,而不用关心具体数据的来源,因为我们在数据窗口对象中已经定义好了数据的来源。如果需要使用数据库中不同的数据也只要对数据窗口对象进行修改就可以了。特别要指出的是PowerBuilder在数据窗口对象中提供了丰富的数据显示方式,可以满足各种不同的需要。 在PowerBuilder较新的版本中提供了基础类库PFC,它为应用程序的开发提供了许多可重用的预定义类和对象,利用基本类库PFC可以快速开发出高质量重用性好的应用程序。真正发挥面向对象编程的巨大威力。
