fvs提示自定义问题

fvs 获取日期控件a的值,怎么提示直接不显示了。 哪里的问题?

function sumLabel(){ 

const point = this; 

const points = point.points; 

const validPoints = points.filter( (point) => point.isVisible() ); 

let total = 0; 

var a= _g().getWidgetByName("a").getValue(); 

var per=(FR.remoteEvaluate("format('"+a+"','yyyy年MM月')")) 

let value =this.category; 

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

        if(points[i].series.visible){ 

   if(points[i].seriesName == '两金占比'){

    value += ''+points[i].seriesName+points[i].value.toFixed(2)+"%";     

   } else  {

    value += ''+points[i].seriesName+FR.contentFormat(points[i].value.toFixed(2), '#,##0.00')+"万元"; 

   }

        }    

    } 

return per+'' +value+''; 

}

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

_g().getWidgetByName改成duchamp.getWidgetByName

FVS中用获取参数的值

image.png

image.png

使用_g().getWidgetByName 是获取不到的。

  • yzm335528 yzm335528(提问者) 还是不显示
    2025-07-08 09:42 
  • CD20160914 CD20160914 回复 yzm335528(提问者) 你先按我说的看获取到值没有,后面的先不管。只是把控件的值获取到,你的控件名称叫什么,截图出来我看看,你是不是写错了名称!!
    2025-07-08 09:45 
  • yzm335528 yzm335528(提问者) 回复 CD20160914 let per= duchamp.getWidgetByName("zxny").getValue(); 然后得到的是 什么 Tue Apr 01 2025 00:00:00 GMT+0800(中国标准时间)
    2025-07-08 09:58 
  • CD20160914 CD20160914 回复 yzm335528(提问者) 那就对了,,它是获取到了,保是你要转换一下格式而已。。我给一个语句吧。
    2025-07-08 10:01 
  • CD20160914 CD20160914 回复 yzm335528(提问者) function(){

    let per = duchamp.getWidgetByName("zxny").getValue();
    let i_year = per.getFullYear(); // 2025
    let i_month = String(per.getMonth() + 1).padStart(2, '0');
    let i_day = String(per.getDate()).padStart(2, '0');
    let formattedDate =i_year+"-"+i_month+"-"+i_day;
    return formattedDate;
    } 这样就行,其实还有一个简单的办法,就是隐藏一个文本格式,再用format格式化日期,然后你直接引用这个文本控件的值就行了!!
    2025-07-08 10:10 
最佳回答
0
ScyalcireLv7高级互助
发布于2025-7-8 09:29
  • 先获取Date对象,再通过toISOString()转换为标准格式

----------------

function sumLabel(){ 
    const point = this; 
    const points = point.points; 
    const validPoints = points.filter((point) => point.isVisible()); 
    
    // 获取日期值(修正部分)
    const dateObj = _g().getWidgetByName("a").getValue();
    // 确保日期格式转换安全
    const formattedDate = dateObj ? FR.remoteEvaluate(`format('${dateObj.toISOString()}','yyyy年MM月')`) : '';
    let value = this.category; 
    for(let i = 0; i < points.length; i++) {              
        if(points[i].series.visible){ 
            if(points[i].seriesName == '两金占比'){
                value += points[i].seriesName + points[i].value.toFixed(2) + "%";     
            } else {
                value += points[i].seriesName + FR.contentFormat(points[i].value.toFixed(2), '#,##0.00') + "万元"; 
            }
        }    
    } 
    return formattedDate + ' ' + value; // 添加明确的分隔符
}

  • 3关注人数
  • 52浏览人数
  • 最后回答于:2025-7-8 09:35
    请选择关闭问题的原因
    确定 取消
    返回顶部