U8二次开发-基础篇

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

•用友软件股份有限公司•EBU客开管理总部•张月昌•2010年05月07日U8二次开发基础讲解讲演主题VB应用讲解XML应用讲解SQLSever应用讲解VB应用讲解VB文件介绍•窗体文件(*.Frm)•类文件(*.Cls)•模块文件(*.Bas)•自定义控件(*.Ctl)•属性页文件(*.Pag)•窗体资源文件(*.Frx)•资源文件(*.Res)•工程文件(*.Vbp)•工程组文件(*.Vbg)•工程配置文件(*.Vbw)•代码管理文件(*.Scc)•日志文件(*.Log)VB应用讲解(Frm)VERSION5.00BeginVB.FormForm1Caption=Form1ClientHeight=3195ClientLeft=60ClientTop=345ClientWidth=4680LinkTopic=Form1ScaleHeight=3195ScaleWidth=4680StartUpPosition=3'窗口缺省BeginVB.CommandButtoncmdCreateXMLCaption=CreateXmlHeight=495Left=1680TabIndex=1Top=1920Width=1455EndEndAttributeVB_Name=Form1AttributeVB_GlobalNameSpace=FalseAttributeVB_Creatable=FalseAttributeVB_PredeclaredId=TrueAttributeVB_Exposed=FalseVB应用讲解(规范)强制显式声明模块中的所有变量OptionExplicit变量一定要在前面声明PrivateSubcmdCreateXML_Click()DimoEleAsIXMLDOMElementDimoRootAsIXMLDOMElementDimoNodeAsIXMLDOMNode注意缩进‘Xml标准元素‘Xml根节点‘Xml标准节点IfA=BThenA=A+1EndIFWhileA100A=A+1WendFori=1to100A=A+1NextPrivateSubTest()Msgbox“Thisisatestsub”NextSelectCaseVal(x)Case1Print“ValueIs1”EndSelect适当的换行PrivateSubcmdCreateXML_Click()DimoEleAsIXMLDOMElementDoCodeEndSubPrivateSubAnotherSub降低断行标示“_”的使用频度,脚本换行增加换行标示sSql=“Select*FromTable”&_“WhereCode=‘1001’”sSql=“Select*FromTable”&VbCrlfsSql=sSql&“WhereCode=‘1001’”VB应用讲解(规范)每个函数段最好不要超过30行PrivateSubcmdCreateXML_Click()DimoEleAsIXMLDOMElementDoCodeEndSub30VB应用讲解(规范)‘获取Xml节点属性值PrivateFunctionGetXmlAttr(ByrefeItemAsXmlElement,ByvalsNameasString)AsStringOnErrorGotoErrExistDimvValueAsVariant‘获取的Xml属性值vValue=eItem.GetAttribute(sName)IfIsNull(vValue)Then‘判断该属性是否存在GetXmlAttr=“”‘不存在,返回空串ElseGetXmlAttr=vValueEndifErrExist:GetXmlAttr=“”‘取数失败,返回空串EndFunction足够的注释信息最好有错误处理,最好不要用OnErrorResumNext业务场景考虑全面,避免实时错误声明参数是按地址传入还是数值功能单一,就干一件事情讲演主题VB应用讲解XML应用讲解SQLSever应用讲解•Node节点,类似于数组,有文本属性•Element元素,带属性的节点•Attribute属性,类似于集合,不可重复•Text文本,不具备任何扩展属性•备注!--备注--•DocumentElement根节点,Dom只可以有一个根节点,该节点为Element属性XML应用讲解XML介绍?xmlversion='1.0'encoding='gb2312'?XML应用讲解XML介绍节点•SelectSingleNode•selectNodes•firstChild•lastChild•nextSibling•appendChild•removeChild•textXML应用讲解XML介绍属性•attributes•getAttributeNode•getAttribute•setAttribute•removeAttribute•textXML应用讲解字符转义“"‘'<>&&XML字符转义有些特殊字符无法在Xml中直接保存,会使用转义字符进行描述。该描述会影响XML的保存内容,但是显示仍然会按照原始内容显示,而非转义内容。VB中对属性等赋值取数直接使用特殊字符,只是影响Xml的保存文件。但是如果对Xml的Xml属性直接操作时就是转义字符了。XML应用讲解XPath使用“/”进行路径操作,如:Nd/Itm/Name使用“[]”进行谓词判断,如:Nd[Itm/Name]使用“@”对属性进行判断,如:Item[@Name=‘a’]使用“//”获取dom全路径下的所有节点内容使用“*”进行模糊匹配XML严格区分大小写,书写时一定要注意XML应用讲解Schemaxmlxmlns:s=uuid:XXXxmlns:dt=uuid:XXXxmlns:rs=urn:schemas-microsoft-com:rowsetxmlns:z=#RowsetSchemas:Schemaid=RowsetSchemas:ElementTypename=rowcontent=eltOnlyrs:updatable=trues:AttributeTypename=cCoders:number=1rs:nullable=truers:writeunknown=truers:basecatalog=UFDATArs:baseschema=dbors:basetable=POrs:basecolumn=cPOIDs:datatypedt:type=stringdt:maxLength=30//s:AttributeTypes:extendstype=rs:rowbase//s:ElementType/s:Schemars:dataz:rowcCode=0000000241beai=1editprop=A//rs:data/xml讲演主题VB应用讲解XML应用讲解SQLSever应用讲解SQL应用讲解系统数据库和系统表•Mastermaster是数据库的最重要的数据库,联系着其他的数据库,并记录着用户数据!相当于超级管理员的账户•Model模版数据库•MsdbSql内部使用,一般用于计划作业和数据库邮件•tempdb临时数据库•pubs示范数据库•Sysobjects数据库对象表•Syscolumns数据库对象字段表•sysProcesses(master)数据库系统进程SQL应用讲解常用对象数据表标准前缀:EF_项目_XXXX或EF_项目_T_XXXX字段视图标准前缀:EF_项目_V_XXXX存储过程标准前缀:EF_项目_P_XXXX函数标准前缀:EF_项目_F_XXXX触发器标准前缀:EF_项目_Tri_XXXX自定义变量索引标准前缀:EF_项目_IX_XXXX约束标准前缀:EF_项目_CK_XXXXSQL应用讲解常用命令SP_Who检查进程SP_Lock检查锁KillSp_ID删除进程DBCCInputBuffer(SP_ID)检查进程内容DBCCSHRINKDATABASE收缩数据库DBCCSHRINKDB收缩数据库DBCCSHRINKFILE收缩数据和日志文件DBCCSHOWCONTIG扫描表密度DBCCREINDEX重建数据库索引DBCCINDEXDEFRAG重建数据库索引SQL应用讲解常用命令SelectTop10*FromXXXWith(nolock)WhereXX=YYSumMaxMinAvgGroupByxx,yyHavingSum(xx)10000Union(All)InsertIntoA(a,b,c)Values(‘a’,’b’,’c’)DeleteAWherea=‘a’SelectA.*Into#AWherea=‘a’LeftJoinRightJoinInnerJoinFullJoinCrossJoin(Select*FromA,B)SelectA.VouchCode,A.VouchName,B.Code,C.Name,B.Num,B.[Money]FromAWith(nolock)LeftJoinBWith(nolock)ONA.ID=B.IDINNERJoinCWith(nolock)ONA.ID=C.IDAndB.Code=C.CodeWhereA.VouDateBetween'2010-5-1'And'2010-5-31'Set@SQL='SelectA.VouchCode,A.VouchName,B.Code,C.Name'+'FromA'+'LeftJoinBONA.ID=B.ID'+'INNERJoinCONA.ID=C.IDAndB.Code=C.Code'+'WhereA.VouDateBetween''2010-5-1''And''2010-5-31'''SQL应用讲解编写规范尽量不要超过五层关键字前换行Set@SQL='SelectA.VouchCode,A.VouchName,B.Code,C.NameFromALeftJoinBONA.ID=B.IDINNERJoinCONA.ID=C.IDAndB.Code=C.CodeWhereA.VouDateBetween''2010-5-1''And''2010-5-31'''SQL变量赋值尽量不要拼很多的串使用脏读减少前后台交互次数没有必要的数据不要取到前台避免客户端海量运算减少IN的使用避免使用Union脚本中尽量避免使用游标(尤其不能游标嵌套)存储过程功能清晰,减少业务分支查询,降低预编译时间关键业务字段使用索引处理多使用整形数据判断,避免布尔值判断整理数据表碎片,提升索引效率SQL应用讲解效率问题索引失效比较字段数据类型转换或运算比较字段内容少于组合索引内容对Null值进行比较比较字段表内内容比较一致,系统没有建立索引使用“”来进行索引字段比较使用“IN”来进行条件处理索引表不连续,跨页检索SQL应用讲解SQL变量拼接时会向定义最严格的类型进行转换组织视图时避免使用*来降低工作量使用中间表处理时,临时用表应该判断是否存在创建表和视图时,一定要判断是否已经存在注意Null常见错误ABCabcXYZxyzT1T2ABCXYZabcxyzV1CREATEViewV1ASSelectT1.*,T2.*FromT1,T2ABCDabcdABCXYZabcdxyDeclare@sValuenvarchar(50)Set@sValue='ABC'Select@sValue=NameFromAWhere1=2Set@sValue=(SelectNameFromAWhere1=2)SQL应用讲解NULLNull不可以使用“=”来判断,只能使用“IS”Null和任何值比较都会返回“False”(开关:SetANSI_NULLSOFF)CaseWhenCaseWhena=1Then‘3’ElseCaseWhena=2Then‘4’EndEndCaseaWh

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功