2008年1月23日星期三

妹的留言


秋 23:58:43
哥也许我把你气坏了, 我从来都是这样的,妈也说过我那么多回让我改,我敢说我来北京以后脾气根在家我改了很多,每次回家我是多多少少干了一点,也有没有干的时候,我也不想说什么我干了什么和没有干什么了,没有用,我一周就回来了一次,不是天天在家闲着,要是那样我没有做也行,在家的时候我要是不想做饭了根妈说让妈做妈没有说你怎么不做饭等着吃呢,她也知道我想玩会, 我就是有点不服气,也就这么点事,本来明天回家了高兴得很, 今天我把米饭做好了, 说让你回来买点菜回来就行了,从你把面包丢给我我也看出来了,我也生气你要不就别给我,你让我拿电脑回去,我不愿意拿一是我不想拿,而是我还怕丢了,爸爸那人你又不是不知道说话就那样,你呢还非得跟他较劲,你拿回去爸爸能怎么想,他能高兴,他主要是不懂得电脑就以为坏了,其实他说的也没有错,本来你买的就没有他这个好,要是买一样的你也不能和他换,所以他也就是发泄2下,找明白人给他弄好了也就没有事了,不知道你还老抓住这个不放什么,非给他拿回去,说到我过年回来我不回来了,老师说过你不能每周都回去,也得要锻炼着自己独立,周日多出去转转,我也想了不回来也行,也省得你说我礼貌不到,因为是在家里我跟本就没有注意到也没有上心里去,说到爸把我交给你是个极大的错误, 我也说了让你不用管了,我比谁都后悔来到着,我当初也说过我宁愿在家受累也不想来这,我知道上好的话能改变自己的一生,我知道妈他们挣钱是多么的不容易,我也不能让这2万块钱白交,不管学多少我学了,我尽力了, 这点我很清楚,我在着呢也让你跟着操心,我知道,因为你是我哥,我有什么不对的地方咱都是家里人没有什么,回家的时候我看你和嫂子在厨房也不说话,我以为你们生气了,平常看你们闹那肯定什么事也没有,从周六我回来到今天我看你也不怎么高兴,今天回来也没有说话,我没有进厨房,你们俩在厨房了谁也不吱声,我也就没有进去,说了这么多也没有说到什么重点,我呢脾气就是这样僵,生气的时候什么话都能够说出来,清醒了知道自己错了,不管怎么样你是我哥,我也拿你当哥,我也会慢慢改脾气的,一下子是不能改过来的,这一快过年了我们也都希望全家都高高兴兴的过年,都是一家人,没有什么大不了的,都是亲的没有什么深仇大恨,我希望今天这页就掀过去了,惹你生气了,我也知道自己错了,明天我就回家了希望让妈他们看到我高兴的回去再来,和你们处得也融洽,不让妈担心,希望你回去以后也能够跟爸和和睦睦的,我们全家都过了好年,今年家里多了嫂子也是喜事,我呢也不说了,希望你能把今天的事忘了吧,要是能原谅妹子这次呢,就发个信息给我吧。不原谅就当我什么也没有说好吧。

2008年1月21日星期一

当幸福来敲门

当幸福来敲门 威尔-斯密斯

晚上没事,重温了《当幸福来敲门》的下半部分(上半个不知道怎么没弄没了,呵呵)

I like it

也许应该找点东西感动感动,要不然被周围的冷漠淹没了

奋斗是根本,想想自己的境况比Chris好一点,还没有落魄的在卫生间过夜,多亏了父母的肩膀啊,可也有过半夜搬家的日子,我们还没有Chris努力,所以我们也会没有Chris成功

但是我们还想成功,还想住大房子,开小车,可那不是大风刮来的

当幸福来敲门 多美的一句话

2008年1月20日星期日

呵呵

无法识别的usb设备 无法识别的生活种种

2008年1月17日星期四

javascript DWR 实现自定义加载信息

//dwr Message
function useLoadingMessage(message) {
    var loadingMessage;
    if (message) loadingMessage = message;
    else loadingMessage = "Loading";
   
    DWREngine.setPreHook(function() {
        var disabledZone = $('disabledZone');
        if (!disabledZone) {
          disabledZone = document.createElement('div');
          disabledZone.setAttribute('id', 'disabledZone');
          disabledZone.style.position = "absolute";
          disabledZone.style.zIndex = "1000";
          disabledZone.style.left = "0px";
          disabledZone.style.top = "0px";
          disabledZone.style.width = "100%";
          disabledZone.style.height = "100%";
          document.body.appendChild(disabledZone);
          var messageZone = document.createElement('div');
          messageZone.setAttribute('id', 'messageZone');
          messageZone.style.position = "absolute";
          messageZone.style.top = "400px";  //定义显示加载信息层的位置
         messageZone.style.left = "400px";  //定义显示加载信息层的位置
          messageZone.style.width = "150";  //定义显示加载信息层的宽度
          messageZone.style.height = "30";    //定义显示加载信息层的高度
          messageZone.style.background = "red";//定义显示加载信息层的颜色
          messageZone.style.color = "white";
          messageZone.style.fontFamily = "Arial,Helvetica,sans-serif";
          messageZone.style.padding = "4px";
          disabledZone.appendChild(messageZone);
          var text = document.createTextNode(loadingMessage);
          messageZone.appendChild(text);
        }
        else {
          $('messageZone').innerHTML = loadingMessage;
          disabledZone.style.visibility = 'visible';
        }
    });

    DWREngine.setPostHook(function() {
        $('disabledZone').style.visibility = 'hidden';
    });
}

2008年1月16日星期三

聚合函数的查询

sql语句编写能力很差啊,总不用就忘啊,用了聚合函数的查询,得有group by

第一个行,第二个不行

SELECT
(select rowname from RPT_ROWCODE_SERVCORP rs where rs.rowcode = r.rowcode and tname = 'RPT_AGG_ST_SERV_01_2007') rowname,
r.rowcode,
sum(r.N01),sum(r.N02),sum(r.N03),sum(r.N04),sum(r.N05),sum(r.N06),sum(r.N07),
sum(r.N08),sum(r.N09),sum(r.N10),sum(r.N11),sum(r.N12),sum(r.N13),sum(r.N14),sum(r.N15)
FROM RPT_AGG_ST_SERV_01_2007 r
WHERE     r.offino in ('0001') group by r.rowcode
order by r.rowcode

SELECT
rrs.rowcode,rrs.rowname,
sum(r.N01),sum(r.N02),sum(r.N03),sum(r.N04),sum(r.N05),sum(r.N06),sum(r.N07),
sum(r.N08),sum(r.N09),sum(r.N10),sum(r.N11),sum(r.N12),sum(r.N13),sum(r.N14),sum(r.N15)
FROM RPT_AGG_ST_SERV_01_2007 r,RPT_ROWCODE_SERVCORP rrs
WHERE     rrs.rowcode = r.rowcode and rrs.tname = 'RPT_AGG_ST_SERV_01_2007' and r.offino in ('0001') group by r.rowcode
order by r.rowcode

avascript 删除中选中的选项

//javascript 删除<select>中选中的选项

function AddClick(field)
{
if(field.selectedIndex != -1)
{
   for (var i=0; i < field.options.length; ++i)
   {
    if (field.options[i].selected)
    {   
     field.options[i] = null;
     --i   
    }
   }
}
}

2008年1月12日星期六

javascript post提交并显示在弹出窗口

function thisFormSubmit(){
        var previewWindow = window.open("","colReport","resizable=yes, scrollbars=1,status=1,toolbar=0,left=100, top=70");  
       
    document.forms[0].target= "colReport"; //previewWindow.name
        document.forms[0].submit();
    }

javascript 跨域访问 没有权限的问题

      公司买的报表工具,为了节省成本,将报表服务单独部署了一个应用,我们的业务系统调用报表应用展现报表,开发还算顺利,现在到了用户试用了,问题来了

     其中有个功能叫报表反查,页面中包含了四个fream,用户在其中三个fream中设置查询条件,当点击查询按钮,调用javascript得到每个fream中的参数,并将参数赋值到第四个fream中的form中的隐藏属性中,然后提交这个form(这时的form是在业务系统中的jsp)调用报表服务器的action,返回报表(此时的是报表应用返回的页面,不再是业务系统中的jsp了)。

     这涉及到了两个应用,再次点击查询按钮,Ie就会报“没有权限”错误。

    在网上搜,一个结论,浏览器不允许javaScript跨域访问,据说为了安全,那咋办,得用啊?!

    搜啊搜,找到一个文章专门讨论这事儿的,作者提出了三种解决方案:

    1、在涉及到跨域访问的页面中加入

<script language="JavaScript">
<!--
document.domain = "mycompany.com"; //指定 document 所属的域
-->
</script>

这样可以蒙混过浏览器,但是这种方法必须满足一个条件,就是两个应用必须属于同一个父域,也就是,比如,abc.def.com父域就该是def.com,如果document.domain = "域名";设置的不是其父域,就会报“参数无效”的错误。

      而问题是我们的报表服务器和业务系统服务器不在一个父域下,这条路是行不通了

     召集了公司几个同事讨论,最后得出两个方案,一是改为弹出窗口,而是写webservice

      考虑到工作量,修改要小,选择了弹出窗口。

2、是IE独有了,就是弹出showmodaldialog,这种方法因为IE升级又行不通了。

3、就是通过服务器处理了。

总结,现在看来,解决这个问题就是1和3两种方案,第一种是在客户端处理,局限就是两个应用必须在同一个父域下,还有就是好像不是所有的浏览器支持设置domain。第二种就是通过服务器处理,这种方法好像势必要刷新整个窗口,像我这种情况,一个页面中有几个fream的情况,像保留用户设置的参数,还么有想到好的解决方法。

还想到一条路就是用ajax,这倒是实现了无刷新,但是我们的报表页面展现是一个自定义的jsp标签,还是要服务器展现,这条路没走下去。

参考文章

2008年1月9日星期三

javascript 文字闪烁

<html>
<head>

<script type="text/javascript">
function blinklink()
{
if (!document.getElementById('message').style.color)
{
document.getElementById('message').style.color="red"
}
if (document.getElementById('message').style.color=="red")
{
document.getElementById('message').style.color="black"
}
else
{
document.getElementById('message').style.color="red"
}
timer=setTimeout("blinklink()",100)
}

function stoptimer()
{
clearTimeout(timer)
}
</script>
</head>

<body onload="blinklink()" onunload="stoptimer()">
<div id="message" >Message</div>

<div id="new_task">Message</a>

<script language="JavaScript">
<!-- Begin
function initArray() {
for (var i = 0; i < initArray.arguments.length; i++) {
this[i] = initArray.arguments[i];
}
this.length = initArray.arguments.length;
}
var colors = new initArray(
"red",
"blue",
"green",
"purple",
"black",
"tan",
"red");
delay = .5; // seconds
link = 0;
vlink = 0;
function linkDance() {
link = (link+1)%colors.length;
vlink = (vlink+1)%colors.length;
new_task.style.color = colors[link];
setTimeout("linkDance()",delay*1000);
}
function linkDance1() {
link = (link+1)%colors.length;
vlink = (vlink+1)%colors.length;
new_task1.style.color = colors[link];
setTimeout("linkDance1()",delay*1000);
}

linkDance();

// End -->
</script>
</body>

</html>

javascript trim() 去掉前后空格

<script language="javaScript">
<!--
String.prototype.trim = function()
{
    // 用正则表达式将前后空格
    // 用空字符串替代。
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

buildTable.rows[1].cells[2].innerText.trim() == "已生成"
//-->
</script>