📄 form.js
字号:
function tb_addnew(lv_tb_id,read_only,row_value,sum,cal)
{
var mytable=document.getElementById(lv_tb_id);
var size_array=mytable.getAttribute("FormData").split("`");
var row_value_array=row_value.split("`");
var sum_flag=0;
if(sum!='')
{
var sum_array=sum.split("`");
for(i=0;i<sum_array.length;i++)
{
if(sum_array[i]==1)
{
sum_flag=1;
break;
}
}
}
if(cal!='')
var cal_array=cal.split("`");
maxcell=mytable.rows[0].cells.length;
if(mytable.rows.length==1 || sum_flag==0)
mynewrow = mytable.insertRow(-1);
else
mynewrow = mytable.insertRow(mytable.rows.length-1);
for(i=0;i<maxcell-1;i++)
{
mynewcell=mynewrow.insertCell(-1);
cell_html="<input type=text ";
cell_html+=" size="+ size_array[i];
if(row_value!="")
cell_html+=" value=\""+ row_value_array[i]+"\"";
if(read_only || (cal_array && cal_array[i]!=''))
cell_html+=" readonly class=BigStatic";
else
cell_html+=" class=BigInput";
cell_html+=">";
mynewcell.innerHTML=cell_html;
}
mynewcell=mynewrow.insertCell(-1);
if(!read_only)
mynewcell.innerHTML="<input type=button value=删除 onclick=tb_delete('"+lv_tb_id+"',this)>";
if(sum_flag==1 && mytable.rows.length==2)
tb_add_sum(lv_tb_id,sum,sum_flag);
}
function tb_add_sum(lv_tb_id,sum,sum_flag)
{
var mytable=document.getElementById(lv_tb_id);
var size_array=mytable.FormData.split("`");
var sum_array=sum.split("`");
var maxcell=mytable.rows[0].cells.length;
//增加合计
sumrow=mytable.insertRow(-1);
sumrow.setAttribute('id',lv_tb_id+'_sum');
for(i=0;i<maxcell-1;i++)
{
sumcell=sumrow.insertCell(-1);
if(sum_array && sum_array[i]==1)
{
cell_html="<input type=text style='border:none;background:#ffffff;text-align:right;' size="+size_array[i]+" readonly class=BigStatic>";
sumcell.innerHTML=cell_html;
}
}
sumcell=sumrow.insertCell(-1);
sumcell.innerHTML="<input type=button value=合计 onclick=tb_sum('"+lv_tb_id+"','"+sum+"')>";
setInterval("tb_sum('"+lv_tb_id+"','"+sum+"')",2000);
}
function tb_delete(lv_tb_id,del_btn)
{
var mytable=document.getElementById(lv_tb_id);
mytable.deleteRow(del_btn.parentNode.parentNode.rowIndex);
if(mytable.rows.length==2 && document.all(lv_tb_id+"_sum"))
mytable.deleteRow(1);
}
function tb_output(lv_tb_id)
{
var data_str="";
var row_length=document.getElementById(lv_tb_id).rows.length;
if(document.getElementById(lv_tb_id+'_sum'))
row_length--;
for (i=1; i < row_length; i++)
{
for (j=0; j < document.getElementById(lv_tb_id).rows[i].cells.length-1; j++)
{
data_str+=document.getElementById(lv_tb_id).rows[i].cells[j].firstChild.value+"`";
}
data_str+="\n";
}
lv_id="DATA_"+lv_tb_id.substr(3);
eval("document.form1."+lv_id+".value=data_str");
}
function LV_Submit()
{
var lv_tb_id="";
var tables=document.getElementsByTagName("table");
for (lv_i=0;lv_i<tables.length; lv_i++)
{
if(tables[lv_i].className=="LIST_VIEW")
{
lv_tb_id=tables[lv_i].id;
tb_output(lv_tb_id);
}
}
}
function tb_sum(lv_tb_id,sum)
{
var mytable=document.getElementById(lv_tb_id);
if(mytable.rows.length==1) return;
var sumrow=mytable.rows[mytable.rows.length-1];
var sum_array=sum.split("`");
for(i=0;i<sum_array.length;i++)
{
var sum_value=0;
if(sum_array[i]==1)
{
for(j=1;j<mytable.rows.length-1;j++)
{
sum_value+=parseFloat(mytable.rows[j].cells[i].firstChild.value==''?0:mytable.rows[j].cells[i].firstChild.value);
}
if(isNaN(sum_value))
sumrow.cells[i].firstChild.value="0";
else
sumrow.cells[i].firstChild.value=Math.round(sum_value*10000)/10000;
}
}
}
function tb_cal(lv_tb_id,cal)
{
var mytable=document.getElementById(lv_tb_id);
if(mytable.rows.length==1) return;
if(cal)
{
var cal_array=cal.split("`");
for(i=1;i<mytable.rows.length-1;i++)
{
for(k=0;k<cal_array.length-1;k++)
{
var cal_str=cal_array[k];
if(cal_str=="")
continue;
for(j=0;j<mytable.rows[i].cells.length-1;j++)
{
cell_value=parseFloat(mytable.rows[i].cells[j].firstChild.value);
cal_str=cal_str.replace("["+(j+1)+"]",cell_value);
}
mytable.rows[i].cells[k].firstChild.value=isNaN(eval(cal_str))?0:Math.round(parseFloat(eval(cal_str))*10000)/10000;
}
}
}
}
function convertCurrency(currencyDigits)
{
// Constants:
var MAXIMUM_NUMBER = 99999999999.99;
// Predefine the radix characters and currency symbols for output:
var CN_ZERO = "零";
var CN_ONE = "壹";
var CN_TWO = "贰";
var CN_THREE = "叁";
var CN_FOUR = "肆";
var CN_FIVE = "伍";
var CN_SIX = "陆";
var CN_SEVEN = "柒";
var CN_EIGHT = "捌";
var CN_NINE = "玖";
var CN_TEN = "拾";
var CN_HUNDRED = "佰";
var CN_THOUSAND = "仟";
var CN_TEN_THOUSAND = "万";
var CN_HUNDRED_MILLION = "亿";
var CN_DOLLAR = "元";
var CN_TEN_CENT = "角";
var CN_CENT = "分";
var CN_INTEGER = "整";
// Variables:
var integral; // Represent integral part of digit number.
var decimal; // Represent decimal part of digit number.
var outputCharacters; // The output result.
var parts;
var digits, radices, bigRadices, decimals;
var zeroCount;
var i, p, d;
var quotient, modulus;
// Validate input string:
currencyDigits = currencyDigits.toString();
if (currencyDigits == "") {
return "";
}
if (currencyDigits.match(/[^,.\d]/) != null) {
return "";
}
if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) {
return "";
}
// Normalize the format of input digits:
currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters.
currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning.
// Assert the number is not greater than the maximum number.
if (Number(currencyDigits) > MAXIMUM_NUMBER) {
return "";
}
// Process the coversion from currency digits to characters:
// Separate integral and decimal parts before processing coversion:
parts = currencyDigits.split(".");
if (parts.length > 1) {
integral = parts[0];
decimal = parts[1];
// Cut down redundant decimal digits that are after the second.
decimal = decimal.substr(0, 2);
}
else {
integral = parts[0];
decimal = "";
}
// Prepare the characters corresponding to the digits:
digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);
radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);
bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);
decimals = new Array(CN_TEN_CENT, CN_CENT);
// Start processing:
outputCharacters = "";
// Process integral part if it is larger than 0:
if (Number(integral) > 0) {
zeroCount = 0;
for (i = 0; i < integral.length; i++) {
p = integral.length - i - 1;
d = integral.substr(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0") {
zeroCount++;
}
else
{
if (zeroCount > 0)
{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[Number(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4) {
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += CN_DOLLAR;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -