【氚云】分享一些简单粗糙的代码模板(新手指向,有误请提)

简介: 分享一些简单粗糙的代码模板(新手指向,有误请提)

2020年8月18日更新:

如果想问下代码问题的,建议先咨询官方提供的代码客服。另外可以直接私聊我,平时不看帖子。


——————————————————————————————————

以下分享的都是常用到的一些功能


标红色的是氚云原有的代码框架。

标蓝色的是一些关键参数,请留意参数的意义。

标绿色的是注释,描述一些重要提醒。


模板1:根据角色权限,控制按钮的显示。官方示例:http://help.h3yun.com/channels/3.html#表单

protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)    {        base.OnLoad(response);
       H3.Organization.OrgRole[] orgs = this.Request.Engine.Organization.GetUserRoles(this.Request.UserContext.UserId, true);//获取用户的角色        bool isNQ = false;        foreach(H3.Organization.OrgRole org in orgs)        {            if(org.Name == "财务部")//判断用户的角色            {                isNQ = true;                break;            }        }        if(this.Request.BizObject.Status == H3.DataModel.BizObjectStatus.Effective)        {response.Actions.Remove("Remove"); //去除一部分按钮response.Actions.Remove("Edit"); //去除一部分按钮            Dictionary < string, H3.SmartForm.ViewAction > dicActions = new Dictionary<string, H3.SmartForm.ViewAction>();            if(this.Request.BizObject.Status == H3.DataModel.BizObjectStatus.Effective && isNQ == true) { dicActions.Add("Edit", new H3.SmartForm.ViewAction("Edit", "编辑", "")); }//根据角色条件新增一部分按钮            if(this.Request.IsCreateMode == false && this.Request.UserContext.UserId == this.Request.BizObject["CreatedBy"]+string.Empty) {dicActions.Add("BtnZCTJ", new H3.SmartForm.ViewAction("BtnZCTJ", "再次提交", "1")); }//根据角色条件新增一部分按钮            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;        }
   }


模板2:关于子表(数组格式)的一些代码(读取、写入)。

官方示例:http://help.h3yun.com/channels/3.html#后台代码

"如何获取/修改子表数据"

H3.DataModel.BizObject[] details = (H3.DataModel.BizObject[]) this.Request.BizObject["D001700Fd87ff61f9c764eeaa13fe8fef7136adf"];//获取当前子表对象,是一个数组格式                List < H3.DataModel.BizObject > lstObject   = new List<H3.DataModel.BizObject>();//创建新数组,类似于string创建新的变量                foreach(H3.DataModel.BizObject detail in details)//数组格式,用遍历的方式读取里面一条条的内容,这个跟传统直线思维有所区别,details是整个数组,detail是单条数据。                {                    detail["F0000039"] = this.Request.BizObject["SeqNo"] + string.Empty;                    lstObject.Add(detail);//将重新编辑的数组一条一条地添加到新数组                }                this.Request.FormData["D001700Fd87ff61f9c764eeaa13fe8fef7136adf"].Value = lstObject.ToArray();//将新数组赋值到当前子表


模板3:读取当前时间(可以结合节点读取审批时间)。

this.Request.BizObject["F0000020"] = this.Request.BizObject["F0000020"] != null ? this.Request.BizObject["F0000020"] : System.DateTime.Now;


模板4:创建业务对象(复制订单、生成流水记录等)。

官方示例:http://help.h3yun.com/channels/3.html#业务对象


模板5:查询业务对象(读取其他表,更新其他表)。

官方示例:http://help.h3yun.com/channels/3.html#业务对象


模板6:主表控件前端请求后端(表单输入内容的时候执行特定指令)。

官方示例:http://help.h3yun.com/channels/3.html#后台代码

“如何构建虚业务对象返回前端”


模板7:子表控件前端请求后端(表单输入内容的时候执行特定指令)。

var that=this;this.D001700Fahbra3qlyox7m5lb87xlo2vy4.BindChange("Set",       //子表变化事件          function(data) {           var responseData = data[0];           if (responseData != null &&   responseData.DataField == "D001700Fahbra3qlyox7m5lb87xlo2vy4.F0000003")//子表里面的控件的变化事件           {              var currentRowId = responseData.ObjectId;              var course =   this.GetCellManager(currentRowId, "D001700Fahbra3qlyox7m5lb87xlo2vy4.F0000003").GetValue();              {                 $.SmartForm.PostForm("Getcourse",{currentRowIdback:currentRowId},function(data)//提交后端的动作指令和提交后端的数据                 { //该括号内是你想系统为你做的事情                        var result=data.ReturnData;                        var Id=result["Id"];                        that.D001700Fahbra3qlyox7m5lb87xlo2vy4.UpdateRow(currentRowId, {  "D001700Fahbra3qlyox7m5lb87xlo2vy4.F0000016": Id });                        var a=that.D001700Fahbra3qlyox7m5lb87xlo2vy4.GetCellManager(   currentRowId, "D001700Fahbra3qlyox7m5lb87xlo2vy4.F0000016" );                        var b=that.D001700Fahbra3qlyox7m5lb87xlo2vy4.GetCellManager(   currentRowId, "D001700Fahbra3qlyox7m5lb87xlo2vy4.F0000002" );                        a.SetReadonly(true);                        b.SetVisible(false);                  }                  ,function(error){$.IShowError("错误",JSON.stringify(error));},false);           }          })


模板8:从另一表获取数据,并加载默认项。


protected override void OnLoad(H3.SmartForm.LoadSmartFormResponse response)    {        H3.Data.Filter.Filter filter = new H3.Data.Filter.Filter();        H3.Data.Filter.And andMatcher = new H3.Data.Filter.And();        andMatcher.Add(new H3.Data.Filter.ItemMatcher("F0000002", H3.Data.ComparisonOperatorType.Equal, true));        filter.Matcher = andMatcher;        filter.AddSortBy(new H3.Data.Filter.SortBy("F0000003", H3.Data.Filter.SortDirection.Ascending));        H3.DataModel.BizObjectSchema accountSchema = this.Request.Engine.BizObjectManager.GetPublishedSchema("D001700428bfc13942c4f09aad0c286144ade90");        H3.DataModel.BizObject[] customers = H3.DataModel.BizObject.GetList(this.Request.Engine, this.Request.UserContext.UserId,            accountSchema, H3.DataModel.GetListScopeType.GlobalAll, filter);        if(customers != null)        {            List < H3.DataModel.BizObject > lstObject = new List<H3.DataModel.BizObject>();            foreach(H3.DataModel.BizObject customer in customers)            {                H3.DataModel.BizObject newChild = new H3.DataModel.BizObject(this.Engine, this.Engine.BizObjectManager.GetPublishedSchema("D001700Fcb370695565640bd89ad5fac1c93f43e"), this.Request.UserContext.UserId);                newChild["F0000020"] = customer["F0000001"];                newChild["F0000022"] = customer["F0000004"];                lstObject.Add(newChild);            }            this.Request.BizObject["D001700Fcb370695565640bd89ad5fac1c93f43e"] = lstObject.ToArray();        }                base.OnLoad(response);    }


模板9:后端自定义SQL查询系统表。

string insuretype = this.Request.BizObject["F0000001"] + string.Empty;            string organization = this.Request.BizObject["OwnerDeptId"] + string.Empty;            string manager = null;            string mysql1 = "SELECT ObjectId,ManagerId FROM H_Company where ObjectId='" + organization + "'";//构造mysql文本语言            string mysql2 = "SELECT ObjectId,ManagerId,ParentId FROM H_Organizationunit where ObjectId='" + organization + "'";            string mysql = null;            if(organization == "18f923a7-5a5e-426d-94ae-a55ad1a4b240") { mysql = mysql1; } else { { mysql = mysql2; } }            System.Data.DataTable   dtAccount = this.Request.Engine.Query.QueryTable(mysql, null);//获取mysql读取到的数据            manager = dtAccount.Rows[0]["ManagerId"].ToString();
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
前端开发 数据库 开发者
氚云丨开发课— 02 一般控件的前后端操作| 学习笔记
快速学习氚云丨开发课— 02 一般控件的前后端操作。
氚云丨开发课— 02 一般控件的前后端操作| 学习笔记
|
SQL 缓存 运维
MongoDB的性能问题之MongoDB 磁盘IO高问题
MongoDB的性能问题之MongoDB 磁盘IO高问题
一篇文章总结氚云函数
氚云函数包含 14类数学函数类型 12类文本函数类型 17类时间函数类型 3类逻辑函数和2类其他函数
一篇文章总结氚云函数
|
开发者
氚云丨开发课— 05 后端代码调试与业务对象操作| 学习笔记
快速学习氚云丨开发课— 05 后端代码调试与业务对象操作。
|
4天前
|
缓存 API 开发工具
DeepSeek V4.1 Flash API 接入指南:价格说明与调用方法全解析
本文详解直连 DeepSeek V4.1 Flash(`deepseek-flash`)的完整接入流程:从平台选型(官方API/第三方网关)、费用估算(分缓存/非缓存输入与输出计价)、Key与模型匹配,到Python/curl首次调用验证。内容基于2026年9月11日官方文档核查,含实操代码与避坑提示。
|
1月前
|
SQL 自然语言处理 前端开发
别让 Agent 猜数据:企业级 Data Agent 架构设计指南
优先建设语义层、Agentic Harness 架构和分析能力沉淀,把最关键的业务对象、核心指标和高频分析方法系统化,再逐步补齐编排、记忆、权限和审计机制。
|
6月前
|
人工智能 IDE 前端开发
|
1月前
|
人工智能 缓存 监控
阿里云百炼Token Plan是什么?购买与使用完全指南
阿里云百炼Token Plan是什么?本文详解Token计费原理、Plan类型对比、购买步骤、用量查看及省钱技巧,帮助企业降低大模型API调用成本。
285 0
|
2月前
|
人工智能 运维 IDE
Qoder CN(原通义灵码)全维度详解:产品矩阵、版本区分与技术适配实操手册
2026年阿里云完成旗下代码工具品牌战略升级,原通义灵码正式更名为**Qoder CN**。本次更名并非简单品牌替换,而是产品定位、底层架构、产品形态、计费体系的全方位迭代升级,从单一IDE代码补全插件,进化为覆盖编码、办公、终端、云端协同的全栈智能研发AI智能体矩阵。整套产品依托本土化大模型底座,兼顾数据安全合规要求,面向编程学习者、独立开发者、中小研发团队、金融政务等高合规企业打造分层版本,覆盖个人练手、全职开发、企业规模化项目研发全场景。本文将从产品全形态矩阵、四大版本功能差异、底层技术兼容能力、核心智能体能力、Credits计费体系、分人群精准选型六大板块完整拆解,附带多端安装配置实操
701 0
|
算法 安全 量子技术
【Python】蒙特卡洛模拟 | PRNG 伪随机数发生器 | 马特赛特旋转算法 | LCG 线性同余算法 | Python Random 模块
【Python】蒙特卡洛模拟 | PRNG 伪随机数发生器 | 马特赛特旋转算法 | LCG 线性同余算法 | Python Random 模块
1471 0

热门文章

最新文章