- 浏览: 264602 次
- 性别:
- 来自: 苏州
-
文章分类
- 全部博客 (289)
- java (72)
- oracle (3)
- mysql (5)
- spring (28)
- hibernate (2)
- osgi (0)
- linux (2)
- ExtJs (1)
- jvm (0)
- mybatis (7)
- 分布式 (11)
- MINA (6)
- apache+tomcat (13)
- js+htm (7)
- android (44)
- http (1)
- hbase+hdoop (0)
- memcache (13)
- search (27)
- 部署及性能 (12)
- mongoDB (2)
- 多线程 (12)
- 安全管理验证 (9)
- struts (1)
- webservice (0)
- easyUI (1)
- spring security (16)
- pattern (6)
- 算法 (2)
最新评论
-
lzh8189146:
CommonsHttpSolrServer这个类,现在是不是没 ...
CommonsHttpSolrServer -
xiaochanzi:
我按照你的方法试了下,tomcat6可以发布,但是访问任何网页 ...
基于内嵌Tomcat的应用开发 -
phoneeye:
麻烦你,如果是抄来的文章,请给出来源。谢谢
ant 两则技巧 -
neverforget:
转载不注明出处
Spring Security3.1登陆验证 替换 usernamepasswordfilter -
liang1022:
若不使用eclipse ,如何在命令行下 运行服务端程序 ?
WebService CXF学习(入门篇2):HelloWorld
birt的各种对象,包括数据源(datasource)、数据集(dataset)及各种报表元素(report item)都可以添加eventhandler对象,实现对这些对象的事件的响应。eventhandler实现的方式有两种:JavaScript语言和Java语言。由于Java的可调试性,开发起来相对方便一些,我这里利用Java开发了dataset的一个eventhandler:
mport java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.birt.report.engine.api.script.IUpdatableDataSetRow;
import org.eclipse.birt.report.engine.api.script.ScriptException;
import org.eclipse.birt.report.engine.api.script.eventadapter.ScriptedDataSetEventAdapter;
import org.eclipse.birt.report.engine.api.script.instance.IDataSetInstance;
import com.tkxing.htmlparser.buss.report.model.BaseReportModel;
import com.tkxing.htmlparser.buss.report.model.SingleStockDataReportModel;
public class ScriptedDataSetEventHandler extends ScriptedDataSetEventAdapter {
Log log = LogFactory.getLog(ScriptedDataSetEventHandler.class);
private int num = 0;
private int total = 0;
private List dataList;
@Override
public void open(IDataSetInstance dataSet) {
// TODO Auto-generated method stub
super.open(dataSet);
BaseReportModel reportModel = new SingleStockDataReportModel();
dataList = (List) reportModel.getModel();
this.total = dataList.size();
}
@Override
public boolean fetch(IDataSetInstance dataSet, IUpdatableDataSetRow row) {
// TODO Auto-generated method stub
try {
if (num >= total) {
return false;
}
String[] dataRow = (String[]) this.dataList.get(num);
for (int i = 1; i <= dataRow.length; i++) {
row.setColumnValue(i, dataRow[i - 1]);
System.out.println(i + " = " + dataRow[i - 1]);
}
num++;
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
// return super.fetch(dataSet, row);
}
}
数据模式reportModel代码如下:
import java.util.ArrayList;
import java.util.List;
public class SingleStockDataReportModel extends BaseReportModel {
private List dataList;
public SingleStockDataReportModel() {
// TODO Auto-generated constructor stub
this.dataList = new ArrayList();
for(int i=0;i<10;i++)
{
String []rowData = new String[3];
for(int j=0;j<rowData.length;j++)
{
rowData[j] = new String(new Integer(i*10+j).toString());
}
this.dataList.add(rowData);
}
}
public List getDataList() {
/*
this.dataList = new ArrayList();
for(int i=0;i<10;i++)
{
String []rowData = new String[3];
for(int j=0;j<rowData.length;j++)
{
rowData[j] = new String(new Integer(i*10+j).toString());
}
dataList.add(rowData);
}
*/
return (dataList);
}
public void setDataList(List dataList) {
this.dataList = dataList;
}
@Override
public Object getModel() {
// TODO Auto-generated method stub
return this.dataList;
}
}
利用birt的ReportEngine输出报表或者通过URL访问报表,在相应的位置设置断点,就可以实现对eventhandler的调试了。
测试的report.rptdesign如下:
<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15" id="1">
<data-sources>
<script-data-source name="ScriptedDataSource" id="5"/>
</data-sources>
<data-sets>
<script-data-set name="ScriptedDataSet" id="6">
<property name="eventHandlerClass">com.tkxing.htmlparser.presentation.report.ScriptedDataSetEventHandler</property>
<list-property name="resultSetHints">
<structure>
<property name="position">1</property>
<property name="name">rs1</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">rs2</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">rs3</property>
<property name="dataType">string</property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
<property name="columnName">rs1</property>
</structure>
<structure>
<property name="columnName">rs2</property>
</structure>
<structure>
<property name="columnName">rs3</property>
</structure>
</list-property>
<property name="dataSource">ScriptedDataSource</property>
</script-data-set>
</data-sets>
<styles>
<style name="crosstab" id="2">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab-cell" id="3">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Page Master" id="4"/>
</page-setup>
<body>
<table name="table" id="7">
<property name="width">100%</property>
<property name="dataSet">ScriptedDataSet</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">rs1</property>
<expression name="expression">dataSetRow["rs1"]</expression>
</structure>
<structure>
<property name="name">rs2</property>
<expression name="expression">dataSetRow["rs2"]</expression>
</structure>
<structure>
<property name="name">rs3</property>
<expression name="expression">dataSetRow["rs3"]</expression>
</structure>
</list-property>
<column id="26"/>
<column id="27"/>
<column id="28"/>
<header>
<row id="8">
<cell id="9">
<label name="rs1" id="10">
<text-property name="text">rs1</text-property>
</label>
</cell>
<cell id="11">
<label name="rs2" id="12">
<text-property name="text">rs2</text-property>
</label>
</cell>
<cell id="13">
<label name="rs3" id="14">
<text-property name="text">rs3</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="15">
<cell id="16">
<data name="data_rs1" id="17">
<property name="resultSetColumn">rs1</property>
</data>
</cell>
<cell id="18">
<data name="data_rs2" id="19">
<property name="resultSetColumn">rs2</property>
</data>
</cell>
<cell id="20">
<data name="data_rs3" id="21">
<property name="resultSetColumn">rs3</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="22">
<cell id="23"/>
<cell id="24"/>
<cell id="25"/>
</row>
</footer>
</table>
</body>
</report>
测试的结果如图:
rs1 rs2 rs3
0 1 2
10 11 12
20 21 22
发表评论
-
Java keytool 安全证书学习笔记
2012-08-02 14:16 811http://linliangyi2007.iteye.com ... -
java国际化
2012-07-16 14:08 432http://lavasoft.blog.51cto.com/ ... -
Java版远程控制V1.0
2012-06-17 21:37 782http://www.cnblogs.com/syxchina ... -
浅析Java中CountDownLatch用法
2012-05-16 20:57 810CountDownLatch如其所写,是一个 ... -
SMTP发送邮件
2012-04-18 09:41 788SMTP发送邮件 openkk 2011-06-0 ... -
smtp 返回代码 信息
2012-04-18 08:52 1461SMTP Server Response Cod ... -
JavaMail详解
2012-04-18 02:24 0JavaMail详解 博客分类: JAV ... -
安装Eclipse反编译插件
2012-04-17 09:34 813安装Eclipse反编译插件 博客分类: ... -
Java编程中“为了性能”尽量要做到的一些地方
2012-04-13 08:30 676最近的机器内存又爆满了,除了新增机器内存外,还应该好好r ... -
Dijkstra算法
2012-04-11 08:00 881Dijkstra算法 博客分类: 算 ... -
java 播放音乐
2012-04-11 08:00 1010java 播放音乐 博客分类: J2 ... -
Java中的native,transient,volatile和strictfp关键字
2012-04-06 08:49 743Java中的native,transient,v ... -
用ReentrantLock模拟宴会的热闹情景
2012-04-05 08:32 916用ReentrantLock模拟宴会的热闹情景 ... -
Hashmap 分析
2012-04-05 08:32 744Hashmap 博客分类: 算法 ... -
ExecutorService线程池
2012-04-05 08:32 773ExecutorService线程池 (2010 ... -
Java并发:juc Executor框架详解
2012-04-05 08:32 798Java并发:juc Executor ... -
java并发包,多线程,工具类,笔记
2012-04-11 08:00 926JDK 线程池 Executors.newCachedT ... -
利用 Spring 和 EHCache 做方法缓存处理〔转〕
2012-04-09 09:49 866利用 Spring 和 EHCache 做方法缓存处理〔 ... -
EhCache使用详细介绍
2012-04-09 09:49 1362EhCache使用详细介绍 Ehcache中不仅可 ... -
HashMap 分析
2012-04-01 08:21 1922http://www.blogjava.net ...
相关推荐
结合Eclipse的强大开发环境,Java开发者可以充分利用现有的技能库,为BIRT报表注入更多创新和定制化功能。通过不断学习和实践,你可以熟练掌握在Eclipse中使用Java实现BIRT的事件处理,为你的报表应用增添无限可能。
毕业论文- 深蓝健身房瑜伽馆行业小程序V4.15.0 前端+后端-整站商业源码.zip
36氪:2019中国开放式创新观察.pdf
毕业论文-化妆品商城-整站商业源码.zip
毕业论文-MNews2.4-整站商业源码.zip
X-AnyLabeling自动标注模型
【鼎软天下】科技赋能物流,数字驱动变革.pdf
实训商业源码-王中王掌上游戏机网页源码,怀旧小游戏-毕业设计.zip
内容概要:本文提出了一种基于强化学习(RL)的前向纠错(FEC)调整方法——R-FEC,旨在优化WebRTC视频会议中的用户体验质量(QoE)。传统方法在确定适当的FEC比例时面临挑战,因为过高的FEC会增加延迟并降低视频质量,而过低则无法有效应对丢包。R-FEC通过RL算法动态调整视频和FEC比特率,在不同的网络条件下最大化QoE,同时最小化网络拥塞。实验表明,R-FEC相比现有最佳解决方案可提高视频速率达27%,并改善视频质量6dB。 适合人群:对视频会议系统优化、网络通信协议、机器学习特别是强化学习有兴趣的研究人员和技术人员。 使用场景及目标:①需要在视频会议中实现实时通信的应用开发者;②希望提升视频通话质量、减少延迟的技术团队;③研究如何在动态网络环境中优化数据传输的研究机构。 其他说明:R-FEC不仅解决了现有方法中FEC设置不合理的问题,还展示了在实际网络环境下显著优于其他方法的表现。此外,作者指出未来工作将扩展到多方通话场景,并考虑更多复杂的网络条件。该研究得到了Cisco Systems和韩国国家研究基金会的支持。
内容概要:本文介绍了流量整形(Traffic Shaping)与增强传输选择(Enhanced Transmission Selection, ETS)技术在多虚拟函数(VFs)共享单个物理网络接口控制器(NIC)端口情况下的应用。流量整形通过对数据发送速率进行限制来管理网络流量,确保节点不会超过设定的最大带宽,同时保证最小带宽。ETS是IEEE 802.1Qaz标准的一部分,旨在数据中心桥接环境中为不同类型的流量分配带宽。文章详细描述了在多VF组中实现每类流量带宽保证的技术挑战和解决方案,包括使用令牌桶算法、加权循环调度(DWRR)、多队列优先级(MQPRIO)以及信任模式(Trust Mode)进行流量分类。此外,还探讨了如何通过扩展devlink-rate工具指定每个流量类别的带宽比例。 适合人群:网络工程师、系统管理员、云服务提供商以及对网络流量管理和优化感兴趣的IT专业人员。 使用场景及目标:①理解流量整形的基本概念及其在网络通信中的作用;②掌握如何配置虚拟功能(VF)以实现对特定流量类别的带宽控制;③学习如何利用ETS机制确保关键业务获得足够的网络资源;④了解最新的devlink-rate扩展功能及其在实际部署中的应用。 其他说明:本文基于Netdev 0x19会议上的演讲整理而成,提供了从背景介绍到具体实施步骤的全面讲解,并附有详细的参考资料链接供进一步研究。
实训商业源码-自适应极简多引擎搜索源码-毕业设计.zip
该源码库为LilyGo T_QT开发板量身定制,专注于物联网通信功能,包含1792个文件,涵盖512个头文件、448个C语言源文件、213个Arduino脚本文件、151个Python脚本、139个Markdown文档、63个PNG图片文件、55个reStructuredText文件、38个Vera Lite Widget文件、18个文本文件、18个C++源文件。语言多样,支持C、C++、Python、C++、Shell、HTML、CSS和Ruby。库内容丰富,是进行物联网通信开发不可或缺的资源。
学生心理健康服务平台是一个集心理咨询、心理测评、资源共享和社区互动于一体的综合服务平台,包含Web/移动端应用和管理后台两部分。该项目旨在为高校学生提供便捷、专业的心理健康服务,帮助学生缓解心理压力,促进心理健康发展。
毕业论文-二次元应用下载页源码 带弹幕-整站商业源码.zip
实训商业源码-影视资源站源码 电脑+手机模板-毕业设计.zip
Baidunetdisk_AndroidPhone_1023843j (6).apk
《Creo Simulation Live》数据表.pdf
实训商业源码-源授权V1.5-毕业设计.zip
实训商业源码-微信淘宝客5.99.78 加密-毕业设计.zip
毕业论文-红包拓客生意宝 2.0.2-整站商业源码.zip