hta+vbs+js+div+css (javascript是原生态的)
talbe是javascript动态生成的,根据你的sql语句来的,分页是vbs用数组来造的轮子,vbs这脚本虽然强大,却没有返回数据集的东东,数组来做简单的分页还是比较简单的,批量跟新呢?是上传execl来更新的,最好是用vba操作execl的话,直接在execl里修改了立马更新数据库,只是个小工具,目前还不是很强大不是很满意,慢慢做,局限hta不能跨平台只能windows,不能和硬件结合。优点调用webservies不需要考虑域的问题,做一个小巧强悍的工具还是比较方便的,因为hta直接双击就OK了,在windos下还是目前发现最方便的。算式小玩下hta这个东东吧!注意是目前网上没有我这么干的人,明确的说是可以这么干,关键是你愿不愿意!架构太大千万别玩,感谢公司没给太多任务才有时间搞这个小东东,js还是必须要强悍。hta去写花了1周时间写了个抽奖程序!不过要我写是有代价的,必须特等奖!有时间以前上传。这个东西只能做些小东西,大东东还是java做服务端,强悍的js做客户端。
示例图片:
2. [代码]造的轮子比较粗糙,还要优化,没有用jquery,因为准备出事js方向的工作
function initDB(){
//返回数据库对象
var y = document.getElementById("gd").value;
if(y == ""){
document.getElementById("validate").innerHTML="工单号不能为空!";
//document.getElementById("gd").focus();
return true;
}else{
document.getElementById("validate").innerHTML="";
}
var usern = /^[a-zA-Z0-9_-]{1,}$/;
if (!y.match(usern)){
{
alert("工单号只能由字母数字-组成\n!");
document.getElementById("gd").focus();
return false;
}
}
if (y.length <14 || y.length > 14){
alert("工单号为14个长度为数字,字母,-组成的字符串\n!");
document.getElementById("gd").focus();
return false;
}
strSql = "SELECT ta_ecm03,ecm03,ta_ecm09,ecm06,ecm45,ta_ecm08,ecm311,ecm301,ecm312,ecm313 FROM ecm_file WHERE ecm01 ='"+y+"' ORDER BY ta_ecm03,ecm03";
ConnectDatabase("ORACLE","TOPDB","T41","T41","","","")
//清空table表格
if(document.getElementById("table").rows.length > 0){
removeAll();
}
hh = GetLenOfField(strSql); //数据的列长
ll = GetLenght(strSql); //数据的行长
showPageInfo(ll,hh);
var arrayObj;
var jsArray;
var arrayObjName;
var jsArrayName;
//获得getSystemData(strSql)方法返回的数组对象
arrayObj = getSystemData(strSql);
//利用VBArray函数把对象转换为数组
jsArray = VBArray(arrayObj).toArray();
arrayObjName = getSystemDataName(strSql);
jsArrayName = VBArray(arrayObjName).toArray();
_table=document.getElementById("table");
_table.border="0px";
_table.width="1306px";
//生成表格,采用appendChild
//添加表名称到动态table第一行
cur_page_info.innerHTML = "当前页:"+cur_page;
var rowName=document.createElement ("tr"); //表名称行
rowName.className="th" //'设置该行的样式;
rowName.id=1;
document.getElementById("newbody").appendChild (rowName);
for(var i=1;i<=ll/hh;i++){
var cellName=document.createElement ("td"); //表名称列
cellName.Name = jsArrayName[i-1]; //获得表名称数据
cellName.appendChild(document.createTextNode (cellName.Name));
rowName.appendChild (cellName);
document.getElementById("newbody").appendChild (rowName);
}
//添加表数据for嵌嵌套,因为vbs只能接受一维数组,所以加了K变量来叠加
total_page = Math.ceil(ll/(ll/hh)/10);
if (total_page == 1){
var k=1;
for(var i=1;i<=ll/(ll/hh);i++){
var row=document.createElement ("tr"); //表数据行
row.className="row_add" //'设置该行的样式;
row.id=i;
for(var j=1;j<=ll/hh;j++){
var cell=document.createElement ("td"); //表数据列
cell.id =jsArray[k-1]; //获得表数据
//表单的行列控制
cell.appendChild(document.createTextNode (cell.id));
row.appendChild (cell);
k++;
}
//添加到newbodydiv中
document.getElementById("newbody").appendChild(row);
}flash动画:http://www.huiyi8.com/donghua/
}else{
var k=1;
for(var i=1;i<=10;i++){
var row=document.createElement ("tr"); //表数据行
row.className="row_add" //'设置该行的样式;
row.id=i;
for(var j=1;j<=ll/hh;j++){
var cell=document.createElement ("td"); //表数据列
cell.id =jsArray[k-1]; //获得表数据
//表单的行列控制
cell.appendChild(document.createTextNode (cell.id));
row.appendChild (cell);
k++;
}
//添加到newbodydiv中
document.getElementById("newbody").appendChild(row);
}
}
}
var cur_page = 1;
var total_page = 1;
function gotoPage(pageno){
var y = document.getElementById("gd").value;
strSql = "SELECT ta_ecm03,ecm03,ta_ecm09,ecm06,ecm45,ta_ecm08,ecm311,ecm301,ecm312,ecm313 FROM ecm_file WHERE ecm01 ='"+y+"' ORDER BY ta_ecm03,ecm03";
ConnectDatabase("ORACLE","TOPDB","T41","T41","","","")
hh = GetLenOfField(strSql); //数据的列长
ll = GetLenght(strSql); //数据的行长
var arrayObj;
var jsArray;
//获得getSystemData(strSql)方法返回的数组对象
arrayObj = getSystemData(strSql);
//利用VBArray函数把对象转换为数组
jsArray = VBArray(arrayObj).toArray();
total_page = Math.ceil(ll/(ll/hh)/10);
if( pageno < 1 ) {
cur_page_info.innerHTML = "当前页:"+cur_page;
cur_page = 1;
document.getElementById("max").disabled=false;
//alert(cur_page);
}else if( pageno >= total_page ) {
cur_page = pageno;
//alert("当前页"+cur_page);
cur_page_info.innerHTML = "当前页:"+cur_page;
if(cur_page == total_page){
document.getElementById("min").disabled=false;
removeRow();
document.getElementById("max").disabled=true;
}
if (cur_page == total_page){
var k=(cur_page-1)*10*10+1;
var num = (ll-(cur_page-1)*10*10)/10;
for(var i=1;i<=num;i++){
var row=document.createElement ("tr"); //表数据行
row.className="row_add" //'设置该行的样式;
row.id=i;
for(var j=1;j<=ll/hh;j++){
var cell=document.createElement ("td"); //表数据列
cell.id =jsArray[k-1]; //获得表数据
//表单的行列控制
cell.appendChild(document.createTextNode (cell.id));
row.appendChild (cell);
k++;
}
//添加到newbodydiv中
document.getElementById("newbody").appendChild(row);
}
}
} else {
cur_page = pageno;
cur_page_info.innerHTML = "当前页:"+cur_page;
document.getElementById("max").disabled=false;
if(cur_page <= 1){
document.getElementById("min").disabled=true;
}else{
document.getElementById("min").disabled=false;
}
removeRow();
var k=(cur_page-1)*10*10+1;
//var num = (ll-(cur_page-1)*10*10)/10;
for(var i=1;i<=10;i++){
var row=document.createElement ("tr"); //表数据行
row.className="row_add" //'设置该行的样式;
row.id=i;
for(var j=1;j<=ll/hh;j++){
var cell=document.createElement ("td"); //表数据列
cell.id =jsArray[k-1]; //获得表数据
//表单的行列控制
cell.appendChild(document.createTextNode (cell.id));
row.appendChild (cell);
k++;
}
//添加到newbodydiv中
document.getElementById("newbody").appendChild(row);
}
}
}
function showPageInfo(total_item,total_val){
if( total_item.value == 0 ) {
total_page = 1;
} else {
total_page = Math.floor((9 + parseInt(total_item)) / 10);
}
var txt = " 总页数: "+Math.ceil(total_item/(total_item/total_val)/10);
var prev_page = cur_page - 1;
var next_page = parseInt(cur_page) + 1;
if( cur_page >= 1 ) {
txt += " <input type='button' id='min' value=' < ' onClick='gotoPage(cur_page-1)'/>"
} else {
txt += " <input type='button' value=' < ' onClick='gotoPage(cur_page-1)' disabled/>"
}
if(cur_page < Math.ceil(total_item/(total_item/total_val)/10)) {
txt += " <input type='button' id='max' value=' > ' onClick='gotoPage(cur_page+1)'/>"
} else {
txt += " <input type='button' value=' > ' onClick='gotoPage(cur_page+1)' disabled/>"
}
//disabled
txt +=" 总行数: "+total_item/(total_item/total_val);
page_info.innerHTML = txt;
// window.alert(txt);
}
function importExcel1(){
if(document.getElementById('file1').value==""){
alert("附件不可为空!");
return false;
}
var oXL = new ActiveXObject("Excel.application");
var filePath=document.getElementById('file1').value;
var oWB = oXL.Workbooks.open(filePath);
oWB.worksheets(1).select();
var oSheet = oWB.ActiveSheet;
var row=null;
var cell=null;
if(row == null){
row = oSheet.usedrange.rows.count;
cell = oSheet.usedrange.columns.count;
var array=new Array(row-1,cell-1);
for(i = 1;i<=row;i++){
for (j=1;j<=cell;j++)
{
//保存在2维数组里面
array[i-1,j-1] = oSheet.Cells(i,j).value;
}
}
}
oXL.Quit();
document.getElementById('file1').value="";
}
hta+vbs+js+div+css (javascript是原生态的)的更多相关文章
- 网页首页制作总结(div+css+javascript)
一.对网页整体布局,分几个版块 如下图所示: 确定布局之后,规划好网页,准备素材,按照标准文档流的顺序,从上到下,从左到右写入代码. 以上图为例,分为两部分,红色的主体部分和页脚.主体部分分割为头部. ...
- div+css+javascript 走马灯图片轮换显示
效果如图 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- DIV+CSS+JS基础+正则表达式
...............HTML系列.................... DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素.DIV的起始 ...
- 下拉的DIV+CSS+JS二级树型菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 动态添加div及对应的js、css文件
动态添加div及对应的js.css文件 在近期的项目开发中需要在首页中添加很多面板型的div,直接加载代码显得很繁琐,于是利用js封装一个动态添加div及其对应css文件和js文件的方法供大家参考使用 ...
- 【javascript】原生js更改css样式的两种方式
下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3 &quo ...
- html css javascript 知识点总结 bom js 操作标签 文本 节点 表格各行变色 悬停变色 省市联动 正则
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- DIV+CSS+JS实现色彩渐变字体
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 利用div+css实现九宫格,然后用js实现点击每个格子可以随机更改格子(div)的背景颜色
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- luogu2485 [SDOI2011]计算器 poj3243 Clever Y BSGS算法
BSGS 算法,即 Baby Step,Giant Step 算法.拔山盖世算法. 计算 \(a^x \equiv b \pmod p\). \(p\)为质数时 特判掉 \(a,p\) 不互质的情况. ...
- 【MVC 2】MVC+EF框架结构实例:注册ID号验证
导读:本篇博客,将通过一个实例,详细介绍MVC+EF的应用.原理性的东西或者说是进一步的解耦和,请看博客: [框架结构 3]MVC+EF实体框架-原理解析.在这里,仅用MVC框架和一个EF生成的Mod ...
- POJ 2288 汉密尔顿回路 DP解决
题目大意: 有n个岛屿,令Vi为岛屿Ci的权值.一条汉密尔顿路径C1,C2,C3...Cn的值为3部分 第一部分,将路径中的岛的权值相加,第二部分将每条边上的(Ci,Cj),加上所有的Vi*Vj 第三 ...
- [luoguP2461] [SDOI2008]递归数列(DP + 矩阵优化)
传送门 本题主要是构造矩阵,我们只需要把那一段式子看成两个前缀和相减, 然后就直接矩阵连乘. 直接对那个k+1阶矩阵快速幂即可,注意初始化矩阵为单位矩阵,即主对角线(左上到右下)都为1其他都为0. 另 ...
- Codeforces474E - Pillars
Portal Description 给出一个\(n(n\leq10^5)\)的正整数序列\(\{a_n\}(a_i\leq10^{15})\)和正整数\(d(d\leq10^9)\),求\(\{a_ ...
- Area(poj 1654)
题目大意:一个坐标系,从原点开始走,然后1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走.给出一串包含1-9的字符串,问你这些点所围成 ...
- JS获取服务器时间并且计算距离当前指定时间差的函数
项目中遇到了从服务器获取时间,现在记录一下方便以后查询: 1.后台代码:(创建一个date对象并以JSON的形式返回去) // 获取服务器时间 public String getNowServerTi ...
- CSY版最大团,速度快一倍
#include <bits/stdc++.h> using namespace std; #define REP(i, n) for(int i(0); i < (n); ++i) ...
- C. The Two Routes---cf602C(Dij)
http://codeforces.com/problemset/problem/602/C 题目大意: 有n个城市 有m条铁路 如果两个城市没有铁路 那么一定有公路 求从1 到 n 用铁路和公 ...
- zookeeper一二三
1.zookeeper介绍 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现.分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅. ...