SQL参数不刷新的情况下如何运行两次?

像图中这样,我做了一个SQL参数,在提交时运行取值,但是碰到的问题是,当用户提交以后,
在页面中继续编辑,再提交。但是SQL代码并没有再次运行,只是拿之前的那个值来用,
当然我知道刷新页面会更新,但是在不刷新的情况下有办法在次运行吗?




FineReportafr751116 发布于 2016-10-8 20:40
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共9回答
最佳回答
0
macro_hard发布于2016-10-8 20:40(编辑于 2023-9-6 09:34)
555
最佳回答
0
yets11发布于2016-10-8 21:09(编辑于 2023-9-6 09:34)
555
最佳回答
0
afr751116发布于2016-10-8 22:54(编辑于 2023-9-6 09:34)
555
最佳回答
0
yets11发布于2016-10-9 07:51(编辑于 2023-9-6 09:34)
555
  • afr751116 afr751116(提问者)

    var num=FR.remoteEvaluate(\"=sql(\"test\", \"

        SET NOCOUNT ON


        UPDATE  xtt01
        SET     cgxydd = cgxydd + 1
        FROM    xtt01
        WHERE   xtkjnd = YEAR(GETDATE())
                AND xtkjyf = MONTH(GETDATE());


        SELECT  RIGHT(\'0\' + LTRIM(CONVERT(VARCHAR(4), GETDATE(), 112)), 2)
                + RIGHT(\'00\' + CAST(MONTH(GETDATE()) AS VARCHAR(4)), 2)
                + RIGHT(\'000000000\' + CAST(cgxydd - 1 AS VARCHAR(8)), 8)
                AS cgddhm
        FROM    xtt01
        WHERE   xtkjnd = YEAR(GETDATE())
                AND xtkjyf = MONTH(GETDATE());


        SET NOCOUNT OFF



    \", 1, 1)\");
    contentPane.setCellValue(\"P1\",null,num);
    alert(num);

    报错:
    自定义JS错误 : missing ) after argument list
    回复
    2016-10-09 09:25 
最佳回答
0
afr751116发布于2016-10-9 09:25(编辑于 2023-9-6 09:34)
555
  • yets11 yets11

    sql 太长了,定义成存储过程吧
    回复
    2016-10-09 09:27 
  • macro_hard macro_hard

    sql内的双引号要转义,如果不想转义可以写成如下样式:
    var sql=\"你的sql语句\";
    var num=FR.remoteEvaluate(\'=sql(\"test\",\"\'+sql+\'\",1,1)\');
    回复
    2016-10-09 10:13 
最佳回答
0
yets11发布于2016-10-9 09:27(编辑于 2023-9-6 09:34)
555
  • afr751116 afr751116(提问者)

    var num=FR.remoteEvaluate(\"=sql(\"test\", \"exec hm \'S-DD\' \", 1, 1)\");
    contentPane.setCellValue(\"P1\",null,num);
    alert(num);

    好像FR不支持这样直接调用存储过程吧,试了不成功。
    回复
    2016-10-09 16:32 
最佳回答
0
macro_hard发布于2016-10-9 10:13(编辑于 2023-9-6 09:34)
555
  • afr751116 afr751116(提问者)

    var sql=\"
        SET NOCOUNT ON
        UPDATE  xtt01
        SET     cgxydd = cgxydd + 1
        FROM    xtt01
        WHERE   xtkjnd = YEAR(GETDATE())
                AND xtkjyf = MONTH(GETDATE());


        SELECT  RIGHT(\'0\' + LTRIM(CONVERT(VARCHAR(4), GETDATE(), 112)), 2)
                + RIGHT(\'00\' + CAST(MONTH(GETDATE()) AS VARCHAR(4)), 2)
                + RIGHT(\'000000000\' + CAST(cgxydd - 1 AS VARCHAR(8)), 8)
                AS cgddhm
        FROM    xtt01
        WHERE   xtkjnd = YEAR(GETDATE())
                AND xtkjyf = MONTH(GETDATE());              
        SET NOCOUNT OFF \" ;   
    var num=FR.remoteEvaluate(\'=sql(\"test\",\"\'+sql+\'\",1,1)\');
    contentPane.setCellValue(\"P1\",null,num);
    alert(num);

    但是提示: 自定义JS错误 : Invalid or unexpected token
    回复
    2016-10-09 15:21 
最佳回答
0
afr751116发布于2016-10-9 15:21(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    var sql=\"语句写在一行,别用回车\"
    回复
    2016-10-09 15:35 
最佳回答
0
macro_hard发布于2016-10-9 15:35(编辑于 2023-9-6 09:34)
555
  • afr751116 afr751116(提问者)

    语句我己经在SQL拼成一句,并运行成功的了,没有用回车,但是却提示数据集错误
    警告:错误代码:1301 数据集配置错误
    Query:
    \'1\' 附近有语法错误。

    var sql=\" SET NOCOUNT ON UPDATE  xtt01  SET  cgxydd = cgxydd + 1  FROM  xtt01 WHERE   xtkjnd = YEAR(GETDATE()) AND xtkjyf = MONTH(GETDATE()) SELECT  RIGHT(\'0\' + LTRIM(CONVERT(VARCHAR(4), GETDATE(), 112)), 2) + RIGHT(\'00\' + CAST(MONTH(GETDATE()) AS VARCHAR(4)), 2) + RIGHT(\'000000000\' + CAST(cgxydd - 1 AS VARCHAR(8)), 8) AS cgddhm  FROM  xtt01     WHERE   xtkjnd = YEAR(GETDATE()) AND xtkjyf = MONTH(GETDATE()) SET NOCOUNT OFF\";   

    var num=FR.remoteEvaluate(\'=sql(\"test\",\"\'+sql+\'\",1,1)\');

    contentPane.setCellValue(\"P1\",null,num);

    alert(num);


    回复
    2016-10-09 15:50 
最佳回答
0
afr751116发布于2016-10-9 15:50(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    如果是日志里报这个错,不一定不能用,alert(num)有值么
    回复
    2016-10-09 16:54 
  • 0关注人数
  • 551浏览人数
  • 最后回答于:2016-10-10 10:30
    活动推荐 更多
    热门课程 更多
    返回顶部