找回密码
 立即注册

QQ登录

只需一步,快速开始

lbw0511

注册会员

2

主题

9

帖子

75

积分

注册会员

积分
75
最新发帖
lbw0511
注册会员   /  发表于:2018-1-24 10:27  /   查看:23813  /  回复:28
最近在研究活字格,在做ERP项目中,如果在按钮中调用存储过程去执行一些复杂的数据操作?感觉这样后台服务器处理活字格效果会更加强大!

评分

参与人数 2金币 +100 满意度 +5 收起 理由
追风 + 5
Simon.hu + 100

查看全部评分

29 个回复

倒序浏览
Noel
初级会员   /  发表于:2018-1-24 10:36:32
推荐
本帖最后由 Noel 于 2018-5-7 10:01 编辑

关于oracle存储过程的连接,请见这篇帖子。下面是关于Sql Server 中存储过程的连接说明。

最近正好做了例子。请见附件。
步骤:
1. 导入用于连接存储过程的自定义web api.
详见:
http://help.grapecity.com.cn/pages/viewpage.action?pageId=5972594


其中导入了2个webapi:
POST executenonquery 用于连接修改数据类型的存储过程,返回值是影响行数
POST executequery 用于连接读取数据类型的存储过程,返回值是数据

2. 配置数据库连接字符串
新建数据表“_DataSources”,新建2个文本类型字段Name,ConnectionString
Name: 使用时的名字
ConnectionString: 数据库连接字符串


3. executenquery示例
请见页面1 的 获取某类别的产品数量  按钮

Js代码解释:
  1. //向ExecuteQuery发送post请求
  2. $.ajax(Forguncy.ForguncyData.ForguncyRoot+'customapi/spapi/ExecuteQuery', {
  3.   method:'post',
  4. dataType:'json', //返回数据为json格式
  5.   data:JSON.stringify({ //发送json格式参数
  6.     ConnectionName:'dev03', //数据连接名称
  7.     ProcedureName:'GetProductByCategory', //存储过程名称
  8.     Parameters:{'@cid': Forguncy.Page.getCell('cid').getValue()} //存储过程参数
  9.   })
  10. }).done(function(data){
  11.   alert(data.ExecuteResult.length); //返回结果
  12. });
复制代码


4. executenonquery 示例
请见页面1 的 更新当前行的库存量 按钮。
需要注意的是,调用此接口需要用户已登录。

JS代码解释:
  1. var p = Forguncy.Page,
  2. storedCount = p.getCell('storedCount').getValue(),
  3. list = p.getListView('表格1'),
  4. id = list.getValue(list.getSelectedRowIndex(), 'id');
  5. //向ExecuteNonQuery'接口发送post请求
  6. $.ajax(Forguncy.ForguncyData.ForguncyRoot+'customapi/spapi/ExecuteNonQuery', {
  7.   method:'post',
  8.   data:JSON.stringify({ //请求中的json格式参数
  9.     ConnectionName:'dev03', //数据库连接名称
  10.     ProcedureName:'UpdateProductStoredCount', //存储过程名称
  11.     Parameters:{'@id': id, '@storedCount': storedCount} //存储过程参数
  12.   })
  13. }).done(function(data){ //返回处理
  14.   var result = data.ExecuteResult;
  15.   alert(result == 1 ? 'Success!' : 'Failed!');
  16.   if(result == 1) list.reload();
  17. });
复制代码


5. executenonquery与Output类型参数 示例
  1. $.ajax(Forguncy.ForguncyData.ForguncyRoot+'customapi/spapi/ExecuteNonQuery', {
  2.   method:'post', dataType:'json',
  3.   data:JSON.stringify({
  4.     ConnectionName:'dev03',
  5.     ProcedureName:'GetProductCount',
  6.     Parameters:{'@cid': Forguncy.Page.getCell('cid').getValue()},
  7.     OutputParameters:{'@count':0} //设定Output类型参数和用于确定类型的默认值
  8.   })
  9. }).done(function(data){
  10.   alert(data.Output['@count']); //获取Output参数的返回值
  11. }).fail(function(data){
  12. alert(data);
  13. });
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

强帖留名  发表于 2019-11-20 13:21
回复 使用道具 举报
18993058088
金牌服务用户   /  发表于:2018-1-24 15:28:40
板凳
学习了!
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2018-1-25 09:50:14
地板
为我们Grapecity的同事点赞!
回复 使用道具 举报
lbw0511
注册会员   /  发表于:2018-1-28 12:30:05
5#
6666好用的一B
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2018-1-28 12:45:52
6#
感谢!
回复 使用道具 举报
suoguorong
初级会员   /  发表于:2018-1-29 11:33:56
7#
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2018-1-29 12:26:54
8#
回复 使用道具 举报
18993058088
金牌服务用户   /  发表于:2018-2-9 17:49:43
9#
不错
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2018-2-11 08:52:07
10#
好帖子,希望更多人知道!
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部