<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
daily progres report<script type="text/javascript" src="<%=request.getContextPath()%>/jscript/mootools-release-1.11.js"></script><link href="<%=request.getContextPath()%>/css/baseAll.css" rel="stylesheet" type="text/css">
<link href="<%=request.getContextPath()%>/css/base.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.STYLE1 {
font-size: 36px;
font-family: "Times New Roman", Times, serif;
font-weight: bold;
}
.STYLE2 {
font-weight: bold;
font-family: "Times New Roman", Times, serif;
color: #FF0000;
}
-->
</style>
<script type="text/javascript">
function myedit(oid)
{
var b=oid;
var c=b.substring(9,b.length);
var pid="1_"+c;
//var aid="2_"+c;
document.getElementById(pid).readOnly=false;
//document.getElementById(aid).readOnly=false;
//var docm=document.getElementById(editlist).value;
//docm=docm+c+",";
//alert(docm);
//document.getElementById(edit1).value=docm;
}
function check1(oid)
{
var b=oid;
var c=b.substring(2,b.length);
var you="1_"+c;
if(c==0)
{
var d=Math.round(c)+1;
var behind="1_"+d;
var a=document.getElementById(behind).value;
var e=a.substring(0,a.length-1);
var f=document.getElementById(you).value;
alert('f='+f+'_a='+a);
var g=f.substring(0,f.length-1);
var h=Math.round(e);
var i=Math.round(g);
if(i>h)
{
document.getElementById("warning").value="錯誤位置﹕第2行﹐第"+d+"欄。"+"錯誤原因:輸入值應該小于后面表格欄位值,大于前面表格欄位的值。";
document.getElementById("show").style.display="block";
document.getElementById("save").disabled="true";
}else{
checkSuccess();
}
}
var j=document.getElementById("recordtext").value;
if(c==j-1)
{
var d=Math.round(c)-1;
var before="1_"+d;
var a=document.getElementById(before).value;
var e=a.substring(0,a.length-1);
var f=document.getElementById(you).value;
alert('f2='+f+'_a='+a);
var g=f.substring(0,f.length-1);
var h=Math.round(e);
var i=Math.round(g);
if(i<h)
{
document.getElementById("warning").value="錯誤位置﹕第2行﹐第"+j+"欄。"+"錯誤原因:輸入值應該小于后面表格欄位值,大于前面表格欄位的值。";
document.getElementById("show").style.display="block";
document.getElementById("save").disabled="true";
}else{
checkSuccess();
}
}
if(c<j-1 && c>0)
{
var d=Math.round(c)-1;
var l=d+2;
var before="1_"+d;
var behind="1_"+l;
var a=document.getElementById(before).value;
var k=document.getElementById(behind).value;
var e=a.substring(0,a.length-1);
var m=k.substring(0,k.length-1);
var f=document.getElementById(you).value;
var g=f.substring(0,f.length-1);
//var h=Math.round(e);
//var i=Math.round(g);
//var i=Math.round(m);
var h =Math.pow(e,3);
var i=Math.pow(g,3);
var n=Math.pow(m,3);
if(i<h || i>n)
{
document.getElementById("warning").value="錯誤位置﹕第2行﹐第"+l+"欄。"+"錯誤原因:輸入值應該小于后面表格欄位值,大于前面表格欄位的值。";
document.getElementById("show").style.display="block";
document.getElementById("save").disabled=true;
} else {
checkSuccess();
}
}
}
function checkSuccess(){
document.getElementById("show").style.display='none';
document.getElementById("save").disabled=false;
}
function reset1()
{
document.getElementById("show").style.display="none";
document.getElementById("save").disabled=false;
}
function savehidden(oid)
{
//alert("ddd");
var a=oid;
var b=a.substring(2,a.length);
var c="1_"+b;
var d=document.getElementById(c).value;
//alert(d);
var e="w_"+b
document.getElementById(e).value=d;
}
//Ajax-------------------------------------
var myAjax;
function first()
{
var a=document.getElementById("subid").value;
var url="<%=request.getContextPath()%>/tms/testdrive/teststatus.do?method=DailyProgressAjax&&subid="+a+"&&start1="+document.getElementById("start1").value+"&&end1="+document.getElementById("end1").value;
second(url);
}
function second(url){
myAjax = new Ajax(url,{method: 'post',onComplete:third});
myAjax.setHeader('RequestType','ajax');
myAjax.request();
}
function third(txt,xml)
{
//alert(xml.xml);
var len=document.getElementById("recordtext").value;
var tag=xml.getElementsByTagName("str");
if(tag.length>0)
for(var i=0;i<len;i++)
{
document.getElementById("1_"+i).value=tag[i].firstChild.nodeValue+"%";
}
}
function getSave()
{
var recordtext = document.getElementById("recordtext").value;
var subid = document.getElementById("subid").value;
var start1 = document.getElementById("start1").value;
var end1 = document.getElementById("end1").value;
document.myform.action = 'teststatus.do?recordtext='+recordtext+'&subid='+subid+'&start1='+start1+'&end1='+end1;
document.myform.submit();
}
</script>
Daily Progress
result=(List) request.getAttribute("tdpmlist");
Integer alen=result.size();
if(result!=null && result.size()>0)
{
System.out.println("Hello World!");
}
long end = Long.parseLong(request.getAttribute("end1").toString());
long start =Long.parseLong(request.getAttribute("start1").toString());//select start
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//System.out.println("=start="+sdf.format(start));
//System.out.println("=end="+sdf.format(end));
String t = sdf.format(new Date());
long today = 0;
try {
today = sdf.parse(t).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
%>
|
Date
|
|
<!-- <input type="button" value="Edit" id="button_<%=0%>_<%=temp%>" onclick="myedit(this.id)"> -->
|
today){
countDay = (end - today)/(1000*3600*24);
int passDay = 0;
for(j=i;j<countday passday="passDay" string s="" try java.util.date tempday='sdf.parse("2002-02-28");' long tempday2="1000*3600*24*passDay" today tempday.settime catch e e.printstacktrace><td>
<input type="text" value="<%=s%>" id="<%=0%>_<%=j%>" name="<%=0%>_<%=j%>" readonly>
</td>
</countday>
|
Plan
|
|
3)
//{
//str=str.substring(0,3);
//}
str=str+"%";
//System.out.println("r="+r+"___str=="+str);
planStr = str;
planId =id;
%>
|
today){
for(j=i;j<countday><td>
<input type="text" id="<%=1%>_<%=j%>" name="<%=1%>_<%=j%>" value="<%=planStr%>" onchange="check1(this.id)"><input type="hidden" id="w_<%=j%>" name="w_<%=j%>"><input type="hidden" id="3_<%=j%>" name="3_<%=j%>" value="<%=planStr%>"><input type="hidden" id="4_<%=j%>" name="4_<%=j%>" value="<%=planId%>">
</td>
</countday>
|
Actual
|
|
3)
{
str=str.substring(0,4);
}
str=str+"%";
}
else
{ str="N/A";
}
actualStr=str;
%>
|
today){
for(j=i;j<countday><td>
<input type="text" value="<%=actualStr%>" id="<%=2%>_<%=j%>" name="<%=2%>_<%=j%>" readonly>
</td>
</countday>
分享到:
相关推荐
2.6 构建Java程序:正式构建自己的第一个Java程序前,还有几个问题需要注意。 2.6.1 名字的可见性 2.6.2 使用其他组件 2.6.3 static关键字 2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是...
GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...
JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm ------------------------------------------------- 本教程由yyc,spirit整理 ------------------------------------------------- “Thinking in Java...
<br>(2) 第2章:一切都是对象 本章将大家带到可以着手写自己的第一个Java程序的地方,所以必须对一些基本概念作出解释,其中包括对象“句柄”的概念;怎样创建一个对象;对基本数据类型和数组的一个介绍;...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是...
GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...
这个范例中的一些地方值得注意。它们将在以下的几节中讨论。 定义多重接口 这个类由第4行中的如下代码声明: implements MouseMotionListener, MouseListener 声明多个接口时,可以用逗号隔开。 监听多个源 如果...
3:对线程池的基本使用及其部分源码的分析(注意:这里的源码分析是基于jdk1.6;) a:线程池的状态 volatile int runState; static final int RUNNING = 0; 运行状态 static final int SHUTDOWN = 1; 关闭状态;...
Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是...
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是...
这里有两个地方需要注意: 仅仅通过反射方法没有办法知道集合元素中的类型,所以上面的两个converter能将任何集合转换成相对javascript而言有意义的对象.然而没有办法将不同的集合类类型分别采用不同的转换方法.因为...
2.3.2 Java的native函数和总结 17 2.4 JNI层MediaScanner的分析 17 2.4.1 注册JNI函数 18 2.4.2 数据类型转换 22 2.4.3 JNIEnv介绍 24 2.4.4 通过JNIEnv操作jobject 25 2.4.5 jstring介绍 27 2.4.6 JNI类型...