You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

194 lines
11 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>计算控件属性</title>
<script type="text/javascript" src="../internal.js"></script>
<script type="text/javascript" src="../../../jquery.js"></script>
<script type="text/javascript" src="../../../bootstrap/bootstrap.js"></script>
<link rel="stylesheet" href="../../../bootstrap/bootstrap.css">
<link rel="stylesheet" href="../../../bootstrap/bootstrap-responsive.css">
<style type="text/css">
*{color: #838383;margin: 0;padding: 0}
html,body {font-size: 12px;}
body {
padding-left: 20px;padding-right: 20px;
}
</style>
</head>
<body>
<div id="tblwrap">
<table class="table table-striped table-bordered" style="margin-top:18px;margin-bottom: 0;">
<tr>
<th><span>控件名称</span> <span class="label label-important">*</span></th>
<th><span>计算精度</span> </th>
</tr>
<tr>
<td> <input id="itemName" type="text" placeholder="必填项" size="20" /> </td>
<td> <input id="itemPrec" type="text" value="4" size="10" /> <span class="help-inline">默认保留小数点后4位</span> </td>
</tr>
<tr>
<th colspan="2"><span>样式</span></th>
</tr>
<tr>
<td colspan="2">
<div class="controls">
<div class="input-prepend input-append">
<span class="add-on">字体大小</span><input id="itemSize" size="1" type="text"><span class="add-on">px</span>&nbsp;&nbsp;
<span class="add-on">宽</span><input id="itemWidth" size="1" type="text"><span class="add-on">px</span>&nbsp;&nbsp;
<span class="add-on">高</span><input id="itemHeight" size="1" type="text"><span class="add-on">px</span>
</div>
</div>
</td>
</tr>
<tr>
<th colspan="2">
<span>计算公式</span><span class="label label-important">*</span>
<span style="float:right">
<a class="btn" title="计算控件说明" onclick="fnShowGuide();"><i class="icon-question-sign"></i></a>
</span>
</th>
</tr>
<tr>
<td colspan="2">
<textarea id="itemValue" style="width: 440px;height: 60px;"></textarea>
</td>
</tr>
</table>
</div>
<div style="display:none;margin-bottom: 27px;">
<div class="page-header">
<h3>计算控件说明<span style="position: fixed;right: 20px;"><a title="回到控件属性页" onclick="fnShowGuide();" class="btn"><i class="icon-home"></i></a></span></h3>
</div>
<div>
<blockquote>
<p>在日常的工作中,填写表单时,经常会存在一些计算项目,比如金额的计算,比如天数的计算,使用计算控件可以简化人员操作,提高准确性。 </p>
<p>以下举例说明计算控件的使用方法(以日历控件计算天数为例)</p>
</blockquote>
<p>首先,先建立好需要参与计算的项目,如图建立好开始时间和结束时间这两个日历控件,当然了每个日历控件都有对应的输入框控件</p><br/><br/>
<img src="helper/calc/calc1.jpg">
<p>接下来点击计算控件按钮,新建一个计算控件,设定时需要输入计算公式,公式的规则就是四则运算规则,可以利用括号和加减乘除,公式的计算项目就是上面
建立的单行输入框控件的名称,如图:</p><br/><br/>
<img src="helper/calc/calc2.jpg" width="453px"><br/><br/>
<p>上面日期差的实例实现的效果如图,而且<span class="label label-important">计算控件的输入内容是不允许修改的。</span></p><br/><br/>
<img src="helper/calc/calc3.jpg">
<p>计算公式支持+ - * / ^和英文括号以及特定计算函数,例如:(数值1+数值2)*数值3-ABS(数值4)其中数值1、数值2等为表单控件名称。 计算控件支持的函数计算如下: </p><br/><br/>
<p>1、MAX(数值1,数值2,数值3...) 输出最大值,英文逗号分割; </p><br/><br/>
<p>2、MIN(数值1,数值2,数值3...) 输出最小值,英文逗号分割; </p><br/><br/>
<p>3、ABS(数值1) 输出绝对值; </p><br/><br/>
<p>4、AVG(数值1,数值2,数值3) 输出平均值; </p><br/><br/>
<p>5、RMB(数值1) 输出人民币大写形式数值范围09999999999.99 </p><br/><br/>
<p>6、DAY(日期1-日期2) 输出时间差的整数天数; </p><br/><br/>
<p>7、HOUR(日期1-日期2) 输出时间差的小时数; </p><br/><br/>
<p>8、DATE(日期1-日期2) 输出时间差形如xx天xx小时xx分xx秒 </p><br/><br/>
<p>9、LIST(列表控件名,第几列) 计算列表控件指定列的和;</p><br/><br/>
<p>值得说明的是LIST函数它可以读取列表控件某列数据的和下面以实例说明一下 </p><br/><br/>
<p>假如设计的列表控件如下图</p><br/><br/>
<img src="helper/calc/calc4.jpg" width="453px"><br/><br/>
<p>我们现在用计算控件将价格这一列的数据取出来,添加计算控件,公式书写如下:</p><br/><br/>
<img src="helper/calc/calc5.jpg" width="453px"><br/><br/>
<p>实现效果如下:</p><br/><br/>
<p>LIST函数主要用于列表控件数据参与条件设置的情况。 </p><br/><br/>
<span class="label label-important">注意:参与日期计算的控件必须为日期类型或者日期+时间类型。</span>
</div>
</div>
<script type="text/javascript">
var oNode = null;
var oListText;
window.onload = function() {
//弹出窗口初始化函数,这里主要是判断是编辑下拉列表还是新增
if( UE.plugins['calc'].editdom ){
oNode = UE.plugins['calc'].editdom;
$G('itemName').value = oNode.getAttribute('title');
$G('itemValue').value = oNode.getAttribute('value');
var sPrec = oNode.getAttribute('prec') ;
if( sPrec ) {
$G('itemPrec').value = sPrec;
}
var sFontSize = oNode.style.fontSize;
$G('itemSize').value = sFontSize.substr(0, sFontSize.length - 2);//这里的substr是为了去掉末尾的'px'
var sItemWidth = oNode.style.width;
$G('itemWidth').value = sItemWidth.substr(0, sItemWidth.length - 2);
var sItemHeight = oNode.style.height;
$G('itemHeight').value = sItemHeight.substr(0, sItemHeight.length - 2);
}
}
function fnShowGuide(){
$('#tblwrap').slideToggle().siblings().slideToggle();
}
dialog.oncancel = function () {
if( UE.plugins['calc'].editdom ) {
delete UE.plugins['calc'].editdom;
}
};
dialog.onok = function (){
if( $G('itemName').value == '') {
alert('控件名称不能为空');
$('#itemName').focus();
return false;
} else if( $G('itemValue').value == '' ) {
alert('请添加计算公式');
$('#itemValue').focus();
return false;
}
//检查公式
if( $G('itemValue').value.indexOf("(")>=0 ) {
var nNum1 = $G('itemValue').value.split("(").length - 1;
var nNum2 = $G('itemValue').value.split(")").length - 1;
if( nNum1!=nNum2 ) {
alert("公式书写错误,请检查括号匹配!");
return false;
}
}
if( !oNode ) {
var sUrl = parent.getItemUrl;
var nItemId = null;
ajax.request(sUrl, {timeout:60000,onsuccess:function (xhr) {
try {
nItemId = xhr.responseText;
oNode = document.createElement("input");
oNode.setAttribute('name', 'data_' + nItemId);
oNode.setAttribute('title', $G('itemName').value.replace("\"","&quot;") );
oNode.setAttribute('class', 'calc');
oNode.setAttribute('className', 'calc');
oNode.setAttribute('value',$.trim($G('itemValue').value));
oNode.setAttribute('prec',$G('itemPrec').value);
if( $G('itemSize').value!="" ) {
oNode.style.fontSize = $G('itemSize').value + 'px';
}
if( $G('itemWidth').value!="" ) {
oNode.style.width = $G('itemWidth').value + 'px';
}
if( $G('itemHeight').value!="" ) {
oNode.style.height = $G('itemHeight').value + 'px';
}
editor.execCommand('insertHtml',oNode.outerHTML);
return true ;
} catch ( e ) {
alert ( '插入控件出错请联系OA管理员解决 ');
return false;
}
},onerror:function() {
alert('Request TimeOut');
}});
} else {
oNode.setAttribute('title', $G('itemName').value.replace("\"","&quot;") );
oNode.setAttribute('value',$.trim($G('itemValue').value));
oNode.setAttribute('prec',$G('itemPrec').value);
if( $G('itemSize').value!="" ){
oNode.style.fontSize = $G('itemSize').value + 'px';
}
if( $G('itemWidth').value!="" ){
oNode.style.width = $G('itemWidth').value + 'px';
}
if( $G('itemHeight').value!="" ){
oNode.style.height = $G('itemHeight').value + 'px';
}
delete UE.plugins['calc'].editdom; //使用后清空这个对象,变回新增模式
}
};
</script>
</body>
</html>