行式填报表在删除数据时弹出提示
2016-11-23 16:09
295 查看
在润乾报表中,如果将报表设置成行式填报表,那么我们可以对数据进行插入,添加,删除等操作。点击“删除”按钮的时候,会直接将数据删除掉。有时候可能会不小心点到了“删除”按钮,将不想删除的数据给删除掉了。这种情况会让人很苦恼,在操作的时候也没那么随心所欲。
为了避免这种情况,我们需要在删除数据的时候,弹出一个对话框进行提示:是否确定删除该数据?
下面我们一起来看一下,如何实现这种效果。
在一张填报表做好之后,修改一下发布报表的JSP。在其中添加一个自定义按钮“自写行删除”,如下图
图1
这个按钮调用的是_deleteRow123(report1)这个js函数。
_deleteRow123(report1)方法如下:
function _deleteRow123( table ) {
if(confirm(”确定删除吗?“)==true){
if( table.currCell == null ) {
alert( __AAA );
return;
}
var row = table.currCell.parentElement;
if( !row.isDetail ) {
alert( __BBB );
return;
}
var oldCellIndex = table.currCell.colNo;
var index = row.rowIndex;
var currCellRowIndex = index;
while( !row.isFirst ) {
index–;
row = table.rows[ index ];
}
findRowNoInGroup( table, row );
var deltaIndex = currCellRowIndex – index;
var drows = parseInt( row.drows );
var srcCell = row.cells[0].sc;
var firstIndex = index, tmpIndex = index;
var details = 1;
while( true ) { //查找本扩展区的第一条记录的首行
if( tmpIndex == 0 ) break;
tmpIndex–;
var r = table.rows[ tmpIndex ];
if( !r.isDetail ) break;
if( r.isFirst ) {
if( r.cells[0].sc == srcCell ) {
firstIndex = tmpIndex;
if( !r.deleted ) details++;
}
else break;
}
}
var lastIndex = index;
t
4000
mpIndex = index;
while( true ) { //查找本扩展区的最后一条记录的首行
tmpIndex++;
var r = table.rows[ tmpIndex ];
if( r == null || !r.isDetail ) break;
if( r.isFirst ) {
if( r.cells[0].sc == srcCell ) {
lastIndex = tmpIndex;
if( !r.deleted ) details++;
}
else break;
}
}
if( details == 1 ) { //最后一条明细了,需要先复制一个空明细
table.currEditor = null;
_copyRows( table, row, index );
index += drows;
}
for( var i = 0; i < drows; i++ ) {
row = table.rows[ index + i ];
for( var j = 0; j < row.cells.length; j++ ) {
row.cells[j].style.display = “none”;
}
row.deleted = true;
row.style.display = “none”;
}
if( details > 1 ) {
var currRow = null;
var n = index;
while( true ) { //往后搜索新的当前行
index += drows;
var r = table.rows[ index ];
if( r == null || !r.isDetail ) break;
if( r.style.display == “none” ) continue;
if( r.cells[0].sc != srcCell ) break;
currRow = r;
break;
}
if( currRow == null ) { //往前搜索新的当前行
index = n;
while( true ) {
index -= drows;
var r = table.rows[ index ];
if( r == null || !r.isDetail ) break;
if( r.style.display == “none” ) continue;
if( r.cells[0].sc != srcCell ) break;
currRow = r;
break;
}
}
currRow = table.rows[ currRow.rowIndex + deltaIndex ];
var currCell = null;
for( var k = 0; k < currRow.cells.length; k++ ) {
var c = currRow.cells[k];
if( c.colNo == oldCellIndex ) {
currCell = c;
break;
}
}
if( currCell != null ) {
table.currEditor = null;
_bindingEditor( currCell );
}
}
_calcTbl( table, row.cells[0] ); //删除一行时,重新计算相关组的统计值
_calcRowNoInGroup( table, row );
}
else{
return false;
}
}
如此设置之后,当点击“自写行删除”按钮时,会弹出一个对话框,询问是否确实要删除该数据,点击“确认”则删除该数据,点击“取消”则不删除该数据。如下图
在润乾报表中,如果将报表设置成行式填报表,那么我们可以对数据进行插入,添加,删除等操作。点击“删除”按钮的时候,会直接将数据删除掉。有时候可能会不小心点到了“删除”按钮,将不想删除的数据给删除掉了。这种情况会让人很苦恼,在操作的时候也没那么随心所欲。
为了避免这种情况,我们需要在删除数据的时候,弹出一个对话框进行提示:是否确定删除该数据?
下面我们一起来看一下,如何实现这种效果。
在一张填报表做好之后,修改一下发布报表的JSP。在其中添加一个自定义按钮“自写行删除”,如下图
图1
这个按钮调用的是_deleteRow123(report1)这个js函数。
_deleteRow123(report1)方法如下:
function _deleteRow123( table ) {
if(confirm(”确定删除吗?“)==true){
if( table.currCell == null ) {
alert( __AAA );
return;
}
var row = table.currCell.parentElement;
if( !row.isDetail ) {
alert( __BBB );
return;
}
var oldCellIndex = table.currCell.colNo;
var index = row.rowIndex;
var currCellRowIndex = index;
while( !row.isFirst ) {
index–;
row = table.rows[ index ];
}
findRowNoInGroup( table, row );
var deltaIndex = currCellRowIndex – index;
var drows = parseInt( row.drows );
var srcCell = row.cells[0].sc;
var firstIndex = index, tmpIndex = index;
var details = 1;
while( true ) { //查找本扩展区的第一条记录的首行
if( tmpIndex == 0 ) break;
tmpIndex–;
var r = table.rows[ tmpIndex ];
if( !r.isDetail ) break;
if( r.isFirst ) {
if( r.cells[0].sc == srcCell ) {
firstIndex = tmpIndex;
if( !r.deleted ) details++;
}
else break;
}
}
var lastIndex = index;
t
4000
mpIndex = index;
while( true ) { //查找本扩展区的最后一条记录的首行
tmpIndex++;
var r = table.rows[ tmpIndex ];
if( r == null || !r.isDetail ) break;
if( r.isFirst ) {
if( r.cells[0].sc == srcCell ) {
lastIndex = tmpIndex;
if( !r.deleted ) details++;
}
else break;
}
}
if( details == 1 ) { //最后一条明细了,需要先复制一个空明细
table.currEditor = null;
_copyRows( table, row, index );
index += drows;
}
for( var i = 0; i < drows; i++ ) {
row = table.rows[ index + i ];
for( var j = 0; j < row.cells.length; j++ ) {
row.cells[j].style.display = “none”;
}
row.deleted = true;
row.style.display = “none”;
}
if( details > 1 ) {
var currRow = null;
var n = index;
while( true ) { //往后搜索新的当前行
index += drows;
var r = table.rows[ index ];
if( r == null || !r.isDetail ) break;
if( r.style.display == “none” ) continue;
if( r.cells[0].sc != srcCell ) break;
currRow = r;
break;
}
if( currRow == null ) { //往前搜索新的当前行
index = n;
while( true ) {
index -= drows;
var r = table.rows[ index ];
if( r == null || !r.isDetail ) break;
if( r.style.display == “none” ) continue;
if( r.cells[0].sc != srcCell ) break;
currRow = r;
break;
}
}
currRow = table.rows[ currRow.rowIndex + deltaIndex ];
var currCell = null;
for( var k = 0; k < currRow.cells.length; k++ ) {
var c = currRow.cells[k];
if( c.colNo == oldCellIndex ) {
currCell = c;
break;
}
}
if( currCell != null ) {
table.currEditor = null;
_bindingEditor( currCell );
}
}
_calcTbl( table, row.cells[0] ); //删除一行时,重新计算相关组的统计值
_calcRowNoInGroup( table, row );
}
else{
return false;
}
}
如此设置之后,当点击“自写行删除”按钮时,会弹出一个对话框,询问是否确实要删除该数据,点击“确认”则删除该数据,点击“取消”则不删除该数据。如下图
相关文章推荐
- 删除数据时弹出提示信息
- jquery删除数据记录时的弹出提示效果
- jquery删除数据记录时的弹出提示效果
- DataGrid使用----删除数据前弹出提示框
- vue中使用splice()删除数组中的一个数据 弹出窗口提示。
- DataGrid中全选删除按钮,如果没选,先提示没有选择,再弹出确定删除对话框的例子
- 删除时弹出confirm提示小结
- gridview删除数据显示提示对话框
- GRIDVIEW控件删除数据前如何给予客户端提示
- gridview删除一行数据提示
- GridView使用技巧之:新增记录、GridView内数据验证、删除信息提示等
- DataGrid或者DataList里删除弹出提示
- 删除Excel 中某一Sheet的数据时,提示: "该 ISAM 不支持在链接表中删除数据"
- 在使用GridView中删除的按钮弹出提示框最简单的一中方法
- 写了个检查页面数据是否修改来弹出提示的东东
- 更新数据后弹出提示框代码
- 使用DataGrid中删除某数据如何出现提示信息????
- 删除的时候弹出提示的各种方法
- window.showModalDialog方式/模式窗口数据不刷新(缓存)问题/模式窗口中,链接弹出新窗口问题/无提示关闭页面的方法
- GridView控件删除行的操作提示及自定义数据行的代码实现