壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1593|回复: 2

[Domino C/S开发] 我做了一个日历很精美的,但是还需要修改,请各位高手指点!

[复制链接]
发表于 2005/1/5 11:13:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
这个日历是我参考别人的做的,只是做了一点修改,我的经理让我加一个按钮,使之能够改变日历的颜色,只要功能实现即可,不必管界面问题。
具体代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=GB2312">            

<script language="javascript" type="text/javascript">
<!--
document._domino_target = "_self";
function _doClick(v, o, t, h) {
  var form = document._DominoForm;
  if (form.onsubmit) {
     var retVal = form.onsubmit();
     if (typeof retVal == "boolean" && retVal == false)
       return false;
  }
  var target = document._domino_target;
  if (o.href != null) {
    if (o.target != null)
       target = o.target;
  } else {
    if (t != null)
      target = t;
  }
  form.target = target;
  form.__Click.value = v;
  if (h != null)
    form.action += h;
  form.submit();
  return false;
}
// -->
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF">

<form method="post" action="/systemset.nsf/f010992587ed880548256f7900242ec3?OpenForm&Seq=1" name="_DominoForm">
<input type="hidden" name="__Click" value="0"><script>
//*************************日历控件***************************
//修改作者:
//完成时间2004/11/12
//说明:返回值为一个字符串
//使用方法  :
//var dataString = showModalDialog("/systemset.nsf/calendar?OpenForm","yyyy/mm/dd","dialogWidth:286px;dialogHeight:221px;status:no;help:no;");
//
var userFormatString;
if(window.dialogArguments ==null)
{
userFormatString = "yyyy/mm/dd";
}
else
{
userFormatString = "yyyy/mm/dd";
//原程序代码是下面的,它实现的功能是输出使用者所要的日期格式
//userFormatString = window.dialogArguments;
}
with(new Date()){
var Nyear = getFullYear();
var Nmonth =  getMonth() +1;
var Ndate =  getDate();
}
window.returnvalue = new dataObj(Nyear,Nmonth,Ndate ).getDateString(userFormatString);
window.document.onclick = function(){
var obj = window.event.srcElement;
if(obj.tagName.toLowerCase() == "span"  &&  obj.parentNode.className.replace(/Ctable/ig,"star") == "star" )
{
  try{
   window.currentActiveItem.runtimeStyle.cssText = "";
  }
  catch(e){ }
  Nyear = obj.id.split("-")[0];
  Nmonth = obj.id.split("-")[1];
  Ndate = obj.id.split("-")[2];
if (Nmonth < 10)
{
  Nmonth="0" + Nmonth.toString();
}
if (Ndate < 10)
{
  Ndate="0" + Ndate.toString();
}
  window.currentActiveItem = obj;
  window.currentSelectDate = window.currentActiveItem.id;
  window.currentActiveItem.runtimeStyle.cssText = "background:url(/systemset.nsf/选中.gif) no-repeat 12px 6px;color:#000;padding-top:1px;font-weight:bold";
}
}
function dataObj(year,month,date)  
{
if (month < 10)
{
  month="0" + month.toString();
}
if (date < 10)
{
  date="0" + date.toString();
}
this.year  = year
this.month = month
this.date  =  date
this.getDateString = function(formatString)
{
return formatString.replace(/yyyy/ig , this.year).replace(/mm/ig , this.month).replace(/dd/ig , this.date);
}
}
window.onload = function(){
window.document.attachEvent("onclick" , doCmd);
window.document.attachEvent("onmouseover" , buttonOver);
window.document.attachEvent("onmouseout" , buttonOut);
window.document.attachEvent("onmousedown" , buttonDown);
window.document.attachEvent("onmouseup" , buttonUp);
window.document.attachEvent("ondblclick" ,
   function()
   {
     var obj = window.event.srcElement;
     if(obj.tagName.toLowerCase() == "span"  &&  obj.parentNode.className.replace(/Ctable/ig,"star") == "star" )
     {
      var mydate = new dataObj(obj.id.split("-")[0] ,  obj.id.split("-")[1] ,  obj.id.split("-")[2] );
      window.returnvalue = mydate.getDateString(userFormatString)
      window.close();
     }
   }
);
document.all.titleYear.innerHTML=TranYearMonthTitle(Nyear,Nmonth);
document.all.weekNameBox.insertAdjacentHTML("afterBegin",makeWeekNameHtmlStr());
document.all.calendarBox.innerHTML=makeCalendarHtmlStr(Nyear,Nmonth);
window.currentSelectDate = starCaTran(Nyear,Nmonth,Ndate);
// window.document.all.calendarBox.show = show;
window.currentActiveItem = window.document.getElementById(currentSelectDate);
if( window.currentActiveItem )
  window.currentActiveItem.click();
//  window.document.all.calendarBox.show();
}
function starCalendar(year,month){
this.year = year;
this.month = month;
this.monthTable = function(){
    var aMonth=new Array();
    for(i=1;i<7;i++)aMonth=new Array(i);
   
    var dCalDate=new Date(this.year, this.month-1, 1);
    var iDayOfFirst=dCalDate.getDay();
    var iDaysInMonth=new Date(this.year, this.month, 0).getDate();
    var iOffsetLast=new Date(this.year, this.month-1, 0).getDate()-iDayOfFirst+1;
    var iDate = 1;
    var iNext = 1;
    for (d = 0; d < 7; d++)
    aMonth[1][d] = (d<iDayOfFirst)?(-iDayOfFirst+d+1):iDate++;
    for (w = 2; w < 7; w++)
   for (d = 0; d < 7; d++)
    aMonth[w][d] = iDate++;
    return aMonth;
}
}
function makeWeekNameHtmlStr(){
var tmpStr="";
var weekName = ["日","一","二","三","四","五","六"];
for(var i=0;i<7;i++)tmpStr+="<span class=weekName>"+weekName+"</span>";
return tmpStr;
}
function makeCalendarHtmlStr(year,month){
window.theCalendar = new starCalendar(year,month);
var theCaArr = theCalendar.monthTable();
var theDaysInMonth = new Date(year, month, 0).getDate();
var theCaHtml = "<div class=Ctable>";
for(var i=1;i<7;i++)
  for(var j=0;j<7;j++)
   theCaHtml = theCaHtml+"<span class="+( (theCaArr[j]<1 || theCaArr[j]>theDaysInMonth)?"OtherMonthDate":"Cdate")+" id="+starCaTran(year,month,theCaArr[j])+">"+starCaTran(year,month,theCaArr[j]).split("-")[2]+"</span>";
return theCaHtml+"</div>";
}
function starCaTran(year,month,date){
with(new Date(year,month-1,date))
  return getFullYear() + "-" +(getMonth()+1) + "-" + getDate();
}
function TranYearMonthTitle(year,month){
with(new Date(year,month-1,1))
  return "<span style=&#39;text-decoration:underline;cursor:hand;font-weight:bold;padding:1 2 0 1;width:40px;&#39; onclick=showMore(1990,2050,this.innerHTML) onmouseover=\"this.runtimeStyle.cssText=&#39;color:#fff;&#39;\"onmouseout=\"this.runtimeStyle.cssText=&#39;&#39;\" onpropertychange=showC()>" +getFullYear() + "</span>" + "年" + "<span style=&#39;text-decoration:underline;cursor:hand;font-weight:bold;padding:1 2 0 1;width:20px;&#39; onclick=showMore(1,12,this.innerHTML) onmouseover=\"this.runtimeStyle.cssText=&#39;color:#fff;&#39;\" onmouseout=\"this.runtimeStyle.cssText=&#39;&#39;\" onpropertychange=showC()>" + (getMonth()+1) + "</span>" + "月"
}
function showC(){
   if(event.propertyName != "innerHTML")return;
   window.theCalendar.year = new Number(document.all.titleYear.getElementsByTagName("span")[0].innerHTML);
   window.theCalendar.month =  new Number(document.all.titleYear.getElementsByTagName("span")[1].innerHTML);
   window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month);
   //window.document.all.calendarBox.show = show;window.document.all.calendarBox.show();
}
function showMore(starNum,endNum,selectedvalue){
var obj = window.event.srcElement;
var selectedIndex = selectedvalue - starNum;
if(obj.selectBox){
  obj.selectBox.selectedIndex = selectedIndex;
  return obj.selectBox.show(document.all.calendarBox.offsetHeight + document.all.weekNameBox.offsetHeight );
}
var selectBox = window.document.createElement("div");
selectBox.className = "selectBox";
selectBox.style.height = 0;
selectBox.style.top = window.event.clientY - window.event.offsetY + window.event.srcElement.offsetHeight;
selectBox.style.left = window.event.clientX - window.event.offsetX
selectBox.show  = showBox;
selectBox.selectedIndex = selectedIndex;
selectBox.onclick = function(){
  var selectedObj = window.event.srcElement;
  if( "nobr" == selectedObj.tagName.toLowerCase() && selectBox.contains(selectedObj))
  {
   if(obj.innerHTML != selectedObj.innerHTML)obj.innerHTML = selectedObj.innerHTML;
  }
}
selectBox.onlosecapture = alert
var iString = "";
for(var i=starNum;i<=endNum;i++){
  iString += "<nobr  onmouseover=\"this.parentNode.getElementsByTagName(&#39;nobr&#39;)[this.parentNode.selectedIndex].style.cssText=&#39;&#39;;this.style.cssText=&#39;background-color:#00006C;color:#fff;&#39;\"  onmouseout=this.style.cssText=&#39;&#39;>"+i+"</nobr><br>"
}
selectBox.insertAdjacentHTML ("afterBegin",iString);
window.document.body.appendChild(selectBox);
obj.selectBox = selectBox;
obj.selectBox.show(document.all.calendarBox.offsetHeight + document.all.weekNameBox.offsetHeight );

}
function showBox(iHeight)
{
var box = this;
box.style.height =1;
box.style.display = "block";
window.clearInterval(box.timeHandle);
box.timeHandle = window.setInterval(interValHandle,1);
var s = 0,t =1
function interValHandle()
{
  box.scrollTop=1000000;
  s = s + t*t;
  t += 0.5;
  box.style.height = parseInt(box.style.height) + Math.floor(s);
  box.style.width = 65 / iHeight * box.offsetHeight;
  if( box.offsetHeight > iHeight )
  {
    window.clearInterval(box.timeHandle);
    box.style.height = iHeight;
    box.scrollTop = box.childNodes[0].offsetHeight*box.selectedIndex;
    box.getElementsByTagName("nobr")[box.selectedindex].style.cssText=&#39;background-color:#00006C;color:#fff;&#39;;
    window.document.attachEvent("onclick",
       box.hide=function()
       {
        box.style.display = "none";
        window.document.detachEvent("onclick",box.hide)
       }
    );
  }
}
}
</script>
<script>
function buttonOver(){
var obj = window.event.srcElement;
if(obj.tagName.toLowerCase() == "span"  &&  obj.className.replace(/controlButton/ig,"star") == "star" )
{
  obj.runtimeStyle.cssText="border-color:#fff #606060 #808080 #fff;padding:3 0 0 0 ";
}
if(obj.tagName.toLowerCase() == "span"  &&  obj.parentNode.className.replace(/Ctable/ig,"star") == "star" )
{
  obj.style.backgroundColor = "#fff";
}
}
function buttonOut(){
var obj = window.event.srcElement;
if(obj.tagName.toLowerCase() == "span"  &&  obj.className.replace(/controlButton/ig,"star") == "star" )
{
  obj.runtimeStyle.cssText = "";
}
if(obj.tagName.toLowerCase() == "span"  &&  obj.parentNode.className.replace(/Ctable/ig,"star") == "star" )
{
  window.setTimeout(function(){obj.style.backgroundColor = ""; },300);
}
}
function buttonDown(){
var obj = window.event.srcElement;
if(obj.tagName.toLowerCase() == "span"  &&  obj.className.replace(/controlButton/ig,"star") == "star" )
{
  obj.setCapture();
  obj.runtimeStyle.borderColor="#808080 #fefefe #fefefe #808080";
}
}
function buttonUp(){
var obj = window.event.srcElement;
if(obj.tagName.toLowerCase() == "span"  && obj.className.replace(/controlButton/ig,"star") == "star" )
{
  obj.releaseCapture();
  obj.runtimeStyle.cssText ="";
}
}
function doCmd(){
var obj = window.event.srcElement;
if(obj.tagName.toLowerCase() == "span"  && obj.className.replace(/controlButton/ig,"star") == "star" )
{
   switch(obj.getAttribute("cmd"))
   {
    case "py":
     if(window.theCalendar.year <= 1990)
         {
          window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month);
          window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month);
          }
     else{
          window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year-1,window.theCalendar.month);
          window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year-1,window.theCalendar.month);
          }
     break;
    case "pm":
     if((window.theCalendar.year == 1990) && (window.theCalendar.month == 1))
         {
          window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month);
          window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month);
          }
     else{
          window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month-1);
          window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month-1);
          }
     break;
    case "nm":
     if((window.theCalendar.year == 2050) && (window.theCalendar.month == 12))
         {
          window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month);
          window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month);
          }
     else{
          window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month+1);
          window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month+1);
          }
     break;
    case "ny":
     if(window.theCalendar.year >= 2050)
         {
          window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year,window.theCalendar.month);
          window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year,window.theCalendar.month);
          }
     else{
          window.document.all.titleYear.innerHTML=window.TranYearMonthTitle(window.theCalendar.year+1,window.theCalendar.month);
          window.document.all.calendarBox.innerHTML=makeCalendarHtmlStr(window.theCalendar.year+1,window.theCalendar.month);
          }
     break;
   }
   //window.document.all.calendarBox.show();
   window.currentSelectDate = starCaTran(Nyear,Nmonth,Ndate);
   window.currentActiveItem = window.document.getElementById(currentSelectDate);
   if( window.currentActiveItem )window.currentActiveItem.runtimeStyle.cssText = "background:url(choiceit.gif) no-repeat 12px 6px;color:#000;padding-top:1px;font-weight:bold";
}
}
//动画效果函数
/*
function show()
{
var box = this;
window.clearTimeout(box.timeHandle);
var CdateBoxs = this.getElementsByTagName("span");
for(var i=0;i<CdateBoxs.length;i++)
{
  CdateBoxs.defaultvalue = new Number( CdateBoxs.innerHTML );
  CdateBoxs.innerHTML = 0;
}
showDate();
function showDate(){
  for(var i=0;i<CdateBoxs.length;i++){
   if( new Number( CdateBoxs.innerHTML ) + 1 <= new Number( CdateBoxs.defaultvalue ) )
    CdateBoxs.innerHTML = new Number( CdateBoxs.innerHTML ) + 1
  }
  box.timeHandle = window.setTimeout(showDate,1);
}
this.show = show1
}
function show1()
{
var box = this;
window.clearTimeout(box.timeHandle);
var CdateBoxs = this.getElementsByTagName("span");
for(var i=0;i<CdateBoxs.length;i++)CdateBoxs.style.display = "none";
showDate(CdateBoxs[0]);
function showDate(obj){
  if( !obj )return;
  obj.style.display = "inline";
  box.timeHandle = window.setTimeout(function(){showDate(obj.nextSibling);},1);
}
this.show = show
}
*/
/*
function show()
{
}
*/
</script>
<style>
*{
font:12px;
letter-spacing:0px;
}
body{
background-color:#E5E9F2;
overflow:hidden;
margin:0;
border:0px;
}
#titleYear{
text-align:center;
padding-top:3px;
width:120px;
height:20px;
border:solid #E5E9F2;
border-width:0px 1px 1px 0px;
background-color:#A4B9D7;
color:#000;
cursor:default;
}
#weekNameBox{
width:282px;
border-bottom:0px none;
}
.weekName{
text-align:center;
padding-top:4px;
width:40px;
height:20px;
border:solid #E5E9F2;
border-width:0px 1px 1px 0px;
background-color:#C0D0E8;
color:#243F65;
cursor:default;
}
.controlButton{
font-family: Webdings;
font:9px;
text-align:center;
padding-top:2px;
width:40px;
height:20px;
border:solid #E5E9F2;
border-width:0px 1px 1px 0px;
background-color:#A4B9D7;
color:#243F65;
cursor:default;
}
.Ctable{
width:282px;
margin-bottom:20px;
}
.Ctable span{
font:9px verdana;
font-weight:bold;
color:#243F65;
text-align:center;
padding-top:4px;
width:40px;
height:26px;
border:solid #C0D0E8;
border-width:0px 1px 1px 0px;
cursor:default;
}
.Cdate{
background-color:#E5E9F2;
}
.Ctable span.OtherMonthDate{
color:#999;
background-color:#f6f6f6;
}
.selectBox{
cursor:hand;
font:9px verdana;
width:80px;
position:absolute;
border:1px solid #425E87;
overflow-y:scroll;
overflow-x:hidden;
background-color:#fff;
FILTER:progid:DXImageTransform.Microsoft.Shadow(Color=#999999,offX=10,offY=10,direction=120,Strength=5);
SCROLLBAR-FACE-COLOR: #E5E9F2;
SCROLLBAR-HIGHLIGHT-COLOR: #E5E9F2;
SCROLLBAR-SHADOW-COLOR: #A4B9D7;
SCROLLBAR-3DLIGHT-COLOR: #A4B9D7;
SCROLLBAR-ARROW-COLOR:  #000000;
SCROLLBAR-TRACK-COLOR: #eeeee6;
SCROLLBAR-DARKSHADOW-COLOR: #ffffff;
}
.selectBox nobr{
padding:0px 0px 2px 5px;
width:100%;
color:#000;
letter-spacing:2px;
text-decoration:none;
}
</style>
<body onselectstart="return false">
<table>
<div style="margin:0 0 0 0">
<div id=controlBar><span class=controlButton cmd=py title=上一年>33</span><span class=controlButton cmd=pm title=上一月>3</span><span id=titleYear></span><span class=controlButton  cmd=nm title=下一月>4</span><span class=controlButton cmd=ny title=下一年>44</span></div>
<div id=weekNameBox></div>
<div id=calendarBox></div>
</div>
</table>
</body></form>
</body>
</html>

 楼主| 发表于 2005/1/5 15:14:49 | 显示全部楼层
请大家帮帮忙了,我在等呢,加一个按钮或者是下拉列表框都行,只改变汉字、数字以及按钮以外的颜色就可以了。
发表于 2009/12/14 16:23:30 | 显示全部楼层
这个目前还不会
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 04:00 , Processed in 0.015032 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表