僅供自己使用的javascipt輔助開發工具

pas發表於2004-06-24


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>2003-11-12資料庫設計</TITLE>
<META NAME="Generator" CONTENT="Microsoft FrontPage 5.0">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="Version=2003-10-24">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<!--
作者:蘇翔,suxiang@126.com
http://www.baron.com.cn/javascript/zh/zh17.htm
-->
<BODY title="為了使以後程式好維護" style="font-size:16;"><PRE>2003-10-27說明:介面不友好,功能可自己用之;
有bug:不能放在有空格的路徑下(如My Document(我的文件))
主要目的是為了方便寫文件:沒有文件的程式沒有價值!可以自動寫一些程式,這樣程式更規範,省時間!任何人可以修改和使用
2003-11-6還要有刪除功能,還要新增註釋,寫成物件導向!可以想想保生成XML,合.Net!可加多文件(自由載入文件)
生成前可有操作就儲存
2003-11-12 要新增上下移動的功能;file型別?;要把只以更新的東西寫出來,特值寫出來.(如時間怎樣做預設?)
2003-11-30 ME_ALL
</PRE>
<div id=div_edit title="主要目的是為了方便寫文件:沒有文件的程式沒有價值
可以自動寫一些程式,這樣程式更規範,省時間
任何人可以修改和使用">
<br>
<style>

TABLE{border-width:0;margin:0;padding:0;border-color:BLACK;background-color:#666699;font-size:12;cursor:hand;}
TH{background-color:#C0C0C0;text-align:left}
.SX{background-color:#F2F2F2}
#tblMain{border-width:0;;margin:0;padding:0;background-color:#6699CC;font-size:12;cursor:hand;}
input{baobao: expression(textstyle(this))}
</style>

<TABLE width=100% id=tblMain ><TR ><TD>

<TABLE width=100% title="後設資料,請修改" id=meta_data >
<TR>
 <TH width=10%>儲存為</TH>
 <TH width=10%>開啟</TH>
 <TH width=10%>表名稱</TH>
 <TH width=1%>資料夾</TH>
 <TH width=10%>作者</TH>
 <TH>功能備註</TH>
</TR>
<TR class=SX>
 <TD onclick="editCell(this);">檔名</TD>
 <TD onclick="openFile(this);">已存的檔案</TD>
 <TD onclick="editCell(this);">TableName</TD>
 <TD onclick="editCell(this);">FolderName</TD>
 <TD onclick="editCell(this);">蘇翔</TD>
 <TD onclick="editCell(this,60);"></TD>
</TR>
</TABLE>
<TABLE id=tedit class=tb border=0 width=100%  >
<TR>
 <TH title=" " width=8%>欄位名稱</TH>
 <TH title=" " width=8%>中文說明</TH>
 <TH title=" " width=5%>資料型別</TH>
 <TH title=" " width=5%>長度</TH>
 <TH title=" " width=5%>!null</TH>
 <TH title=" " width=5%>其他屬性</TH>
 <TH title=" " width=5%>預設</TH>
 <TH title=" " width=5%>顯示</TH>
 <TH title="錄入資料時作驗證" width=5%>驗證</TH>
 <TH title=" " >備註</TH>
 <TH title=" " width=5%>插入</TH>
 <TH title=" " width=5%>刪除</TH>
</TR>
<TR >
 <TD title="欄位名稱" onclick="editCell(this);">id</TD>
 <TD title="中文說明" onclick="editCell(this);">ID</TD>
 <TD title="資料型別" onclick="selectDataType(this);">bigint</TD>
 <TD title="長度"  onclick="editCell(this);">       </TD>
 <TD title="是否為NULL"  onclick="setNull(this);">!null</TD>
 <TD title="其他屬性:PK表主鍵"  onclick="editCell(this);">pk,i++</TD>
 <TD title="預設值"  onclick="editCell(this);">       </TD>
 <TD title="顯示:Text"  onclick="selectFormElementType(this);">hidden</TD>
 <TD title="驗證:如NotEmpty,Email,IsNumber"  onclick="selectValidate(this);">       </TD>
 <TD title="欄位名稱" onclick="editCell(this,30);"></TD>
 <TD onclick=insert_row(this.parentNode)>插入</TD>
 <TD onclick=delete_row(this.parentNode)>刪除</TD>
</TR>

</TABLE>

</TD></TR></TABLE>
</div>
<SCRIPT LANGUAGE="JavaScript">
<!--
/******************* 表格編輯類 開始 *********************************************/
var ForReading = 1, ForWriting = 2;
var Meta_FileName=0,Meta_TableName=2,Meta_FolderName=3;
var Attr_Field=0,Attr_Description=1,Attr_DataType=2;
var Attr_Length=3,Attr_NotNull=4,Attr_Attrs=5;
var Attr_Default=6,Attr_Html=7,Attr_Validate=8;

function getTime(){
 var d, s = "作者:蘇翔 suxiang@126.com 日期: ";
 d = new Date();
 s += d.getYear()+"年"
 s += (d.getMonth() + 1) + "月";
 s += d.getDate() + "日";
   return(s);                                // 返回日期。
}


Hhtml='<HTML><BODY><div id=div_edit>/n';

String.prototype.Trim  =  function()  //by function check()

return  this.replace(/(^/s*)  |(/s*$)/g,  ""); 


function editCell (cell,size) {
 mySize=10
 if(!!size&&size>10)mySize=size;
 input='<INPUT ID="editCell" ONCLICK="event.cancelBubble = true;"';
 input+='ONBLUR="setCell(this.parentElement, this.value)" ';
 input+='VALUE="' + cell.innerText + '" SIZE="' + mySize + '">';
 cell.innerHTML =  input;
 document.all.editCell.focus();
 document.all.editCell.select();
}

function selectDataType(cell){
 strSelect='<SELECT id=editDateType ONCLICK="event.cancelBubble = true;"';
 strSelect+='onChange="setCell(this.parentElement, this.value)"';
 strSelect+='ONBLUR="setCell(this.parentElement, this.value)"';

 strSelect+='<OPTION value=varchar>VARCHAR ';
 strSelect+='<OPTION value=tinyint>TINYINT ';
 strSelect+='<OPTION value=int selected>INT  ';
 strSelect+='<OPTION value=bigint >BIGINT  ';
 strSelect+='<OPTION value=real >REAL  ';

 strSelect+='<OPTION value=date  >DATE   ';
 strSelect+='<OPTION value=datetime  >DATETIME   ';

 strSelect+='<OPTION value=varchar>VARCHAR ';
 strSelect+='<OPTION value=longtext>LONGTEXT ';
 strSelect+='<OPTION value=char>CHAR ';
 strSelect+='</SELECT> ';
 cell.innerHTML=strSelect;
 document.all.editDateType.focus();
}

//窗體,顯示,html
function selectFormElementType(cell )
{
 strSelect='<SELECT id=editXType ONCLICK="event.cancelBubble = true;"';
 strSelect+='onChange="setCell(this.parentElement, this.value)"';
 strSelect+='ONBLUR="setCell(this.parentElement, this.value)"';
 strSelect+='<OPTION value= >無 ';
 strSelect+='<OPTION value=text >文字 ';
 strSelect+='<OPTION value=textarea >多文字 ';
 strSelect+='<OPTION value=hidden >隱藏文字 ';
 strSelect+='<OPTION value=password>密碼 ';
 strSelect+='<OPTION value=select >下拉 ';
 strSelect+='<OPTION value=checkbox >多選 ';
 strSelect+='<OPTION value=radio >單選 ';
 strSelect+='<OPTION value="" selected>無 ';
 strSelect+='</SELECT> ';
 cell.innerHTML=strSelect;
 document.all.editXType.focus();
}

function show(obj){//by function selectValidate(cell )
 var str=''
 for (var i=0;i<obj.length;i++)
 {
  if (obj[i].selected)str+=str.length>0?','+obj[i].value:obj[i].value;
 }
 if (str.indexOf('none')>=0)str="";
 return str;
}
function selectValidate(cell )
{
 //設定驗證屬性
 strSelect='<SELECT MULTIPLE id=editValidate ONCLICK="event.cancelBubble = true;"';
 strSelect+='onChange="show(this);setCell(this.parentElement, show(this))"';
 strSelect+='onBlur="show(this);setCell(this.parentElement, show(this))"';
 strSelect+='<OPTION value="" >無 ';
 strSelect+='<OPTION value=optional  selected>非空 ';
 strSelect+='<OPTION value=numeric>數字';
 strSelect+='<OPTION value=email >Email ';
 strSelect+='<OPTION value=optional_x>非空沒空格 ';
 strSelect+='<OPTION value=numeric_x>可空數字';
 strSelect+='<OPTION value=email_x >可空Email ';
 strSelect+='<OPTION value="" >無 ';
 strSelect+='</SELECT> ';
 cell.innerHTML=strSelect;
 document.all.editValidate.focus();
}
function setCell (cell, value) {cell.innerText = value}
function setNull(cell){cell.innerText=cell.innerText=='null'?'!null':'null';}

function insert_row(row)
{
 if(!check())return;
 newRow=row.cloneNode(true);
 row.parentNode.insertBefore(newRow,row);
 //設計預設屬性
 row.childNodes[Attr_Field].innerText='';
 row.childNodes[Attr_Description].innerText='';
 row.childNodes[Attr_DataType].innerText='varchar';
 row.childNodes[Attr_Attrs].innerText='';
 row.childNodes[Attr_Length].innerText='50';
 row.childNodes[Attr_NotNull].innerText='null';
 row.childNodes[Attr_Html].innerText='text';
 SetBackColor();

}
function delete_row(row){
 if(!prompt('你真要刪除嗎?'))return;
 if(row.parentNode.childNodes.length>2)row.parentNode.removeChild(row);
 SetBackColor()
}

/******************* 表格編輯類 結束 *********************************************/


/******************* 檔案操作類 開始 *********************************************/
function getFolderPath(){//得到父路徑
 var path=location.pathname
 if(path.indexOf('/')==0)path=path.substring(1,path.length)
 return path.substring(0,path.lastIndexOf('//'))
}

function setFileName(val){document.all.meta_data.childNodes[0].childNodes[1].childNodes[0].innerText=val;}
function setOpenHidden(){document.all.meta_data.childNodes[0].childNodes[1].childNodes[1].innerText='';}
function save_to_file()
{

 fso = new ActiveXObject("Scripting.FileSystemObject");
 strFileName=accMetaData(Meta_FileName);
 if(!strFileName){alert('請在後設資料表中輸入檔名!');return;}
 var path=getFolderPath()
 tf = fso.CreateTextFile(path+"//"+strFileName+".doc.html", true);
 tf.Write (Hhtml+document.all.div_edit.innerHTML);
 tf.Close();
}

function load_data(val)
{
 if(!val)return;
 fso = new ActiveXObject("Scripting.FileSystemObject");
 var path=getFolderPath()
 ts = fso.OpenTextFile(path+'//'+val+".doc.html", ForReading);

 str=ts.ReadAll()

 ts.Close()

 str=str.substring("<HTML><BODY><div id=div_edit>".length,str.length)+"<div>"
 document.all.div_edit.innerHTML=str;

 //accFileName(M);
 //setOpenHidden();
}
function getOpenFile(){
 var path=getFolderPath()
 path=path.replace(/[%20]/g,' ');
 fso = new ActiveXObject("Scripting.FileSystemObject");

 f = fso.GetFolder(path);
  fc = new Enumerator(f.files);
  s = "<option value=>";
  s += "<option value=>請選擇";
  for (; !fc.atEnd(); fc.moveNext())
  {
  xxxm=""+fc.item()
  if(xxxm.lastIndexOf('.doc.html')==(xxxm.length-'.doc.html'.length)){//if(~):~去掉了.bak
   xname=xxxm.substring(xxxm.lastIndexOf("//")+1,xxxm.length-9)
   s+="<option value="+xname+">"+xname;
  }
 }
 return s;
}
function openFile(cell){
 strSelect='<SELECT id=openFile ONCLICK="event.cancelBubble = true;"';
 strSelect+='onChange="load_data(this.value)"';
 strSelect+='onBlur="setCell(this.parentElement,/'/')"';

 //strSelect+='ONBLUR="load_data(this.value)"';

 strSelect+=getOpenFile();
 strSelect+="</SELECT>";
 cell.innerHTML=strSelect;
 document.all.openFile.focus();
}
/******************* 檔案操作類 結束 *********************************************/
/******************* 檢查完整類 開始 *********************************************/

function check(){
try{
 msg="";
 var table=document.all.tedit;
 var objRows=table.childNodes[0].childNodes;
 iRows=objRows.length;
 row=objRows[iRows-1];
 for(var i=0;i<row.childNodes.length;i++)
 {
  row.childNodes[i].innerText=row.childNodes[i].innerText.Trim()
 }
 if(!row.childNodes[Attr_Field].innerText){msg+='未行第一列"欄位名"不可為空!/n';}
 if(!row.childNodes[Attr_Description].innerText){msg+='未行第二列"中文說明"不可為空!/n';}
 if(!row.childNodes[Attr_DataType].innerText){msg+='未行第三列"資料型別"不可為空!/n';}
 if(!(row.childNodes[Attr_DataType].innerText.indexOf("har")==-1)&&!
  /^[1-9][0-9]*[0-9]$/.test(row.childNodes[Attr_Length].innerText))
  {msg+='未行第四列"資料型別長度"不可為空並且只能是數字!/n';}
 if(!!msg)msg+="請刪除或修改未行";
 if(!!msg){alert(msg);return false;}
 return true;
}catch(e){alert("function check"+'/n/r錯誤'+e)}
}

/******************* 檢查完整類 結束 *********************************************/
/******************* 生成結果類 開始 *********************************************/
function create_form()
{
 if(!check())return;
 strScript='';
 var strForm='METHOD=POST ACTION=<?=$ME_ALL?> >/n<INPUT TYPE="hidden"name="cmd"value=<?pv($cmd)?>>/n<TABLE>/n';
 var table=document.all.tedit;
 var objRows=table.childNodes[0].childNodes;
 var strOnSubmit='';
 iRows=objRows.length;
 iCols=objRows[0].childNodes.length;
 for (var i=1;i<iRows;i++){
  Row=objRows[i]; 
  Cells=Row.childNodes;
  if(!Cells[Attr_Html].innerText)continue;
  if(Cells[Attr_Html].innerText=='hidden')strIsDisplay=' style="display:none;"';
  else strIsDisplay='';
  strForm+='/t<TR '+strIsDisplay+'>/n/t/t<TD>'+Cells[Attr_Description].innerText+'</TD>/n/t/t<TD>/n/t/t';
  strValue=" VALUE=/'<?pv($frm['"+Cells[Attr_Field].innerText+"'])?>/'";
  strValuex="<?pv($frm['"+Cells[Attr_Field].innerText+"'])?>";
  switch(Cells[Attr_Html].innerText)
  {
   case 'text':
   case 'textarea':
    temp=parseInt(Cells[Attr_Length].innerText)
    maxlength=temp>0? " maxLength="+temp :" ";
    if(temp>50||Cells[Attr_Html].innerText=='textarea')
    {
     strForm+='/t<TEXTAREA ROWS="3" COLS="60" '+ maxlength+" ";
     strForm+='NAME= '+Cells[Attr_Field].innerText+'>'+strValuex+'</TEXTAREA>/n/t/t</TD>/n/t</TR>/n'; 
    }else
    strForm+='/t<INPUT TYPE=text  NAME='+Cells[Attr_Field].innerText+maxlength +strValue+">/n/t/t</TD>/n/t</TR>/n";

    break;
   case 'password':
    strForm+='/t<INPUT TYPE="password" NAME='+Cells[Attr_Field].innerText+maxlength+ strValue+">/n/t/t</TD>/n/t</TR>/n";
    break;
   case 'checkbox':
    strForm+='/t<INPUT TYPE=checkbox NAME='+Cells[Attr_Field].innerText+">/n/t/t</TD>/n/t</TR>/n";
    break;
   case 'radio':
    strForm+='/t<INPUT TYPE=radio NAME='+Cells[Attr_Field].innerText+">/n/t/t</TD>/n/t</TR>/n";
    break;
   case 'hidden':
    strForm+='/t<INPUT TYPE="hidden" NAME='+Cells[Attr_Field].innerText+strValue+">/n/t/t</TD>/n/t</TR>/n";
    break;
   case 'select':
    strForm+='/t<SELECT NAME='+Cells[Attr_Field].innerText;
    strForm+="><OPTION VALUE=''>請選擇</SELECT>/n/t/t</TD>/n/t</TR>/n";
    break;
  }
  switch(Cells[Attr_Validate].innerText)
  {
   case '':
   case null:
    break;
   case 'optional':
    strOnSubmit+="/nthis."+Cells[Attr_Field].innerText+".description='"+Cells[Attr_Description].innerText+"';";
    strOnSubmit+="/nthis."+Cells[Attr_Field].innerText+".optional=true";
    break;
   case 'numeric':
    strOnSubmit+="/nthis."+Cells[Attr_Field].innerText+".description='"+Cells[Attr_Description].innerText+"';";
    strOnSubmit+="/nthis."+Cells[Attr_Field].innerText+".numeric=true";
    break;
   case 'email':
    strOnSubmit+="/nthis."+Cells[Attr_Field].innerText+".description='"+Cells[Attr_Description].innerText+"';";
    strOnSubmit+="/nthis."+Cells[Attr_Field].innerText+".email=true";
    break;
  }
 
 }
strOnSubmit="";
 if(strOnSubmit)strOnSubmit='<FORM onSubmit="'+strOnSubmit+"/nreturn verify(this)/"/n";
 else strOnSubmit+='<FORM ';
 strForm+='<TR><TD><INPUT TYPE="submit"VALUE="提交">/n</TD><TD><INPUT TYPE="reset"VALUE="重置"></TD><TR>';
 strForm+="/n</TABLE>/n</FORM>";
 strForm=strScript+strOnSubmit+strForm
 return strForm;
}
function CreateValidate()
{
 if(!check())return;
 var strValidate='function validate_form(&$frm) {/n/t$strMsg="";/n/t';
 var table=document.all.tedit;
 var objRows=table.childNodes[0].childNodes;
 iRows=objRows.length;
 iCols=objRows[0].childNodes.length;

 for (var i=1;i<iRows;i++){
  Row=objRows[i]; 
  Cells=Row.childNodes;
  //if(!Cells[Attr_Field].innerText.toUpperCase=='ID')continue;
  if(!Cells[Attr_Validate].innerText)continue;
  _Field=Cells[Attr_Field].innerText
  _Name=Cells[Attr_Description].innerText
  switch(Cells[Attr_Validate].innerText)
  {
   case '':
   case null:
    break;
   case 'optional':
    strValidate+="if(empty($frm['"+_Field+"'])){/n/t/t$strMsg.='<LI>"+_Name+"不可為空,請您檢查';/n/t}/n/t"
    break;
   case 'numeric':
    strValidate+="if(!is_numeric($frm['"+_Field+"'])){/n/t/t$strMsg.='<LI>"+_Name+"應為數字,請您檢查';/n/t}/n/t"
    break;
   case 'email':
    strValidate+="if(!IsEmail($frm['"+_Field+"'])){/n/t/t$strMsg.='<LI>"+_Name+"郵件格式不對,請您檢查';/n/t}/n/t"
    break;
  }
 }
 strValidate+="if(!empty($strMsg))return $strMsg;else return 0; /n}/n"
 return strValidate;
}
function accMetaData(i,val)// by function create_DDL()

 var e=document.all.meta_data.childNodes[0].childNodes[1].childNodes[i];
 if(!val)return e.innerText;
 else e.innerText=val;return i;
}

function trim_comma(val)
{
 return val.substring(0,val.lastIndexOf(','))
}

function create_DDL(type)
{
 var strCreateTableName=accMetaData(Meta_TableName);
 var strCreateTable="Drop  TABLE "+strCreateTableName+"/n/n"
 strCreateTable+="CREATE  TABLE "+strCreateTableName+"(/n";
 var strUpdate="UPDATE "+strCreateTableName+" SET/n";
 var strInsertBefore="INSERT INTO "+strCreateTableName+"(/n";
 var strInsertAfter="/n)VALUES(/n";
 var strWhere="/nWHERE id=$id";
 if(!check())return;
 if(!strCreateTableName){alert('請在第一個表後設資料中輸入表名');return}
 var table=document.all.tedit;
 var objRows=table.childNodes[0].childNodes;
 iRows=objRows.length;
 iCols=objRows[0].childNodes.length;

 for (var i=1;i<iRows;i++){
  Row=objRows[i];
  _FiledName=Row.childNodes[Attr_Field].innerText//取得欄位名稱
  _DataType=Row.childNodes[Attr_DataType].innerText//取得資料型別
  _DataLength=Row.childNodes[Attr_Length].innerText//取得資料長度
  _NotNull=Row.childNodes[Attr_NotNull].innerText//取得
  _Attrs=Row.childNodes[Attr_Attrs].innerText
  _IsClient=!!(Row.childNodes[Attr_Html].innerText)
  _DefaultText=Row.childNodes[Attr_Default].innerText;//預設值(寫入預設和資料預設)
  _DefaultVale=((_DefaultText.length>0) &&(!_IsClient))?_DefaultText:"";//客戶端沒有顯示,且是是預設值
  _Default=_DefaultText.length>0?" DEFAULT "+_DefaultText+" ":"";
  //alert(_Default+"|"+_DefaultText)
  if((_FiledName!='id')&&(_IsClient))
  {
   //得到Update Sql 語句
   if((_DataType.indexOf('char')>=0)||(_DataType.indexOf('text')>=0)||
   (_DataType.indexOf('area')>=0)||(_DataType.indexOf('date')>=0))
    strUpdate+="/t"+_FiledName+"='$frm["+_FiledName+"]',/n";
   else strUpdate+="/t"+_FiledName+"=$frm["+_FiledName+"],/n";
  }  
  if(_FiledName!='id'){////得到 Insert Sql 語句
   strInsertBefore+="/t"+_FiledName+",/n";
   if((_DataType.indexOf('char')>=0)||(_DataType.indexOf('text')>=0)
    ||(_DataType.indexOf('area')>=0))//||(_DataType.indexOf('date')>=0)
    strInsertAfter+=_DefaultVale?"/t/'"+_DefaultVale+"',/n":"/t/'$frm["+_FiledName+"]',/n";
   else strInsertAfter+=_DefaultVale?"/t"+_DefaultVale+",/n":"/t$frm["+_FiledName+"],/n";
  }
  switch(_DataType)
  {
   case 'char':
   case 'varchar':
    strCreateTable+="/t"+_FiledName+' '+_DataType+"("+_DataLength+")"+_Default;
    strCreateTable+=_NotNull.indexOf('null')>0?" not null ,/n":",/n"
    continue;
   default:
    strCreateTable+="/t"+_FiledName+' '+_DataType+_Default;
    if(_Attrs.indexOf('pk')>=0){strCreateTable+=" PRIMARY KEY ";}
    if(_Attrs.indexOf('++')>=0)strCreateTable+=" AUTO_INCREMENT ";
    strCreateTable+=_NotNull.indexOf('null')>0?" not null ,/n":",/n"
    continue;
  }
  
 }
 strCreateTable = trim_comma(strCreateTable);
 strUpdate = trim_comma(strUpdate);
 strInsertBefore = trim_comma(strInsertBefore);
 strInsertAfter = trim_comma(strInsertAfter);
 strUpdate+=strWhere;
 strInsert=strInsertBefore+strInsertAfter+")";
 
 strCreateTable+="/n)"
 strDDL=strCreateTable+"/n/n"+strUpdate+"/n/n"+strInsert

 if(!type)return strDDL;
 if(type.indexOf('sert')>0)return strInsert;
 if(type.indexOf('pdat')>0)return strUpdate;
}
function getVadateFunction(){return CreateValidate();}
function gerInsertFunction()
{
 sql=create_DDL('Insert');
 sql=sql.replace(//n/g,'/n/t');
 str="function Insert($frm)/n{/n";
 str+="/t$sql=/""+sql+"/";/n"
 str+="/tdb_query($sql);/n}/n/n"
 return str;
}
function getSqlUpdate()
{
 sql=create_DDL('Update');
 sql=sql.replace(//n/g,'/n/t')
 return sql;
}

function CreateAddFile()
{
 var strScriptName=accMetaData(Meta_TableName);
 var strAddHeader="<?php/n/**/nMAIN  "+getTime()+"/n**//n/n";
 var strAddIsPostBack="include(/"../application.php/");/n/nrequire_login();/n/n";
 strAddIsPostBack+="if (match_referer() && isset($HTTP_POST_VARS)) {/n/t";
 strAddIsPostBack+="$frm = $HTTP_POST_VARS;/n/n/t";
 strAddIsPostBack+="$errValidate = validate_form($frm);/n/t";
 strAddIsPostBack+="if (empty($errValidate)) {;/n/t/t";
 strAddIsPostBack+="Insert($frm);/n/t/t";
 strAddIsPostBack+="$NoticeMsg = '新增成功';/n/t/t//Redirect($url, $message=/"/", $delay=0) {/n/t/t";
 //strAddIsPostBack+="//include(/"$CFG->phpdir/header.php/");/n/t";
 //strAddIsPostBack+="//include(/"templates/"+strScriptName+"_form.php/");/n/t";
 //strAddIsPostBack+="//include(/"$CFG->templatedir/footer.php/");/n/t";
 strAddIsPostBack+="die;/n/t}/n}/n/n"
 var strAddNoPostBack=''//"//include(/"$CFG->templatedir/header.php/");/n";
 //strAddNoPostBack+="//include(/"$CFG->templatedir/form_header.php/");/n";
 strAddNoPostBack+="include(/"$CFG->tmpdir/form_header.php/");/n";
 strAddNoPostBack+="include(/"templates/"+strScriptName+"_form.php/");/n";
 //strAddNoPostBack+="//include(/"$CFG->templatedir/footer.php/");/n";
 var strFunction="/**/nFUNCTION/n**//n/n"
 var strValidateFunction=getVadateFunction()
 var strInsertFunction=gerInsertFunction()
 strFunction+=strValidateFunction+strInsertFunction
 var strMain=strAddHeader+strAddIsPostBack+strAddNoPostBack
 var strAdd=strMain+strFunction+"/n?>";
 return strAdd;

}

function CreateUpdateFile()
{
 var strScriptName=accMetaData(Meta_TableName);
 var strUpdateMain="<?php/n/**/nMAIN  "+getTime()+"/n**//n/ninclude_once(/"/././web.conf.php/");/nrequire_login();/n/n";
 strUpdateMain+="if (match_referer() && isset($HTTP_POST_VARS)) {/n/t";
 strUpdateMain+="$frm = $HTTP_POST_VARS;/n/n/t";
 strUpdateMain+="$errValidate = validate_form($frm);/n/t";
 strUpdateMain+="if (empty($errValidate)) {/n/t/t";
 strUpdateMain+="Update($frm);/n/t/t";
 strUpdateMain+="$NoticeMsg = '修改成功';/n/t/t//goback/n/t/t";
 strUpdateMain+="die;/n/t}/n}/n/n/t/nelse $frm=LoadData();/n/n";
 strUpdateMain+="include(/"$CFG->tmpdir/form_header.php/");/n";
 strUpdateMain+="include(/"templates/"+strScriptName+"_form.php/");/n";
 var strLoadDataFun="function LoadData(){/n/t";
 strLoadDataFun+="global $SESSION;/n/t";
 strLoadDataFun+="$id=$SESSION['user']['id'];/n/t"
 strLoadDataFun+='$sql="select * from '+strScriptName+' where id=$id";/n/t';
 strLoadDataFun+="$qid= db_query($sql);/n/t";
 strLoadDataFun+="return DbFetchArray($qid);/n}/n/n";

 var strUpdateFun="function Update($frm){/n/t";
 strUpdateFun+="global $SESSION;/n/t";
 strUpdateFun+="$id=$SESSION['user']['id'];/n/t";
 strUpdateFun+="$sql=/""+getSqlUpdate()+"/";/n/t";
 strUpdateFun+="return db_query($sql);/n}/n/n";

 var strValidateFun=getVadateFunction()
 var strUpdateFunction="/**/nFUNCTION/n**//n/n"
 strUpdateFunction+=strValidateFun+strLoadDataFun+strUpdateFun
 var strUpdate=strUpdateMain+strUpdateFunction +"?>"
 return strUpdate;
}

function create_Doc(val)
{
 FolderName="templates"
 val=accMetaData(Meta_TableName)
 if(!val)return;
 var CurFolderPath=getFolderPath()

 fso = new ActiveXObject("Scripting.FileSystemObject");
 FolderPath=CurFolderPath+"//"+FolderName+'//';
 var blnExists=fso.FolderExists(FolderPath)
 if(!blnExists)fso.CreateFolder(FolderPath);
 
 tf = fso.CreateTextFile(FolderPath+val+"_form.php", true);
 tf.Write (create_form());
 tf.Close();

 tf = fso.CreateTextFile(FolderPath+val+".sql", true);
 tf.Write (create_DDL());
 tf.Close();

 tf = fso.CreateTextFile(CurFolderPath+"//"+val+"_add.php", true);
 tf.Write (CreateAddFile());
 tf.Close();

 tf = fso.CreateTextFile(CurFolderPath+"//"+val+"_update.php", true);
 tf.Write (CreateUpdateFile());
 tf.Close();

}
/******************* 生成結果類 結束 *********************************************/

//-->
</SCRIPT>
<INPUT TYPE="button"value="儲存"onclick=save_to_file()>

<INPUT TYPE="button"value="生成"onclick=create_Doc()>

<SCRIPT LANGUAGE="JavaScript">
function create_new()
{
 var doc_main=document.all.tblMain
 var tempDoc=doc_main.childNodes[0]
 var newDoc=tempDoc.cloneNode(true);
 doc_main.insertBefore(newDoc,tempDoc);
}

function textstyle(obj) {
 if(obj.type=="button"||obj.type=="submit"||obj.type=="reset"){
  obj.style.fontWeight="bold";
  obj.style.backgroundColor="#6699CC";
  obj.style.borderTopColor="#66CCCC";
  obj.style.borderBottomColor="#66FFCC";
  obj.style.borderLeftColor="#66CCCC";
  obj.style.borderRightColor="#66FFCC";
 }
}

</SCRIPT>
<div id=div_save></div>
<SCRIPT LANGUAGE="JavaScript" defer=true>
function SetBackColor(){
 var table=document.all.tedit;
 var objRows=table.childNodes[0].childNodes;
 var tag=0;
 for (var i=0;i<objRows.length;i++){
  e=objRows[i]
  if(tag==0){
   e.style.backgroundColor='#FFFFF7';
   tag=1;
  }else {
   tag=0;
   e.style.backgroundColor='#FEFDE0';
  }
 }
}
SetBackColor();
</SCRIPT>

相關文章