|
|
|
|
var mygrid_recv;
|
|
|
|
|
var page_count = 5;
|
|
|
|
|
var column_count;
|
|
|
|
|
var jsonTopCtnObj;
|
|
|
|
|
var changeCount = 0;
|
|
|
|
|
|
|
|
|
|
//两端去空格函数
|
|
|
|
|
String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); }
|
|
|
|
|
|
|
|
|
|
function $(id){
|
|
|
|
|
return document.getElementById(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function doInitRecvGrid()
|
|
|
|
|
{
|
|
|
|
|
if($("hd_comboBLTYPE").value!="整箱")
|
|
|
|
|
{
|
|
|
|
|
document.getElementById('divadd').style.display = "none";
|
|
|
|
|
//document.getElementById('divsave').style.display = "none";
|
|
|
|
|
document.getElementById('divrefresh').style.display = "none";
|
|
|
|
|
document.getElementById('divdel').style.display = "none";
|
|
|
|
|
document.getElementById('divrollback').style.display = "none";
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
mygrid_recv = new dhtmlXGridObject('mygrid_container_recv');
|
|
|
|
|
mygrid_recv.setImagePath("../images/");
|
|
|
|
|
mygrid_recv.setSkin("xp");
|
|
|
|
|
mygrid_recv.setHeader("箱型,箱量,箱号,封号,件数,包装类型,箱内货重,箱皮重,尺码,备注");
|
|
|
|
|
mygrid_recv.setInitWidths("60,40,90,50,50,80,80,80,80,70");
|
|
|
|
|
mygrid_recv.setColAlign("center,left,left,left,left,left,left,left,left,left");
|
|
|
|
|
mygrid_recv.setColSorting("str,str,str,str,str,str,str,str,str,str");
|
|
|
|
|
mygrid_recv.setColTypes("co,ed,ed,ed,ed,co,ed,ed,ed,ed");
|
|
|
|
|
|
|
|
|
|
var BSNO = $("dvOrderNumVal").value.trim();
|
|
|
|
|
var urlVal = "SeaExportInfoGridSource.aspx?read=exist&showcount=1&BSNO="+BSNO+"&val="+newGuid();
|
|
|
|
|
var loader = dhtmlxAjax.getSync(urlVal);
|
|
|
|
|
var loadVal = loader.xmlDoc.responseText;
|
|
|
|
|
loader = null;
|
|
|
|
|
|
|
|
|
|
if(parseInt(loadVal) == 1)
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.loadXML("SeaExportInfoGridSource.aspx?read=init&showcount=1&BSNO="+BSNO);
|
|
|
|
|
setTimeout(function(){
|
|
|
|
|
ReShowLabel(mygrid_recv);
|
|
|
|
|
},200);
|
|
|
|
|
}
|
|
|
|
|
mygrid_recv.init();
|
|
|
|
|
mygrid_recv.enableEditEvents(true,false,true);
|
|
|
|
|
mygrid_recv.enableMultiselect(true);
|
|
|
|
|
mygrid_recv.enableKeyboardSupport(true);
|
|
|
|
|
|
|
|
|
|
var pushVal = "";
|
|
|
|
|
var pressRecord = "";
|
|
|
|
|
var pressRowIndex = -1;
|
|
|
|
|
var pressCellIndex = -1;
|
|
|
|
|
var pressCount = 0;
|
|
|
|
|
var isExchange = false;
|
|
|
|
|
var shiftCount = 0;
|
|
|
|
|
var isDelete = 0;
|
|
|
|
|
|
|
|
|
|
var flagFilter = 0;
|
|
|
|
|
var flagTab = 0;
|
|
|
|
|
var flagEnter = 0;
|
|
|
|
|
var flagDelete = 0;
|
|
|
|
|
//手动编写Grid控件编辑事件,由于免费控件没有提供完整的编辑判断功能,现特此做更改
|
|
|
|
|
|
|
|
|
|
mygrid_recv.attachEvent("onEditCell", function(stage, rId, cInd, nValue, oValue) {
|
|
|
|
|
var newCheckValue = false;
|
|
|
|
|
//初始化状态
|
|
|
|
|
if (stage == 0) {
|
|
|
|
|
var selectedId = mygrid_recv.getSelectedRowId();
|
|
|
|
|
var rowIndex = mygrid_recv.getRowIndex(selectedId);
|
|
|
|
|
var oldVal = mygrid_recv.cellByIndex(rowIndex, 0).getValue().trim();
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if (stage == 1) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
//如果编辑结束
|
|
|
|
|
if (stage == 2) {
|
|
|
|
|
//获取当前RowID
|
|
|
|
|
var selectedId = mygrid_recv.getSelectedRowId();
|
|
|
|
|
//获取当前RowIndex
|
|
|
|
|
var rowIndex = mygrid_recv.getRowIndex(selectedId);
|
|
|
|
|
//获取当前CellIndex(ind)
|
|
|
|
|
var ind = mygrid_recv.getSelectedCellIndex();
|
|
|
|
|
//触发操作事件前获取单元值
|
|
|
|
|
var oldVal = mygrid_recv.cellByIndex(rowIndex, ind).getValue();
|
|
|
|
|
if (ind == 0) {
|
|
|
|
|
oldVal = oldVal.toUpperCase();
|
|
|
|
|
var loader = dhtmlxAjax.getSync("../FeeCodes/TopCtnAdapter.aspx?ctn=" + oldVal + "&val=" + newGuid());
|
|
|
|
|
oldVal = loader.xmlDoc.responseText;
|
|
|
|
|
//将value写入cell(触发 stage2)
|
|
|
|
|
mygrid_recv.cellByIndex(rowIndex, ind).setValue(oldVal);
|
|
|
|
|
}
|
|
|
|
|
else if (ind == 5) {
|
|
|
|
|
oldVal = oldVal.toUpperCase();
|
|
|
|
|
//comboKINDPKGS.loadXML("../FeeCodes/TCodePackageAdapter.aspx?mask=0&pos=0");
|
|
|
|
|
var loader = dhtmlxAjax.getSync("../FeeCodes/TopCtnAdapter.aspx?kindpkgs=" + oldVal + "&val=" + newGuid());
|
|
|
|
|
oldVal = loader.xmlDoc.responseText;
|
|
|
|
|
//将value写入cell(触发 stage2)
|
|
|
|
|
mygrid_recv.cellByIndex(rowIndex, ind).setValue(oldVal);
|
|
|
|
|
}
|
|
|
|
|
else if (ind == 6 || ind == 7 || ind == 8)//键盘输入浮点数字
|
|
|
|
|
{
|
|
|
|
|
if (oldVal.trim() != "") {
|
|
|
|
|
var bl = isFloat(oldVal);
|
|
|
|
|
if (!bl) {
|
|
|
|
|
alert("重量或尺码格式出错!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (ind == 1 || ind == 4)//键盘输入整数
|
|
|
|
|
{
|
|
|
|
|
if (oldVal.trim() != "") {
|
|
|
|
|
var bl = isInt(oldVal);
|
|
|
|
|
if (!bl) {
|
|
|
|
|
alert("箱量或件数格式出错!");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//键盘操作事件
|
|
|
|
|
mygrid_recv.attachEvent("onKeyPress", function(code,cFlag,sFlag)
|
|
|
|
|
{
|
|
|
|
|
//onKeyPress begin
|
|
|
|
|
//获取当前RowID
|
|
|
|
|
var selectedId = mygrid_recv.getSelectedRowId();
|
|
|
|
|
//获取当前RowIndex
|
|
|
|
|
var rowIndex = mygrid_recv.getRowIndex(selectedId);
|
|
|
|
|
//获取当前CellIndex(ind)
|
|
|
|
|
var ind = mygrid_recv.getSelectedCellIndex();
|
|
|
|
|
|
|
|
|
|
//触发操作事件前获取单元值
|
|
|
|
|
var oldVal = mygrid_recv.cellByIndex(rowIndex,ind).getValue();
|
|
|
|
|
//获取编辑单元
|
|
|
|
|
var txtEdit;
|
|
|
|
|
|
|
|
|
|
//Tab键
|
|
|
|
|
if(code == 9)
|
|
|
|
|
{
|
|
|
|
|
var colCount = mygrid_recv.getColumnsNum();
|
|
|
|
|
var rowCount = mygrid_recv.getRowsNum();
|
|
|
|
|
|
|
|
|
|
if(ind < colCount)
|
|
|
|
|
{
|
|
|
|
|
isExchange = false;
|
|
|
|
|
pressRecord = "";
|
|
|
|
|
pressRowIndex = -1;
|
|
|
|
|
pressCellIndex = -1;
|
|
|
|
|
mygrid_recv.editStop(true);
|
|
|
|
|
mygrid_recv.cellByIndex(rowIndex,ind).setLabel(oldVal);
|
|
|
|
|
|
|
|
|
|
var cInd = ind;
|
|
|
|
|
var rId = selectedId;
|
|
|
|
|
mygrid_recv.selectCell(rowIndex,ind+1,true,true);
|
|
|
|
|
mygrid_recv.editCell();
|
|
|
|
|
if(ind == colCount - 1)
|
|
|
|
|
{
|
|
|
|
|
if(rowIndex < rowCount)
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.editStop(true);
|
|
|
|
|
mygrid_recv.clearSelection();
|
|
|
|
|
mygrid_recv.selectCell(rowIndex+1,0,true,true);
|
|
|
|
|
mygrid_recv.editCell();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(code == 40)//向下方向键
|
|
|
|
|
{
|
|
|
|
|
var rowCount = mygrid_recv.getRowsNum();
|
|
|
|
|
mygrid_recv.clearSelection();
|
|
|
|
|
mygrid_recv.editStop();
|
|
|
|
|
if(rowIndex == (rowCount - 1))
|
|
|
|
|
{
|
|
|
|
|
addRecvRow();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.selectCell(rowIndex+1,0,true,true);
|
|
|
|
|
mygrid_recv.editCell();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(code == 38)//向上箭头
|
|
|
|
|
{
|
|
|
|
|
if(rowIndex > 0)
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.clearSelection();
|
|
|
|
|
mygrid_recv.editStop();
|
|
|
|
|
mygrid_recv.selectCell(rowIndex-1,0,true,true);
|
|
|
|
|
mygrid_recv.editCell();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if(ind == 0 || ind == 5)
|
|
|
|
|
{
|
|
|
|
|
for(i = 0; i < document.all.length; i++)
|
|
|
|
|
{
|
|
|
|
|
if(document.all(i).tagName == "TEXTAREA")
|
|
|
|
|
{
|
|
|
|
|
txtEdit = document.all(i);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(code>=65&&code<=90)
|
|
|
|
|
{//如果是输入英文字符
|
|
|
|
|
if(ind == 0)
|
|
|
|
|
{
|
|
|
|
|
//获取键盘输入字符
|
|
|
|
|
var pressVal = String.fromCharCode(code);
|
|
|
|
|
var start=0;
|
|
|
|
|
var end=0;
|
|
|
|
|
if(document.selection){
|
|
|
|
|
var range = document.selection.createRange();
|
|
|
|
|
if(range.parentElement().className == txtEdit.className){
|
|
|
|
|
var range_all = document.body.createTextRange();
|
|
|
|
|
range_all.moveToElementText(txtEdit);
|
|
|
|
|
|
|
|
|
|
for (start=0; range_all.compareEndPoints("StartToStart", range) < 0; start++){
|
|
|
|
|
range_all.moveStart('character', 1);
|
|
|
|
|
}
|
|
|
|
|
for (var i = 0; i <= start; i ++){
|
|
|
|
|
if (txtEdit.value.charAt(i) == '\n')
|
|
|
|
|
start++;
|
|
|
|
|
}
|
|
|
|
|
var range_all = document.body.createTextRange();
|
|
|
|
|
range_all.moveToElementText(txtEdit);
|
|
|
|
|
|
|
|
|
|
for (end = 0; range_all.compareEndPoints('StartToEnd', range) < 0; end ++)
|
|
|
|
|
range_all.moveStart('character', 1);
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i <= end; i ++){
|
|
|
|
|
if (txtEdit.value.charAt(i) == '\n')
|
|
|
|
|
end ++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//如果是当前检索位置
|
|
|
|
|
if(rowIndex == pressRowIndex && ind == pressCellIndex){
|
|
|
|
|
//未选中多个字符
|
|
|
|
|
if(start == end){
|
|
|
|
|
if(start != pressRecord.length){
|
|
|
|
|
if(start != 0){
|
|
|
|
|
var firstVal = pressRecord.substring(0,start - 1);
|
|
|
|
|
var endVal = pressRecord.substring(start + 1,txtEdit.value.length - 1);
|
|
|
|
|
pressRecord = firstVal+pressVal+endVal;
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
pressRecord = pressRecord+pressVal;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//选中多个字符
|
|
|
|
|
if(start != end){
|
|
|
|
|
var firstVal = pressRecord.substring(0,start);
|
|
|
|
|
var endVal = pressRecord.substring(end - 1,txtEdit.value.length - 1);
|
|
|
|
|
pressRecord = firstVal+pressVal+endVal;
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
pressRecord = pressVal;
|
|
|
|
|
pressRowIndex = rowIndex;
|
|
|
|
|
pressCellIndex = ind;
|
|
|
|
|
}
|
|
|
|
|
//获取combo下拉列表
|
|
|
|
|
var combo = mygrid_recv.getCustomCombo(selectedId,ind);
|
|
|
|
|
var comboArg = combo.getKeys();
|
|
|
|
|
var count = 0;
|
|
|
|
|
|
|
|
|
|
//开始遍历检索
|
|
|
|
|
//如果检索成功 状态pressCount=1 如果不成功应为pressCount=2
|
|
|
|
|
for(var i = 0;i<comboArg.length;i++){
|
|
|
|
|
if(combo.get(comboArg[i]).toUpperCase().trim().indexOf(pressRecord) == 0){
|
|
|
|
|
//计数
|
|
|
|
|
count++;
|
|
|
|
|
//获取value
|
|
|
|
|
var oldVal = comboArg[i];
|
|
|
|
|
//获取label
|
|
|
|
|
var oldLab = combo.get(comboArg[i]);
|
|
|
|
|
|
|
|
|
|
//记录状态值 检索到数据项
|
|
|
|
|
pressCount = 1;
|
|
|
|
|
flagFilter = 1;
|
|
|
|
|
//关闭编辑
|
|
|
|
|
mygrid_recv.editStop();
|
|
|
|
|
//将value写入cell(触发 stage2)
|
|
|
|
|
mygrid_recv.cellByIndex(rowIndex,ind).setValue(oldVal);
|
|
|
|
|
flagFilter = 0;
|
|
|
|
|
//重新打开cell(触发stage0 stage1)
|
|
|
|
|
mygrid_recv.selectCell(rowIndex,ind,true,true);
|
|
|
|
|
mygrid_recv.editCell();
|
|
|
|
|
|
|
|
|
|
var old_length = oldLab.length;
|
|
|
|
|
//产生效果将检索字母之后的数据进行选黑
|
|
|
|
|
for(i = 0; i < document.all.length; i++){
|
|
|
|
|
if(document.all(i).tagName == "TEXTAREA"){
|
|
|
|
|
txtEdit = document.all(i);
|
|
|
|
|
|
|
|
|
|
var rt = txtEdit.createTextRange();
|
|
|
|
|
rt.collapse();
|
|
|
|
|
rt.select();//光标置最前
|
|
|
|
|
|
|
|
|
|
var r = document.selection.createRange();
|
|
|
|
|
r.collapse(false);
|
|
|
|
|
r.moveStart("character", pressRecord.length);//从m位开始
|
|
|
|
|
r.moveEnd("character", old_length);//选取n位
|
|
|
|
|
r.select();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//如果检索不能成功 pressCount=2
|
|
|
|
|
if(count == 0){
|
|
|
|
|
// pressCount = 2;
|
|
|
|
|
// txtEdit.value = pressRecord;
|
|
|
|
|
// for(i = 0; i < document.all.length; i++)
|
|
|
|
|
// {
|
|
|
|
|
// if(document.all(i).tagName == "TEXTAREA")
|
|
|
|
|
// {
|
|
|
|
|
// txtEdit = document.all(i);
|
|
|
|
|
//
|
|
|
|
|
// var rt = txtEdit.createTextRange();
|
|
|
|
|
// rt.collapse();
|
|
|
|
|
// rt.select();//光标置最前
|
|
|
|
|
//
|
|
|
|
|
// var r = document.selection.createRange();
|
|
|
|
|
// r.collapse(true);
|
|
|
|
|
// r.moveStart("character", pressRecord.length);//从m位开始
|
|
|
|
|
// r.moveEnd("character", pressRecord.length);//选取n位
|
|
|
|
|
|
|
|
|
|
// r.select();
|
|
|
|
|
//
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if(ind == 5)
|
|
|
|
|
{
|
|
|
|
|
//获取键盘输入字符
|
|
|
|
|
var pressVal = String.fromCharCode(code);
|
|
|
|
|
var start=0;
|
|
|
|
|
var end=0;
|
|
|
|
|
if(document.selection){
|
|
|
|
|
var range = document.selection.createRange();
|
|
|
|
|
if(range.parentElement().className == txtEdit.className){
|
|
|
|
|
var range_all = document.body.createTextRange();
|
|
|
|
|
range_all.moveToElementText(txtEdit);
|
|
|
|
|
|
|
|
|
|
for (start=0; range_all.compareEndPoints("StartToStart", range) < 0; start++){
|
|
|
|
|
range_all.moveStart('character', 1);
|
|
|
|
|
}
|
|
|
|
|
for (var i = 0; i <= start; i ++){
|
|
|
|
|
if (txtEdit.value.charAt(i) == '\n')
|
|
|
|
|
start++;
|
|
|
|
|
}
|
|
|
|
|
var range_all = document.body.createTextRange();
|
|
|
|
|
range_all.moveToElementText(txtEdit);
|
|
|
|
|
|
|
|
|
|
for (end = 0; range_all.compareEndPoints('StartToEnd', range) < 0; end ++)
|
|
|
|
|
range_all.moveStart('character', 1);
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i <= end; i ++){
|
|
|
|
|
if (txtEdit.value.charAt(i) == '\n')
|
|
|
|
|
end ++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//如果是当前检索位置
|
|
|
|
|
if(rowIndex == pressRowIndex && ind == pressCellIndex)
|
|
|
|
|
{
|
|
|
|
|
//未选中多个字符
|
|
|
|
|
if(start == end)
|
|
|
|
|
{
|
|
|
|
|
var dd =pressRecord.length;
|
|
|
|
|
if(start != dd)
|
|
|
|
|
{
|
|
|
|
|
if(start != 0)
|
|
|
|
|
{
|
|
|
|
|
var firstVal = pressRecord.substring(0,start - 1);
|
|
|
|
|
var endVal = pressRecord.substring(start + 1,txtEdit.value.length - 1);
|
|
|
|
|
pressRecord = firstVal+pressVal+endVal;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pressRecord = pressRecord+pressVal;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pressRecord = pressRecord+pressVal;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//选中多个字符
|
|
|
|
|
if(start != end)
|
|
|
|
|
{
|
|
|
|
|
var firstVal = pressRecord.substring(0,start);
|
|
|
|
|
var endVal = pressRecord.substring(end - 1,txtEdit.value.length - 1);
|
|
|
|
|
pressRecord = firstVal+pressVal+endVal;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
pressRecord = pressVal;
|
|
|
|
|
pressRowIndex = rowIndex;
|
|
|
|
|
pressCellIndex = ind;
|
|
|
|
|
}
|
|
|
|
|
//获取combo下拉列表
|
|
|
|
|
var combo = mygrid_recv.getCustomCombo(selectedId,ind);
|
|
|
|
|
var comboArg = combo.getKeys();
|
|
|
|
|
var count = 0;
|
|
|
|
|
|
|
|
|
|
//开始遍历检索
|
|
|
|
|
//如果检索成功 状态pressCount=1 如果不成功应为pressCount=2
|
|
|
|
|
for(var i = 0;i<comboArg.length;i++)
|
|
|
|
|
{
|
|
|
|
|
if(combo.get(comboArg[i]).toUpperCase().trim().indexOf(pressRecord) == 0)
|
|
|
|
|
{
|
|
|
|
|
//计数
|
|
|
|
|
count++;
|
|
|
|
|
//获取value
|
|
|
|
|
var oldVal = comboArg[i];
|
|
|
|
|
//获取label
|
|
|
|
|
var oldLab = combo.get(comboArg[i]);
|
|
|
|
|
|
|
|
|
|
//记录状态值 检索到数据项
|
|
|
|
|
pressCount = 1;
|
|
|
|
|
flagFilter = 1;
|
|
|
|
|
//关闭编辑
|
|
|
|
|
mygrid_recv.editStop();
|
|
|
|
|
//将value写入cell(触发 stage2)
|
|
|
|
|
mygrid_recv.cellByIndex(rowIndex,ind).setValue(oldVal);
|
|
|
|
|
flagFilter = 0;
|
|
|
|
|
//重新打开cell(触发stage0 stage1)
|
|
|
|
|
mygrid_recv.selectCell(rowIndex,ind,true,true);
|
|
|
|
|
mygrid_recv.editCell();
|
|
|
|
|
|
|
|
|
|
var old_length = oldLab.length;
|
|
|
|
|
//产生效果将检索字母之后的数据进行选黑
|
|
|
|
|
var r = document.selection.createRange();
|
|
|
|
|
r.collapse(true);
|
|
|
|
|
r.moveStart("character", pressRecord.length);//从m位开始
|
|
|
|
|
r.moveEnd("character", old_length);//选取n位
|
|
|
|
|
r.select();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//如果检索不能成功 pressCount=2
|
|
|
|
|
if(count == 0)
|
|
|
|
|
{
|
|
|
|
|
//关闭编辑
|
|
|
|
|
mygrid_recv.editStop();
|
|
|
|
|
//将value写入cell(触发 stage2)
|
|
|
|
|
mygrid_recv.cellByIndex(rowIndex,ind).setValue(pressRecord);
|
|
|
|
|
flagFilter = 0;
|
|
|
|
|
//重新打开cell(触发stage0 stage1)
|
|
|
|
|
mygrid_recv.selectCell(rowIndex,ind,true,true);
|
|
|
|
|
mygrid_recv.editCell();
|
|
|
|
|
//产生效果将检索字母之后的数据进行选黑
|
|
|
|
|
var r = document.selection.createRange();
|
|
|
|
|
r.moveStart("character", pressRecord.length);//从m位开始
|
|
|
|
|
r.collapse(true);
|
|
|
|
|
r.select();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//讲下拉列表Combo所有生成Array数组
|
|
|
|
|
function setComboByArray(gridNewObj,comboObj,rowGID,colIndex){
|
|
|
|
|
//var comboTxt_arg = new Array();
|
|
|
|
|
var comboVal_arg = new Array();
|
|
|
|
|
|
|
|
|
|
comboVal_arg = comboObj.getKeys();
|
|
|
|
|
var newCombo = gridNewObj.getCustomCombo(rowGID,colIndex);
|
|
|
|
|
|
|
|
|
|
for(var i = 0;i < comboVal_arg.length;i++){
|
|
|
|
|
var txtValue = comboObj.get(comboVal_arg[i]);
|
|
|
|
|
|
|
|
|
|
newCombo.put(comboVal_arg[i],txtValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function spliceBuffer(arrayRow){
|
|
|
|
|
var strBuffer = "";
|
|
|
|
|
for(var i = 0;i<arrayRow.length;++i){
|
|
|
|
|
strBuffer = strBuffer + arrayRow[i];
|
|
|
|
|
|
|
|
|
|
if(i != arrayRow.length - 1){
|
|
|
|
|
strBuffer = strBuffer + ",";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
alert(strBuffer);
|
|
|
|
|
}
|
|
|
|
|
//将整行值暂存到数组中
|
|
|
|
|
function getGridRowArray(arrayRow,gridObj,RowID){
|
|
|
|
|
var arg = new Array();
|
|
|
|
|
var columnCount = gridObj.getColumnsNum();
|
|
|
|
|
var rowCount = gridObj.getRowsNum();
|
|
|
|
|
alert(columnCount);alert(rowCount);
|
|
|
|
|
for(var i = 0;i < columnCount;i++){
|
|
|
|
|
alert(i);
|
|
|
|
|
|
|
|
|
|
var cellObj = gridObj.cellById(RowID, i);
|
|
|
|
|
alert(cellObj);
|
|
|
|
|
if(i==5){alert("kill");}
|
|
|
|
|
var cell = gridObj.cellById(RowID,i);
|
|
|
|
|
if(i==5){alert("kill");}
|
|
|
|
|
var rowValue = cell.getValue();
|
|
|
|
|
if(i==5){alert("kill");}
|
|
|
|
|
if(i == columnCount - 1){
|
|
|
|
|
arg.push(rowValue == 1?true:false);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//校验获取的值是否为数字,如果是数字记录时不加引号,如果是字符增加引号
|
|
|
|
|
var re = /^[-\+]?\d+(\.\d+)?$/;
|
|
|
|
|
if (!re.test(rowValue)){
|
|
|
|
|
switch(i){
|
|
|
|
|
case 4:
|
|
|
|
|
case 5:
|
|
|
|
|
case 6:
|
|
|
|
|
case 9:
|
|
|
|
|
alert("请正确输入数字");
|
|
|
|
|
return;
|
|
|
|
|
break;
|
|
|
|
|
case 8://如果是币别 则根据value值获取text值
|
|
|
|
|
var curCombo = gridObj.getCustomCombo(RowID,i);
|
|
|
|
|
arg.push(curCombo.get(rowValue));
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
arg.push(rowValue);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
if(i == 7){
|
|
|
|
|
//获取单价
|
|
|
|
|
var unitPrice = isObjNaN(parseFloat(gridObj.cellById(RowID,4).getValue()));
|
|
|
|
|
//获取数量
|
|
|
|
|
var quantityCount = isObjNaN(parseFloat(gridObj.cellById(RowID,5).getValue()));
|
|
|
|
|
//金额
|
|
|
|
|
var amount = unitPrice * quantityCount;
|
|
|
|
|
arg.push(outputMoney(amount.toString()));
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
|
|
arg.push(outputMoney(isObjNaN(parseFloat(rowValue)).toString()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//alert(arg);
|
|
|
|
|
return arg;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isObjNaN(Obj){
|
|
|
|
|
if(Obj.toString().toLowerCase() == "nan"){
|
|
|
|
|
return 0;
|
|
|
|
|
}else{
|
|
|
|
|
return Obj;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function addRecvRow(){
|
|
|
|
|
if(mygrid_recv.getRowsNum() > 0)
|
|
|
|
|
{
|
|
|
|
|
var newId = newGuid();
|
|
|
|
|
//获取插入新纪录位置
|
|
|
|
|
var rowCount = mygrid_recv.getRowsNum();
|
|
|
|
|
mygrid_recv.addRow(newId,["","",""],rowCount);
|
|
|
|
|
mygrid_recv.clearSelection();
|
|
|
|
|
var rId = mygrid_recv.getRowId(rowCount-1);
|
|
|
|
|
//重新加载FRT
|
|
|
|
|
var combo_frt;
|
|
|
|
|
combo_frt = mygrid_recv.getCustomCombo(rId, 0);
|
|
|
|
|
setComboByArray(mygrid_recv, combo_frt, newId, 0);
|
|
|
|
|
//
|
|
|
|
|
combo_frt = mygrid_recv.getCustomCombo(rId, 5);
|
|
|
|
|
setComboByArray(mygrid_recv, combo_frt, newId, 5)
|
|
|
|
|
//;
|
|
|
|
|
mygrid_recv.editStop(true);
|
|
|
|
|
mygrid_recv.selectCell(mygrid_recv.getRowIndex(newId),0,true,true);
|
|
|
|
|
mygrid_recv.editCell();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var BSNO = $("dvOrderNumVal").value.trim();
|
|
|
|
|
mygrid_recv.loadXML("SeaExportInfoGridSource.aspx?read=add&showcount=1&BSNO="+BSNO);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function deleteRecvRow()
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.editStop();
|
|
|
|
|
var selRowID = mygrid_recv.getSelectedRowId();
|
|
|
|
|
var selGroup = new Array();
|
|
|
|
|
if(selRowID.indexOf(",") > 0)
|
|
|
|
|
{
|
|
|
|
|
selGroup = selRowID.split(",");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if(selRowID != null)
|
|
|
|
|
{
|
|
|
|
|
selGroup.push(selRowID);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//查看是否有被选中的费用项
|
|
|
|
|
if(selGroup.length > 0)
|
|
|
|
|
{
|
|
|
|
|
if(selGroup.length > 1)
|
|
|
|
|
{
|
|
|
|
|
var delCount = 0;
|
|
|
|
|
if(window.confirm("您确定要将所选数据删除吗?"))
|
|
|
|
|
{
|
|
|
|
|
var dg=new dialog();
|
|
|
|
|
dg.html="<img src=\"../images/icon/progress.gif\" />";
|
|
|
|
|
dg.width=200;
|
|
|
|
|
dg.height=100;
|
|
|
|
|
dg.title="标题";
|
|
|
|
|
dg.show();
|
|
|
|
|
while(delCount < selGroup.length)
|
|
|
|
|
{
|
|
|
|
|
var rowIndex = mygrid_recv.getRowIndex(selGroup[delCount]);
|
|
|
|
|
|
|
|
|
|
var TopCtnName = mygrid_recv.cellByIndex(rowIndex,0).getValue();
|
|
|
|
|
var cusName = mygrid_recv.cellByIndex(rowIndex,1).getValue();
|
|
|
|
|
|
|
|
|
|
//var urlVal = "TopCtnService.aspx?gid="+selGroup[delCount]+"&handle=delete"+"&no="+newGuid();
|
|
|
|
|
|
|
|
|
|
var urlVal = "SeaExportInfoGridSource.aspx?read=delete&CTN_ID="+selGroup[delCount];
|
|
|
|
|
var loader = dhtmlxAjax.getSync(urlVal);
|
|
|
|
|
var loadVal = loader.xmlDoc.responseText;
|
|
|
|
|
|
|
|
|
|
if(loadVal > 0 )
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.deleteRow(selGroup[delCount]);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.deleteSelectedRows();
|
|
|
|
|
}
|
|
|
|
|
delCount++;
|
|
|
|
|
}
|
|
|
|
|
dg.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var delCount = 0;
|
|
|
|
|
while(delCount < selGroup.length){
|
|
|
|
|
var rowIndex = mygrid_recv.getRowIndex(selGroup[delCount]);
|
|
|
|
|
|
|
|
|
|
var TopCtnName = mygrid_recv.cellByIndex(rowIndex,0).getValue();
|
|
|
|
|
var cusName = mygrid_recv.cellByIndex(rowIndex,1).getValue();
|
|
|
|
|
|
|
|
|
|
if(window.confirm("您确定要将数据("+TopCtnName+")删除吗?")){
|
|
|
|
|
var dg=new dialog();
|
|
|
|
|
dg.html="<img src=\"../images/icon/progress.gif\" />";
|
|
|
|
|
dg.width=200;
|
|
|
|
|
dg.height=100;
|
|
|
|
|
dg.title="标题";
|
|
|
|
|
dg.show();
|
|
|
|
|
|
|
|
|
|
//var urlVal = "TopCtnService.aspx?gid="+selGroup[delCount]+"&handle=delete"+"&no="+newGuid();
|
|
|
|
|
|
|
|
|
|
var urlVal = "SeaExportInfoGridSource.aspx?read=delete&CTN_ID="+selGroup[delCount];
|
|
|
|
|
var loader = dhtmlxAjax.getSync(urlVal);
|
|
|
|
|
var loadVal = loader.xmlDoc.responseText;
|
|
|
|
|
|
|
|
|
|
if(loadVal > 0 )
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.deleteRow(selGroup[delCount]);
|
|
|
|
|
dg.close();
|
|
|
|
|
//alert("删除成功");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.deleteSelectedRows();
|
|
|
|
|
dg.close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
delCount++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
alert("未选中要操作的费用项");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function saveRecvChange()
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.editStop();
|
|
|
|
|
var strError="";
|
|
|
|
|
var strError2="";
|
|
|
|
|
var strError3="";
|
|
|
|
|
var BSNO = $("dvOrderNumVal").value.trim();
|
|
|
|
|
jsonTopCtnObj = "{\"$type\":\"DSWeb.Models.JsonTopCtnGroupEntity, DSWeb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\",\"JsonTopCtnEntities\":[";
|
|
|
|
|
column_count = mygrid_recv.getColumnsNum();
|
|
|
|
|
|
|
|
|
|
var tempJson = "";
|
|
|
|
|
var rowCount = mygrid_recv.getRowsNum();
|
|
|
|
|
for(var i = 0;i < rowCount;i++){
|
|
|
|
|
//获取RowID
|
|
|
|
|
tempJson = "";
|
|
|
|
|
var rId = mygrid_recv.getRowId(i);
|
|
|
|
|
|
|
|
|
|
tempJson += "\"$type\":\"DSWeb.Models.JsonTopCtnEntity, DSWeb, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\",";
|
|
|
|
|
tempJson += "\"TopCtn1\":\""+rId+"\",";//gid
|
|
|
|
|
|
|
|
|
|
strError="";
|
|
|
|
|
for(var j=0;j < column_count;j++){
|
|
|
|
|
var cell = mygrid_recv.cellById(rId,j);
|
|
|
|
|
var value = "";
|
|
|
|
|
//value = cell.cell.innerText; // .getValue();
|
|
|
|
|
value = cell.cell.textContent || cell.cell.innerText;
|
|
|
|
|
if((j+2)==2)
|
|
|
|
|
{
|
|
|
|
|
if(value.trim() == "")
|
|
|
|
|
{
|
|
|
|
|
value = "";
|
|
|
|
|
strError="集装箱列表中有箱型为空的数据,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
//value = "null";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if((j+2)==3)
|
|
|
|
|
{
|
|
|
|
|
if(value.trim() == "")
|
|
|
|
|
{
|
|
|
|
|
value = "1";
|
|
|
|
|
strError="集装箱列表中有箱量为空的数据,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var nb = IsNum(value.trim());
|
|
|
|
|
if(nb)
|
|
|
|
|
{
|
|
|
|
|
if(Number(value.trim())<1)
|
|
|
|
|
{
|
|
|
|
|
value = "1";
|
|
|
|
|
strError="集装箱列表中有箱量小于1的数据,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
value = "1";
|
|
|
|
|
strError="集装箱列表中箱量数据格式错误,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if((j+2)==4)
|
|
|
|
|
{
|
|
|
|
|
if(value.trim() != "")
|
|
|
|
|
{
|
|
|
|
|
var svl = value.trim().length;
|
|
|
|
|
if(svl==11)
|
|
|
|
|
{
|
|
|
|
|
var s13=value.trim().substr(0,3);
|
|
|
|
|
var re = new RegExp("^[A-Za-z]+$");
|
|
|
|
|
if (!re.test(s13))
|
|
|
|
|
{
|
|
|
|
|
strError="集装箱列表中箱号为“"+value.trim()+"”的数据,格式错误,请按照正确的箱号格式录入!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
var s4=value.trim().substr(3,1).toUpperCase();
|
|
|
|
|
if(s4.trim()!="U")
|
|
|
|
|
{
|
|
|
|
|
strError="集装箱列表中箱号为“"+value.trim()+"”的数据,格式错误,请按照正确的箱号格式录入!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
var s5611=value.trim().substr(4);
|
|
|
|
|
var bl = IsNum(s5611.trim());
|
|
|
|
|
if(!bl)
|
|
|
|
|
{
|
|
|
|
|
strError="集装箱列表中箱号为“"+value.trim()+"”的数据,格式错误,请按照正确的箱号格式录入!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
strError="集装箱列表中箱号为“"+value.trim()+"”的数据,格式错误,请按照正确的箱号格式录入!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
value=value.trim().toUpperCase();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if((j+2)==6)
|
|
|
|
|
{
|
|
|
|
|
if(value.trim() == "")
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var nb = IsNum(value.trim());
|
|
|
|
|
if(nb)
|
|
|
|
|
{
|
|
|
|
|
if(Number(value.trim())<1)
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
strError="集装箱列表中有件数小于0的数据,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
strError="集装箱列表中件数格式错误,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if((j+2)==8)
|
|
|
|
|
{
|
|
|
|
|
if(value.trim() == "")
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var nb = IsNum(value.trim());
|
|
|
|
|
if(nb)
|
|
|
|
|
{
|
|
|
|
|
if(Number(value.trim())<0)
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
strError="集装箱列表中有箱内货重小于0的数据,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
strError="集装箱列表中箱内货重格式错误,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if((j+2)==9)
|
|
|
|
|
{
|
|
|
|
|
if(value.trim() == "")
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var nb = IsNum(value.trim());
|
|
|
|
|
if(nb)
|
|
|
|
|
{
|
|
|
|
|
if(Number(value.trim())<0)
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
strError="集装箱列表中有箱皮重小于0的数据,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
strError="集装箱列表中箱皮重格式错误,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if((j+2)==10)
|
|
|
|
|
{
|
|
|
|
|
if(value.trim() == "")
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var nb = IsNum(value.trim());
|
|
|
|
|
if(nb)
|
|
|
|
|
{
|
|
|
|
|
if(Number(value.trim())<0)
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
strError="集装箱列表中有尺码小于1的数据,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
value = "0";
|
|
|
|
|
strError="集装箱列表中尺码格式错误,不能保存集装箱信息!"
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if(value.trim() == "")
|
|
|
|
|
{
|
|
|
|
|
value = "";
|
|
|
|
|
//value = "null";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
tempJson += "\"TopCtn"+(j+2)+"\":\""+value.trim()+"\",";
|
|
|
|
|
}
|
|
|
|
|
tempJson += "\"TopCtn12\":\""+BSNO+"\"";
|
|
|
|
|
tempJson = "{"+tempJson+"}";
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
if(strError!="")
|
|
|
|
|
{
|
|
|
|
|
strError2=strError;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
strError3+=","+BSNO
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
if(i == rowCount - 1)
|
|
|
|
|
{
|
|
|
|
|
jsonTopCtnObj = jsonTopCtnObj+tempJson;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
jsonTopCtnObj = jsonTopCtnObj+tempJson+",";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
if(strError2!="")
|
|
|
|
|
{
|
|
|
|
|
alert(strError2);
|
|
|
|
|
strError2="";
|
|
|
|
|
|
|
|
|
|
var dg=new dialog();
|
|
|
|
|
dg.close();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
// if(strError3=="")
|
|
|
|
|
// {
|
|
|
|
|
// var dg=new dialog();
|
|
|
|
|
// dg.close();
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
jsonTopCtnObj += "]}";
|
|
|
|
|
var txt_name = $("recvContainer");
|
|
|
|
|
txt_name.value = jsonTopCtnObj;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
msgBox();
|
|
|
|
|
setTimeout(postEnterTopCtn,200);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function doOnRowSelected(rowID,celInd){
|
|
|
|
|
alert("Selected row ID is "+rowID+"\nUser clicked cell with index "+celInd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getValue(){
|
|
|
|
|
var colLabel=mygrid_recv.getColumnLabel(0);
|
|
|
|
|
alert(colLabel);
|
|
|
|
|
var colLabel2=mygrid_recv.getColumnLabel(0,1);
|
|
|
|
|
alert(colLabel2);
|
|
|
|
|
}
|
|
|
|
|
//post数据
|
|
|
|
|
function postEnterTopCtn(){
|
|
|
|
|
var myForm = document.getElementById("form1");
|
|
|
|
|
myForm.submit() ;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function findRow(){
|
|
|
|
|
|
|
|
|
|
var colNum = mygrid.getColumnsNum();
|
|
|
|
|
//alert(colNum);
|
|
|
|
|
|
|
|
|
|
var count = mygrid.getRowsNum();
|
|
|
|
|
//alert(count);
|
|
|
|
|
|
|
|
|
|
//var combo = mygrid.getCombo(1);
|
|
|
|
|
//combo.put("abc","abc");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function initGrid(){
|
|
|
|
|
doInitRecvGrid();
|
|
|
|
|
//setTimeout(doInitPayGrid,200);
|
|
|
|
|
//setTimeout(totalDynamicTopCtnGain,700);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//放弃应收费用修改 重新加载页面
|
|
|
|
|
function recoverRecvChange()
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.editStop();
|
|
|
|
|
var selRowID = mygrid_recv.getSelectedRowId();
|
|
|
|
|
//查看是否有被选中的费用项
|
|
|
|
|
if(selRowID != null)
|
|
|
|
|
{
|
|
|
|
|
var rowIndex = mygrid_recv.getRowIndex(selRowID);
|
|
|
|
|
var status = mygrid_recv.cellByIndex(rowIndex,0).getValue();
|
|
|
|
|
var TopCtnName = mygrid_recv.cellByIndex(rowIndex,1).getValue();
|
|
|
|
|
var cusName = mygrid_recv.cellByIndex(rowIndex,2).getValue();
|
|
|
|
|
|
|
|
|
|
if(window.confirm("您确定放弃当前行的修改吗?"))
|
|
|
|
|
{
|
|
|
|
|
var dg=new dialog();
|
|
|
|
|
dg.html="<img src=\"../../images/icon/progress.gif\" />";
|
|
|
|
|
dg.width=200;
|
|
|
|
|
dg.height=100;
|
|
|
|
|
dg.title="标题";
|
|
|
|
|
dg.show();
|
|
|
|
|
|
|
|
|
|
var urlVal = "SeaExportInfoGridSource.aspx?read=recover&CTN_ID="+selRowID+"&val="+newGuid();
|
|
|
|
|
var loader = dhtmlxAjax.getSync(urlVal);
|
|
|
|
|
var loadVal = loader.xmlDoc.responseText;
|
|
|
|
|
if(!IsNum(loadVal))
|
|
|
|
|
{
|
|
|
|
|
var recvArg = new Array();
|
|
|
|
|
recvArg = loadVal.split(",");
|
|
|
|
|
var selRowIndex = mygrid_recv.getRowIndex(recvArg[0]);
|
|
|
|
|
var colCount = mygrid_recv.getColumnsNum();
|
|
|
|
|
for(var i=0;i<colCount;i++)
|
|
|
|
|
{
|
|
|
|
|
mygrid_recv.cellByIndex(selRowIndex,i).setValue(recvArg[i+1]);
|
|
|
|
|
}
|
|
|
|
|
dg.close();
|
|
|
|
|
//alert("恢复成功");
|
|
|
|
|
//refreshRecv();//刷新
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if(parseInt(loadVal) == -3)
|
|
|
|
|
{
|
|
|
|
|
// mygrid_recv.cellByIndex(rowIndex,1).setValue("");
|
|
|
|
|
// mygrid_recv.cellByIndex(rowIndex,2).setValue("");
|
|
|
|
|
// mygrid_recv.cellByIndex(rowIndex,3).setValue("");
|
|
|
|
|
mygrid_recv.deleteSelectedRows();
|
|
|
|
|
}
|
|
|
|
|
dg.close();
|
|
|
|
|
}
|
|
|
|
|
ReShowLabel(mygrid_recv);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
alert("未选中要操作的费用项");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function print_recv()
|
|
|
|
|
{
|
|
|
|
|
alert("正在打印");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function amountSum(gridName){
|
|
|
|
|
if(gridName == "recv"){
|
|
|
|
|
//计算应收
|
|
|
|
|
mygrid_recv
|
|
|
|
|
}else{
|
|
|
|
|
//计算应付
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function outputMoney(number) {
|
|
|
|
|
number= number.replace(/\,/g,"");
|
|
|
|
|
if (isNaN(number)||number=="") return "";
|
|
|
|
|
number = Math.round( number*100) /100;
|
|
|
|
|
if(number<0)
|
|
|
|
|
return '-'+outputDollars(Math.floor(Math.abs(number)-0) + '') + outputCents(Math.abs(number) - 0);
|
|
|
|
|
else
|
|
|
|
|
return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function outputDollars(number)
|
|
|
|
|
{
|
|
|
|
|
if (number.length<= 3)
|
|
|
|
|
return (number == '' ? '0' : number);
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var mod = number.length%3;
|
|
|
|
|
var output = (mod == 0 ? '' : (number.substring(0,mod)));
|
|
|
|
|
for (i=0 ; i< Math.floor(number.length/3) ; i++)
|
|
|
|
|
{
|
|
|
|
|
if ((mod ==0) && (i ==0))
|
|
|
|
|
output+= number.substring(mod+3*i,mod+3*i+3);
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
output+= ',' + number.substring(mod+3*i,mod+3*i+3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (output);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function outputCents(amount)
|
|
|
|
|
{
|
|
|
|
|
amount = Math.round( ( (amount) - Math.floor(amount) ) *100);
|
|
|
|
|
return (amount<10 ? '.0' + amount : '.' + amount);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取GUID
|
|
|
|
|
function newGuid()
|
|
|
|
|
{
|
|
|
|
|
var guid = "";
|
|
|
|
|
for (var i = 1; i <= 32; i++){
|
|
|
|
|
var n = Math.floor(Math.random()*16.0).toString(16);
|
|
|
|
|
guid += n;
|
|
|
|
|
if((i==8)||(i==12)||(i==16)||(i==20))
|
|
|
|
|
guid += "-";
|
|
|
|
|
}
|
|
|
|
|
return guid.toUpperCase();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function dialog() {
|
|
|
|
|
this.width = 450;
|
|
|
|
|
this.height = 360;
|
|
|
|
|
this.title_height = 20;
|
|
|
|
|
this.html = '';
|
|
|
|
|
this.title = '';
|
|
|
|
|
var self = this;
|
|
|
|
|
var bgObj, msgObj, titleObj;
|
|
|
|
|
this.close = function () {
|
|
|
|
|
document.body.removeChild(document.getElementById("bgDiv"));
|
|
|
|
|
document.getElementById("msgDiv").removeChild(document.getElementById("msgTitle"));
|
|
|
|
|
document.body.removeChild(document.getElementById("msgDiv"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.show = function () {
|
|
|
|
|
var msgw, msgh, bordercolor;
|
|
|
|
|
msgw = self.width;
|
|
|
|
|
msgh = self.height;
|
|
|
|
|
bordercolor = "#336699";
|
|
|
|
|
titlecolor = "#99CCFF";
|
|
|
|
|
|
|
|
|
|
var sWidth, sHeight;
|
|
|
|
|
sWidth = document.body.offsetWidth;
|
|
|
|
|
sHeight = screen.height;
|
|
|
|
|
bgObj = document.createElement("div");
|
|
|
|
|
bgObj.setAttribute('id', 'bgDiv');
|
|
|
|
|
bgObj.style.position = "absolute";
|
|
|
|
|
bgObj.style.top = "0";
|
|
|
|
|
bgObj.style.background = "#777";
|
|
|
|
|
bgObj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75";
|
|
|
|
|
bgObj.style.opacity = "0.6";
|
|
|
|
|
bgObj.style.left = "0";
|
|
|
|
|
bgObj.style.width = sWidth + "px";
|
|
|
|
|
bgObj.style.height = sHeight + "px";
|
|
|
|
|
bgObj.style.zIndex = "10000";
|
|
|
|
|
document.body.appendChild(bgObj);
|
|
|
|
|
|
|
|
|
|
msgObj = document.createElement("div")
|
|
|
|
|
msgObj.setAttribute("id", "msgDiv");
|
|
|
|
|
msgObj.setAttribute("align", "center");
|
|
|
|
|
msgObj.style.background = "white";
|
|
|
|
|
msgObj.style.border = "1px solid " + bordercolor;
|
|
|
|
|
msgObj.style.position = "absolute";
|
|
|
|
|
msgObj.style.left = "50%";
|
|
|
|
|
msgObj.style.top = "30%";
|
|
|
|
|
msgObj.style.font = "12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
|
|
|
|
|
msgObj.style.marginLeft = "-225px";
|
|
|
|
|
msgObj.style.marginTop = -75 + document.documentElement.scrollTop + "px";
|
|
|
|
|
msgObj.style.width = msgw + "px";
|
|
|
|
|
msgObj.style.height = msgh + "px";
|
|
|
|
|
msgObj.style.textAlign = "center";
|
|
|
|
|
msgObj.style.lineHeight = "25px";
|
|
|
|
|
msgObj.style.zIndex = "10001";
|
|
|
|
|
|
|
|
|
|
titleObj = document.createElement("h4");
|
|
|
|
|
titleObj.setAttribute("id", "msgTitle");
|
|
|
|
|
titleObj.setAttribute("align", "center");
|
|
|
|
|
titleObj.style.margin = "0";
|
|
|
|
|
titleObj.style.padding = "3px";
|
|
|
|
|
titleObj.style.background = bordercolor;
|
|
|
|
|
titleObj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100);";
|
|
|
|
|
titleObj.style.opacity = "0.75";
|
|
|
|
|
titleObj.style.border = "1px solid " + bordercolor;
|
|
|
|
|
titleObj.style.height = self.title_height + "px";
|
|
|
|
|
titleObj.style.font = "12px Verdana, Geneva, Arial, Helvetica, sans-serif";
|
|
|
|
|
titleObj.style.color = "white";
|
|
|
|
|
titleObj.style.cursor = "pointer";
|
|
|
|
|
titleObj.innerHTML = self.title;
|
|
|
|
|
//titleObj.onclick=function(){self.close();}
|
|
|
|
|
document.body.appendChild(msgObj);
|
|
|
|
|
document.getElementById("msgDiv").appendChild(titleObj);
|
|
|
|
|
var txt = document.createElement("div");
|
|
|
|
|
txt.style.margin = "1em 0"
|
|
|
|
|
txt.setAttribute("id", "msgTxt");
|
|
|
|
|
txt.innerHTML = self.html;
|
|
|
|
|
document.getElementById("msgDiv").appendChild(txt);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function msgBox() {
|
|
|
|
|
var dg = new dialog();
|
|
|
|
|
dg.html = "程序正在提交,请稍等!";
|
|
|
|
|
//dg.html+="<input type=button onclick='new dialog().close();' value='确定'>";
|
|
|
|
|
dg.width = 200;
|
|
|
|
|
dg.height = 100;
|
|
|
|
|
dg.title = "标题";
|
|
|
|
|
dg.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//是否为数字
|
|
|
|
|
function IsNum(val){
|
|
|
|
|
var re = /^[-\+]?\d+(\.\d+)?$/;
|
|
|
|
|
if (!re.test(val)){
|
|
|
|
|
return false;
|
|
|
|
|
}else{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//整数或者为空
|
|
|
|
|
function isIntOrNull(str){
|
|
|
|
|
if(!isObj(str))//判断对象是否存在
|
|
|
|
|
return 'undefined';
|
|
|
|
|
return isNull(str)||isInt(str);
|
|
|
|
|
}
|
|
|
|
|
//必需是整数
|
|
|
|
|
function isInt(str){
|
|
|
|
|
var reg = /^(-|\+)?\d+$/ ;
|
|
|
|
|
return reg.test(str);
|
|
|
|
|
}
|
|
|
|
|
//1.2 小数
|
|
|
|
|
//小数或者为空
|
|
|
|
|
function isFloatOrNull(str){
|
|
|
|
|
if(!isObj(str))//判 断对象是否存在
|
|
|
|
|
return 'undefined';
|
|
|
|
|
if(isInt(str))
|
|
|
|
|
return true;
|
|
|
|
|
return isNull(str)||isFloat(str);
|
|
|
|
|
}
|
|
|
|
|
//必需是小数
|
|
|
|
|
function isFloat(str){
|
|
|
|
|
if(isInt(str))
|
|
|
|
|
return true;
|
|
|
|
|
var reg = /^(-|\+)?\d+\.\d*$/;
|
|
|
|
|
return reg.test(str);
|
|
|
|
|
}
|
|
|
|
|
//1.3 数字大小判断
|
|
|
|
|
//数i不能大于数y
|
|
|
|
|
function iMinY(i , y){
|
|
|
|
|
if(!isObj(i)||!isObj(y))// 判断对象是否存在
|
|
|
|
|
return 'undefined';
|
|
|
|
|
if(!(isFloat(i)&&isFloat(y)))
|
|
|
|
|
return '比较的必须是数字类型'
|
|
|
|
|
if(i<=y)
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
// 数i不能小于数y
|
|
|
|
|
function iMaxY(i , y){
|
|
|
|
|
if(!isObj(i)||!isObj(y))//判断对象是 否存在
|
|
|
|
|
return 'undefined';
|
|
|
|
|
if(!(isFloat(i)&&isFloat(y)))
|
|
|
|
|
return '比较的必须是数字类型'
|
|
|
|
|
if(i>=y)
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function ConvertToMoney(strObj){
|
|
|
|
|
var result = strObj.replace(",","");
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function filterComboCustomerPress(gridObj,rowID,rowIndex,colIndex,filterVal,oldVal){
|
|
|
|
|
var combo = gridObj.getCustomCombo(rowID,colIndex);
|
|
|
|
|
|
|
|
|
|
var comboArg = combo.getKeys();
|
|
|
|
|
|
|
|
|
|
var doCount = 0;
|
|
|
|
|
for(var i = 0;i<comboArg.length;i++){
|
|
|
|
|
|
|
|
|
|
if(combo.get(comboArg[i]).toUpperCase().trim().indexOf(filterVal.toUpperCase()) == 0){
|
|
|
|
|
alert(combo.get(comboArg[i]).toUpperCase().trim());
|
|
|
|
|
gridObj.cellByIndex(rowIndex,colIndex).setValue(combo.get(comboArg[i]));
|
|
|
|
|
gridObj.selectCell(rowIndex,colIndex,true,true,true,true);
|
|
|
|
|
doCount = 1;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//两端去空格函数
|
|
|
|
|
String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g,""); }
|
|
|
|
|
|
|
|
|
|
function ReShowLabel(gridObj){
|
|
|
|
|
var columnCount = gridObj.getColumnsNum();
|
|
|
|
|
var rowCount = gridObj.getRowsNum();
|
|
|
|
|
|
|
|
|
|
if(rowCount > 0){
|
|
|
|
|
for(var i = 0;i<rowCount;i++){
|
|
|
|
|
for(var j = 0;j<columnCount;j++){
|
|
|
|
|
if(j == 1 || j == 2){
|
|
|
|
|
var cellCurVal = gridObj.cellByIndex(i,j).getValue();
|
|
|
|
|
gridObj.cellByIndex(i,j).setLabel(cellCurVal);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function clearNoNum(valObj)
|
|
|
|
|
{
|
|
|
|
|
//先把非数字的都替换掉,除了数字和.
|
|
|
|
|
valObj = valObj.replace(/[^\d.]/g,"");
|
|
|
|
|
//必须保证第一个为数字而不是.
|
|
|
|
|
valObj = valObj.replace(/^\./g,"");
|
|
|
|
|
//保证只有出现一个.而没有多个.
|
|
|
|
|
valObj = valObj.replace(/\.{2,}/g,".");
|
|
|
|
|
//保证.只出现一次,而不能出现两次以上
|
|
|
|
|
valObj = valObj.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
|
|
|
|
|
|
|
|
|
|
return valObj;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function markStatusColor(gridObj)
|
|
|
|
|
{
|
|
|
|
|
var count = gridObj.getRowsNum();
|
|
|
|
|
for(var i = 0;i<count;i++)
|
|
|
|
|
{
|
|
|
|
|
var status = gridObj.cellByIndex(i,0).getValue();
|
|
|
|
|
var rowId = gridObj.getRowId(i);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//刷新应收
|
|
|
|
|
function refreshRecv()
|
|
|
|
|
{
|
|
|
|
|
doInitRecvGrid();
|
|
|
|
|
}
|