js写法

在填报前,截取设备编码后五位+年(两位)+月(两位)+日(两位)+流水号(001),然后js像下面这样写,一直提示format不被定义,请帮我看看:

var equipValue = this.getValue(); 

console.log('设备编码:',equipValue);

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

var cr = FR.cellStr2ColumnRow(location); 

var col = cr.col;  //列号 

var ro = cr.row;  //行号 

// 生成三位流水号(假设seq()返回数字)

var sequence = FORMAT(SEQ(),"000");

console.log("序号:",sequence)

var day=FORMAT(today(), 'yyMMdd');

console.log("日期:",day);

// 组合最终的任务编码

var b = concatenate(equipValue.slice(-5),day,sequence);

console.log('任务编码值:', b);  

_g().setCellValue(0, col + 5, ro, b); 

FineReport Kennethq 发布于 4 天前
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
ScyalcireLv7高级互助
发布于4 天前(编辑于 4 天前

FORMAT函数未被定义,说明帆软填报环境中不存在该内置函数

试下用原生Date对象替代FORMAT函数

var equipValue = this.getValue();
console.log('设备编码:', equipValue);

var location = this.options.location;
var cr = FR.cellStr2ColumnRow(location);
var col = cr.col;
var row = cr.row;

// 1. 截取设备编码后5位
var equipCode = equipValue.slice(-5);

// 2. 获取日期(使用帆软日期函数)
var today = new Date();
// 使用帆软日期格式函数
var day = today.getFullYear() % 100 + '';       // 年
day += String(today.getMonth() + 1).padStart(2, '0'); // 月
day += String(today.getDate()).padStart(2, '0');       // 日

// 3. 获取流水号(假设SEQ()返回数字)
var sequence = String(SEQ()).padStart(3, '0');

// 4. 组合最终编码
var taskCode = equipCode + day + sequence;
console.log('任务编码值:', taskCode);

// 5. 写入目标单元格
_g().setCellValue(0, col + 5, row, taskCode);

  • Kennethq Kennethq(提问者) 它提示fr.today is not a function
    2025-09-04 10:34 
  • Scyalcire Scyalcire 回复 Kennethq(提问者) 重新传了 你再试试
    2025-09-04 10:39 
  • Kennethq Kennethq(提问者) 回复 Scyalcire 蟹蟹 date没问题了,但是SEQ() 提示不被定义 能再帮我看下吗
    2025-09-04 10:44 
  • Scyalcire Scyalcire 回复 Kennethq(提问者) JS中的seq()么
    2025-09-04 10:53 
  • Scyalcire Scyalcire 回复 Kennethq(提问者) 你把JS中的获取流水号换成这个// 替代SEQ()的帆软标准函数
    var sequence = FR.Sequence().toString().padStart(3, '0');
    2025-09-04 10:55 
最佳回答
0
ID1208Lv6高级互助
发布于4 天前

JS里面使用FR公式--https://help.fanruan.com/finereport/doc-view-1785.html

image.png

image.png

var code=FR.remoteEvaluate('=CONCATENATE("设备编码后五位",FORMAT(today(),"yy"),FORMAT(today(),"MM"),FORMAT(today(),"dd"),"流水号")');
alert(code);

  • 3关注人数
  • 47浏览人数
  • 最后回答于:4 天前
    请选择关闭问题的原因
    确定 取消
    返回顶部