将存储过程结果返回的值填入明细表
2025年2月20日大约 2 分钟脚本实例企业版独立版移动版
将存储过程结果返回的值填入明细表
默认情况下请使用 【表间公式】 将存储过程返回的值填入明细表中。这里要介绍的是在后端通过php
提取数据,前端通过Ajax
获得数据并通过JavaScript
将数据填入WebApp明细表中。
后端控制器
默认安装情况下在路径C:\Program Files (x86)\Kuaibiao\WebApp\ThinkPHP\kbwebapp\index\controller
中有Custom.php
文件,打开此文件修改或复制一个,推荐复制一个。将复制的文件打开并替换为如下的内容。
相关信息
<?php
namespace app\index\controller;
use think\Db;
use think\Request;
use think\Session;
class Custom extends \think\Controller{
public function myexec(){
$data = Db::query("EXEC CCGC ");
return json($data);
}
}
?>
myexec
为函数名称,可以自定义用于在前端调用。EXEC CCGC
为要执行的SQL脚本,其中CCGC为存储过程名称。如果存储过程需要传递参数,请参考:
$data = Db::query("EXEC KBAutoID N'入库单编号','GRE','de60cc31-a012-4682-809c-748a67fde838','F_59056','',''");
前端页面脚本
相关信息
$(function () {
/*此处编写自定义代码,请确认此js文件名与您想修改的模板编号一致 */
$.ajax({
url: '/index.php/index/Custom/myexec', async: true, type: 'GET', data: {}, success: function (e) {
//console.log(e);
for (i = 0, len = e[0].length; i < len; i++) {
var f = e[0][i];
var fa = f.物资编号;
delete (f.物资编号);
f.F_65564 = fa;
var fb = f.物资名称;
delete (f.物资名称);
f.F_65565 = fb;
var fc = f.规格型号;
delete (f.规格型号);
f.F_65566 = fc;
var fd = f.单位;
delete (f.单位);
f.F_65567 = fd;
}
$('#dg-detail').datagrid('loadData', e[0]); //原生方法没有分页
}
});
});
其中myexec
修改为后端的函数名称。for循环中的中文为存储过程返回集合的字段别名,对应替换为您自己的存储过程结果字段别名。F_开头的为要填入的明细表的字段名,按实际替换。如果字段不够可以继续往下添加,声明的fa
等变量不要重复。