用友U9全部 课程讲解资料V30.docx

上传人:b****6 文档编号:8411418 上传时间:2023-01-31 格式:DOCX 页数:66 大小:734.38KB
下载 相关 举报
用友U9全部 课程讲解资料V30.docx_第1页
第1页 / 共66页
用友U9全部 课程讲解资料V30.docx_第2页
第2页 / 共66页
用友U9全部 课程讲解资料V30.docx_第3页
第3页 / 共66页
用友U9全部 课程讲解资料V30.docx_第4页
第4页 / 共66页
用友U9全部 课程讲解资料V30.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

用友U9全部 课程讲解资料V30.docx

《用友U9全部 课程讲解资料V30.docx》由会员分享,可在线阅读,更多相关《用友U9全部 课程讲解资料V30.docx(66页珍藏版)》请在冰豆网上搜索。

用友U9全部 课程讲解资料V30.docx

用友U9全部课程讲解资料V30

(结合视频教学资料使用)

1.UBF路径配置

(视频160)

2.解决方案建立规则

目录层次:

解决方案>>项目>>组件

同一模块,所有BE、BP、SV项目放在(同)一个解决方案内

同一模块,所有BE,只用一个项目,即只生成一个BE的DLL

同一模块,所有BP、SV,只用一个项目,即只生成一个BP、SV的DLL

同一模块,可以所有枚举放在(同)一个BE组件内

同一模块,所有UI项目放在一个解决方案内

一个档案或单据UI,及其相关的查找参照UI,用(同)一个项目,即一个档案或单据,生成一个UI的DLL

同一模块,所有列表UI,用(同)一个项目

同一模块,所有参照UI,用(同)一个项目

3.命名规范

配件名:

UFIDA.U9.Cust.XM(地区).HXPP(公司).EX(模块)BE

表名:

Cust_XM(地区)_HXPP(公司)_EX(模块)_XXXX

4.档案开发需求

(视频170,180)

考核模块(EX)>>科目(Subject)

名称

显示名称

类型

备注

Org

组织

组织机构

业务主键,不可空

Code

编码

字符串

业务主键,不可空,长50

Name

科目名称

字符串

不可空,长200

SubjectType

科目类型

科目类型枚举

枚举值:

辅料、主要材料、产值、费用,对账差异,营销可比利润,调节项,其他收入,税后利润,考核税前利润

Effective

状态

状态

 

Memo

备注

字符串

长500

DescFlexField

扩展字段

实体扩展字段集合

 

5.BECode与Model对比

6.组件、类实体、属性关系查询(SQL语句)

selecta.NameasComponentName,at.DisplayNameasComponentName_CN,a.AssemblyName,a.Kind

b.NameasClassName,bt.DisplayNameasClassName_CN,b.FullName,b.Discriminator

c.NameasAttributeName,ct.DisplayNameasAttributeName_CN

fromUBF_MD_Componenta

leftouterjoinUBF_MD_Component_Trlatona.Local_ID=at.Local_IDandat.SysMLFlag='zh-cn'

leftouterjoinUBF_MD_Classbona.ID=b.MD_Component_ID

leftouterjoinUBF_MD_Class_Trlbtonb.Local_ID=bt.Local_IDandbt.SysMLFlag='zh-cn'

leftouterjoinUBF_MD_Attributeconb.ID=c.MD_Class_ID

leftouterjoinUBF_MD_Attribute_Trlctonc.Local_ID=ct.Local_IDandct.SysMLFlag='zh-cn'

where(1=1)

andbt.DisplayName='科目'

7.UICode与Model对比

8.UIForm、Part、Page的关系查询(SQL语句)

selectat.DisplayNameasUIFormDisplayName,a.nameasUIFormName,c.nameasPageName

a.uidas[UID(FormID)],b.PageCode

a.urias[PartID(UIFormURI)],c.uriasPageURI

a.AssemblyName,a.ClassName

a.Width,a.Height,dt.nameasApplicationName

fromubf_md_uiforma

leftouterjoinubf_assemble_partbona.uid=b.component

leftouterjoinubf_assemble_pageconb.page=c.id

leftouterjoinbase_application_trldtonc.application=dt.idanddt.sysmlflag='zh-cn'

leftouterjoinubf_md_uiform_trlatona.id=at.idandat.sysmlflag='zh-cn'

where(1=1)

andat.DisplayName='科目'

9.同步枚举脚本

以补丁包方式更新/安装,则不需要下面的脚本,因为be的bulk中会处理;

deletefromubf_sys_extenumtype

deletefromubf_sys_extenumtype_trl

deletefromubf_sys_extenumvalue

deletefromubf_sys_extenumvalue_trl

GO

insertintoubf_sys_extenumtypeselectlocal_idasid,'20060612','u9zhangheng','20060612','u9zhangheng',0,fullnameascode,isextend,idasuid,0asIsRefViewfromubf_md_classwhereclasstype=3

insertintoubf_sys_extenumtype_trlselecta.local_idasid,'zh-CN',b.[displayname]as[name],b.[Description]fromubf_md_classaleftjoinubf_RES_resourcevalueboncast(a.[iD]asnvarchar(255))=b.resourcenamewhereclasstype=3

insertintoubf_sys_extenumvalueselecta.local_idasid,'20060612','u9zhangheng','20060612','u9zhangheng',0,a.[Local_Class_ID]asExtEnumType,a.[name]ascode,a.defaultvalueasevalue,issystem,md_class_idasExtEnumTypeUIDfromubf_md_attributeasainnerjoinubf_md_classasbona.md_class_id=b.idwhereclasstype=3

insertintoubf_sys_extenumvalue_trlselecta.local_idasid,'zh-CN',c.[displayname]as[name]fromubf_md_attributeasainnerjoinubf_md_classasbona.md_class_id=b.idleftjoinubf_RES_resourcevalueconcast(a.[ID]asnvarchar(255))=c.resourcenamewhereclasstype=3

GO

--枚举值表关系

SELECTa.Code,at.NAME,a.EValue,c.UIDASEnumTypeUIDFROMUBF_Sys_ExtEnumValuea

LEFTOUTERJOINUBF_Sys_ExtEnumValue_TrlatONa.id=at.idANDat.SysMLFlag='zh-cn'

LEFTOUTERJOINUBF_Sys_ExtEnumTypecONa.ExtEnumType=c.id

WHEREc.Code='UFIDA.U9.Base.Doc.ConfirmTypeEnum'

10.装配发布

(视频190)

\UBFV28\U9.VOB.Product.UBF\UBFStudio

BuildupDesigner.exe

buildup.xml,修改UILib路径

.\Runtime\environment.xml

UserId=sa;Password=123456;DataSource=laputa\mssql2012;InitialCatalog=hxpp0326;packetsize=4096;MaxPoolsize=1500;persistsecurityinfo=True

带实例名的ConnectionString

UserId=sa;Password=123456;DataSource=DZY-\mssqlsever;InitialCatalog=HXPP0145;packetsize=4096;MaxPoolsize=100;ConnectionTimeout=900;persistsecurityinfo=True;MultipleActiveResultSets=true;

11.常用代码

(视频200,210,220)

BE上赋默认值,OnSetDefaultValue处增加代码

if(this.Org==null)

{this.Org=Context.LoginOrg;}

UI上赋默认值,Model>>AfterInitModel处增加代码

this.Subject.FieldOrg.DefaultValue=PDContext.Current.OrgRef.ID;

this.Subject.FieldOrg_Code.DefaultValue=PDContext.Current.OrgRef.CodeColumn;

this.Subject.FieldOrg_Name.DefaultValue=PDContext.Current.OrgRef.NameColumn;

扩展字段处理,在Webpart>>AfterCreateChildControls()里面调用:

FlexFieldHelper.SetDescFlexField(this.FlexFieldPicker0,this.Model.Subject);

其中:

this.FlexFieldPicker0为要设置的描述性弹性域控件,this.Model.Subject为描述性弹性域所在的View,把Subject换成你的View就可以了。

复制,Webpark中按钮事件写代码,复制功能自动完成,增加清除不需复制值的代码即可

this.Model.Subject.FocusedRecord.Code=string.Empty;

开启个性化,AfterCreateChildControls中加

UFIDA.U9.UI.PDHelper.PersonalizationHelper.SetPersonalizationEnable(this,true);

删除按钮绑定提示,AfterCreateChildControls中加

UFIDA.U9.UI.PDHelper.PDFormMessage.ShowDelConfirmDialog(this.Page,UFIDA.U9.UI.PDHelper.PDResource.GetDeleteConfirmInfo(),"",this.BtnDelete);

弹出窗口与非弹出窗口的按钮控制(确定、取消),在AfterUIModelBinding中调用SetControlStauts

privatevoidSetControlStauts()

{

//是否为弹出模态窗口

if(UFIDA.U9.UI.PDHelper.NavigateManager.IsTitleLink(this)||UFIDA.U9.UI.PDHelper.NavigateManager.IsModelPopup(this))

{

this.BtnOk.Visible=true;

this.BtnClose.Visible=true;

//列表动作不可用

this.BtnList.Enabled=false;

}

else

{

//确定取消不可见

this.BtnOk.Visible=false;

this.BtnClose.Visible=false;

this.BtnList.Enabled=true;

}

}

附件>>不用写代码,只需启用文档库。

12.UI事件的执行先后顺序

AfterEventBind,事件绑定之后

AfterCreateChildControls,创建控件之后

OnLoadData_Extend(刷新时执行,一般PostBack不执行)

AfterOnLoad

OnDataCollect_Extend(刷新时不执行,PostBack执行),数据收集

BeforeUIModelBinding,UIModel的值绑定到UIForm的控件之前

AfterUIModelBinding,UIModel的值绑定到UIForm的控件之后

13.贯穿BE和UI的关系图

14.不走审批流的提交、审核、弃审处理

不走审批流的提交、审核、弃审,按钮状态控制(示例代码)

privatevoidSetControlStauts()

{

PrintProduceSituationRecordr1=this.Model.PrintProduceSituation.FocusedRecord;

if(r1!

=null)

{

switch(r1.Status)

{

case0:

BtnSubmit.Enabled=true;

BtnApprove.Enabled=false;

BtnUndoApprove.Enabled=false;

BtnDelete.Enabled=true;

Card4.ReadOnly=false;

break;

case1:

BtnSubmit.Enabled=false;

BtnApprove.Enabled=true;

BtnUndoApprove.Enabled=false;

BtnDelete.Enabled=true;

Card4.ReadOnly=false;

break;

case2:

BtnSubmit.Enabled=false;

BtnApprove.Enabled=false;

BtnUndoApprove.Enabled=true;

BtnDelete.Enabled=false;

Card4.ReadOnly=true;

break;

default:

break;

}

}

//控制只读

((UFSoft.UBF.UI.ControlModel.IUIFieldBindingDataBindControl)this.Status178).ReadOnly=true;

((IUIFieldBindingDataBindControl)this.ApprovedBy101).ReadOnly=true;

((IUIFieldBindingDataBindControl)this.ApprovedOn311).ReadOnly=true;

}

不走审批流的提交、审核、弃审按钮处理(示例代码)

privatevoidBtnSubmit_Click_Extend(objectsender,EventArgse)

{

PrintProduceSituationRecordr1=this.Model.PrintProduceSituation.FocusedRecord;

if(r1!

=null&&r1.Status==0)

{

BtnSave_Click_Extend(sender,e);

r1.Status=1;

BtnSave_Click_Extend(sender,e);

SetControlStauts();

}

BtnSubmit_Click_DefaultImpl(sender,e);

}

privatevoidBtnApprove_Click_Extend(objectsender,EventArgse)

{

PrintProduceSituationRecordr1=this.Model.PrintProduceSituation.FocusedRecord;

if(r1!

=null&&r1.Status==1)

{

BtnSave_Click_Extend(sender,e);

r1.Status=2;

r1.ApprovedBy=long.Parse(PDContext.Current.UserID);

r1.ApprovedOn=DateTime.Now;

BtnSave_Click_Extend(sender,e);

SetControlStauts();

}

BtnApprove_Click_DefaultImpl(sender,e);

}

privatevoidBtnUndoApprove_Click_Extend(objectsender,EventArgse)

{

PrintProduceSituationRecordr1=this.Model.PrintProduceSituation.FocusedRecord;

if(r1!

=null&&r1.Status==2)

{

BtnSave_Click_Extend(sender,e);

r1.Status=0;

r1.ApprovedBy=null;

r1.ApprovedOn=null;

BtnSave_Click_Extend(sender,e);

SetControlStauts();

}

BtnUndoApprove_Click_DefaultImpl(sender,e);

}

15.常用ContextItems(上下文值)

Context.DateTime

Context.UserID

Context.UserName

Context.UserCode

Context.OrgID

Context.Culture

Context.Contact

Context.EnterpriseID

Context.EnterpriseName

16.查找代码

(视频230)

查找代码,AfterCreateChildControls中加

UFIDA.U9.UI.PDHelper.PDFormMessage.ShowConfirmDialog(this.Page,"92afc0de-6cba-4b56-a815-5efd0f2ebb55","580","408",Title,wpFindID.ClientID,BtnFind);

其中FormID,可在UI对应的Webpart代码中查到

17.参照关系查询(aspnet_Parts,UIRComponent,UIReference,EntityReference,Class,Component)(SQL语句)

selecta.FormId,a.ClassNameasRefClassName,a.AssemblyasRefAssemblyName,a.URIasRefURI

b.NameasRefComponentName,bt.DisplayNameasRefComponentName_CN

c.RefType,c.NameasRefTypeName,c.Filter,c.RefEntityId,c.RefEntityName

d.MD_Class_IDas[EntityReference_ClassID],d.MD_Template_IDas[EntityReference_TemplateID]

e.NameasRefEntity_ClassName,e.FullNameasRefEntity_ClassFullName,e.DefaultTableNameasRefEntity_TableName,et.DisplayNameasRefEntity_ClassName_CN

f.NameasRefEntity_ComponentName,f.AssemblyNameasRefEntity_AssemblyName

fromaspnet_Partsa

leftouterjoinUBF_MD_UIRComponentbona.FormId=b.UID

leftouterjoinUBF_MD_UIRComponent_Trlbtonb.ID=bt.ID

leftouterjoinUBF_MD_UIReferenceconb.UID=c.Container

leftouterjoinUBF_MD_EntityReferencedonc.Container=d.MD_Template_ID

leftouterjoinUBF_MD_Classeonc.RefEntityId=e.ID

leftouterjoinUBF_MD_Class_Trletone.Local_ID=et.Local_ID

leftouterjoinUBF_MD_Componentfone.MD_Component_ID=f.ID

where(1=1)

andc.Name='cref'

and(et.DisplayName='科目')

18.代码控制过滤条件

通过代码,给参照加过滤条件(示例代码),BeforeUIModelBinding

IUFFldReferenceColumnc1=(IUFFl

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1