2010年5月18日星期二

GWT编译巨慢

Compiling module com.capinfo.cdss.gwt.olap.Olap
Compiling 12 permutations
Compiling permutation 0...
Compiling permutation 1...
Compiling permutation 2...
Compiling permutation 3...
Compiling permutation 4...
Compiling permutation 5...
Compiling permutation 6...
Compiling permutation 7...
Compiling permutation 8...
Compiling permutation 9...
Compiling permutation 10...
Compiling permutation 11...
Compile of permutations succeeded
Linking into D:\spring\workspace\fusionchart\war\olap.
Link succeeded
Compilation succeeded -- 291.925s

在#.gwt.xml中添加支持Firefox
<!-- User Agent -->
<set-property name="user.agent" value="gecko1_8" />
编译的确变得很快,但IE中果真不好使

Should only call onDetach when the widget is attached to the browser's document

java.lang.IllegalStateException:Should only call onDetach when the widget is attached to the browser's document

这个异常是在com.google.gwt.user.client.ui.Widget protected void onDetach() 方法抛出的
当页面重新加载或离开页面时会执行这个方法
如果系统没有正常初始化,会有这个异常
郁闷的是No errors in Dev Mode but Compiled localy and deployed to tomcat in errors

GWT.setUncaughtExceptionHandler

GWT设置UncaughtExceptionHandler 以捕获为捕捉的异常,这gwt在host mode编译后的JavaScript如果出现错误,No errors in Hosted Mode and Compiled localy, but deployed to tomcat yields in errors
这是恼人,加上UncaughtExceptionHandler起码有一丝线索

GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {
public void onUncaughtException(Throwable throwable) {
String text = "Uncaught exception: ";
while (throwable != null) {
StackTraceElement[] stackTraceElements = throwable
.getStackTrace();
text += throwable.toString() + "\n";
for (int i = 0; i < stackTraceElements.length; i++) {
text += "    at " + stackTraceElements[i] + "\n";
}
throwable = throwable.getCause();
if (throwable != null) {
text += "Caused by: ";
}
}
System.err.print(text);
text = text.replaceAll(" ", " ");
Window.alert("系统错误:"+text);
}
});

2010年5月13日星期四

Gwt 中为加载中的Frame加上wait(二)

private void showWaitMess(Frame window){
final MessageBox box = MessageBox.wait("等待", "正在查询数据,请稍后...", "查询中...");
final Element frame = window.getElement();
final Timer t = new Timer() {
@Override
public void run() {
if (ready(frame)) {
this.cancel();
box.close();
}
}
};
t.scheduleRepeating(100);
}
private native boolean ready(Element frame)/*-{
return frame.contentWindow.document.readyState=="complete";
}-*/;

2010年5月8日星期六

小棉袄出生15天了

媳妇说女儿是小棉袄,儿子是皮大衣,哈哈,不知听谁说的

当爹15天,慢慢适应了,女儿很好哄,不磨人,只希望她接下来健健康康,茁壮成长

基于GXT的决策分析系统基本完成

       本来系统是由JSP+润乾报表做的,做出一版来给人家客户演示,人家觉得体验不够,也没不够绚丽,要求回去返工,主要是因为他们看过他们兄弟部门的一个类似系统,要求向那个系统靠拢,可殊不知人家那是.net做的C/S,交互体验当然好了。
      面临一个抉择,换.net平台做winform,然后用sql server Analysis Services 的现成组件,这要技术上肯定可行,但是需要购买一堆微软的东西,钱啊。
      正好以前看过一些GWT的资料,以及基于GWT的开源框架,它的界面效果倒是可以满足客户的要求,遂毛遂自荐,想试试用GXT实验是否能实现要求的功能和效果,同时也有其他同事考察了SAP的BI,水晶E表,IBM的Cognos,结果因功能实现不够或者商务问题搁浅
      好像春节后没多久就开始搞GWT,现在终于实现了(或是变相实现了)要求的功能、满足了客户的意见,很有成就感,期间经历了两次重构,现在采用的GXT提供的MVC模型,底层数据访问是通过调用润乾报表API,将润乾报表运算结果转化为一个List,然后交给GXT在页面展现。
      页面功能上,GXT挺全面,Grid列排序,隐藏显示特定列,树形展开收缩,用open chart封装的统计图表,数据钻取,列标题分组,拖拽形式动态设置列维度、行维度以实现灵活查询,将灵活查询行列维度保存起来供以后随时打开,将结果到处Excel、PDF、Word,动态设置查询条件的显示隐藏,动态的进度条提示等等
      接下来还要融入GIS,实现报表到地图,地图到报表。
      值得注意的是所有这些功能都是在一个窗口中完成的,实现了菜单、维度定义、报表、统计图功能的融合,不用客户点来点去,一步了然。

2010年5月4日星期二

婴儿办理北京户口

1、办理机构:
婴儿父母常住户口所在地的户籍派出所
婴儿父母常住户口所在地为宣武区的办理地点在分局户政大厅
婴儿父母常住户口所在地为大兴区兴丰、清源路、林校路、开发区派出所辖区的办理地点为分局户政大厅
2、办理时间:城镇地区派出所户籍接待室每周七天对外办公,农村地区派出所双休日实行预约办事制度。
3、办理时限:手续齐全即时办理
4、受理条件:父母双方或母亲一方在取得北京市常住户口以后出生(指2003年8月7日以后出生)的婴儿,在出生后一个月内,由户主、亲属等到婴儿父亲或母亲户口所在地派出所申报出生登记(2003年8月7日以前出生的仍按原有规定随母申报出生登记)。婴儿父母一方为本市集体户口,一方为本市家庭户的,婴儿应当随家庭户一方登记出生户口;父母均为本市集体户口的,婴儿可以自愿选择随父随母登记出生户口;母亲为本市集体户口,父亲为外省市户口的,婴儿可以随母登记出生户口;母亲为本市农业户口的,婴儿可以自愿选择随母随父登记为非农业户口;父母双方或母亲一方系驻京部队现役军人的,婴儿可以自愿选择随父随母登记出生户口。
5、申请资料:
(一)父母双方或母亲一方是北京市常住户口的婴儿,在出生一个月内,由监护人到婴儿父亲或母亲户口所在地派出所申报出生登记。婴儿父母一方为本市集体户口,一方为本市家庭户口的,婴儿须随家庭户一方登记常住户口。婴儿母亲为本市集体户口,父亲为市外户口的,户口可随母亲登记为集体户口。母亲为本市农业户口的,婴儿可以自愿选择随母或随父登记为非农业户口。
办理出生登记,应出具下列证件证明:
A、婴儿出生医院填发的《出生医学证明》;
B、婴儿父亲、母亲的《居民户口簿》、《居民身份证》、《结婚证》;
C、婴儿母亲户口所在地计划生育部门出具的《生育服务证》(随父申报登记的,该证需到母亲户口所在地计划生育部门办理迁移手续);
D、婴儿母亲系驻京部队现役军人的,须出具其母所在部队团以上政治部门出具的证明及本人身份证件;
E、超计划生育、非婚生育婴儿等违反法律法规规定生育的,须持婴儿出生医院填发的《出生医学证明》和婴儿父亲、母亲的《居民户口簿》、《居民身份证》、《结婚证》及婴儿母亲户口所在地计划生育部门开具的缴纳社会抚养费证明。非婚生婴儿同时提供亲子鉴定证明经派出所审批办理;
F、在港、澳、台及国外出生的婴儿,须持国外或境外医疗机构出具的出生证明原件、复印件及翻译机构出具的出生证明翻译件;我驻外使领馆签发的《中华人民共和国旅行证》或《护照》;婴儿父亲、母亲的《居民户口簿》、《居民身份证》、《结婚证》;《北京市生育服务证》或缴纳社会抚养费证明或区县计生部门出具的同意入户证明。
(二)父亲为本市户口、母亲为外省市户口的婴儿(2003年8月7日以后出生),要求随父申报出生登记的,应符合北京市计划生育政策,经婴儿父亲户口所在地派出所审批办理。应出具下列证件证明:
A、入户申请;
B、医疗机构填发的《出生医学证明》;
C、婴儿父母亲的《居民户口簿》、《居民身份证》、《结婚证》,婴儿父亲的住房证明;
D、《北京市生育服务证》(外省市生育服务证明需到入户地街、乡计划生育部门更换成《北京市生育服务证》)。
告知
6、收费标准及依据:不收费
7、办理依据:《中华人民共和国户口登记条例》、《派出所办理常住户口登记工作规范》(试行)

自:http://eservice.beijing.gov.cn:8080/zzbj/Detail.aspx?id=11&cid=426