本帖最后由 加菲喵 于 2015-9-11 09:46 编辑
· 问题描述 · 实现思路 · 示例 - 打开报表
- 新增删除按钮
- 编辑Js语句跳转到删除页面
- 编辑删除页面
- 编辑填报事件
- 编辑报表Web属性
- 保存并预览
1. 问题描述 单行数据存储进数据库后涉及到删除,倘若新添加的这行数据发生了错误需要删除,就涉及到再次修改数据库数据。 2. 实现思路 在进行删除动作的时候,我们同样只能采用填报属性实现。但一张报表只有一个填报属性,所以这里我们通过Js语句调用另一张报表的填报属性,通过两张报表联动,实现数据在数据库中的删除。 注意:此处只是根据实际需要调用数据库,实现添加、删除两种功能。读者可以举一反三,调用多张报表实现多种方式的数据库调用。
3. 示例 3.1打开报表 打开报表http://localhost:8075/WebReport/ReportServer?reportlet=Rowdel.cpt 3.2新增删除按钮 在添加按钮旁边新增单元格新增删除按钮,编辑按钮属性,按钮类型:删除行,图标:红色小叉叉,按钮名字:无。 3.3编辑Js语句跳转到删除页面 点击删除按钮右键-->控件设置-->事件编辑-->点击,创建新的JS事件。新增参数:id,参数的值用公式绑定单元格A3。restnum,参数的值用公式绑定单元格D3。编写Js脚本,脚本如下: if(id==null||id==""||id=="null"){
alert("删除空数据");//该行语句是为了验证删除行是否为空。
}else{
var $iframe = $("<iframe id='rowin' name='rowin' width='100%' height='100%' scrolling='no' frameborder='0'>");
$iframe.attr("src", "${servletURL}?reportlet=Rowdel.cpt&op=write&__showtoolbar__=true&id="+id+"&restnum="+restnum);
var o = {
title : "",
width : 280,
height: 200
};//删除成功后,删除报表会以弹窗的方式提示删除的书名,这个是弹窗报表的尺寸。
FR.showDialog(o.title, o.width, o.height, $iframe,o);
} | 注意:如果传递的参数是中文,有可能报表无法识别3.4编辑删除页面 新创建报表 以下是各类参数,可供读者参考:A列:4mm,B列:11mm,C列:49mm 1行:11mm,2、3、4行:8.5mm,5行9mm。 在B1单元格=$id,C1:号产品订购信息删除成功,D1单元格写下:=$num,E1单元格写下:=$restnum因为这两个单元格只用来传递参数,并不在报表中体现,因此将这两列进行隐藏。 B5和C5合并单元格,在此处添加按钮控件,文本内容写:确定。因为填报成功后会有成功弹窗,所以2、3、4行留给弹窗 3.5编辑填报事件 模板->报表填报属性-->提交-->内置SQL,在这个地方实现对数据的删除。 3.6编辑报表Web属性 边界Web属性:模板-->模板Web属性-->填报页面设置-->将设置改为:为该模板单独设置à在事件设置中添加加载结束事件。然后编写Js语句:_g().writeReport(); 因为要把删除页面伪装成弹窗,所以为了页面美观,我们将顶部工具栏全部清空。 3.5保存并预览 可以看到数据被订购后,库存量发生了变化,在删除了这条订购信息后,库存量又恢复到订购前的数量。
|