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

  和以往的用友产品不同,yonsuite产品开发了低代码平台,满足客户的个性化开发需求。🙃 它支持页面设计,前端函数以及后端函数的编写,后端函数分普通函数和API函数,API函数才可以让前端调用。然后在函数中可以通过yonSQL进行查询数据,对就是yonSql,他是平台新的sql规则,和数据库SQL有点小差别,但不影响。功能整体还是比较强大的。

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

  

 

 如何进行二次开发?

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

  

 

  • 创建应用

  

  • 创建实体

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

 

  • 创建页面

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

 

  

  • 创建函数

  

  • 使用函数

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

 

测试应用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  

 

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

  •  调试界面

 

posted @ 2020-09-20 09:54  茄子鱼  阅读(2163)  评论(0编辑  收藏  举报