Microsoft Dynamics Ax技术培训.ppt_第1页
Microsoft Dynamics Ax技术培训.ppt_第2页
Microsoft Dynamics Ax技术培训.ppt_第3页
Microsoft Dynamics Ax技术培训.ppt_第4页
Microsoft Dynamics Ax技术培训.ppt_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MicrosoftDynamicsAX技术培训 主要内容 1 AX系统功能概述2 AX开发平台介绍3 X 集成开发环境4 X 开发语言介绍5 数据字典 DataDictionary 6 数据操作 FetchofData 7 From 窗体 8 Class 类 9 Report 报表 10 Menus 菜单 MicrosoftAX 第一章 系统功能概述 概述 本章主要介绍AX与具体业务模块没有直接关系的功能 这些功能在实施项目的过程中一般会由技术顾问负责教授给客户 这部分内容以演示为主 通过演示可以对AX的使用有个大概的认识 知道哪些技术特性在AX中已经实现 不需要另行开发 前景 主要内容 查询和排序记录全局搜索预警的使用文档管理数据的导入导出 查询和排序记录 AX提供了方便的查询和排序记录的方式 可以方便地查询出某条或者某些满足条件的记录DEMO 全局搜索 全局搜索可以很方便地在多个表中进行数据的搜索路径 基础数据 设置 数据爬网场景 销售人员想看到与某个客户相关的几个表中的记录 但他不想逐个表搜索 DEMO 预警的使用 当用户关心的某些事件发生时 AX可以通过设定预警收到通知DEMO 文档管理 通过文档管理可以为AX中的每条记录添加一个文档说明 场景 用户想为每个产品添加Word文档以便说明产品信息 或者为每个销售订单添加合同的文本方便查找 DEMO 数据的导入导出 在AX正式上线之前需要导入一些数据 其中一些主表的数据可以通过系统中提供的导入导出功能来实现 这些主表一般包括客户表 供应商表 物料表和会计科目表 也可以用导入导出功能一次性导出某些类型的数据 DEMO 应用程序框架 AX为满足企业ERP的各种技术性需求 提供了一套基础模型 利用这些模型框架 可以便于用户集中精力于实现各个领域的需求 通过现有的模型框架和新的技术特性提供给用户统一的用户体验 最常见的框架模型有 TheRunBaseFrameworkTheRunBaseapplicationframeworkrunsorbatchesanoperation Anoperationisaunitofwork suchasthepostingofasalesorderorcalculationofamasterschedule TheRunBaseframeworkusestheDialogframeworktopromptauserfordatainput ItusestheSysLastValueframeworktopersistusagedataandtheOperationProgressframeworktoshowoperationprogress 基本设置里的批处理 TheBatchFrameworkTheBatchapplicationframeworkcreatesbatchentriesintheDynamicsAXbatchqueue Theseentriesexecuteattimeintervalsspecifiedbyauserinteractingwithadialogboxprovidedbytheframework TheRunBaseBatchframeworkextendstheRunBaseframework andX classesthatextendthisframeworkcanhavetheiroperationsenlistedinthebatchqueue 应用程序框架 TheDialogFrameworkTheDialogapplicationframeworkcreatesadynamicdialogboxthatisnotdefinedintheAOT Youcancustomizethedialogboxbysettingthecaptionandaddingfields fieldgroups menuitems text andimages YouwouldtypicallyusetheDialogframeworktocreatedialogboxeswhendatainputisrequiredfromtheuser TheOperationProgressFrameworkTheOperationProgressapplicationframeworkdisplaysadialogboxthatshowstheprogressofaprocessingtask Youcancustomizetheframeworkbysettingthetotalnumberofstepsintheoperationandbysettingthedialogboxcaptionandanimationtype Youcontroltheprogressbyincrementingtheprogressvalueinderivedclasses Bestpracticesincludesettingthetotalstepcountonlyifitisknown orifitcanbeaccessedrapidly partitioningtheprocesstaskintoasmanystepsaspossible andinsuringthatstepshavesimilardurations Ifyouusemultipleprogressbars thefirstbarshouldshowoverallprogress Theframeworkautomaticallycalculatesthetimeremainingforanoperation 应用程序框架 TheNumberSequenceFrameworkTheNumberSequenceapplicationframeworkcreatesanewsequentialnumberforuniquelyidentifyingbusinesstransactionrecordsindatabasetables Youcanspecifywhetherthenumbersaresequentialorallowgapsinthegeneratedsequences Youcanalsospecifythenumberformatbyusingaspecificationstring TheSysLastValueFrameworkTheSysLastValueapplicationframeworkstoresandretrievesusersettingsorusagedatavaluesthatpersistbetweenprocesses Youusethisframeworktosave retrieve anddeleteacontainerofusagedata 生产 工序清单 TheApplicationIntegrationFrameworkTheApplicationIntegrationFramework AIF sendsbusinesstransactionstoexternalapplicationsandrespondstorequestsfromexternalapplications TheframeworkcomprisesXMLdocumentclasses messagequeuemanagement Webservices anddatamappingfeatures 应用程序框架 TheWizardFrameworkTheWizardapplicationframeworkhelpsusersconfigureapplicationfeatures TheInfologFrameworkYouusetheInfologapplicationframeworkwhenbusinesstransactionstatusloggingisrequired Theinformationlogformcontroldisplaystheloggedmessage TheInfologframeworkisalsothedefaultexceptionhandler soanyexceptionnotcaughtbyapplicationcodeiscaughtbytheInfologframework Youcanextendthisframeworktoprovidecustomizedloggingfeatures 第二章 AX体系架构 内容 了解AX的优势了解AX的主要开发原理了解AX的层体系了解AX的安全体系设置MicrosoftAxaptaisacustomizable multiplelanguage multiplecurrencyenterpriseresourceplanningorERPsolutionwithcorestrengthsinmanufacturingande businessandstrongfunctionalityforthewholesaleandservicesindustries AX的特色 功能特色 单一的数据库可供集团中的所有公司同时使用 在各个功能领域实现了高度的统一规划 例如原材料采购 销售和生产 预测和生产主计划的可获得性 多币种和多语种的灵活性 AX的特点 开发环境特色 MorphX是专为AX提供的一个集成开发环境平台 提供了COM TheComponentObjectModel 组件对象模型 组件接口 便于AX与第三方软件和WEB应用的集成 应用对象树 AOT 提供了统一的 紧凑的设计框架和知识库 许多设计功能都支持鼠标的拖拽操作 项目有助于管理和跟踪客户化定制应用 系统构架 三层体系结构 Client AOSApplicationFile DB 优点 降低客户端负载使用较小的带宽 降低网络负担支持更多的客户端 系统构架 AOT ApplicationObjectTree AOT是MorphX的要点之一 它是所有元数据仓库的浏览器 Ctrl D打开 箭头键操作 AOT对象节点 DataDictionary 数据字典 数据类型和数据表Macros 宏 不能独立运行 用于jobs classes forms等中Classes 类 包含变量和对变量操作方法Forms 窗体 用户操作输入界面Reports 报表 用户操作输出界面Queries 查询 定义数据表查询WebFroms 网页窗口 企业门户中显示或输入的页面Jobs 工作 可以独立执行的X 程序代码 常用于测试小程序Menu menuitems 菜单与菜单选项 用户操作的菜单 AOT ApplicationObjectTree PrefixDescriptionAxDynamicsAXtypeddatasourceAxdDynamicsAXbusinessdocumentBOMBillofmaterialCOSCostaccountingCustCustomerHRMHumanresourcemanagementInventInventorymanagementJMGShopfloorcontrolKMKnowledgemanagementLedgerGeneralledgerPBAProductbuilderProdProductionProjProjectPurchPurchase AOT ApplicationObjectTree PrefixDescriptionReqRequirementsSalesSalesSMAServicemanagementSMMSalesandmarketingmanagementSysApplicationframeworksanddevelopmenttoolsTaxTaxengineVendVendorWebWebframeworkWMSWarehousemanagement AX的基本应用 应收帐款 客户新增一条记录 排序 过滤筛选记录 帮助系统的使用 帮助系统 系统分层技术 Layers 应用对象共分为八层次 SYS GLS DIS LIS BUS VAR CUSandUSR 每一层分别保存在名为Ax aod的文件中 例如 Axsys aod文件保存的是SYS层的对象 Axdis aod保存DIS层对象 依次类推 扩展名 aod是ApplicationObjectData的缩写 Patch layers SYP GLP DIP LIP BUP VAP CUPandUSP 终端用户 层描述 层描述 在AOT中查看层工具 选项 开发 层描述 AX的所有用户都可以自定义AX应用标准应用不会被修改当删除对象时只会删除当前层的对象设定当前层 标签和语言 Labelsandlanguages 标签文件命名规则MicrosoftAx中标签文件命名 Ax en us ald Ax en gb ald SYS SYP GLS GLP Customization 客户端 AxSYSen gb ktd中文标识 ZH CN 标签和语言 Labelsandlanguages 标签文件向导标签编辑窗体为窗体分配标签DEMO AX的安全体系 AX中的安全分为功能级别和数据行级别 RecordLevelSecurity RLS 功能级别主要控制某些用户组可以访问哪些功能或者哪些表的字段 比如限定某个用户组只能访问应收账款功能且只能访问其中的客户表中的某些字段 为了方便描述可以称其为列级权限 数据行级别权限主要限定用户可以访问哪些行的数据 比如只能访问客户代码为4000的客户数据 可将其成为行级权限 安全层级 系统管理 设置 系统 许可证信息系统管理 设置 系统 配置系统管理 设置 安全性 用户组权限 Licensecodes BasePackageTheBasePackagelicensegivesaccessforcreatingormodifyingreports jobsandqueries WiththeBasePackage theAOTdisplaystheMacros Reports Queries Jobs Menus MenuItems Systemdocumentation ApplicationDeveloperDocumentation andApplicationdocumentationnodesonly MorphXTheMorphXlicenseprovidesaccesstotheDataDictionarynode wheretables Fields Enum andExtendedDataTypesaremaintained Theabilitytocreateormodifyformsandorweb formsrequirestheMorphXsecuritypackage WiththeMorphXlicense theAOTdisplays DataDictionary Forms ExtendedDataTypes Macros Jobs andQueriesinadditiontothenodesontheBasePackage Inaddition theWebMorphXlicenseprovidesaccesstoMicrosoftAxaptaWebProjects Webforms WebPage andStyleSheetEditor X Finally theX licensegivesyouaccesstoallclassesinMicrosoftAxapta andadevelopmentcodeforthecustomerlayer allowingcustomerstoplacemodifiedobjectsinthecustomerlayer theuserlayer orboth TheX licensegivesyoutheabilitytomodifystandardroutines suchastheinvoiceroutineorthepostingprocessforaledgerjournal 授权码 LicenseCode 配置键 Configurationkey Licenskode ledger Configurationkey Bank Configurationkey BankCheque Configurationkey BankDeposit 安全键 Securitykey AX的安全体系的设置 举例介绍Configurationkey和Securitykey之间的相互关系及其设置 第三章 数据字典 主要内容 了解AXMorphX开发环境和ApplicationObjectTree AOT 使用MorphX设计和建表 掌握表之间的关系 了解不同的数据类型 了解并掌握在一个比较大的数据字典范畴内如何创建并编辑一个对象 AOT的操作 AOT的操作 DataDictinary DataDictionary Tables 表 Maps 图 Views 视图 ExtendedDataTypes 扩展类型 BaseEnums 枚举类型 ConfigrationKey 设置键 SecurityKeys 安全键 Tables的组成 表是一种二维的数据存储结构 在Ax中表作为一种AOT对象存在 其可以看作一种特殊的类 和我们一般认识的数据库中的表有区别 表的分类 系统表 Ax平台运行所必需的表 基本表 业务逻辑运行所必需的表 表的组成 字段 Fields 字段组 FieldGroups 索引 Indexs 关系 Relatioins 删除关联 DeleteAction 方法 Methods 字段 Fields 表字段是表在物理结构中列的概念化体现 是表的重要组成部分创建新字段 如下图 注意 在创建对象时字段必须依赖某一扩展类型 Label属性是字段的描述 如果为空 则系统会继承扩展类型的Label值 字段组 FieldGroups 字段组是Ax对数据库表字段的一种逻辑分类 即按照一定的标准将字段归类 某一类就形成一个组 字段分组会在Ax其他一些对象中用到 如后面要讲到的Form 这会给开发带来很多方便 最佳实践 每一个字段最好附属于某一个组 组命名最好和系统命名保持一致 如 Identification Administration Address Setup Dimension等 ExtendedDataTypes 扩展类型 枚举类型 某类数据可能取值的集合 如一周内星期可能取值的集合为 Sun Mon Tue Wed Thu Fri Sat 该集合可定义为描述星期的枚举类型 该枚举类型共有七个元素 因而用枚举类型定义的枚举变量只能取集合中的某一元素值 由于枚举类型是导出数据类型 因此 必须先定义枚举类型 然后再用枚举类型定义枚举型变量扩展类型基于基本数据类型和枚举类型而创建 作用 对基本数据类型或枚举类型进行细分 便于开发过程中数据定义以及表字段定义统一 例如字段名称的统一 字符类型长度统统一 用于Forml中字段lookup查询 用于为数据表之间或form调用时自动建立关联关系 练习 在AOT中建立枚举类型 红 绿和蓝 和扩展类型 枚举类型相应的扩展类型 几种基本类型的扩展类型 建立扩展类型 枚举变量 在AOT中创建 如图 索引 Indexes Ax中的索引和数据库中索引对应 索引的类型 唯一索引 Unique 普通索引 Non Unique 索引可以建立在一个字段上 也可以建立在一组字段上 最佳实践 索引命名时使用后缀 Idx 关系 Relations 关系反映表与表 表与扩展类型之间的一种关联建立关系的媒介 字段关系一般建立在子表上 关系的类型 标准 表之间建立的关联 字段与字段 固定字段 本表某字段取固定值 相当于固定条件 固定相关字段 关联表字段取固定值 删除约束 DeleteActions 用于控制和本表相关联表的相关数据删除建立在relations的基础上分类 None本表记录删除 关联表不受影响 Cascade级联删除 删除本表记录时 也会删除掉关联表中相关数据 Restricted限制删除 关联表中有记录时 本表记录不得删除 Cascade级联 限制删除在删除本表记录后 如果关联表有相关记录 则系统会提示是否需要删除 如果选择 是 则删除 否则不做级联删除 表方法 Methods 分类 覆盖方法Ax本身定义的方法 可重写 有特定的执行时机 普通方法由用户定义的方法 完成与表相关的业务操作或功能表的几个主要方法 Insert Update Delete 几个必要的普通方法 Find InitFrom Exists 建议建表步骤 新建一张表 Createanewtable 创建相应的扩展类型 或者枚举类型 为表添加字段 当扩展类型建立好后 可以通过拖拽的方式添加字段 为扩展类型创建表的关联 如果某个扩展类型是关键字段 建立表关联 如果必要 创建索引 如果必要 至少要将关键字段建立索引 练习 根据上面的步骤创建一对主从表 以一个字段关联 图和视图 视图 Views 是建立在表基础之上的一种数据结构 其没有物理存储 只是对表数据的一种映射 可以通过建立关系将多张表合并成一个试图 图 Maps 是建立在表基础上的一种数据结构 其建立在多个具有相似性的表之上 起到共享数据和共享方法的作用 开发辅助工具 开发工具启动路径 工具 开发工具 AOT右键 加载项 第四章 用户界面 主要内容 理解项目这个角色 了解AX图形化界面 掌握设计和创建Form的方法 了解AX中的菜单的使用 项目 私有和共享项目的分类和创建 项目的导入和导出 窗体设计 forms 对象模型 Form中对象的引用 Form中常用的十个方法 FormRun init 这个方法初始化窗体和他的对象 这个方法是窗体启动是第一个执行的 一定要执行super 方法 否则其他对象将不会创建 如果你希望进行许多手动的初始化工作 需要在此编写代码 下边是可以完成的一些工作 验证传递args对象的内容初始化一些支持类 动态改变窗体的设计 如果你在函数中要使用窗体的对象 需要在super 函数调用之后 Form中常用的十个方法 FormRun close 这个方法关闭窗体 如果你需要在执行完窗体后需要清理一些内容 需要在此编写代码 FormDataSource init 这个方法初始化datasource 它被FormRun init中的super 函数调用 这个方法在窗体被打开时只执行一遍 这个方法的主要任务是初始化获取数据的query 如果你希望修改或者替换窗体自动创建的query 需要在super调有之后编写代码 FormDataSource initValue 这个方法给新记录的初始化值 super 方法调用相关table的对应方法 表中的方法将调用记录模板功能 如果你有一些系统级的数据初始化 你需要将代码写在表上 Form中常用的十个方法 FormDataSource active 当数据源一条数据被激活是这个事件被调用 这个方法被重载改变当前记录的一些属性 修改进入datasource的权限 修改进入field的权限修改button的可用性 FormDataSource linkActive 这个方法控制同步数据的连接 这个方法在控制者数据改变时被控制者激活数据 如果liketype属性为delayed和active 如果form的liketype为passive时这个方法也会在窗体打开时被调用一次 如果需要动态的切换active和delayed同步特性 可以使用一个条件判断决定super 方法的调用 如果希望控制同步 可以将super 方法删除 调用formdatasource executequery 方法 Form中常用的十个方法 FormDataSource validateWrite 这个方法对插入和修改一条记录进行数据检查和确认 Super 将调用对应表中的方法 如果你有一些系统级的方法 可以将这些内容写在表中 如果你需要区分插入和修改 你要使用一个条件判断Recid字段 如果时修改是才会有值 FormDataSource write 这个方法控制插入和修改记录 如果你希望一个系统级的控制 需要在表中实现这个方法 如果在记录提交时有一些情况要处理 需要将代码写在这里 FormDataObject modified 在用户修改了字段内容时被调用 这个方法可以被用于计算 如果希望系统级的字段控制 你需要重载表中的modifierfield方法 Form中常用的十个方法 FormDataObject validate 这个方法用来验证字段的内容 通过X 创建Form staticvoidJob2 Args args Argsargs FormRunformrun args newArgs formStr Address args caller this formrun classFactory formRunClass args formrun init formrun run formrun wait Form设计使用的主要控件 Form的创建 举例创建一个主从表结构的Form 数据源连结的几种类型 Passive 被动型 从数据库不自动更新 只有通过主数据源的active 方法中写程序执行更新 Delayed 延时型 在关联的从数据库插入前有一个暂停 以方便主表数据的查找 Active 积极型 主表插入数据后从表立即更新 InnerJoin 内连接 关联的两个表都要有数据 OuterJoin 外连接ExistJoin 存在内连接 只要找到一条内连接记录即可 NotExistJoin 找出不匹配的记录 Form创建的最佳实践 form提供多个事件放置代码 由于下边的原因在form上尽量的少放置代码 窗体不能继承 你不能将在form中实现的业务哦逻辑在其他应用程序中复用 X 代码在form中实现的方法都在客户端执行 你不能指定你的代码在客户端还是服务器执行 如果你希望编写和数据相关系统级的应用逻辑 你需要讲代码写在表里 表中有很多可以继承和支持的类 如果你想编写和窗体以及数据相关的方法 建议你编写一个窗体的支持类 如果窗体能够在不同的数据下允许 这种方法可以提供多态性 如果你在窗体上放置了X 建议在design编写代码 而是讲代码放在Datasource上 在design中的很多方法决定用户如何来操作窗体 菜单项 MenuItem 有三种类型的MenuItemDisplay 用于连接窗体Output 用于连接报表Action 用于连接类MenuItem在三种场合调用 MenuItemButton调用在主菜单直接调用在代码中使用相关调用类DEMO Menus Menu由部分菜单项组成Demo 第五部分 X 语言基础 主要内容 X 开发语言的主要特点 面向对象编程基础 了解AX开发的基本工具 对象和类 异常处理 什么是X 简单的 面向对象的 熟悉的 可靠性 X 提供了扩展的编译审查 紧随其后的是次级运行审查 语言可以引导程序设计师养成更良好的编程习惯 存储管理的模型简单易懂 用一种new运算符来生成对象 没有外部程序员定义的数据类型或算法 该模型忽略发生程序错误的整个类 高性能 当不再引用一个对象时 对象被删除掉并且它所占用的内存被释放 该策略保证了这样一种高可能性 当需要使用内存时内存可用 从而导致更好的运行 解释型及灵活性 归功于更快速的开发周期 原型 试验和快速开发 这与传统的编译 链接和测试周期不同 共用性 微软DynamicsAX中的组件能无缝链接到每个支持COM标准和 NET集合的应用程序 X 也支持微软DynamicsAX内嵌COM标准的外部组件 程序员称这种方法为第三方COM组件和微软自动办公应用 面向对象编程 一个类可以被堪称蓝图或者是模版 表明它衍生出对象 这种类是对象指定类型内的方法和变量集合 软件对象是类的实例 每个实例都有它类中定义的数据成员和逻辑 方法 一种方法是同一个类或一个对象发生联系的函数 子程序 一个对象运用方法实现它的方法 面向对象编程 在图1 2中 软件对象模型应用在真实世界的对象 一台电视机 与电机对象发生联系的方法包含增加音量和调台 电视机对象有许多变量表明它的状态 他被调到5台音量为10 X 开发工具 编码编辑器双击AOT中许多对象能在编码编辑器中打开他们 编码编辑器还能通过右键上下文菜单选择Edit打开 编码编辑器窗口包含两个长方格 左边方格包含当前方法列表 右边方格显示X 代码 编辑器菜单介绍 开发辅助工具 调试器 X 数据类型 基本类型BooleanInteger int和int64 RealDateTimeOfDay 0 86400 StringEnum其他类型Array具有相同类型的组合Container容器类型 可以保存动态数量的各种类型数据 Table系统中所有表可以定义为变量 可对表中字段操作 记录级类型 Class类中变量和方法的实例化 X 数据类型 定义格式数据类型变量定义名 默认值 举例 基本数据类型str20rightmystr1 zhaoxiansheng 定义一个名为mystr1长度为20且右对齐的字符串mystr1 zhangchaobin 字符串重新赋值inti i 3 int64j j 8383838383838 realr r 3 02125 Dated d 1 1 2007 Booleanb b false trueorfalseenumNameenum enum enumName value noyes举例 X 数据类型 复杂数据类型举例 数组 intintArry 20 str10txt 20 str20txt 动态数组 容器 容器数据类型可以包含boolean integer real date string container arrays tables等数据类型 类实例除外 containerc c 1 ddhdh false c 2 56 salestable strt1 t2 t3 c x y z t1 t2 t3 c 通过这种方式给变量赋值容器中的几个主要方法 X 数据类型 condel 删除容器中的相关项目confind 查询容器中相关项目conins 向容器中插入新项目conlen 返回容器中项目的数量connull 将容器置空 conpeek 从容器中取出某一项目 并返回conpoke 替换容器中一个或多个项目的内容扩展类型定义扩展类型名变量名称 定义方式和基本类型相同 表定义表名称变量名称 不需要new 类类型定义类名变量名称 通过new方法将变量实例化练习 定义变量 运算符 X 主要控制语句 Ifandif Elseandif ElseifTernaryoperator 三元运算 SwitchLoops While Do while For UseofcontinueandbreakSelect Insert Update Delete 异常 Exceptions 什么是异常 引起异常的原因 用户操作错误 Usererror 逻辑错误 Logicalerror 系统错误 Systemerror 异常的类型 Types infowarningdeadlockerrorinternalbreakdderror 常用处理程序 TryandCatch定义 系统异常时用户交互处理 Topreventthesystemfromlockingwhenanexceptionoccurs youcanusetwocommandsthatidentifyandcollecttheexceptions Youcantellthesystemtogivetheuseramessagehelpinghimtocorrecttheerror oryoucantellthesystemtoretrytheoperation 语法 Try Catch exception error Try Try和Catch命令使用ReTry命令确认retry命令不会导致无限循环需要限定循环的次数 Catch列表处理流程 Dialog DialogclassDialogclass是一个特殊的类被用于设置参数以及用户数据的获取类似一个窗体 但有区别Methodsnew addField addGroup value active run UserpressedCancel Run falseUserpressedOK Run trueInfo 向用户输入系统提示信息或警告信息Box 一种特殊的Dialog 可以用于警告 选择等场合 Error 用于发送一个错误信息 Box info strmaintxt strtitlebar strhelptxt box yesNo ChooseYesorNo DialogButton Yes YesNoBoxExample AnswerYesorNo Dialog Info Infologtext warning Infologtext error Infologtext 通过一段代码来创建一个Dialog 面向对象编程 OOP 介绍 面向对象设计对象 对象应是实际问题中有意义的个体或概念实体 它保存数据 有存储空间 类 类是现实世界某些对象的共同特征 属性和操作 的表示 对象是类的实例 类的特点1 继承 extends super 2 封装 包含类中变量与对象 3 重载 OverLoad 不支持 类描述 类是什么 其定义 数据操作数据的方法为自己行为负责的个体一个类包含 类声明 状态属性 方法练习 创建一个类 在其中定义变量和方法思考 表 Table 和类 Class 有何不同 类描述 new构造函数 用来创建一个对象并初始化其成员变量 finalize 析构函数 用来销毁一个对象 系统不会自动调用 需要手动调用 会销毁对象 由于AX有垃圾回收机制 不建议手动调用这个方法 类描述 Table与类的区别 类描述 访问控制可以用private protected public进行访问控制 访问控制只能针对方法进行限定 默认访问级别为public 类成员的访问级别Protected 并不可修改 只有类及其子类的方法可以访问 外部变量如果想访问其成员变量只能通过访问器来实现 类描述 继承 AX只支持单继承 不支持多继承 语法跟Java类似 用extends表示继承自某个类 用final关键字可以防止类被继承和类的方法被重载 在子类中可以通过super 调用父类方法 类描述 抽象类不能被实例化可以有抽象方法 没有方法体 可以有普通方法 有实现 不必含有抽象方法只有抽象类可以含有抽象方法继承自抽象类的子类必须实现所有抽象方法 类描述 接口在语法上可以看做是纯虚类在相互毫无关系的类之间找到相似点而不必在类之间建立关系定义一个或多个类必须实现的方法列表一个类可以实现多个接口 类描述 Overloading和默认参数X 不支持Overloading可以通过默认参数模拟其行为一个方法可以用多个参数列表调用 publicstrinitName int age agestr name name object initName 12 Hans object initName object initName 12 object initName Hans 类描述 内联方法方法体内的方法 对于只在某个方法中会用到的某段计算逻辑 可以在该方法体内定义一个方法 事件X 中不支持内联类和委托 不能实现标准的事件模型X 的事件依赖于标准方法的调用 voidclicked super element moveAddressToCustTable 类描述 对象方法和类方法 对象方法从属于类 但必须通过实例调用调用时在对象后面跟随 获得方法举例 voidtestMethod 定义一个对象方法ref name testMethod 使用实例来调用该方法 类方法从属于类 其不需要通过实例而可以直接调用需要用Static关键字修饰voidtestMethod 定义一个对象方法ref name testMethod 使用类名来调用该方法 类描述 方法的返回值 void关键字表示没有返回值 一个方法需要返回值 在方法名前注明需要返回的类型即可类型可以是Ax认可的任何数据类型 一个方法不需要返回值 方法名前使用void举例 voidmethod1 无返回值 statement intmethod1 有返回值 需要返回一个整型数据 statementreturn6 return数据必须和返回值类型一致 类描述 方法的参数一个方法在处理问题时 可能需要从外部获取一些信息作为依据 这些必要的信息是通过参数来传递的 参数是一个方法的窗口举例 voidmethod2 intparamter 5 参数定义的数量没有限制 if paramter 9 处理一种情况else处理另一种情况 调用 this method2 9 或者this method2 后者使用默认值 类描述 Main方法 Main方法是Ax用来直接调用类的入口函数 定义方法 staticvoidMain Args args main函数定义有三个约定 其一必须使用Static关键字进行修饰 其二 不能有返回值 其三必须定义一个Args类型的参数 方法的修饰语 具体参看开发者指南 abstract client display edit final public protected private server static 方法 This关键字this可以看作一个指针 是对当前类自身的的引用 就是一个指向自己的引用 通俗的说就是 我自己 在同一个类中 一个方法需要调用另一个方法就要使用this指针 举例 ClassAClass voidMethod1 功能实现 voidMethod2 this Method1 RunBase框架 要实现RumBase最少需要处理如下函数ClassdeclarationDialogRunDescriptionGetFormdialogPackUnpackMainrun unpack dialog getfromDialog packDemo 类描述 Args对象定义了运行的应用对象之间的连接关系 应用对象发起一个连接 caller 它初始化arg对象信息 并将args传递给另外一个被调用的应用对象 celled 下边是args对象包含的内容 类描述 Args 第六部分 访问数据库 主要内容 用select和whileselect语句查找记录用排序修改查询条件用insert update和delete函数处理数据 查找记录 表缓存一个表缓存 在一个变量中保存完整记录以变量方式声明 在声明里标明表名当你用select和whileselect语句时需要存储完整记录使用在select语句之前声明 这是一个表缓存的声明 CustTablect declaresatablebufferfortheCustTable当将一个select语句结果赋给一个表缓存时 该变量可以被认为是符合搜索条件的表的子集 查找记录 Custtablect selectctwherect AccountNum 4005 print ThisistheaddressofCustomer ct AccountNum ct Address Pause selectwhere select查询方式 select reverse firstfast firstonly forupdate nofetch nolock forceliterals forceplaceholders forcenestedloop forceselectorder from index hint groupby orderby desc where outer exists notexists join reverse from index groupby orderby desc where fieldname sum avg minof maxof count注意 从效率上考虑 少用嵌套 多用连接 join 关键字说明 firstfastSpeedsupthefetch Thisisapriorityhintthatmeansthatthefirstrowwillappearquickerbutthetotalreturntimeforthisoptionmaybeslower Atypicaluseoftheoptionisfordialogupdates firstonlySpeedsupthefetch ThisgetsMorphXtoonlyfetchthefirstrecord forupdateSelectsrecordsexclusivelyforupdate Theoperationtobeperformedontherecordsthatarefetchedisanupdate Dependingontheunderlyingdatabase therecordsmaybelockedforotherusers sumReturnsthesumofthefieldsfromtherowsgivenbythegroupbyclause Canbeusedtosumallaccounts orderlinesetc avgReturnstheaverageofthefieldsfromtherowsgivenbythegroupbyclause minofReturnstheminimumofthefieldsfromtherowsgivenbythegroupbyclause maxofReturnsthemaximumofthefieldsfromtherowsgivenbythegroupbyclause countReturnsthenumberoffieldsfromtherowsgivenbythegroupbyclause orderbyInstructsthedatabasetosorttheselectedrecordsbyfieldsintheorderbylistgroupbyInstructsthedatabasetogroupselectedrecordsbyfieldsintheorderbylistascAnoptionontheorderbyorgroupbyclause Thesortingisascending descAnoptionontheorderbyorgroupbyclause ThesortingisdescendingindexInstructsthedatabasetosorttheselectedrecordsasdefinedbytheindexindexhintGivestheda

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论