求助:麻烦帮忙看下这个报错怎么解决

报错信息:Synchronous http requests are not supported

// 获取参数值(兼容设计器预览和服务器部署)

var partNumber = _g().getWidgetByName("PartNumber").getValue(); // 料号

var quantity = _g().getWidgetByName("quantity").getValue(); // 入库数量

var operator = _g().getWidgetByName("operator").getValue(); // 入库人

FR.remoteEvaluate("exec sp_AddInbound '" + partNumber + "', '" + quantity + "', '" + operator + "'",

function(result) {

if (result.status) {

FR.Msg.toast("入库成功");

_g().parameterCommit(); // 提交参数

_g().refreshAllSheets(); // 刷新报表

} else {

FR.Msg.alert("错误", "执行失败:" + result.msg);

}

});

image.png

image.png

更新---------

// 获取参数值(兼容设计器预览和服务器部署)

var partNumber = _g().getWidgetByName("PartNumber").getValue(); // 料号

var quantity = _g().getWidgetByName("quantity").getValue(); // 入库数量

var operator = _g().getWidgetByName("operator").getValue(); // 入库人

var sql = "exec sp_AddInbound '" + partNumber + "', '" + quantity + "', '" + operator + "'";

alert(sql)

这样弹出的值是正常的,也都获取到了

image.pngimage.png

------------更新

// 获取参数值(兼容设计器预览和服务器部署)

var partNumber = _g().getWidgetByName("PartNumber").getValue(); // 料号

var quantity = _g().getWidgetByName("quantity").getValue(); // 入库数量

var operator = _g().getWidgetByName("operator").getValue(); // 入库人

var sql = "exec sp_AddInbound '" + partNumber + "', '" + quantity + "', '" + operator + "'";

//alert(sql)

var value;

FR.remoteEvaluateAsync('"=SQL("WHT_ChuRuKu", "exec sp_AddInbound'+"'" + partNumber + "','" + quantity + "','" + operator + "'"+", 1, 1)",

 function callback(value) {

   if (value == 1) {

     alert("提交成功");

   } else {

     alert("提交失败\n错误代码:"+value);

   };

 });

image.png

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

调用哪个数据连接的存储你没有指定,测试类似如下语句

var mycode=this.options.form.getWidgetByName('mycode').getValue(); //获取参数

var mydate=this.options.form.getWidgetByName('mydate').getValue(); 

var STATUS=this.options.form.getWidgetByName('STATUS').getValue(); 

var sql="exec test_aa_cc "+mycode+","+mydate+","+STATUS;

var res=FR.remoteEvaluate('=sql("dbbasedata","'+sql+'",1,1)');

//加粗这个是数据连接的名称!!你要看你是什么名称就写到这里

如果不行,你先只运行调用存储的语句alert(res) 看是否出来。先不要提交

  • 毛毛虫爱吃毛毛 毛毛虫爱吃毛毛(提问者) 输出不了alert(res) 提示undefined
    2025-03-26 16:06 
  • CD20160914 CD20160914 回复 毛毛虫爱吃毛毛(提问者) 你电脑端口调用是否返回数据?
    2025-03-26 16:47 
  • 毛毛虫爱吃毛毛 毛毛虫爱吃毛毛(提问者) 回复 CD20160914 也不行哦, 就是电脑端返回的
    2025-03-26 16:49 
  • CD20160914 CD20160914 回复 毛毛虫爱吃毛毛(提问者) 那证明你的存储写得有问题呀。你在数据库把参数带入后看是否有数据
    2025-03-26 16:51 
  • CD20160914 CD20160914 回复 毛毛虫爱吃毛毛(提问者) 你现在电脑端的js是如何写,发出来我看一下。还有你自己用存储过程去数据库查询测试看是否有数据
    2025-03-26 16:53 
最佳回答
0
CovidLv3高级互助
发布于2025-3-26 15:18

手机端?

很多JS不支持

最佳回答
0
杨朝健Lv5中级互助
发布于2025-3-26 16:44(编辑于 2025-3-26 16:45)

FR.remoteEvaluateAsync

最佳回答
0
snrtuemcLv8专家互助
发布于2025-3-27 08:47

手机端的调用存储过程写法

js调用存储过程

var value;

FR.remoteEvaluateAsync('"=SQL("数据库连接名", "exec 存储过程名'+"'" + 参数1 + "','" + 参数2 + "','" + 参数3 + "','" + 参数4 + "'"+", 1, 1)",

 function callback(value) {

   if (value == 0) {

     alert("提交成功");

   } else {

     alert("提交失败\n错误代码:"+value);

   };

 });

  • 毛毛虫爱吃毛毛 毛毛虫爱吃毛毛(提问者) 显示提交成功,但是查询sql数据库。 数据没有更新是怎么回事
    这是代码:
    // 获取参数值(兼容设计器预览和服务器部署)
    var partNumber = _g().getWidgetByName("PartNumber").getValue(); // 料号
    var quantity = _g().getWidgetByName("quantity").getValue(); // 入库数量
    var operator = _g().getWidgetByName("operator").getValue(); // 入库人
    var sql = "exec sp_AddInbound '" + partNumber + "', '" + quantity + "', '" + operator + "'";
    alert(sql)
    var value;

    FR.remoteEvaluateAsync('"=SQL("WHT_ChuRuKu", "exec sp_AddInbound'+"'" + partNumber + "','" + quantity + "','" + operator + "'"+", 1, 1)",

    function callback(value) {

    if (value == 0) {

    alert("提交成功");

    } else {

    alert("提交失败\n错误代码:"+value);

    };

    });


    2025-03-27 08:53 
  • snrtuemc snrtuemc 回复 毛毛虫爱吃毛毛(提问者) 你试试把value == 0改成value == 1 看看报什么提示
    2025-03-27 08:57 
  • 毛毛虫爱吃毛毛 毛毛虫爱吃毛毛(提问者) 回复 snrtuemc 图片我放在问题上了,只显示个错误代码: 后面没了
    2025-03-27 09:02 
  • snrtuemc snrtuemc 回复 毛毛虫爱吃毛毛(提问者) 那是提交到数据库成功了,存储过程没执行,你存储过程最后加一句,select 2,看看能不能返回这个2,或者其他值你测试下
    2025-03-27 09:06 
  • 毛毛虫爱吃毛毛 毛毛虫爱吃毛毛(提问者) 回复 snrtuemc 尴尬了,感觉FR.remoteEvaluateAsync函数没有被调用,存储过程里面加了查询也没有值返回
    2025-03-27 09:15 
  • 4关注人数
  • 114浏览人数
  • 最后回答于:2025-3-27 09:02
    请选择关闭问题的原因
    确定 取消
    返回顶部