![]() |
#2
曾大仙2021-11-11 14:24
|

<html>
<head>
<meta charset="utf-8">
<style>
/* youchuo */
.bootstrap-frm {
width: 300px;
position: fixed;
top:120px;
left:20px;
margin-left:auto;
margin-right:auto;
max-width: 600px;
background: #FFF;
padding: 20px 30px 20px 30px;
font: 12px "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #888;
text-shadow: 1px 1px 1px #FFF;
border:1px solid #DDD;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
}
.bootstrap-frm input[type='text'],input[type='date'], select{
border: 1px solid #CCC;
color: #888;
height: 20px;
line-height:15px;
margin-bottom: 16px;
margin-right: 6px;
margin-top: 2px;
outline: 0 none;
padding: 5px 0px 5px 5px;
width: 70%;
border-radius: 4px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
background: #FFF;
appearance:none;
-webkit-appearance:none;
-moz-appearance: none;
text-indent: 0.01px;
text-overflow: '';
width: 70%;
height: 35px;
line-height:15px;
}
.button {
background: #FFF;
border: 1px solid #CCC;
padding: 10px 25px 10px 25px;
color: #333;
border-radius: 4px;
}
.button:hover {
color: #333;
background-color: #EBEBEB;
border-color: #ADADAD;
}
body{
margin: 6px;
padding: 0;
font-size: 12px;
font-family: tahoma, arial;
background: #fff;
}
.odd{
background: #fff;
}
.even{
background: #eee;
}
div{
width: 100%;
border: none; ;
}
.datagrid2{
width: 100%;
border-collapse: collapse;
}
.thead{
text-align: left;
background: #9cf;
padding: 3px;
border: 1px #333 solid;
}
td{
padding: 3px;
border: none;
border:1px #333 solid;
}
tr:hover{
background: #9cf;
}
.menu {
border-collapse: collapse;
position: fixed;
width: 500px;
left: 500px;
top: 50px;
}
</style>
</head>
<body>
<h1>简易仓库管理系统</h1>
<input type="button" id=101 value="记录单"/>
<input type="button" id=102 value="库存报表"/>
<input type="button" id=103 value="改信息"/>
<input type="button" id=104 value="改物料"/>
<input type="button" id=105 value="改出入库"/>
<input type="button" id=106 value="改单据"/>
<div id="s1">
<table id=5 class="menu">
</table>
<div id=9 class="bootstrap-frm">
记录单号<select id=901 /></select><br />
日期<input type="date" id=902 /><br />
对象id<input type="text" id=903 /><br />
<table id=1 class="datagrid2">
<tr class="thead"><td>编码</td><td>数量</td></tr>
</table>
<input type="button" class="button" id=911 value="+"/>
<input type="button" class="button" id=912 value="-"/>
<input type="button" class="button" id=913 value="保存"/>
</div>
</div>
<div id="s0" border=0>
<table id=0 class="datagrid2">
</table>
<div id="s01">
<input type="button" class="button" id=9111 value="+"/>
<input type="button" class="button" id=9121 value="-"/>
<input type="button" class="button" id=9131 value="修改"/>
</div>
</div>
</body>
<script>
var $=function(a){return document.getElementById(a)}
var nowid;
$(902).valueAsDate = new Date();
var 数据库=openDatabase('MyData','1.0版','我的数据库描述',102400);
数据库.transaction(function(数据库事务){
数据库事务.executeSql("CREATE TABLE IF NOT EXISTS 信息 as select '公司001' as 对象id,'本公司' as 类别,'初始库存' as 内容;",[]);
数据库事务.executeSql("CREATE TABLE IF NOT EXISTS 物料 as select '组件001' as 编码,'新物料' as 名称,'新规格' as 规格,'新单位' as 单位,'新单价' as 单价;",[]);
数据库事务.executeSql("CREATE TABLE IF NOT EXISTS 出入库 as select '入库10001' as 单据编号,'组件001' as 编码,'0' as 数量;",[]);
数据库事务.executeSql("CREATE TABLE IF NOT EXISTS 单据 as select '入库10001' as 单据编号,'2017-01-01' as 日期,'公司001' as 对象id;",[]);
数据库事务.executeSql("create view IF NOT EXISTS 库存 as with c as (select 单据编号,出入库.编码,名称,规格,单位,单价,数量 from 出入库 join 物料 using(编码)),d as (select 编码,名称,规格,单位,单价,sum(case when 单据编号 like '入库%' then 数量 else 0 end) as 入库数量,sum(case when 单据编号 like '出库%' then 数量 else 0 end) as 出库数量 from c group by 编码),e as (select *,入库数量-出库数量 as 结存数量,round((入库数量-出库数量)*单价,2) as 结存金额 from d) select * from e union all select '汇总','','','','','','','',round(sum(结存金额),2) from e;",[]);
});
$(911).onclick=function(){
var tr=$(1).insertRow($(1).rows.length);
tr.className=($(1).rows.length%2==0)?"odd":"even";
for (var i=0;i<$(1).rows[0].cells.length;i++){
var xxx=tr.insertCell(i);
xxx.contentEditable=true;
if(i==0){
xxx.id=2000+$(1).rows.length;
xxx.onkeyup=function(){
查询("select * from 物料 where 编码 like '%"+this.innerText+"%';",5,false,true);
}
xxx.onclick=function(){
nowid=this.id;
}
}
else{
xxx.onkeypress=function(event){
var keychar = String.fromCharCode(event.which);
var numcheck = /\d/;
return numcheck.test(keychar);
}
}
}
}
$(912).onclick=function(){
if($(1).rows.length>1) $(1).deleteRow($(1).rows.length-1);
}
$(913).onclick=function(){
数据库.transaction(function(数据库事务){
数据库事务.executeSql('INSERT INTO 单据 VALUES(?,?,?)',[$(901).value,$(902).value,$(903).value]);
for(var i=1;i<$(1).rows.length;i++){
var ss=$(1).rows[i].cells;
var tt=[$(901).value];
for(var j=0;j<ss.length;j++) tt.push(ss[j].innerText);
数据库事务.executeSql('INSERT INTO 出入库 VALUES(?,?,?)',tt);
}
下拉列表("with a as (select case when max(rowid) is null then 10001 else max(rowid)+10001 end as 编号 from 单据) select '入库'||编号 from a union all select '出库'||编号 from a;",901);
$(1).innerHTML='<tr class="thead"><td>编码</td><td>数量</td></tr>';
});
}
$(9111).onclick=function(){
var tr=$(0).insertRow($(0).rows.length);
for (var i=0;i<$(0).rows[0].cells.length;i++) tr.insertCell(i).contentEditable=true;
}
$(9121).onclick=function(){
if($(0).rows.length>1) $(0).deleteRow($(0).rows.length-1);
}
var 查询=function(表名,id,change,input){
var sql=表名.length>10?表名:"select * from "+表名+";";
var thisid=id || 0;
var thischange=change || false;
var thisinput=input || false;
if(!thisinput){
$("s1").hidden=true;
$("s0").hidden=false;
$("s01").hidden=true;
}
数据库.transaction(function(数据库事务){
数据库事务.executeSql(sql,[],function(数据库事务,查询结果集){
$(thisid).innerHTML="";
if(查询结果集.rows.length>0){
var tr=$(thisid).insertRow($(thisid).rows.length);
tr.className='thead';
var pp=0;
for (var i in 查询结果集.rows.item(0)) tr.insertCell(pp++).innerHTML=i;
for (var i=0;i<查询结果集.rows.length;i++){
var tr=$(thisid).insertRow($(thisid).rows.length);
if(i<查询结果集.rows.length-1){
tr.className=(i%2!=0?'even':'odd');
}
else{
tr.className='thead';
}
var v=查询结果集.rows.item(i);
var pp=0;
for(var j in v){
var xxx=tr.insertCell(pp++);
if(thischange) xxx.contentEditable=true;
if(thisinput && pp==1) xxx.onclick=function(){
if(nowid>2000){
$(nowid).innerHTML=this.innerHTML;
}
else{
$(nowid).value=this.innerHTML;
}
}
xxx.innerHTML=v[j];
}
}
}
});
});
if(thischange){
$("s01").hidden=false;
$(9131).onclick=function(){
数据库.transaction(function(数据库事务){
var sql='delete from '+表名+';';
数据库事务.executeSql(sql,[]);
for(var i=1;i<$(0).rows.length;i++){
var ss=$(0).rows[i].cells;
var tt=[];
for(var j=0;j<ss.length;j++) tt.push(ss[j].innerText);
var mysql="";
for(var x=0;x<tt.length;x++) mysql+='?,';
mysql=mysql.slice(0,-1);
mysql='INSERT INTO '+表名+' VALUES('+mysql+')';
数据库事务.executeSql(mysql,tt);
}
})
}
}
}
var 下拉列表=function(sql,id){
数据库.transaction(function(数据库事务){
数据库事务.executeSql(sql,[],function(数据库事务,查询结果集){
if(查询结果集.rows.length>0){
var txt="";
for (var i=0;i<查询结果集.rows.length;i++){
var v=查询结果集.rows.item(i);
for(var j in v){
txt+="<option value='"+v[j]+"'>"+v[j]+"</option>";
}
}
$(id).innerHTML=txt;
}
});
});
}
下拉列表("with a as (select case when max(rowid) is null then 10001 else max(rowid)+10001 end as 编号 from 单据) select '入库'||编号 from a union all select '出库'||编号 from a;",901);
$("s1").hidden=true;
$("s0").hidden=true;
$(903).onkeyup=function(){
查询("select * from 信息 where 对象id like '%"+this.value+"%';",5,false,true);
}
$(903).onclick=function(){
nowid=this.id;
}
$(101).onclick=function(){
$("s1").hidden=false;
$("s0").hidden=true;
}
$(102).onclick=function(){
查询("库存");
}
$(103).onclick=function(){
查询("信息",0,true);
}
$(104).onclick=function(){
查询("物料",0,true);
}
$(105).onclick=function(){
查询("出入库",0,true);
}
$(106).onclick=function(){
查询("单据",0,true);
}
</script>
</html>
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录