发帖

氚云开发者手册学习历程

产品使用讨论区  / 应用搭建教程  / 只看大图  / 正序浏览   © 著作权归作者本人所有

#楼主# 2020-3-14

跳转到指定楼层

注册氚云社区,学习低代码知识,与更多氚友互动交流

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

x
本帖最后由 郝勇 于 2021-4-10 18:05 编辑

氚云无代码设计基本掌握后,搭建了一些应用,应用太过初级,用起来不爽。

掌握氚云代码才能做出更好的产品,我没有从事过向对象的编程工作,多次阅读氚云开发者手册根本看不懂,对氚云代码的学习一直无法入门、无法突破。

氚云帮助的“开发者手册”对与我这种代码小白来说根本不知道如何使用。

在氚云社区管理员大土的引荐下观看了吴登杰吴总的视频:0基础入门代码,助力企业员工建立IT能力(以下简称吴总视频)。

吴总视频看完后,氚云开发者手册里的内容逐个验证、学习。现将入门过程记录如下,一方面记录下自己学习代码过程,另一方面分享给代码初学者入门哈。

氚云专业版提供了前后端代码编写功能(氚云后端语法为C#,前端语法为Javascript,数据库语法为MYSQL),大幅提升了系统的能力。能够实现前后台交互、数据库查询、对接第三方系统等较复杂功能。



一、从后端代码学起
1、开发者手册-后端常用接口示例-控件的取值、赋值


=================================

this.Request.BizObject["控件编码"]其中控件编码是指表单设计-图形设计-控件属性中的“控件编码”。这点非常容易理解。

this.Request.IsCreateMode:是否创建模式,true,false

应用编码(appcode)、表单编码(schemaCode、id)、控件编码

=================================

示例:

加载表单页面初始化赋值

//吴总视频中对代码的添加位置做了详细说明,本文不再赘述,不知道添加位置的可仔细观看吴总视频。

protected override void OnLoad(H3.SmartForm.LoadListViewResponse   response)

    {

          if(this.Request.IsCreateMode)    //判断是否为创建模式,赋值默认数值

        {

              this.Request.BizObject["F0000001"] = "表单加载默认值";  //[]中内容是当前表单的控件编码,应修改为当前表单的相应控件编码,如图1:控件“单行文本”的控件编码是“ F0000001”。

        }

          base.OnLoad(response);

    }


//以上代码的执行效果如图2
//以上代码结合读取其他表单控件内容的代码即可实现能用于实际应用的加载默认功能。



提交时的赋值/取值      

protected override void OnSubmit(string actionName,   H3.SmartForm.SmartFormPostValue postValue,   H3.SmartForm.SubmitSmartFormResponse response)

    {

          this.Request.BizObject["F0000001"] = "表单提交默认值";  //在提交时直接赋值

          string va =   this.Request.BizObject["F0000002"] + string.Empty;  //将控件“副本_单行文本”的内容赋值给变量va,但为何要加入“+ string.Empty”还不理解,或许是将F0000002转换为字符串。开发者手册中该出这行有何用处不清楚,因此加了后面一行代码。

          this.Request.BizObject["F0000003"] =va;  //开发者手册中无本行

          base.OnSubmit(actionName, postValue, response);

      }


//以上代码是将当前表单的“单行文本”控件内容在提交时直接赋值"表单提交默认值",无论该控件填写什么内容都不会保存。

//剩下两行代码是在提交时将输入“副本_单行文本”的内容赋值给“单行文本3”并保存。

以上代码的执行效果如图3、图4



表单任意模式(创建模式、编辑模式)对控件赋值;

    protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)

    {

        string   userId = this.Request.UserContext.UserId + string.Empty; //获取当前用户ID

         this.Request.BizObject["F0000002"] = userId; //"F0000002"为人员单选控件;

        this.Request.BizObject["F0000003"] = DateTime.Now;  //赋值当前时间,"F0000003"为日期控件


        base.OnLoad(response);

}

图2

图2

图1

图1


图3

图3

图4

图4













回复

使用道具

0

主题

2

帖子

228

金币

lv4

Rank: 5

积分
318
Andy—— 发表于 2021-11-28 15:29:34
牛批
回复

使用道具 举报

2

主题

44

帖子

558

金币

lv5

Rank: 25

积分
858
leewell 发表于 2021-11-24 16:43:06
回复

使用道具 举报

0

主题

1

帖子

29

金币

lv2

Rank: 1

积分
34
小庆 发表于 2021-6-3 11:55:53
郝勇 发表于 2021-4-10 11:13
向铎老师直播学习历程

分享视频失效了,能在分享下吗?谢谢
回复

使用道具 举报

7

主题

39

帖子

771

金币

lv5

Rank: 25

积分
725

氚云专业版氚云标准版

郝勇 发表于 2021-4-10 15:49:38
本帖最后由 郝勇 于 2021-4-10 21:50 编辑

向铎老师直播学习历程

第二讲:氚云子表的常见操作
直播录像如下

https://h5.dingtalk.com/group-live-share/index.htm?encCid=2836994b1e954d690a81d8954b28820b&liveUuid=af732d3a-28f0-4a51-8397-507a651394a0#/

主表、子表都是BizObject;parentObjectid指向主表才使主表、子表关联起来

1、前端子表常见方法AddRow、ClearRows、UpdateRow、ClearRows氚云开发手册:https://help.h3yun.com/contents/895/1011.html
表单加载时子表的空行不显示(清空)
前端代码如下:
    // 加载事件
    OnLoad: function() {
        this.D001321Ff34d161e0752423596c0894bfd78e727.ClearRows();  //其中D001321Ff34d161e0752423596c0894bfd78e727为子表控件编码
},

表单加载时子表添加数据(数据初始化)   
    // 加载事件
    OnLoad: function() {

        this.D001321Ff34d161e0752423596c0894bfd78e727.ClearRows();//先清空表单加载默认的空行
        var controlManager = this.D001321Ff34d161e0752423596c0894bfd78e727;//获取子表控件对象
        var subObjectId = $.IGuid();  //创建行ID,即声明子表Id
        controlManager.AddRow( subObjectId, {
            "D001321Ff34d161e0752423596c0894bfd78e727.F0000005": "你好",

        })


},

表单加载时更新子表数据
//更新子表第一行数据
        var currentRowId = this.D001321Ff34d161e0752423596c0894bfd78e727.GetValue()[ 0 ].ObjectId; //第一行子表ID
        this.D001321Ff34d161e0752423596c0894bfd78e727.UpdateRow( currentRowId, {
            "D001321Ff34d161e0752423596c0894bfd78e727.F0000005": "你好",
        });

//更新子表第二行数据
        var currentRowId = this.D001321Ff34d161e0752423596c0894bfd78e727.GetValue()[ 1 ].ObjectId; //第二行子表ID
        this.D001321Ff34d161e0752423596c0894bfd78e727.UpdateRow( currentRowId, {
            "D001321Ff34d161e0752423596c0894bfd78e727.F0000005": "你好",
        });
//遍历更新子表数据
        var zibiao = this.D001321Ff34d161e0752423596c0894bfd78e727.GetValue();
        for( var i = 0;i < zibiao.length;i++ ) {
            var currentRowId = zibiao[ i ].ObjectId; //遍历子表ID
            this.D001321Ff34d161e0752423596c0894bfd78e727.UpdateRow( currentRowId, {
                "D001321Ff34d161e0752423596c0894bfd78e727.F0000005": "你好",
            });
        }

2、BindChange()绑定控件变化事件
//主表绑定控件变化事件
       this.F0000001.BindChange("key",function(){
            **("改变了");  //alert()--警告消息框
        })

//主表控件F0000001发生控件变化事件将主表F0000007的值赋值给主表控件F0000008

注意:BindChange应写在表单前端OnLoad事件里,BindChange第一个参数key为任意的一个不重复字符串。


        var that = this;
        that.F0000001.BindChange( "key", function() {            //此处是回调函数,要将this换成上面定义的that
            //获取值
            var value1 = that.F0000007.GetValue();
            //设置值
            that.F0000008.SetValue( value1 );
        });

//主表控件F0000007发生变化事件时则主表控件F0000008不可写
        var parent=this;
        this.F0000007.BindChange('key',function(){
            parent.F0000008.SetReadonly(true);
        })


//子表绑定控件变化事件
        this.D001321Ff34d161e0752423596c0894bfd78e727.BindChange('key',function(res){
            if(res[ 0 ].DataField=="D001321Ff34d161e0752423596c0894bfd78e727.F0000005"){
                **("改变了");//alert()--警告消息框
            }
        })
//子表控件F0000006发生变化事件则控件F0000005不可写
如何控制子表某一列的值变更时,控制其他列的值?
参见氚云开发手册:https://help.h3yun.com/contents/241/799.html

获取子表中的控件GetCellManager()参见氚云开发手册:https://help.h3yun.com/contents/895/1011.html

        var parent=this;
        this.D001321Ff34d161e0752423596c0894bfd78e727.BindChange('key',function(res){
            if( res[  0 ].DataField == "D001321Ff34d161e0752423596c0894bfd78e727.F0000006"){
                var objectid = res[ 0 ].ObjectId;
                var cellObj =parent.D001321Ff34d161e0752423596c0894bfd78e727.GetCellManager( objectid,"D001321Ff34d161e0752423596c0894bfd78e727.F0000005");
                cellObj.SetReadonly(true);
            }
        })




注意:BindChange()方法针对主表、子表的控件值改变的判断不同。

案例展示
案例1:出库时,校验库存数量
在氚云图形设计界面中表单设置->提交校验针对子表的校验无效。
进销存场景中,本次出库数量大于库存数量的校验。库存出库场景的提交校验,氚云子表不显示也就无法添加???




案例2:子表数据的重复检验
案例3:用业务规则向某一个目标表单的子表中添加数据



https://h5.dingtalk.com/group-live-share/index.htm?encCid=2836994b1e954d690a81d8954b28820b&liveUuid=889029c0-6e79-4350-a2c6-4ef4af09bd6c 第三讲
https://h5.dingtalk.com/group-live-share/index.htm?encCid=2836994b1e954d690a81d8954b28820b&liveUuid=81a58f33-be23-4f93-bf72-11d5507d8dea 第四讲
https://h5.dingtalk.com/group-live-share/index.htm?encCid=2836994b1e954d690a81d8954b28820b&liveUuid=4153e099-5f3a-458e-a9a4-75cea6299981 第五讲
https://h5.dingtalk.com/group-live-share/index.htm?encCid=2836994b1e954d690a81d8954b28820b&liveUuid=ce085898-985f-41e3-84f8-ede7300c62d2 第六讲










回复

使用道具 举报

7

主题

39

帖子

771

金币

lv5

Rank: 25

积分
725

氚云专业版氚云标准版

郝勇 发表于 2021-4-10 11:13:42
本帖最后由 郝勇 于 2021-4-13 17:13 编辑

向铎老师直播学习历程



第一讲:一般控件的前后端操作
直播录像如下
https://h5.dingtalk.com/group-live-share/index.htm?encCid=2836994b1e954d690a81d8954b28820b&liveUuid=9bd7c46d-f2e6-4400-b2ef-5795d93965d7#/

前端代码

GetValue()、GetText()——获取文本、SetReadonly()、SetVisible()等方法的使用;

注意:
1、添加代码位置:在OnLoad:function()中;
2、前端代码区分大小写;
3、氚云新版表单和旧版表单视图的前端代码编辑器不同,建议始终在新版下;
如何获取前台控件的值?

答:获取前台控件的值使用前端控件的GetValue()方法,该方法适用于文本控件、日期控件、数值、选项控件、关联表单、子表控件。详见氚云开发者手册:https://help.h3yun.com/contents/241/799.html

1、GetValue()方法示例
// 表单插件代码
$.extend($.JForm,{
    // 加载事件
    OnLoad:function(){

       var data = this.F0000001.GetValue(); //获得文本控件的值
       alert(data);     //弹框该文本控件的值;注意:论坛屏蔽,在使用时将
alert()转换为半角

    },


//弹框见图1

2、GetText()方法示例
// 表单插件代码
$.extend($.JForm,{
    // 加载事件
    OnLoad:function(){

       var data = this.F0000001.GetText(); //获得文本控件的值
       alert(data);     //弹窗该文本控件的值;注意:论坛屏蔽,在使用时将
alert()转换为半角

    },



//弹框见图1

//GetText()和GetValue()区别
GetText()获取文本值,比如获取关联表单控件的数据标题文本;GetValue()获取GUID,比如获取关联表单控件的ObjectId;

测试用例如下:
// 表单插件代码
$.extend($.JForm,{
    // 加载事件
    OnLoad:function(){

       var dataText = this.F0000001.GetText();//获取单行文本控件F0000001的文本值


       var dataValue = this.F0000002.GetValue();//获取关联表单控件F0000002的值
      
       **(dataText); //弹框如图1
      
       **(dataValue);//弹框如图2

    },

//表单如图3


弹框 图1

弹框 图1

弹框 图2

弹框 图2

图3

图3


3、SetReadonly()方法
// 表单插件代码
$.extend($.JForm,{
    // 加载事件
    OnLoad:function(){

        this.F0000001.SetReadonly(false);  //单行文本控件F0000001
        this.F0000002.SetReadonly(true);    //关联表单控件F0000002
    },


4、SetVisible()方法
// 表单插件代码
$.extend($.JForm,{
    // 加载事件
    OnLoad:function(){

        this.F0000002.SetVisible(false);

    },



控件
控件取值/赋值

this.F0000002.GetValue(); //获取控件值,   F0000002为控件编码

this.F0000002.GetText();//获取控件文本值,   F0000002为控件编码

this.F0000002.SetValue("");//控件赋值, F0000002为控件编码




其他常见方法
1、获取人员/部门控件值用GetUnitDS;
2、下拉框、单选框、多选框清空项用ClearItems(),添加选项用AddItem(value);应用场景比如根据不同的角色拥有不同选项;
3、子表的GetCellManager以后,获得的对象,不能使用GetText和AddItem;



后端代码
1、初始值赋值务必填写在Onload中;
    protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)
    {

        this.Request.BizObject["F0000001"]="张思";
        base.OnLoad(response);
    }

2、控件只读
    protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)
    {

        this.Request.BizObject["F0000001"]="张思";
        base.OnLoad(response);
        response.ReturnData["F0000001"].Editable=false;//只读,即不可编辑
        response.ReturnData["F0000002"].Editable=false;
        response.ReturnData["F0000003"].Editable=false;
    }

3、控件可见、隐藏
    protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)
    {

        this.Request.BizObject["F0000001"]="张思";
        base.OnLoad(response);
        response.ReturnData["F0000001"].Visible=false;//不可见,即隐藏
        response.ReturnData["F0000002"].Visible=false;
        response.ReturnData["F0000003"].Visible=false;
    }

注意:
1、设置控件初始值放在base.OnLoad前面;
2、设置控件可见、隐藏权限(属性)时放在base.OnLoad后面;
3、多选控件赋值使用分号;隔开;包括复选框、人员多选、部门多选、关联表单多选控件
    protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)
    {

        this.Request.BizObject["F0000001"]="张思";
        this.Request.BizObject["F0000004"]="A;B";//F0000004为复选框控件

        base.OnLoad(response);
//       response.ReturnData["F0000001"].Visible=false;
    }


案例1:不同的角色看到不同的数据
    protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)
    {


        base.OnLoad(response);

        //获取用户所有角色
        H3.Organization.OrgRole[] roles = this.Request.Engine.Organization.GetUserRoles(this.Request.UserContext.UserId, true);
        bool flag = false;
        foreach(H3.Organization.OrgRole item in roles)
        {
            if(item.Name == "金额查看")//金额查看为角色
            {
                flag = true;
            }
        }
        response.ReturnData["money"].Visible = flag;

    }
案例2:不同的角色能选择不同的下拉框选项:复选框
后端代码如下:    protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)
    {


        base.OnLoad(response);

        //获取用户所有角色
        H3.Organization.OrgRole[] roles = this.Request.Engine.Organization.GetUserRoles(this.Request.UserContext.UserId, true);
        bool flag = false;
        foreach(H3.Organization.OrgRole item in roles)
        {
            if(item.Name == "金额查看")
            {
                flag = true;
            }
        }
//        response.ReturnData["money"].Visible = flag;
        response.Message=flag + string.Empty;//传递到前端;并且将bool类型的flag转换为string类型


    }

前端代码如下:
    // 加载事件
    OnLoad: function() {

        var flag = $.SmartForm.ResponseContext.Message;//前端API

环境参数,详见https://help.h3yun.com/channels/3.html#%E5%89%8D%E7%AB%AFAPI



        //**(flag);//弹框显示flag的值
        //debugger;//调试断点,配合浏览器“检查”
        if( flag == "False" )
        {
            this.F0000004.ClearItems();
            this.F0000004.AddItem("一");
            this.F0000004.AddItem("二");
            this.F0000004.AddItem("三");


        }


有一个坑
描述:如果我设置某个字段为不可写(图形设计界面设置),然后我用前端代码设置了值,它实际上是不会保存到数据库里面去的,你必须手动把PostValue里面的值赋到this.Request.BizObject里面去

1、图形设计中将文本控件F0000001设置为不可写;

2、前端代码如下:    // 加载事件
    OnLoad: function() {
        this.F0000001.SetValue("张三");
},

3、后端代码为:
protected override void OnSubmit(string actionName, H3.SmartForm.SmartFormPostValue postValue, H3.SmartForm.SubmitSmartFormResponse response)
{

    this.Request.BizObject["F0000001"]=postValue.Data["F0000001"]+string.Empty;
    base.OnSubmit(actionName, postValue, response);
}






回复

使用道具 举报

7

主题

39

帖子

771

金币

lv5

Rank: 25

积分
725

氚云专业版氚云标准版

郝勇 发表于 2021-3-31 17:53:47
本帖最后由 郝勇 于 2021-4-10 02:26 编辑
王基 发表于 2020-5-15 15:01
this.Request.IsCreateMode:是否创建模式,true,false  
这个创建模式是什么意思啊

$.SmartForm.ResponseContext.FormMode   // 0为审批/办理 1为办理完结 2为创建 4为查阅

回复

使用道具 举报

0

主题

1

帖子

17

金币

lv2

Rank: 1

积分
32
柠檬遇上蜂蜜 发表于 2021-3-2 16:43:44
点赞,学习
回复

使用道具 举报

5

主题

29

帖子

352

金币

lv4

Rank: 5

积分
427
冰哥 发表于 2021-1-27 11:05:15
MARK
回复

使用道具 举报

0

主题

7

帖子

135

金币

lv3

Rank: 3Rank: 3Rank: 3

积分
120

2021跨年勋章氚云标准版氚云专业版

一年级小学生 发表于 2020-8-21 14:22:41
庞聪 发表于 2020-4-9 00:04
我昨天第一次尝试使用后端代码,需要在后端直接调用人员多选控件或部门多选控件里的人员USERID,在开发手册 ...

select objectid,createdby,extractvalue(F0000007,'/ArrayOfString/string') as usersid from I_D001433c13b54e2936842609fff898de9c4ea84 where objectid='" + this.Request.BizObjectId + "'";
MySQL查询语句:F0000007是人员多选控件,查询出来结果赋值给QueryTable,然后在DataRow中获取usersid(获取的是多个人员id,中间用空格隔开),如果想得到每个人的id,就用字符串函数split以空格隔开,赋值给一个字符串数组就OK了。
回复

使用道具 举报

0

主题

1

帖子

61

金币

lv3

Rank: 3Rank: 3Rank: 3

积分
46

氚云标准版氚云专业版

王基 发表于 2020-5-15 15:01:46
this.Request.IsCreateMode:是否创建模式,true,false  
这个创建模式是什么意思啊
回复

使用道具 举报

13

主题

117

帖子

1314

金币

lv5

Rank: 25

积分
1469

奥哲周年勋章氚云专业版氚云标准版

大夫地 发表于 2020-4-13 21:04:47
第三个需求研究下:当前表单中的关联控件选择了目标表单的某一表单后(在提交前),其他人就不能再选择目标表单已被选择的表单。
回复

使用道具 举报

13

主题

117

帖子

1314

金币

lv5

Rank: 25

积分
1469

奥哲周年勋章氚云专业版氚云标准版

大夫地 发表于 2020-4-13 21:02:29
第二个需求研究下:子表的某一列值相同时,不能提交。
回复

使用道具 举报

13

主题

117

帖子

1314

金币

lv5

Rank: 25

积分
1469

奥哲周年勋章氚云专业版氚云标准版

大夫地 发表于 2020-4-13 21:01:14
楼主研究下:列表的某一列,当值等于“否”时,字体显示为红色,或背景色显示为红色。
回复

使用道具 举报

25

主题

55

帖子

1万

金币

lv6

Rank: 50Rank: 50

积分
4985

2021跨年勋章超级码力内测荣誉勋章氚云标准版氚云专业版

庞聪 发表于 2020-4-9 00:04:20
我昨天第一次尝试使用后端代码,需要在后端直接调用人员多选控件或部门多选控件里的人员USERID,在开发手册里找不着,就在社区里搜。结果关注到这里来了。将会继续跟进学习!
回复

使用道具 举报

4

主题

24

帖子

5135

金币

lv4

Rank: 5

积分
415

内测荣誉勋章氚云标准版

李润光 发表于 2020-4-4 12:26:54
厉害,氛围激发学习。
回复

使用道具 举报

2

主题

10

帖子

765

金币

lv4

Rank: 5

积分
480

内测荣誉勋章氚云标准版氚云专业版

发表于 2020-4-1 11:14:48
哈哈哈,一边学习一边验证,学起来超爽的。
加油加油。
回复

使用道具 举报

7

主题

39

帖子

771

金币

lv5

Rank: 25

积分
725

氚云专业版氚云标准版

郝勇 发表于 2020-3-14 18:03:31
本帖最后由 郝勇 于 2021-4-24 16:18 编辑

开发者手册-后端常用接口示例-表单

表单按钮

修改/增加表单按钮,初始化加载按钮。

示例:

protected override void   OnLoad(H3.SmartForm.LoadSmartFormResponse response)

{

                base.OnLoad(response);

                response.Actions.Remove("Save");  //删除按钮;系统“暂存”按钮

                response.Actions.Remove("Submit");  //删除系统“提交”按钮

                response.Actions.Remove("Remove");  //删除系统“删除”按钮

                response.Actions.Remove("Print");  //删除系统“打印”按钮

                response.Actions.Remove("CancelInstance");  //删除系统流程“作废”按钮

                response.Actions.Remove("ViewQrCode");  //删除系统查看“二维码”按钮

                Dictionary   < string, H3.SmartForm.ViewAction > dicActions = new   Dictionary<string, H3.SmartForm.ViewAction>();

                //重新添加按钮,并修改显示名称

                dicActions.Add("Submit", new   H3.SmartForm.ViewAction("Submit", "一键初始化",   ""));

                foreach(KeyValuePair < string, H3.SmartForm.ViewAction > action   in response.Actions)

                      dicActions.Add(action.Key, action.Value);

                response.Actions = new   Dictionary<string, H3.SmartForm.ViewAction>();

                response.Actions = dicActions;

}


/*

   平台默认按钮key/按钮actionName大全:

   Create:新增(图标编码-->icon-dian)

   Import:导入(图标编码-->icon-import2)

   Export:导出(图标编码-->icon-export2)

   Remove:删除(图标编码-->icon-remove2)

   PrintQrCode:打印二维码(图标编码-->icon-erweima)

*/

按钮名称

ActionName编码

暂存

Save

提交

Submit

删除

Remove

撤回

RetrieveInstance

同意

Submit

不同意

Reject

作废

CancelInstance

打印

Print

二维码

ViewQrCode

全屏

FullScreen

关闭

Close

编辑

Edit

转交

Forward

已阅

Read


更多内容详见:https://help.h3yun.com/contents/887/1004.html




回复

使用道具 举报

7

主题

39

帖子

771

金币

lv5

Rank: 25

积分
725

氚云专业版氚云标准版

郝勇 发表于 2020-3-14 17:13:46
5、开发者手册-后端常用接口示例-业务对象


查询业务对象

先构建过滤器,过滤器支持各种条件组合类似sql的where条件并支持嵌套。

示例:

H3.Data.Filter.Filter filter = new H3.Data.Filter.Filter();  //构建过滤器

                  H3.Data.Filter.And andMatcher = new H3.Data.Filter.And();    //构造And匹配器

                  andMatcher.Add(new H3.Data.Filter.ItemMatcher("AccountName",   H3.Data.ComparisonOperatorType.Equal, "氚云")); //添加查询条件

                  filter.Matcher = andMatcher;

                  H3.DataModel.BizObjectSchema accountSchema =   this.Request.Engine.BizObjectManager.GetPublishedSchema("D000001Account");   //获取模块Schema

                  H3.DataModel.BizObject[] customers =   H3.DataModel.BizObject.GetList(this.Request.Engine,   this.Request.UserContext.UserId,

                    accountSchema,   H3.DataModel.GetListScopeType.GlobalAll, filter); //查询返回的结果对象


回复

使用道具 举报

7

主题

39

帖子

771

金币

lv5

Rank: 25

积分
725

氚云专业版氚云标准版

郝勇 发表于 2020-3-14 17:12:29
4、开发者手册-后端常用接口示例-业务对象

删除业务对象

以下代码没搞明白,无法调通

示例:

H3.DataModel.BizObject accountBo =   H3.DataModel.BizObject.Load(this.Request.UserContext.UserId,this.Request.Engine,"schemaCode",this.Request.BizObjectId,false);   //Load对象(schemaCode为表单编码,this.Request.BizObjectId为当前表单objectid)

          accountBo["CustomerName"] = "深圳氚云网络科技有限公司";  //修改对象属性值

          accountBo["CustomerL**l"] = "已成交";

        accountBo.Status =   H3.DataModel.BizObjectStatus.Effective; // 将对象状态设为生效

          accountBo.Remove();  //删除对象


回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|氚云社区 |粤ICP备15096637号-1
Powered by Discuz! X3.4 Licensed  © 2001-2017 Comsenz Inc.