- 浏览: 1071511 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
所用技术通过在JSP页面按下不同的排序按钮,调用存储过程返回不同的参数,然后在XSL页面显示的时候通过返回的不同的参数调用不同的摸板来做.
存储过程:
if @SubmitButtonFlag='searchByTractMoney'
begin
select top 1 'searchByTractMoney' as Type from #temp1 table0 for xml auto
end
else if @SubmitButtonFlag='searchByViewCount'
begin
select top 1 'searchByViewCount' as Type from #temp1 table0 for xml auto
end
else if @SubmitButtonFlag='search'
begin
select top 1 'search' as Type from #temp1 table0 for xml auto
end
XSL:
<?xml version="1.0" encoding="gbk" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsl2="http://www.w3.org/TR/WD-xsl"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:myxsl="http://www.jobcn.com"
version="1.0">
<xsl:output method="html" encoding="gbk"/>
<xsl:decimal-format NaN="0"/><!-- NaN处理 -->
<xsl:template match="/root">
<xsl:variable name="numCount" select="count(/root/table1)"/>
<html>
<head>
<title><xsl:value-of select="/root/table0/@XslTitle"/></title>
</head>
<body topmargin="0" leftmargin="0" oncontextmenu="return false;" ondragstart="return false;" onsource="return false;" onselectstart="return false;" >
<center>
<p class="reportstatisticdate"><xsl:value-of select="/root/table0/@ReportStatisticDate"/></p>
<xsl:choose>
<xsl:when test="$numCount =0">
<br/><font color='red' size='3'>没有数据!</font><br/>
</xsl:when>
<xsl:otherwise>
<table border='0' cellpadding='4' cellspacing='1' class="reporttable">
<tr class="reporttabletitle">
<td colspan="100" nowrap='true'>
<font color="red">【<xsl:value-of select="/root/table0/@ReportTableDate"/>】</font><xsl:value-of select="/root/table0/@ReportTableTitle"/>
</td>
</tr>
<tr class="reporttablehead_b" nowrap="true">
<td nowrap="true">序号</td>
<td nowrap="true">员工编码</td>
<td nowrap="true">销售人员</td>
<td nowrap="true">T数</td>
<td nowrap="true">销售部门</td>
<td nowrap="true">查看简历数</td>
<td nowrap="true">签单金额(元)</td>
<td nowrap="true">效费比(签单金额/查看简历数)</td>
</tr>
通过不同的参数来调用不同的摸板
<xsl:if test="./table0/@Type='search'">
<xsl:call-template name="search">
</xsl:call-template>
</xsl:if>
<xsl:if test="./table0/@Type='searchByViewCount'">
<xsl:call-template name="searchByViewCount">
</xsl:call-template>
</xsl:if>
<xsl:if test="./table0/@Type='searchByTractMoney'">
<xsl:call-template name="searchByTractMoney">
</xsl:call-template>
</xsl:if>
<tr class="reporttablehead_b">
<td colspan="5">合计</td>
<td style="text-align:center">
<xsl:value-of select="format-number(sum(./*/@ViewCount),'###,###,##0')"/>
</td>
<td style="text-align:right">
<xsl:value-of select="format-number(sum(./*/@TractMoney),'###,###,##0')"/>
</td>
<td ></td>
</tr>
</table>
</xsl:otherwise>
</xsl:choose>
</center>
</body>
</html>
</xsl:template>
<xsl:template name="search">
<xsl:for-each select="./table1">
<xsl:variable name="table1Position" select="position()"/>
<xsl:sort select="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')" data-type="number" order="descending"/>
<!--<xsl:sort select="$condition" data-type="number" order="descending"/>-->
<tr class="reporttrcenter">
<xsl:attribute name="onMouseOver">changetrbgcolor(this,"over");</xsl:attribute>
<xsl:attribute name="onMouseOut">changetrbgcolor(this,"out");</xsl:attribute>
<xsl:choose>
<xsl:when test="position() mod 2 =1">
<xsl:attribute name="bgColor">#FFFFFF</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="bgColor">#ECFBF9</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td nowrap="true">
<xsl:value-of select="position()" />
</td>
<td nowrap="true">
<xsl:value-of select="./@PerID" />
</td>
<td nowrap="true">
<xsl:value-of select="./@PerName" />
</td>
<td nowrap="true">
<xsl:value-of select="./@Tnum" />
</td>
<td nowrap="true">
<xsl:value-of select="./@DeptName" />
</td>
<td nowrap="true">
<xsl:value-of select="./@ViewCount" />
</td>
<td nowrap="true" style="text-align:right">
<xsl:value-of select="format-number(./@TractMoney,'###,###,##0')" />
</td>
<xsl:choose>
<xsl:when test="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')='Infinity'">
<td nowrap="true" style="text-align:right">
--
</td>
</xsl:when>
<xsl:when test="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')=0">
<td nowrap="true" style="text-align:right">
0.00%
</td>
</xsl:when>
<xsl:when test="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')!='Infinity'">
<td nowrap="true" style="text-align:right">
<xsl:value-of select="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')" />
%
</td>
</xsl:when>
</xsl:choose>
<!-- <td nowrap="true">
<xsl:value-of select="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')" />
%
</td>
-->
</tr>
</xsl:for-each>
</xsl:template>
<xsl:template name="searchByViewCount">
<xsl:for-each select="./table1">
<xsl:variable name="table1Position" select="position()"/>
<xsl:sort select="./@ViewCount" data-type="number" order="descending"/>
<!--<xsl:sort select="$condition" data-type="number" order="descending"/>-->
<tr class="reporttrcenter">
<xsl:attribute name="onMouseOver">changetrbgcolor(this,"over");</xsl:attribute>
<xsl:attribute name="onMouseOut">changetrbgcolor(this,"out");</xsl:attribute>
<xsl:choose>
<xsl:when test="position() mod 2 =1">
<xsl:attribute name="bgColor">#FFFFFF</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="bgColor">#ECFBF9</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td nowrap="true">
<xsl:value-of select="position()" />
</td>
<td nowrap="true">
<xsl:value-of select="./@PerID" />
</td>
<td nowrap="true">
<xsl:value-of select="./@PerName" />
</td>
<td nowrap="true">
<xsl:value-of select="./@Tnum" />
</td>
<td nowrap="true">
<xsl:value-of select="./@DeptName" />
</td>
<td nowrap="true">
<xsl:value-of select="./@ViewCount" />
</td>
<td nowrap="true" style="text-align:right">
<xsl:value-of select="format-number(./@TractMoney,'###,###,##0')" />
</td>
<xsl:choose>
<xsl:when test="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')='Infinity'">
<td nowrap="true" style="text-align:right">
--
</td>
</xsl:when>
<xsl:when test="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')=0">
<td nowrap="true" style="text-align:right">
0.00%
</td>
</xsl:when>
<xsl:when test="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')!='Infinity'">
<td nowrap="true" style="text-align:right">
<xsl:value-of select="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')" />
%
</td>
</xsl:when>
</xsl:choose>
<!-- <td nowrap="true">
<xsl:value-of select="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')" />
%
</td>
-->
</tr>
</xsl:for-each>
</xsl:template>
<xsl:template name="searchByTractMoney">
<xsl:for-each select="./table1">
<xsl:variable name="table1Position" select="position()"/>
<xsl:sort select="./@TractMoney" data-type="number" order="descending"/>
<!--<xsl:sort select="$condition" data-type="number" order="descending"/>-->
<tr class="reporttrcenter">
<xsl:attribute name="onMouseOver">changetrbgcolor(this,"over");</xsl:attribute>
<xsl:attribute name="onMouseOut">changetrbgcolor(this,"out");</xsl:attribute>
<xsl:choose>
<xsl:when test="position() mod 2 =1">
<xsl:attribute name="bgColor">#FFFFFF</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="bgColor">#ECFBF9</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<td nowrap="true">
<xsl:value-of select="position()" />
</td>
<td nowrap="true">
<xsl:value-of select="./@PerID" />
</td>
<td nowrap="true">
<xsl:value-of select="./@PerName" />
</td>
<td nowrap="true">
<xsl:value-of select="./@Tnum" />
</td>
<td nowrap="true">
<xsl:value-of select="./@DeptName" />
</td>
<td nowrap="true">
<xsl:value-of select="./@ViewCount" />
</td>
<td nowrap="true" style="text-align:right">
<xsl:value-of select="format-number(./@TractMoney,'###,###,##0')" />
</td>
<xsl:choose>
<xsl:when test="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')='Infinity'">
<td nowrap="true" style="text-align:right">
--
</td>
</xsl:when>
<xsl:when test="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')=0">
<td nowrap="true" style="text-align:right">
0.00%
</td>
</xsl:when>
<xsl:when test="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')!='Infinity'">
<td nowrap="true" style="text-align:right">
<xsl:value-of select="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')" />
%
</td>
</xsl:when>
</xsl:choose>
<!-- <td nowrap="true">
<xsl:value-of select="format-number( 100*(./@TractMoney div ./@ViewCount), '##0.00')" />
%
</td>
-->
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
发表评论
-
java spring整合websocket教程
2018-03-30 14:30 689在javaweb项目开发中,我们经常可能需要websocke ... -
myeclipse 项目之间类进行引用
2014-11-19 15:54 966相关解决方案: eclipse的Web项目引用方式:(其实相 ... -
myeclipse8 每次启动内存都不够用的解决方案
2014-11-11 15:34 773最近可能由于公司项目大了,启动MyEclipse后经常提示 ... -
web项目集成log4j
2014-11-06 12:39 725Log4j基本使用方法 Log4j由三个重要的组件构成:日 ... -
使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务
2011-10-25 14:09 1530RESTful Web 服务简介 REST 在 2000 年 ... -
确定操作系统位计数(64位还是32位(X86))
2011-09-30 08:36 1250在此部分查找计算机 ... -
解决“无法删除 指定的文件名无效或太长”的问题
2011-09-16 14:07 2525解决“无法删除 指定的文件名无效或太长”的问题 ... -
网站应用通过139邮箱发送短信做到日志提醒功能
2011-09-15 09:36 1825首先在139注册一个邮箱,然后再邮箱设置中设置收到邮件通过短信 ... -
javamail发送邮件遇到的问题
2011-09-15 09:32 1208今天在用myeclipse写mial功能的时候,想调试一下程序 ... -
http协议的学习笔记
2011-03-01 10:56 1692HTTP请求行 格式:请求 ... -
Logback用户手册中文版.pdf
2011-02-14 16:57 2030Logback用户手册中文版.pdf -
JAVA编写的预警系统
2011-02-10 11:00 6341预警系统 <!-- start content --& ... -
Mediawiki 简明架设指南
2011-02-10 10:03 4657在 Debian/Linux 下 1. 安装程序 sh ... -
xsl 常用.jsp
2011-02-10 09:28 1626现在用的都是有规分律数据, 特殊的数据用XSL. DOM4J ... -
SVN 入门指南
2011-01-14 11:17 1004SVN 入门指南 -
FreeMaker中文手册
2011-01-14 11:15 1051FreeMaker中文手册 -
查看某个网段具体哪些IP没有被使用的命令
2010-11-29 09:01 2907通过运行cmd然后在DOS命令下运行下面程序,表示查看192. ... -
xsl 取数据的时候,当用for-each循环取得数据,怎么取第一行的数据
2010-11-08 11:35 2360需求,打印表格的时候,用for-each 来取得数据,当取到第 ... -
项目过程中,对于绝对路径和相对路径的总结
2010-09-11 09:20 12451.基本概念的理解 绝对路径:绝对路径就是你的主页上的文 ... -
mysql经典语句
2010-09-09 18:18 1256show databases;show tables from ...
相关推荐
一种是通过SQL语句直接进行数据排序。这种方法通常在数据集被提取到报表设计工具之前进行,通过修改SQL查询语句中的ORDER BY子句,来指定数据的排序方式。例如,在上述内容中提到的“订单按运货费降序排列”,可以...
Visual Studio 2005(VS2005)是一款强大的开发工具,它提供了丰富的功能来创建数据报表模块。下面我们将详细探讨如何使用VS2005实现数据报表,以及涉及到的相关技术。 1. **VS2005的报表服务** VS2005集成了...
10. **事件处理和用户交互**:在报表设计中,可以添加事件处理代码,如按钮点击事件,以实现更多的交互性,如弹出对话框、触发数据操作等。 以上知识点涵盖了VB.NET实现报表的基本技术路线和关键组件。根据实际项目...
而排序功能则允许用户通过单击列标题等操作,根据不同的数据字段来改变数据行的显示顺序。 对于分页来说,它解决了数据量过大时直接加载会导致浏览器响应缓慢和用户界面不友好的问题。分页机制通常包含“首页”、...
本例程基于KINGVIEW 6.53开发环境,通过具体的应用案例来实现一系列的功能需求,包括数据记录的自动插入、数据查询与排序以及数据删除等操作。这些功能的实现不仅能够满足基本的数据管理需求,还能提高系统的灵活性...
通过添加F4增强功能,开发人员可以为ALV报表的各个字段提供下拉列表选项,使得用户可以通过按F4键来选择合适的值,从而增加报表的交互性和数据准确性。 ALV报表F4按钮功能的实现涉及到多个SAP ABAP编程对象和功能,...
在运行时,通过代码将数据绑定到报表,实现数据的动态加载。 3. **动态数据源** 动态数据源允许在程序运行时根据需要更改报表的数据连接。这可能是因为数据源在运行时未知,或者因为报告需要适应不同的数据库结构...
JasperReport 是一个功能强大且灵活的报表生成工具,它提供了许多功能来帮助开发者生成复杂的报表。在报表生成中,交叉报表是一种常用的报表类型,能够将数据按照行和列进行交叉处理,生成一个交叉表。以下是 ...
在MFC中,数据绑定可以通过CRecordView或CDaoRecordView类来实现。 3. 报表设计:报表的布局和样式设计是报表控件的重要部分。可以使用MFC的CRect和CDC类来处理绘图操作,创建各种形状、文本和图像。 4. 用户交互...
用户可以指定不同的数据源,比如特定的数据库表或视图,然后选择要展示的字段,设定排序和过滤条件。软件会根据这些信息自动生成报表,可以是表格形式,也可以是图表,如柱状图、饼图、折线图等,以更直观的方式展示...
VB报表通常涉及到数据的处理、布局设计和交互功能实现。在这个实例中,开发者并没有依赖任何第三方控件,而是利用VB内置的功能来完成报表的制作。 首先,我们要理解VB报表的基础。在VB中,可以使用多种方法来创建...
3. 报表视图:用户可以根据需要创建多个视图,每个视图对应不同的查询条件和排序方式,便于多角度查看数据。 三、报表开发 1. 数据源选取:易飞系统提供了丰富的数据库连接选项,包括标准的ERP表单、自定义表单...
总的来说,ArcGIS的报表功能提供了灵活的方式来展示和管理地理信息数据,无论是静态的RDF报表还是动态的RLF报表,都能满足不同需求。通过熟练掌握报表创建的步骤和技巧,用户可以更有效地分享和分析地理数据。
报表格式的切换可以通过编程的方式实现,例如根据用户的选择动态加载不同的报表定义文件(.rdlc)。 在报表设计过程中,可以使用表达式、数据绑定和样式设置等功能,以实现复杂的数据展示效果。ReportViewer控件...
在本文中,我们将深入探讨如何使用Visual Studio 2008(VS2008)集成开发环境来实现水晶报表(Crystal Reports)的打印功能。水晶报表是一款强大的报告设计工具,广泛应用于C#应用程序中,用于创建、设计和打印各种...
在这种情况下,可能需要编写自定义的PowerScript代码来实现更复杂的功能,如动态调整报表顺序、处理不同大小的报表等。 5. **数据源整合**:多报表合并可能涉及多个数据源。在PB8.0中,可以通过连接到不同的数据库...
此外,ActiveReport还支持分组、排序、过滤等功能,使得报表数据的展示更加灵活。 在权限控制方面,设计思想通常包括用户、角色和功能模块的关联。用户表存储了用户的详细信息,如用户名、全名以及分配的角色。角色...
参数设置不仅可以影响报表的生成,还可能影响到报表的过滤、排序和分组功能,因此对于实现复杂的数据查询和分析至关重要。 4. **first report with JS api.html**: 这个文件是初学者的入门指南,通过一个简单的...
报表参数允许用户在运行时输入值来筛选报表数据。子报表则可以在一个报表内嵌套另一个报表,实现更复杂的数据关联和展示。 6. **权限管理** 在远程模式下,`ReportViewer`可以通过SSRS的权限控制,实现对不同用户...
在C#中,可以通过添加按钮、下拉框等控件实现用户交互,如筛选、排序和钻取等功能。这通常需要配合事件处理程序来响应用户的操作,动态更新报表内容。 最后,报表的导出和打印功能也是不可或缺的。C#提供了多种导出...