28

用友yonsuite产品二开之简单的yonsql查询小工具

 3 years ago
source link: http://www.cnblogs.com/xqz0618/p/yonsuite01.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

和以往的用友产品不同,yonsuite产品开发了低代码平台,满足客户的个性化开发需求。嗯~,一句话不知当讲不当讲,那就讲:所谓低代码平台就是开发不想用实施不会用系列。让我一个开发感受到了憋屈。 它支持页面设计,前端函数以及后端函数的编写,后端函数分普通函数和API函数,API函数才可以让前端调用。然后在函数中可以通过yonSQL进行查询数据,对就是yonSql,他是平台新的sql规则,和数据库SQL有点小差别,但不影响。功能整体还是比较强大的。

  http://tinper.org/mdf/docs#/wa0ing.html

v2Eb2y.png!mobile

如何进行二次开发?

  • 登录系统(点击左上角风车,找到应用构建平台进行应用构建) 无法没有那就是没有权限

eMFVzqQ.png!mobile

  • 创建应用

imUR7nI.png!mobile

  • 创建实体

实体相当于数据库表,枚举相当于数据字典,查询是用作设计报表,创建实体后才能创建页面

Uv2QjeM.png!mobile

  • 创建页面

创建页面要基于相应的实体创建,实体时可以选择父实体,界面就可以绘制主子表结构页面

fqeuEjq.png!mobile

beQnAbf.png!mobile

  • 创建函数

viMn637.png!mobile

  • 使用函数

打开页面设计设置对应的前端函数,注意前端控件只能设置前端函数 EZnY7zz.png!mobile

测试应用yonSQL查询小工具

  • 前端函数

主要实现功能获取第一个输入框的值,是一个yonsql,传给后台执行sql,返回结果显示到第二个输入框中

cb.rest.invokeFunction (参数1:后台API函数调试ID;参数2:请求参数)

function (event) {
  var viewModel = this;
  var strSql= viewModel.get('item0sj').getValue();
  cb.rest.invokeFunction("78645a2796ea481092c9a7b3ebf68655", {querySql:strSql},

  function(err, res) {
    console.log(err);
    console.log(res.rst);
    if(err!==null){
        cb.utils.alert('拉取数据异常,请联系开发');
      }else{
        if(res.exception===undefined){
          viewModel.get('item2qd').setValue(""+JSON.stringify(res.rst));
        }else{
          cb.utils.alert(res.exception);
        }
      }
  });
  
}
  • 后端函数

后端函数的语法也是类似javascript的语法,这里主要实现功能就是讲前台传过来的sql进行数据库查询接口返回给前台

let AbstractAPIHandler = require('AbstractAPIHandler');
  class MyAPIHandler extends AbstractAPIHandler {
   execute(request){
    var sql= request.querySql;
    var rst = ObjectStore.queryByYonQL(sql);
    return {"rst":rst,"request":request};
 }
}
exports({"entryPoint":MyAPIHandler});
  •  viewModel.get('item0sj'),如何查看对应控件的id

Vfam63A.png!mobile

  • cb.rest.invokeFunction("78645a2796ea481092c9a7b3ebf68655",如何查看后端API函数调试id

eeARram.png!mobile

q2IRJjy.png!mobile

  •  调试界面

7Bveqi7.png!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK