(代码生成)JS写的代码生成器-编码也可以这么爽..

以下代码保存为HTML格式即可.
敬告:引用请注明出处

<script language = "javascript">
/*
Autor:Kangco
Date:2007/09/27
*/
function OutFile()
{
var text = "sdfsd";
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition",
"attachment;" + " filename="+pid+".html");
response.getOutputStream().write(text.getBytes());
response.getOutputStream().flush();
}

function SaveAsOk()
{
 document.execCommand("saveAs");
}

function WriteFile()
{
  var   fso   =   new   ActiveXObject("Scripting.FileSystemObject");  
  var   a   =   fso.CreateTextFile("c://testfile.txt",   true);  
  a.WriteLine("This   is   a   test.");  
  a.Close();  
  alert("我已经在你的C盘根目录下生成了一个testfile.txt的文件!");  
}

function Split_rn()
{
//alert(split);
//substring("asdfs")
alert(document.getElementById("A005").value);
alert(document.getElementById("A005").value.split("/r/n")[0]);
alert(document.getElementById("A005").value.split("/r/n")[1]);
}

function docWrite_rn()
{
//alert(split);
//substring("asdfs")
var o_OK_value = document.getElementById("A005").value;
document.write("sdf");
document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+o_OK_value.split("/r/n")[0]+ "<br>");
document.write(o_OK_value.split("/r/n")[1]+ "<br>");
}

function JS_1()
{
 var o_split = document.getElementById("A005").value.split("/r/n");
 for (var i = 0; i < o_split.length;i++)
 {
  document.write("document.getElementById(/""+o_split[i]+"/").style.display=/"none/";");
  document.write("<br>");
 }
}

function JS_2()
{
 
 var o_split = document.getElementById("A005").value.split("/r/n");
 var o_A006_value = ReplaceAll(ReplaceAll(document.getElementById("A006").value,"/r/n","<br>")," ","&nbsp;");
 document.write("<a href='javascript:history.go(-1);'>返回</a><br>");
 for (var i = 0; i < o_split.length;i++)
 {
  //document.write("document.getElementById(/""+o_split[i]+"/").style.display=/"none/";");
  //document.write("<br>");
  //alert(o_split[i].split(",").length);
  var out_value = o_A006_value;//每次進行循環替換前均初始化為界面設定值
  
  //智能判斷是否產生,以免產生垃圾代碼
  var b_OK = "N";
  for(var j = 0; j < o_split[i].split(",").length;j++)
  {
   if(o_split[i].split(",")[j].trim() != ""&&o_split[i].split(",")[j].trim() != null)
   {
    b_OK = "Y";//其中一個不為空,即為有效產出
   }
  }
  //alert(b_OK );
  if(b_OK == "Y")
  {
   for(var j = 0; j < o_split[i].split(",").length;j++)
   {
    out_value = ReplaceAll(out_value,"{"+j+"}",o_split[i].split(",")[j].trim());
   }

   document.write("<div style = 'font-size:12px'>"+out_value+"</div>");
  }
 }

 
}
//Replace進一步擴展
function ReplaceAll(strOrg,strFind,strReplace)
{//eg:ReplaceAll(o_txtUNID_PRICE.value,",","")
    var index = 0;
    while(strOrg.indexOf(strFind,index) != -1)
    {
        strOrg = strOrg.replace(strFind,strReplace);
        index = strOrg.indexOf(strFind,index);
    }
    return strOrg
}

function JS_3()
{
 var o_AutoCode = document.getElementById("AutoCode");
 var o_TempCode = document.getElementById("TempCode");
 if(o_AutoCode.style.display == "")
 {
  o_AutoCode.style.display = "none";
  o_TempCode.style.display = "";
  document.getElementById("temp_eg").value = "產出設定";
  document.getElementById("006").disabled = true;
 }
 else
 {
  o_AutoCode.style.display = "";
  o_TempCode.style.display = "none";
  document.getElementById("temp_eg").value = "示例模板";
  document.getElementById("006").disabled = false;
 }
}
String.prototype.trim = function()
{
 var i,j;
 var str = this.replace(/(^/s*)|(/s*$)/g,'');
    if(str == "") return "";
    for(i=0;i<str.length;i++)
    if(str.charAt(i) != ' ') break;
    if(i >= str.length) return "";
    for(j=str.length-1;j>=0;j--)
    if(str.charAt(j) != ' ') break;
    return str.substring(i,j+1).replace(/(^/s*)|(/s*$)/g,''); 
}

</script>


<input id="001" type="hidden" value="button" οnclick="OutFile()"/>
<input id="002" type="hidden" value="button" οnclick="SaveAsOk()"/>
<input id="003" type="hidden" value="WriteFile" οnclick="WriteFile()"/>

<input id="004" type="hidden" value="Split" οnclick="Split_rn()"/>
<input id="005" type="hidden" value="docWrite" οnclick="docWrite_rn()"/>
<br>
<input id="006"  type="button" value="產生代碼" οnclick="JS_2()"/>
<input id="temp_eg"  type="button" value="示例模板" οnclick="JS_3()"/>
<br>
<table id = "AutoCode">
<tr>
<td>參數</td>
<td>
<textarea id="A005" type="text" style="width:600px;height:200px;">
txtCONVERT_DATE,折舊日期</textarea>
</td>
</tr>
<tr>
<td>
模板
</td>
<td>
<textarea id="A006" type="text" style="width:800px;height:200px;">
document.getElementById("img{0}").style.display="none";//{1}
var o_{0}=document.getElementById("{0}");
if(o_{0}.value.trim()=='')
{//{1}
        document.getElementById("img{0}").style.display="";
        ShowError('00018','{1}');
        o_{0}.focus();
        return false;
}
</textarea>
</td>
</tr>
</table>
<table id = "TempCode" style = "display:none;font-size:12px;width:100%" cellspacing="0" cellpadding="0" border = "1">
<tr>
<td nowrap>
[JS]設定圖像顯示為none
</td>
<td>
<textarea type="text" style="width:100%">
document.getElementById("img{0}").style.display="none";//{1}</textarea>
</td>
</tr>
<tr>
<td>
[JS]IsMust檢測
</td>
<td>
<textarea type="text" style="width:100%;height:200px">
var o_{0}=document.getElementById("txtDEPOSIT_ID");
if(o_{0}.value.trim()=='')
{//{1}
        document.getElementById("img{0}").style.display="";
        ShowError('00018','{1}');
        o_{0}.focus();
        return false;
}</textarea>
</td>
</tr>

</table>
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架,基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索页面。通过界面模板与代码模板管理功能,可自定义生成程序的界面风格与输出代码,将最大限度提高ASPX/ASP/PHP/JSP等各种程序的编效率。 01、支持生成的ASPX/ASP/PHP/JSP等页面在本机自动发布、调试(需安装IIS或对应WEB服务器) 02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySql、Excel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、支持CSS统一设置页面风格 06、支持多种控件输入方式: 文本框 文本域 UBB文本框(支持UBB文本输入) 密码框 隐藏域 日期选择 单选框 复选框 下拉框 多选列表 单选列表 批量上载 上载文件 上载到库 07、支持多种信息显示方式: 显示文字 链接文件 文本框 文本域 显示图片 背景声音 视频播放 显示flash 08、支持检测提交字符的最小、最大输入长度、是否空值/唯一值、文本类型:★ 不检测 非特殊字符 仅单词字符 仅单词字符空格 仅26个字母 仅中文字符 仅允许整数 仅允许小数 仅日期/时间 仅日期+时间 仅日期 仅时间 仅允许邮箱 仅允许网址 仅允许IP 仅身份证号 仅国内电话 仅国内手机 09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的文本数据 ★ 12、支持多文件上载、修改、删除记录时同步删除文件 13、支持控件名加密,使输入控件的名称与字段名不同,防止他人从客户端HTML中猜解 ★ 14、支持列表、搜索页面对数据记录进行实时排序、修改、批量删除等功能 15、支持表头/单独表格搜索两种布局方式 16、提供多种灵活翻页方案,用户可设置每页记录条数、上/下页、前/后N页、输入数字跳转到指定页面等,提高海量数据翻页速度 17、提供丰富的建站常用VB、JS函数库 ★ 18、更多扩展功能: 添加、修改页面在保存信息前进行预览功能 添加、修改页面提交后自动跳转并刷新列表页 字段描述批量格式化,可从字段名、描述生成,加强英文字符处理 列表、搜索页面隔行颜色、点击变色设置 根据数据库字段允许空值状态自动设置输入检测代码 页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件自动读取链接数据表值的实际信息 发送邮件功能,设置字段为邮件对应信息,可发送附件 ★ (繁、简、英)单语言版本 ★ 多语言页面实时翻译功能(默认:繁、简、英,可增加其它语言) ★ 多语言编码支持(GB2312/UTF8) ★ 生成提交校验码图片 ★ 搜索、列表文件以详细列表页(留言板风格)显示 生成权限,限制用户对指定页面的添加、删除、编辑权 将查询结果导出为CSV、HTML、EXCEL文件 ★ 生成不同选择字段的SQL语句 生成数据库字典 ★ 模板代码生成器,可自定义模板、变量生成代码 ★ 19、提供建站常用辅助工具: 屏幕尺 剪切板,保存最近指定次数的历史记录 常用加解密、编解码(DES、MD5、SHA、BASE64) 批量提取文本,支持正则表达式,可将HTML等文件中指定内容存入数据库 批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器(可设置、保存常用正则表达式) 获取键盘的按键值 网页隐藏资源下载,可下载无法直接得到URL的SWF、图片、音乐等资源 获取汉字的拼音、五笔编码、笔画数、笔顺名、部首等信息,并可进行汉字繁/简体,GB/BIG转换 代码编排器,CSS排版、JS、ASP、HTML注释清理
由《Ext JS源码分析与开发实例宝典》作者:彭仁夔团队开发而成 90%以上代码可以生成验证、生成三层代码、生成完善的权限系统、生成数据库等功能 功能之强大用了就知道! 两年前,我负责指导Java方向实训,在最后评审准备过程,.Net组负责人要求Java和.Net的归结一起统一评审,Java指导老师们的第一反应是Java和.Net开始怎么能相提并论? 为什么不能并论?是因为Java开发阳春白雪?在我们的潜意识中,Java开发就是让程序员(学生)一行一行地编代码,编HTML、CSS等,而.Net开发只要把控件拖到页面上即可,Java开发的效率一定比.Net低很多很多。 那么能不能提高Java的开发效率呢?作者经过分析并总结思考,发现业务系统有一定的共性所有操作,即增删改查,既然有共性,那么能不能抽象出来? 可以思考一下,通过继承、组件化等重用设计方式是可以抽象代码的共性,但是不同表(实体)增删改查的内容是不同的,通过泛型也很难抽象出来的。如对于A表的查询和对于B表的查询都需要使用到SQL语句,怎么去剥离出来? 此时,我们就需要采用另外一种方式,把它们抽象出来更高层级的模板,然后把不同数据传入该模板的占位符,这样就变成不同的代码,这种方式就是代码生成技术。 在软件的设计过程中,代码生成及重用设计仿若陌路人,互相排斥。重用设计中很多的共性是不能抽象出来的,而一味追求生成,造成大量的雷同代码,是重用设计人员或真正开发人员最不能容忍的事件。 如果把它们两个结合起来,那就是完全不同的效果,首先通过重用设计抽象其能抽象的代码,其不能抽象的共性通过生成技术生成,开发效率就会成倍增加。以前我们都是在X或y轴上分别进行,其最大的点也不过是线,如果两者结合起来,其变成一个平面,把我们的重用从点提高到面。如下图所示: 面。如下图所示, Y重用 现在的软件开发不再仅仅是编代码,重用等,而是需求调研、架构设计、数据库、编码开发、测试部署等过程的有机组合,组合的好与坏,其结果相差万里,这就是著名的米格-25效应。 在开发过程怎么去把这些最大效应化呢?回想一下我们的开发流程: 需求开发,形成文档 采用powerDesigner等进行实体及实体关系的设计 通过Pdm创建数据库 在开发工具中创建搭建项目 通过相关的工具(hibernate tools,myeclipse)生成实体 设计及编Dao 设计及编Service 设计及编Action及相关页面 这样的线性流程有着极大的问题,首先架构师或数据库专家不是圣人,设计数据库,Dao,Service接口之后,就不需要修改,在编码过程中,会进行大量的修改,特别是那种那只懂数据库的专家在设计之后,开发人员怨声载道。另外设计的dao,service接口及实现很多都用不着,用得着的根本就没有设计。因为需要的dao,service很多都是由页面根据取数操作的不同而进行不同的编。 开发过程的修改,就会带来原前置流程步骤的修改,所以软件开发完成之后,不会有很多公司其PDM与数据库、实体是一一对应的。而有一些是必须要修改,如在实体中修改属性,一定要到数据库中修改,到dao,service,action,page一一进行修改,如果修改的是外键属性,修改的代码更为复杂。开发人员最痛苦的事情就无穷无尽的修改,领导简单的一句话:不就修改一个属性吗?你可能就要改一个下午。 能不能有这样的方法呢?修改一处其它处跟着改,这时就需要把原来的线性流程乾变换,改成为无前置的试,即卫星城的方式,中心城就是模型,可以称为Domain、域、实体,在实体的基础是加上一些设计,如下图所示: 现在只要中间模型发生变化,其变化会通过其背后的关系推向卫星城,让其发生相对应的变化,就像蝴蝶效应一样。 此时,我们可以站在一个更高的层面去思考开发,开发不仅仅是代码,开发不仅仅是处理代码之间关系,还需要处理与数据存储的关系,与测试部署关系等。 这些关系我们需不需要去体现出来,肯定需要。我们可以把这些关系看作是软件中区别于业务逻辑属性的特殊属性,这种属性主要包括: 与数据存储之间的关系 代码结构组织的方面(如采用三层) 与设计及设计文档的关系 与开发模型(如瀑布)的关系 与需求及需求变更的关系 与测试部署之间的关系 除了这些特殊关系,代码中还有实体之间的关系,业务关系等。 我们可以发现软件不单纯是一个对象,而且是一组关系。它们相互关联,相互牵制。 续而推之,我们编的类也是关系,是处理一类事物的抽象关系。泛型是处理类的抽象关系。所有东西都是关系体。 那么能不能在现有的面向对象的理论上推进一步呢?世界不是一个个单独的对象,而是不同的对象相互发生关系的有机结构体(可以称为关系体),只有这样,世界才多姿多彩。就算是一个个对象,它也不是静止的,它的内部也是由不同分子原子发生作用的结果,可以讲对象也是一个关系体。 软件是用来对世界进行描述的一种方式,最初我们采用过程的编程,后来与世界的描述不相符,所以就出现了面向对象,而现在面向对象并不能很好地解析如抽象类,Service类等。要解释这些东西,最好的方式是通过关系来表达。也就是面向对象的编程方式可以更进一步地改进为面向关系编程方式。 面向关系编程需要首先需要找到软件模型与需求、架构,数据,测试,部署之间的变化关系。这些关系有业务层面的,也有开发层面的。这种关系可以抽离出来,形成模板。 接下来把业务模型+关系模板通过工具生产出来,就成为一个有血有肉的软件。Mgicode(码奇)生成器就从这里出发,帮我们抽象软件背后的关系,提高开发效率。 所以通过Mgicode生成器,你可以获得如下好处: 根据设计(pdm,数据库等)快速生成可运行的项目。 修改实体之后,会帮助你找到所有需要修改的东西,并且给出最佳的修改方案。 统一代码编程风格(如同一项目中选择几种不同日历控制) 把自己的项目模板化(关系化),方便之后使用 把模板化的项目放到Mgicode市场获得一些外快。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值