U9 表达式使用说明 版 本 号 :V1.0 作者:鲁宁 版本记录 【此部分要记录该文档形成过程中的历次版本变更过程及变更的内容】 版本 修改与参与人 修改时间 修改原因 修改概述 审批人1.0 鲁宁 2008/06/27 原始文档建立 一.问题域说明 说明本范例的应用场景: 表达式编辑器使用说明。主要解决人力资源管理系统中复杂的工资核算方式等问题。可以根据人员的属性配置相关的表达式,然后根据人员的实际属性进行计算。 二.基本原理 1)表达式编辑器支持 c#的语法格式(具体的语法格式请向平台咨询) 2) 表达式编辑器使用方式有两种,一种是在 UI 设计器中,选择表达式控件 ,然后在入口参数中选择 HR,同时需要在 UIModel 上提供增加 2 列,一列存储表达式的编码,一列存储表达式的名称,然后在设计器内进行绑定。 另一种是弹出式表达式,需要在代码里指定, NameValueCollection para = new NameValueCollection(); para.Add("ExpressionType", "HR"); para.Add("RefreshParent", "1"); para.Add("InputParameter", "PayRule"); para.Add("EleId", "Formula"); this.CurrentPart.ShowModalDialog("6b14cbe3-39b3-44db-9d20-e86dfe39f5d3", string.Empty, "496", "484", string.Empty, para); 所需参数都在 para 里指定,绑定的具体方与第一种相同. 下图为表达式编辑器的画面:最上面的文本框为表达式的显示及编辑区,中间为操作符区域,下面的 3 个数据区域依次为元数据区,上下文区域和函数区。在表达式页签中显示的是表达式的编码,编码可以由最下面的 3 个数据区来提供,高级用户可以在这个区域手工编辑脚本。显示值则对应着表达式的资源名称。 3) HR,类型需要调用BP来加载3个数据区中的内容,具体的操作方法请参考《U9研发体系(表达式接口).》。 4)表达式语法样例: 如果计算人员的职称工资,可以定义如下表达式: If(员工.职称==‘教授’) { 职称工资=2000; } Else if ((员工.职称==’副教授’) { { 职称工资=1500; } Else { 职称工资=1000; } 注释:表达式编辑器中的语法和c#中的语法类似,支持if…else..语法和foreach循环,同时支持使用自定义函数,这需要在Data视图中的Script.xml文件中注册相关的函数.,同时需要向Base_ExpFunction, Base_ExpFunction_trl表中注册。 五.组装发布说明(可选)