档案基本功能开发

栏目:u9cloud知识作者:用友来源:用友发布:2024-08-20浏览:1

档案基本功能开发

以送货单单据类型讲解档案开发示例。

1、配置生成源代码和数据库表脚本路径

(1)配置UBF构造生成的源代码的路径;

(2)VS版本设置代码VisualStudio2010版本设置为VS2012。

“工具”-“配置”,配置图中特别标注的几个地方:

在E:/yonyou/U9Demo目录下建文件夹,如图所示新建文件夹

配置完成后必须要重启UBF。

 

注意:要求项目文件夹(如U9Demo)下必须有Code和Model两个文件夹,否则构造生产代码会将代码放到一个名字叫“y”的文件下。

 

2、UBF平台开发

2.1.建立解决方案

 

位置指向新建项目文件夹的Model路径下,即模型文件全部保存到Model文件夹下。

2.2、BE

2.2.1新建BE实体项目

右击“解决方案”-〉“新建”-〉“模型项目组”-〉“实体项目”

2.2.2.修改命名规范

如果界面上找不到“模型视图”、“属性”等等页签,可以在UBF最左上角的“查看”,隐藏“所有”,再点击“显示所有”

(1)修改BE的配件名

进入“模型视图”页签-〉选择BE项目-〉“属性”页签,将配件名修改为“UFIDA.U9.Cust.**BE”

(2).修改BE的项目名称和命名空间名称

进入“模型视图”页签-〉选择命名空间-〉“属性”页签,将命名空间的“名称““修改为“UFIDA.U9.Cust.**BE”

 

2.2.3.添加U9两个基础实体引用

添加2个引用,在发布对象栏目中,在选择目录中,将APP下面的UFIDA.U9.CBO.PubBE.MetaData和UBF下面的UFIDA.U9.Base.BaseBE.MetaData拖放到解决方案页签的Reference引用下。

(注:在引用解决方案时,先要双击打开所引用的MetaData,然后拖到Reference中)

拖过来的结果:

 

2.2.4.建立BE实体

以送货单单据类型开发作为档案开发的示例讲解,单据类型必须基础单据类型基类(普通档案开发不需要基础任何基类)

(1)建立实体;

双击打开,从左侧拖动一个实体到空白区域:

(2)建立实体属性

设置实体名称、显示名称、主实体、缺省表名

(注意:实体属性的名称首字母一定要大写)

表名修改:

选中实体,在“属性”页签中修改或双击实体在弹窗中修改:

(业务主键发布后,如要修改,需要删掉原BE索引,才可修改)

(3)设置实体属性

设置实体名称、显示名称、主实体、缺省表名(因为为单据类型,需要继承单据类型基类)

 

做完每个步骤,随时进行保存。

2.2.5.构造BE 实体项目

构造BE会相应生成:元数据、数据库表脚本、BE项目C#代码;

注:如构造产生异常的,做了相应修改后,异常情况还存在时,将对应生成的文件夹中的代码删除再进行构造。

BE/BP构造代码路径会生成到文档开头设置的路径Code中,

 

2.3、UI

2.3.1、建立UI界面项目

在解决方案页签下,右击“解决方案”-〉“新建”,建立界面项目

 

 

2.3.2、修改UI项目配件名

进入“模型视图”页签-〉选择UI项目-〉“属性”页签,将配件名加前缀“UFIDA.U9.Cust.”

 

2.3.3、建立界面数据

2.3.3.1建立界面Model

(将系统默认产生的界面数据删除)

右击UI界面项目-〉“新建”,建立界面数据;

 

2.3.3.2修改界面数据命名空间名称

2.3.3.3用户界面模型绑定实体

(1) 与BE实体建立关联

把BE中的表用户界面模型树里。

 

(2)启用按钮事件

在动作组右击,选择“应用缺省特性”,一定要先设置应用缺省特性(启用UBF自动提供的按钮,保存、修改、删除等事件),再建UIForm。

(3)添加默认过滤条件

2.3.3、建立界面Form

3.3.1创建界面

.选择表单界面模板类型,并选择界面元数据;

 

 

 

3.3.3界面栏位展示

.把要显示的实体属性一个个拖到界面中。(ID和事务版本栏位设置隐藏)

3.3.4界面栏位参照设置

3.3.4.1. 添加UI系统

添加U9系统的2个基本UI 引用和客开的UI引用;

(UI->UFIDA.U9.CBO.Ref.BaseReferenceUI.MetaData 

和UI->UFIDA.U9.CBO.Ref.CBOReferenceUI.MetaData)

3.3.4.2设置栏位参照绑定

(1)参照绑定(U9中带放大镜图标的字段)

选中界面栏位->属性->参照信息,选择设置U9系统参照或自定义参照,并设置编码列和名称列绑定字段,如下图

(注:返回字段ID指向Key,Code指向Value,Name指向Text)

3.3.5按钮事件设置

选择界面的按钮->属性->事件Click-〉启用事件-〉选中-〉确定

注意:如果按钮事件已经自动绑定,则不需要设置;创建UIModel时,如果应用了缺省特性,则创建UIForm时会自动

绑定事件,确定&取消按钮例外,需单独手动绑定;如果没启用或后来才启用的情况下,UIForm按钮不会自动绑定事件,需手动绑定

 

3.3.6设置界面属性

(1)选择整个页面,属性中修改是否主Form为True;

(2)并将“显示来源类型”设置为Custom,显示名称输入名称。

 

2.3.4、构造UI界面项目

构造UI会生成: UI项目代码;

构造UI产生异常的,做了相应修改后,异常情况还存在时,将对应生成的文件夹也删除再进行构造。

 

UI基本代码:

publicvoid AfterCreateChildControls()

        {

 

//开启个性化:不加这段代码,页面无法使用个性化          UFIDA.U9.UI.PDHelper.Personalizati PDResource.GetDeleteConfirmInfo();

//绑定注册弹出对话框到删除按钮

PDFormMessage.ShowConfirmDialog(this.Page, message, "", this.BtnDelete);

PDFormMessage.ShowConfirmDialog(this.Page, "确认放弃当前记录?", "", this.BtnCancel);

}

 

 

2.4、发布服务组

点击解决方案,右键发布服务组,会在当前模型解决方案下生成XX.sg文件。

 

3、UBF文件结构

3.1UBF文件

(1)UBF解决方案:在解决方案保存后,会在相应的路径下产生相应名称的.ubfsln、 .sg;

(2)BE项目:在BE保存后,会在相应的路径下产生相应名称的.ubfbe、 .ubfmlproj;

(3)UI项目:在UI保存后,会在相应的路径下产生相应名称的.bfform、.ubfuim、.ubfuiproj。

 

3.2构造生成的文件

3.2.1源代码

生成UBF配置的路径下的BE和UI源代码:

UBF生成的后台BE、BP代码:

UBF生成的后台UI代码:

 

代码生成文件目录下,有AutoBuild.bat文件,执行此批处理文件(将相关文件拷贝到Portal对应目录下)

4.部署发布 

4.1、配置文件设置

第一次使用UBF开发项目需配置,以后不需要配置。

4.1.1.buildup.xml文件配置

 

UBFStudio->buildup.xm,configInfoPath路径一定要直到../Portal/UILib文件夹下。

4.1.2.配置 environment.xml文件

UBF:UBFStudio->Runtime->environment.xml中的connectionString,里面写正确的连接数据库字符串。

例:

 

4.2程序和数据库脚本布置

4.2.1程序集部署

(1)将BE项目下的**BE.dll、** BE.pdb放到../Portal/ApplicationLib下;

(2)将BE项目下的** BE.dll、** BE.pdb 和** BE.Deploy.dll、** BE.Deply.pdb放到

../Portal/ApplicationServer/Libs下;

如:

  1. 将UI项目下的**UI.WebPart.dll和**UI.WebPart.pdb放到../Portal/UILib下。

如:

可以执行BE和UI文件夹下的AutoBuild.bat批处理文件,把DLL文件自动复制到UBF配置的路径文件夹下。

 

4.2.2数据库脚本执行

执行在UBF配置的生成数据库脚本的路径下的如下SQL脚本:

4.2.2.1Unconfiged文件夹

(1)DBScript文件夹:**BE_DDL.sql;//新建表的脚本,第一次部署需要执行此脚本,每次执行会删除表并重建,如果表中有数据,不能执行此脚本,只能构造客开补丁,构造客开补丁时此脚本不允许构造。

(2)MetadataScript文件夹:**BE_Metadata.sql、**BE_Resource.sql;

4.2.2.2u_ui文件夹

**UI_Metadata.sql、**UI_Resource.sql

 

5.3.装配发布

5.3.1载入组件部件

打开工具..->U9.VOB.Product.UBF->UBFStudio->BuildupDesigner.exe

.选择要装配的目录下,“增加组件”-〉“载入组件”,选择组件(就是解决方案发布服务组生成好的.sg文件。)

 

5.3.2.选择“增加页面”

将页面与步骤1中的部件绑定到页面中。

ID和代码可以相同,名称和标题可以一样(名称和标题自定义),URL自定义,不可有中文。

5.3.3.设置页面WebPart

5.3.4.添加菜单

(1)“应用菜单编辑”-〉“增加菜单”

  1. 将“ID”复制到“代码”中,“名称”和“显示名称”改过来;URI栏位选择“选择选取页”按钮,选择二级菜单的URL与步骤”3.2增加页面”

(2)文件->保存

(3)工具->发布

保存的是配置,修改后就不需要重新发布)。

 

注意:

  1. 一定是两级菜单,ID和代码相同,一级菜单可以和二级菜单名称相同。
  2. 发布后再进行修改时,发布前,右击建立的页面“清除此页面发布的内容”,右击建立的菜单“清除数据库发布的菜单内容”。

 

5、设置权限

在U9系统管理中,设置相关的权限。在菜单角色中,设置客开页面的菜单权限。

 

6、编写代码---参照/弹性域/个性化

BE设置默认组织:

    if (this.Org == null)

               this.Org = UFIDA.U9.Base.Context.LoginOrg;

UI代码,启用个性化、查询按钮实现、启用弹性域:

public void AfterCreateChildControls() 

        {

//开启个性化        UFIDA.U9.UI.PDHelper.Personalizati PDResource.GetDeleteConfirmInfo();

//绑定注册弹出对话框到删除按钮

PDFormMessage.ShowConfirmDialog(this.Page, message, "", this.BtnDelete);

PDFormMessage.ShowConfirmDialog(this.Page, "确认放弃当前记录?", "", this.BtnCancel);

}

UI设置默认值:

在UI项目的Model文件夹的扩展类中编写:
           this.viewPullListsDoc.FieldOrg.DefaultValue = PDContext.Current.OrgID;//组织默认值
           this.viewPullListsDoc.FieldOrg_Code.DefaultValue = PDContext.Current.OrgRef.CodeColumn;
           this.viewPullListsDoc.FieldOrg_Name.DefaultValue = PDContext.Current.OrgRef.NameColumn;
           this.viewPullListsDoc.FieldBusinessDate.DefaultValue = DateTime.Now;//日期默认值

 

注意:UI和BE、BP、SV所引用的上下文实例不同,不能相互混用,否则会报错(插件同理)

UI使用:UFIDA.U9.UI.PDHelper.PDContext.Current

BE、BP、SV使用:UFIDA.U9.Base.Context

7、编写代码--列表实现:

单据界面调转到列表:

private void ListClick_Extend(object sender, UIActionEventArgs e)

                   {

     this.CurrentPart.NavigatePage("列表的URI(装配工具里面)", null);

}

列表跳转到单据:

private void OnGridRowDbClick_Extend(object sender, UIActionEventArgs e)//默认双击行事件

                   {

 

           string dataId 

= this.CurrentModel.ItemMatchParameter.FocusedRecord["MainID"].ToString();

           OnNavigatCard("Browse", dataId, "单据界面的URI(装配工具中)");

                            //调用模版定义的默认实现方法.如需扩展,请直接在此编程.                          

this.OnGridRowDbClick_DefaultImpl(sender,e);                                                                      

       }

       private void OnNavigatCard(string type, string dataID, string formID)

       {

           string FormID = formID;//AddFormID

           string DataID = dataID;

           System.Collections.Specialized.NameValueCollection nameValCol = new System.Collections.Specialized.NameValueCollection();

               nameValCol.Add("PDPageStatus", type);//参数:界面状态

                nameValCol.Add("ID", DataID);//参数ID

               this.CommonAction.CurrentPart.NavigatePage(FormID, nameValCol);

       }

档案基本功能开发

以送货单单据类型讲解档案开发示例。1、配置生成源代码和数据库表脚本路径(1)配置UBF构造生成的源代码的路径;(2)VS版本设置代码Visual...
点击下载文档
标签: # U9C
分享:
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息