列表开发框架

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

列表开发框架

第一部分:UIModel建立过程

1命名规范

1.1解决方案命名

查询命名:服务组+BListUI

举例:

查询类: 当前服务组是Base,那么解决方案的名称就为BaseBListUI.ubfsln。

1.2项目命名

查询命名:业务名称+ BListUI(一般情况下要与对应的卡片名称一致)

举例:

组织档案项目命名为OrgBListUI

1.3项目装配件名

查询命名: UFIDA.U9.具体的服务组.业务名称.具体名称+BListUI

(与相应的单据和档案的UI保持一致。在他们的基础上加上BList来区分。)

举例:

组织档案项目装配件名为UFIDA.U9.Base.OrgBListUI

1.4模型命名空间

查询命名:

UFIDA.U9.具体的服务组.业务名称.具体名称+BListUIModel

即:项目装配件名+Model

举例:

组织档案的模型命名空间为UFIDA.U9.Base.BListUIModel

1.5 UIModel的命名 

查询命名:

业务名称+ BListUIModel

举例:

组织档案的模型命名为OrgBListUIModel

1.6 Form的命名   

查询命名:

业务名称+ BListUIForm

举例:

组织档案的Form命名为OrgBListUIForm

2 操作过程 

2.1 建立节点并且按规范命名

步骤1:点击 项目解决方案,选择根节点 右键“新建”,切换到分析项目组页签,点击“查询 项目”,

录入查询项目名称,以*Qry结尾,点击 “确定”

步骤2:查询项目配套生成一个BP和一个UI项目,UI项目以ListUI结尾,BP项目以ListBP结尾,路径与其它模型项目保持一致即可。

步骤3:查询方式选择”列表”(不要选错,另外两个参见1.4.3.6小节),录入UI模型名称(此步骤为查询项目初始化时,默认生成的查询定义及界面模型,可以不用或删除)

2.2 规范装配件名

步骤1:在模型视图页签中选中对应的节点,再选择属性页签,按照命名规范更改配件名

例如:组织档案的配件名为UFIDA.U9.Base.OrgBListUI

ListBP及Qry项目配件名也要做相关修改,以保持一致

2.3 创建列表页面

(1)创建查询定义

选中查询项目,右键新建查询定义,录入名称,以*Qry结尾

查询方式选择”列表”(不要选错,另外两个参见1.4.3.6小节),录入UI模型名称

设置数据来源,及查询方案,增加默认条件,栏位,及排序信息

(2)命名空间修改

上面步骤完成之后下面要按照规范更改模型的名空间及界面自适应

步骤1:打开ListUI项目,在模型界面上双击第一行弹出窗口“界面模型设计器”,将模型命名空间按命名规范更改正确。

例如:组织档案列表的模型名空间为UFIDA.U9.Base.OrgBListUIModel(注意UBF默认生成的名称和显示名称都会缺少Model);

步骤2:打开ListUI项目,在表单界面上左侧窗口找到界面控件树,选中根节点,再点击右侧属性,修改是否自适应为True

 

第二部分:Code建立过程 

1生成代码

在解决方案窗口中,选中所建的项目,

  1. 确保UBF必须包含模板./UITpls/UICommonAction.tpl
  2. 点击鼠标右键,点击构造。

2项目引用

查询和列表的公共的引用目前有如下几个:

(1)using UFIDA.UBF.Query.CaseModel;

(2)using UFIDA.UBF.Query.CommonService;

(3)using UFSoft.UBF.ExportService;

(4)using UFIDA.U9.UI.PDHelper;

 

3 Action部分

下面我们要做的工作就是修改 *BListUIModelActionExtend.cs,

3.1 创建模型的相应代码

(0)引用

using UFSoft.UBF.UI.ControlModel;

using UFIDA.UBF.Query.CaseModel;

using UFIDA.UBF.Query.CommonService;

using UFIDA.U9.UI.PDHelper;

using UFSoft.UBF.Util.Context;

using UFIDA.UBF.Query.CommonService.QueryStrategy;

using UFSoft.UBF.ExportService;

(1)全局变量设置

string QryModelID = "5f9c19ac-2ca4-4ee6-966e-8891922dd0c4";//当前UIModelID

string EntityFullName = "UFIDA.U9.Base.Organization.Organization";//RootEntity的FullName

string CardPageID = "CBO.Base.Organization.Organization";//新增及修改时的卡片的WebPart的FullName

(2)OnLookCase查询按钮

 不用写任何代码。---因为模版已经自动生成代码。

 

(3)GridRowDbClick_Extend

(4)OnPrint_Extend

以上代码为默认生成的代码,按默认方式进行打印

(5)OnOutPut_Extend

以上代码为默认生成的代码,按默认方式进行导出

(6)OnCaseChanged事件代码:

private void OnCaseChanged_Extend(object sender, UIActionEventArgs e)

{

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

this.OnCaseChanged_DefaultImpl(sender,e) ;

 //加载选中方案

QryService.OnCaseChangedDefault("DDLCase", this.CurrentPart);

QueryAdjust(); 

}

 

(7)OnNew_Extend

(8)"margin-left:21.0pt;">下面开始修改*BQryUIFormWebPartCodeBehindExtend.cs。

4.1 After"text-align:center;"> 

查询列表公共模型是U9查询用于存储已选、待选以及其他一些查询相关信息的数据结构。在查询的过程中,它的主要作用是为了查询过程数据的全局共享和不同模型数据之间的转化介质。模型中包括如下的具体的数据结构:

1 CaseModel数据结构

名称描述数据类型备注
AppID应用IDLong type当前应用ID,主要用于变量解析的XML文件读写
QryModelID当前所建的模型IDGuid Type辨别不同的查询的关键信息
CaseDefine待选信息CaseDefine Type待选信息,包括列,排序,分组,条件,参照集合,枚举的结合
Case已选信息Case Type已选列,分组,条件,排序

实例化一个CaseModel的方法:

CaseModel caseModel=new CaseModel(); 

CaseModel中还提供了一些很简单的方法,满足不同代码风格的书写,如下:

caseModel.SetApplicationID(1234566);

CaseModel.AddCase(Case ~);

CaseModel.AddDefine(CaseDefine~);

2 CaseDefine数据结构

名称描述数据类型备注
ColumnDefines待选栏目项ColumnDefines栏目的集合
SortDefines待选排序项SortDefines排序的集合
GroupDefines待选分组项GroupDefines分组的集合
FilterDefines待选条件项FilterDefines引用于UFSoft.UBF.Report.Filter.FilterModel,用于条件项的存取
References相关参照集合

References

 

 
Enumerates相关枚举集合Enumerates 

2.1 ColumnDefines& ColumnDefine

ColumnDefines从字面上我们可以看出是ColumnDefine的集合形式,它继承与List类型,具有集合的一般方法,这里就不对其具体阐述了。简单介绍一下外加的方法:

ColumnDefine GetObjectByAttributeID(Guid attributeid) ///通过AttributeID获取一个ColumnDefine实例

ColumnDefine GetObjectByid(long ID) ///通过ID获取一个ColumnDefine实例,不建议使用

ColumnDefine GetObjectByItem(string item) ///通过Item属性lumnDefine实例

ColumnDefine的数据结构:

基类为[BaseDefine]

名称描述数据类型备注
ID项IDlong建议不用这个字段,为程序附与的无用属性
A ttributeID项属性IDGuid元数据属性ID的GUID形式
Item项名称string 
DispalyName项显示名称string 
DataType项类型string建议不用在进行直接类型读取,这是U9元数据类型,不能直接的Type.GetType(Item.DataType)方法的使用
SubColumns项子项集合Items此属性为空或者Count为0;程序未对其进行赋值操作
ParentColumn项父项Item 
AttributeType项数据AttributeType Enum 
ItemAttribute项属性String 
EntityFullName项实体全名String 
DataTypeID项数据类型IDGUID项类型对应的类型元数据ID
ReferenceGuid项参照IDGuid如果项为实体类型[EntityType]或者参照类型[ReferenceType],这程序会检索此项,去遍历参照集合获取相应的参照

实例化一个ColumnDefine:

ColumnDefine columnDefine=new ColumnDefine();

由于SortDefine,GroupDefine与ColumnDefine的相似性,这里就不一一讲述了.

2.2 参照集合&&参照[Reference]

参照的数据结构:

名称描述数据类型备注
IDIDGuid 
CodeField参照Code列信息StringCode列
NameField参照Name列信息StringName列
EntityID实体IDGuid参照相应的实体ID

实例化一个参照:

Reference reference=new Reference();这个方法组要用在用户想获取的参照不是默认参照时,进行用户的自定义。

 

参照集合与其他的集合一样继承与List,这里也提供了一些获取参照的小方法,如下:

Reference GetReferenceByGuid(Guid entityGuid)///通过实体ID获取参照

Reference GetReferenceByeID(Guid refID)///通过参照ID获取参照

示例代码:

Reference tempReference = Enumerate GetReferenceByeID (123434343-434343-34343-3434);

If(tempReference!=null)

{

myReference = tempReference;
}

2.3 枚举、枚举项与枚举集[Enumerate]

  1. 枚举

枚举类型用于存储U9枚举信息,它的数据机构如下:

名称描述数据类型备注
IDIDGuid 
EnumItems子项集合EnumItems 
EntityID实体IDGuid参照相应的实体ID

它同时提供了

Enumerate.AddItem(EnumItem Item);

Enumerate.RemoveItem(EnumItem Item);

对子项进行适当的调整。

  1. 枚举项
名称描述数据类型备注
Name项名称String 
DisplayName显示名称String 
Description描述信息String 
DefaultValue默认值Int 
  1. 枚举集

枚举集合与其他集合一样继承于的List类型,并增加了几个小方法编写程序元编写代码:

Enumerate GetEnumerateByGuid (Guid entityGuid) 通过实体的id来获取枚举实例

示例代码:

Enumerate tempEnumerate= Enumerate GetEnumerateByGuid (12343433-434343-34343-3434);

If(tempEnumerate!=null)

{

myEnumerate= tempEnumerate;
}

3 Case数据结构

名称描述数据类型备注
CaseBasicInfo方案基本信息CaseBasicInfo 
Columns已选栏目项Columns栏目的集合
Sorts已选排序项Sorts排序的集合
Groups已选分组项Groups分组的集合
FilterDefines已选条件项FilterDefines引用于UFSoft.UBF.Report.Filter.FilterModel,用于条件项的存取
FilterValues已选条件值FilterValues 引用于UFSoft.UBF.Report.Filter.FilterModel,用于条件值的存取

3.1 CaseBasicInfo

名称描述数据类型备注
ModelID当前UIModelIDGuid 
UserID当前用户IDLong 
CaseTypeCaseType当前的Case的类别 
IDIDLong 
Title标题String 
Description描述String 
OrganizationID当前组织IDLong 

 

3.2 Columns

在Columns与ColumnsDefines也很相似,这里也不再做更多的介绍了.

3.3 Groups

在Groups与Groups Defines也很相似,这里也不再做更多的介绍了.

3.4 Sorts

在Sorts与Sorts Defines也很相似,这里也不再做更多的介绍了.

3.5 FilterDefines

引用于UFSoft.UBF.Report.Filter.FilterModel,用于条件项的存取

3.6 FilterValues

引用于UFSoft.UBF.Report.Filter.FilterModel,用于条件值的存取

 

列表开发框架

第一部分:UIModel建立过程1命名规范1.1解决方案命名查询命名:服务组+BListUI举例:查询类: 当前服务组是Base,那么解决方案的名称就为B...
点击下载文档
标签: # U9C
分享:
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息