如何在当前控件下编辑事件,获取其他控件的值

如何在当前控件下编辑事件,获取其他控件的值

image.png

FineReport yzm239581 发布于 2021-6-28 10:27 (编辑于 2021-6-28 10:35)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2021-6-28 10:28(编辑于 2021-6-28 10:38)

参考FineReport 的 JS 实例-https://help.fanruan.com/finereport/doc-view-1175.html

报表内

contentPane.getWidgetByName("ss").getValue();//取实际值

contentPane.getWidgetByName("ss").getText();//取显示值

参数面板

this.options.form.getWidgetByName("ss").getValue();//取实际值

this.options.form.getWidgetByName("ss").getText();//取显示值

决策报表取数

this.options.form.getWidgetByName("pp").getValue();

_g().getWidgetByName("pp").getValue(); 

contentPane.parameterEl.getWidgetByName("pp").getValue();

=================

获取填报页面的单元格的值,有以下几种方法:

contentPane.getCellValue(sheet号,列号,行号);  //sheet号行号列号是从0开始  

contentPane.curLGP.getCellValue(列号,行号);    

contentPane.curLGP.getCellValue(单元格);     

contentPane.curLGP._get$TDCell(col,row).text()//获取单元格显示值  

contentPane.curLGP._get$TDCell(单元格).text()

由于单元格可以设置形态来改变其显示值,故 JavaScript 获取单元格有获取实际值和显示值的区分。

注:使用 contentPane.curLGP.getCellValue(列号,行号)获取值时不能使用 contentPane.curLGP.getCellValue(列号,"A1")这种形式,可先将 A1 单元格值赋给一个变量再用变量替换。

  • yzm239581 yzm239581(提问者) 这个要怎么修改呢
    2021-06-28 10:36 
  • yzm239581 yzm239581(提问者) 补了张图片
    2021-06-28 10:36 
  • snrtuemc snrtuemc 回复 yzm239581(提问者) 你这个是在哪边取数的,使用这个函数,注意引号里面的是控件的名称,你填报报表内,有没有控件,没有控件需要取单元格,看修改答案
    2021-06-28 10:37 
  • yzm239581 yzm239581(提问者) 回复 snrtuemc 在填报报表里,有下拉框控件,取实际值就可以
    2021-06-28 10:42 
  • snrtuemc snrtuemc 回复 yzm239581(提问者) 那这个contentPane.getWidgetByName(\"ss\").getValue();是可以的啊,把ss换成你的控件的名称
    2021-06-28 10:43 
最佳回答
0
luojian0323Lv7资深互助
发布于2021-6-28 10:29(编辑于 2021-6-28 11:18)

//填报报表控件获取参数控件按钮

contentPane.parameterEl.getWidgetByName("cx");

//参数面板控件获取填报报表中的控件:

_g().getWidgetByName("zt");

//填报报表块中控件所在位置及相对位移控件获取

window.form = this.options.form; //把参数界面的form赋值给全局变量

var location = this.options.location;  //获取当前控件的位置

var k = FR.cellStr2ColumnRow(location);

var co=k.col

var ro=k.row

var xiugai =contentPane.getWidgetByCell(FR.columnRow2CellStr({

col: co,

row: ro

}));

获取控件后加上.getValue()可以取值。

---------------------------------------------------------------追加回答----------------------------

报表区,要分可扩展控件,和不可扩展控件,正常不扩展的固定位置控件是

contentPane.getWidgetByName("控件名");//控件一定要有控件名,不然代码无效

而扩展的控件是:

contentPane.getWidgetsByName("控件名");//控件一定要有控件名,不然代码无效

并且需要配置js的遍历方法取到具体每一个扩展后单元格的值

var name=contentPane.getWidgetsByName("控件名");//控件一定要有控件名,不然代码无效

name.each(function(){

 if(name[0]!=undefined){

    for(var i=0;i<name.length;i++){

    alert(name[i].getValue());//屏幕打印测试结果

    }}

else {

    alert(name.getValue());//屏幕打印测试结果

    }

});

  • yzm239581 yzm239581(提问者) 这个要怎么修改呢,补了张图片
    2021-06-28 10:36 
  • luojian0323 luojian0323 回复 yzm239581(提问者) 你要在哪里的控件(报表区,还是参数区)获取哪里的控件(报表区还是参数区)呢?
    2021-06-28 10:40 
  • yzm239581 yzm239581(提问者) 回复 luojian0323 报表区,报表区
    2021-06-28 10:55 
  • 3关注人数
  • 927浏览人数
  • 最后回答于:2021-6-28 11:18
    请选择关闭问题的原因
    确定 取消
    返回顶部