快逸报表一键切换报表是否可写
最近一段工作中遇到一个客户提出的需求,想要做一个按钮,点击这个按钮后,将他的填报表里编辑框可编辑的单元格就变成不可编辑的了,即变成普通报表,不可填报的,而再点击另一个按钮,就能还原单元格的可写属性,变成可填报的了,下面就做一个简单的例子,实现这个需求。
实现上面需求的思路是,写一个JavaScript函数,通过点击按钮调用这个函数,来切换单元格的可写属性,根据上面的思路,可以写出如下的js函数,来实现这个功能:
<Script language=”javascript”>
function setReportWritable(report_table, writable) {
var _input_report_writable = writable;//设置为是否可写,boolean类型
for ( var row = 0; row < report_table.rows.length; row++) {
var currRow = report_table.rows[row];//取得行
for ( var col = 0; col < currRow.cells.length; col++) {
var currCell = currRow.cells[col];//取得指定行列(单元格)
if (!writable) {//设置为不可写(填)
currCell.onclick = _hideEditor;
} else {//设置报表为可写(填)
currCell.onclick = _displayEditor; } } } }
</ Script >
下面就基于这个js函数,来逐步的实现上面所说的需求。
第一步:连接demo数据源,新建一张填报表。
连接demo数据源,用其中的订单表新建一张填报表,填报表的sql为:SELECT 订单.订单ID,订单.货主名称,订单.货主国家,订单.货主地区 FROM 订单,然后复杂报表设计" target="_blank" class="quieeLink1">设计一张如下图所示的填报表,并且勾选上A1,B1,C1,D1单元格的是否可写属性:
第二步:编写aspx
这里就使用润乾自带的showreport.aspx,对其进行修改,来实现上面的需求。
首先在aspx中加入上面所提到的js函数,然后在aspx中用html写两个按钮,内容如下:
<input type = “button” value=”不可写” onclick=” setReportWritable(report1,false)”>
<input type = “button” value=”可写” onclick=” setReportWritable(report1,true)”>
第三步:发布这张报表,查看效果。
发布报表,得到的效果如下图所示:
然后点击页面上的不可写按钮,会发现报表的所有单元格都变成不可写了,具体的样式如下图所示:
再点击页面上的可写按钮,就会发现页面上的单元格就又变成可写的了,点击可写后,报表如下图所示:
这样,通过以上几个步骤通过一个按钮切换报表是否可写的功能就实现了。