版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Microsoft Dynamics AX技術(shù)培訓(xùn),主要內(nèi)容,1、AX系統(tǒng)功能概述 2、AX開發(fā)平臺介紹 3、X+ 集成開發(fā)環(huán)境 4、X+開發(fā)語言介紹 5、數(shù)據(jù)字典(Data Dictionary) 6、數(shù)據(jù)操作(Fetch of Data) 7、From(窗體) 8、Class(類) 9、Report(報表) 10、Menus(菜單),Microsoft AX,第一章:系統(tǒng)功能概述,概述,本章主要介紹AX與具體業(yè)務(wù)模塊沒有直接關(guān)系的功能, 這些功能在實施項目的過程中一般會由技術(shù)顧問負(fù)責(zé)教授給 客戶。 這部分內(nèi)容以演示為主,通過演示可以對AX的使用有個 大概的認(rèn)識,知道哪些技術(shù)特性在AX中已經(jīng)
2、實現(xiàn),不需要另 行開發(fā)。,前景,主要內(nèi)容,查詢和排序記錄 全局搜索 預(yù)警的使用 文檔管理 數(shù)據(jù)的導(dǎo)入導(dǎo)出,查詢和排序記錄,AX提供了方便的查詢和排序記錄的方式,可以方便地查詢出某條或者某些滿足條件的記錄 DEMO,全局搜索,全局搜索可以很方便地在多個表中進(jìn)行數(shù)據(jù)的搜索 路徑:基礎(chǔ)數(shù)據(jù)設(shè)置數(shù)據(jù)爬網(wǎng) 場景:銷售人員想看到與某個客戶相關(guān)的幾個表中的記 錄,但他不想逐個表搜索。 DEMO,預(yù)警的使用,當(dāng)用戶關(guān)心的某些事件發(fā)生時,AX可以通過設(shè)定預(yù)警收到通知 DEMO,文檔管理,通過文檔管理可以為AX中的每條記錄添加一個文檔說明。 場景:用戶想為每個產(chǎn)品添加Word文檔以便說明產(chǎn)品 信息,或者為每個銷售
3、訂單添加合同的文本方便 查找。 DEMO,數(shù)據(jù)的導(dǎo)入導(dǎo)出,在AX正式上線之前需要導(dǎo)入一些數(shù)據(jù),其中一些主表的數(shù)據(jù)可以通過系統(tǒng)中提供的導(dǎo)入導(dǎo)出功能來實現(xiàn)。 這些主表一般包括客戶表,供應(yīng)商表,物料表和會計科目表。 也可以用導(dǎo)入導(dǎo)出功能一次性導(dǎo)出某些類型的數(shù)據(jù)。 DEMO,應(yīng)用程序框架,AX為滿足企業(yè)ERP的各種技術(shù)性需求,提供了一套基礎(chǔ)模型,利用這些模型框架,可以便于用戶集中精力于實現(xiàn)各個領(lǐng)域的需求,通過現(xiàn)有的模型框架和新的技術(shù)特性提供給用戶統(tǒng)一的用戶體驗。最常見的框架模型有: The RunBase Framework The RunBase application framework runs
4、 or batches an operation. An operation is a unit of work, such as the posting of a sales order or calculation of a master schedule. The RunBase framework uses the Dialog framework to prompt a user for data input. It uses the SysLastValue framework to persist usage data and the Operation Progress fra
5、mework to show operation progress.(基本設(shè)置里的批處理) The Batch Framework The Batch application framework creates batch entries in the Dynamics AX batch queue. These entries execute at time intervals specified by a user interacting with a dialog box provided by the framework. The RunBaseBatch framework exte
6、nds the RunBase framework, and X+ classes that extend this framework can have their operations enlisted in the batch queue.,應(yīng)用程序框架,The Dialog Framework The Dialog application framework creates a dynamic dialog box that is not defined in the AOT. You can customize the dialog box by setting the captio
7、n and adding fields, field groups, menu items, text, and images. You would typically use the Dialog framework to create dialog boxes when data input is required from the user. The Operation Progress Framework The Operation Progress application framework displays a dialog box that shows the progress
8、of a processing task. You can customize the framework by setting the total number of steps in the operation and by setting the dialog box caption and animation type. You control the progress by incrementing the progress value in derived classes. Best practices include setting the total step count on
9、ly if it is known (or if it can be accessed rapidly), partitioning the process task into as many steps as possible, and insuring that steps have similar durations. If you use multiple progress bars, the first bar should show overall progress. The framework automatically calculates the time remaining
10、 for an operation.,應(yīng)用程序框架,The Number Sequence Framework The Number Sequence application framework creates a new sequential number for uniquely identifying business transaction records in database tables. You can specify whether the numbers are sequential or allow gaps in the generated sequences. You
11、 can also specify the number format by using a specification string. The SysLastValue Framework The SysLastValue application framework stores and retrieves user settings or usage data values that persist between processes. You use this framework to save, retrieve, and delete a container of usage dat
12、a. (生產(chǎn)/工序清單) The Application Integration Framework The Application Integration Framework (AIF) sends business transactions to external applications and responds to requests from external applications. The framework comprises XML document classes, message queue management, Web services, and data mapp
13、ing features.,應(yīng)用程序框架,The Wizard Framework The Wizard application framework helps users configure application features. The Infolog Framework You use the Infolog application framework when business transaction status logging is required. The information log form control displays the logged message. T
14、he Infolog framework is also the default exception handler, so any exception not caught by application code is caught by the Infolog framework. You can extend this framework to provide customized logging features.,第二章:AX體系架構(gòu),內(nèi)容,了解AX的優(yōu)勢 了解AX的主要開發(fā)原理 了解AX的層體系 了解AX的安全體系設(shè)置 Microsoft Axapta is a customiza
15、ble, multiple language, multiple currency enterprise resource planning or ERP solution with core strengths in manufacturing and e-business and strong functionality for the wholesale and services industries.,AX的特色,功能特色: 單一的數(shù)據(jù)庫可供集團(tuán)中的所有公司同時使用; 在各個功能領(lǐng)域?qū)崿F(xiàn)了高度的統(tǒng)一規(guī)劃,例如原材料采購、銷售和生產(chǎn); 預(yù)測和生產(chǎn)主計劃的可獲得性; 多幣種和多語種的靈活性
16、。,AX的特點,開發(fā)環(huán)境特色 MorphX是專為AX提供的一個集成開發(fā)環(huán)境平臺; 提供了COM (The Component Object Model /組件對象模型)組件接口,便于AX與第三方軟件和WEB應(yīng)用的集成; 應(yīng)用對象樹(AOT) 提供了統(tǒng)一的、緊湊的設(shè)計框架和知識庫;. 許多設(shè)計功能都支持鼠標(biāo)的拖拽操作; 項目有助于管理和跟蹤客戶化定制應(yīng)用。,系統(tǒng)構(gòu)架,三層體系結(jié)構(gòu) Client, AOSApplication File, DB,優(yōu)點: 降低客戶端負(fù)載 使用較小的帶寬,降低網(wǎng)絡(luò)負(fù)擔(dān) 支持更多的客戶端,系統(tǒng)構(gòu)架,AOT( Application Object Tree),AOT是Mo
17、rphX 的要點之一,它是所有元數(shù)據(jù)倉庫的瀏覽器; Ctrl+D打開; 箭頭鍵操作;,AOT 對象節(jié)點,Data Dictionary (數(shù)據(jù)字典)- 數(shù)據(jù)類型和數(shù)據(jù)表 Macros (宏) - 不能獨立運行,用于jobs, classes, forms等中 Classes (類)- 包含變量和對變量操作方法 Forms (窗體)- 用戶操作輸入界面 Reports(報表)- 用戶操作輸出界面 Queries (查詢)- 定義數(shù)據(jù)表查詢 Web Froms (網(wǎng)頁窗口)-企業(yè)門戶中顯示或輸入的頁面 Jobs (工作)- 可以獨立執(zhí)行的 X+ 程序代碼,常用于測試小程序 Menu, menu i
18、tems(菜單與菜單選項) - 用戶操作的菜單,AOT( Application Object Tree),Prefix Description Ax Dynamics AX typed data source Axd Dynamics AX business document BOM Bill of material COS Cost accounting Cust Customer HRM Human resource management Invent Inventory management JMG Shop floor control KM Knowledge management
19、Ledger General ledger PBA Product builder Prod Production Proj Project Purch Purchase,AOT( Application Object Tree),Prefix Description Req Requirements Sales Sales SMA Service management SMM Sales and marketing management Sys Application frameworks and development tools Tax Tax engine Vend Vendor We
20、b Web framework WMS Warehouse management,AX的基本應(yīng)用,應(yīng)收帳款-客戶 新增一條記錄; 排序; 過濾篩選記錄; 幫助系統(tǒng)的使用;,幫助系統(tǒng),系統(tǒng)分層技術(shù)(Layers),應(yīng)用對象共分為八層次(SYS, GLS, DIS, LIS, BUS, VAR, CUS and USR.) ; 每一層分別保存在名為Ax.aod 的文件中; 例如:Axsys.aod 文件保存的是SYS層的對象, Axdis.aod 保存 DIS 層對象,依次類推. 擴(kuò)展名.aod 是 Application Object Data 的縮寫; Patch-layers(SYP, GL
21、P, DIP, LIP, BUP, VAP, CUP and USP.),終端用戶,層描述,層描述,在AOT中查看層 工具選項開發(fā),層描述,AX的所有用戶都可以自定義AX應(yīng)用 標(biāo)準(zhǔn)應(yīng)用不會被修改 當(dāng)刪除對象時只會刪除當(dāng)前層的對象 設(shè)定當(dāng)前層,標(biāo)簽和語言( Labels and languages),標(biāo)簽文件命名規(guī)則 Microsoft Ax 中標(biāo)簽文件命名: Ax*en-us.ald ,Ax*en-gb.ald *: SYS, SYP,GLS,GLP; Customization(客戶端) AxSYSen-gb.ktd 中文標(biāo)識:ZH-CN,標(biāo)簽和語言( Labels and language
22、s),標(biāo)簽文件向?qū)?標(biāo)簽編輯窗體 為窗體分配標(biāo)簽 DEMO,AX的安全體系,AX中的安全分為功能級別和數(shù)據(jù)行級別(Record Level Security RLS) 功能級別主要控制某些用戶組可以訪問哪些功能或者哪些表的字段,比如限定某個用戶組只能訪問應(yīng)收賬款功能且只能訪問其中的客戶表中的某些字段,為了方便描述可以稱其為列級權(quán)限。 數(shù)據(jù)行級別權(quán)限主要限定用戶可以訪問哪些行的數(shù)據(jù),比如只能訪問客戶代碼為4000的客戶數(shù)據(jù),可將其成為行級權(quán)限。,安全層級,系統(tǒng)管理/設(shè)置/系統(tǒng)/許可證信息 系統(tǒng)管理/設(shè)置/系統(tǒng)/配置 系統(tǒng)管理/設(shè)置/安全性/用戶組權(quán)限,License codes,Base Pac
23、kage The Base Package license gives access for creating or modifying reports, jobs and queries. With the Base Package, the AOT displays the Macros, Reports, Queries, Jobs, Menus, Menu Items, System documentation, Application Developer Documentation, and Application documentation nodes only. MorphX T
24、he MorphX license provides access to the Data Dictionary node, where tables, Fields, Enum, and Extended Data Types are maintained. The ability to create or modify forms and or web-forms requires the MorphX security package. With the MorphX license, the AOT displays: Data Dictionary, Forms, Extended
25、Data Types, Macros, Jobs, and Queries in addition to the nodes on the Base Package. In addition, the Web MorphX license provides access to Microsoft Axapta Web Projects, Web forms, Web Page, and Style Sheet Editor. X+ Finally, the X+ license gives you access to all classes in Microsoft Axapta, and a
26、 development code for the customer layer, allowing customers to place modified objects in the customer layer, the user layer, or both. The X+ license gives you the ability to modify standard routines, such as the invoice routine or the posting process for a ledger journal.,授權(quán)碼(License Code),配置鍵(Conf
27、iguration key),Licens kode (ledger),Configuration key (Bank),Configuration key (BankCheque),Configuration key (BankDeposit),安全鍵(Security key),AX的安全體系的設(shè)置,舉例介紹Configuration key和Security key之間的相互關(guān)系及其設(shè)置。,第三章:數(shù)據(jù)字典,主要內(nèi)容,了解AX MorphX開發(fā)環(huán)境和Application Object Tree (AOT); 使用MorphX設(shè)計和建表; 掌握表之間的關(guān)系; 了解不同的數(shù)據(jù)類型; 了解并
28、掌握在一個比較大的數(shù)據(jù)字典范疇內(nèi)如何創(chuàng)建并編輯一個對象,AOT的操作,AOT的操作,Data Dictinary,Data Dictionary -Tables(表) -Maps(圖) -Views(視圖) -Extended Data Types(擴(kuò)展類型) -Base Enums (枚舉類型) -Configration Key(設(shè)置鍵) -Security Keys (安全鍵),Tables的組成,表是一種二維的數(shù)據(jù)存儲結(jié)構(gòu),在Ax中表作為一種AOT對象存在,其可以看作一種特殊的類,和我們一般認(rèn)識的數(shù)據(jù)庫中的表有區(qū)別; 表的分類: - 系統(tǒng)表(Ax平臺運行所必需的表) - 基本表 (業(yè)務(wù)
29、邏輯運行所必需的表) 表的組成 - 字段(Fields) - 字段組(Field Groups) - 索引 (Indexs) - 關(guān)系 (Relatioins) - 刪除關(guān)聯(lián)(DeleteAction) - 方法 (Methods),字段(Fields),表字段是表在物理結(jié)構(gòu)中列的概念化體現(xiàn),是表的重要組成部分 創(chuàng)建新字段,如下圖: 注意:在創(chuàng)建對象時字段必須依賴某一擴(kuò)展類型,Label屬性是字段的描述,如果為空,則系統(tǒng)會繼承擴(kuò)展類型的Label值;,字段組(Field Groups),字段組是Ax對數(shù)據(jù)庫表字段的一種邏輯分類,即按照一定的標(biāo)準(zhǔn)將字段歸類,某一類就形成一個組;字段分組會在Ax其
30、他一些對象中用到,如后面要講到的Form,這會給開發(fā)帶來很多方便; 最佳實踐:每一個字段最好附屬于某一個組;組命名最好和系統(tǒng)命名保持一致,如:Identification,Administration,Address,Setup,Dimension等,Extended Data Types(擴(kuò)展類型),枚舉類型: 某類數(shù)據(jù)可能取值的集合,如一周內(nèi)星期可能取值的集合為: Sun,Mon,Tue,Wed,Thu,Fri,Sat該集合可定義為描述星期的枚舉類型,該枚舉類型共有七個元素,因而用枚舉類型定義的枚舉變量只能取集合中的某一元素值。由于枚舉類型是導(dǎo)出數(shù)據(jù)類型,因此,必須先定義枚舉類型,然后再用
31、枚舉類型定義枚舉型變量 擴(kuò)展類型基于基本數(shù)據(jù)類型和枚舉類型而創(chuàng)建; 作用: - 對基本數(shù)據(jù)類型或枚舉類型進(jìn)行細(xì)分,便于開發(fā)過程中數(shù)據(jù)定義 以及表字段定義統(tǒng)一,例如字段名稱的統(tǒng)一,字符類型長度統(tǒng)統(tǒng)一 - 用于Forml 中字段lookup查詢; - 用于為數(shù)據(jù)表之間或form調(diào)用時自動建立關(guān)聯(lián)關(guān)系; 練習(xí):在AOT中建立枚舉類型(紅,綠和藍(lán))和擴(kuò)展類型(枚舉類型相應(yīng)的擴(kuò)展類型,幾種基本類型的擴(kuò)展類型;,建立擴(kuò)展類型、枚舉變量,在AOT中創(chuàng)建,如圖:,索引(Indexes),Ax中的索引和數(shù)據(jù)庫中索引對應(yīng); 索引的類型: - 唯一索引(Unique) - 普通索引(Non-Unique) 索引可以
32、建立在一個字段上,也可以建立在一組字段上) 最佳實踐:索引命名時使用后綴“Idx”;,關(guān)系(Relations),關(guān)系反映表與表、表與擴(kuò)展類型之間的一種關(guān)聯(lián) 建立關(guān)系的媒介字段 關(guān)系一般建立在子表上; 關(guān)系的類型 -標(biāo)準(zhǔn)(表之間建立的關(guān)聯(lián)字段與字段) -固定字段(本表某字段取固定值,相當(dāng)于固定條件) -固定相關(guān)字段(關(guān)聯(lián)表字段取固定值,刪除約束(DeleteActions),用于控制和本表相關(guān)聯(lián)表的相關(guān)數(shù)據(jù) 刪除建立在relations的基礎(chǔ)上 分類 - None 本表記錄刪除,關(guān)聯(lián)表不受影響 - Cascade 級聯(lián)刪除,刪除本表記錄時,也會刪除掉關(guān)聯(lián)表中相關(guān)數(shù) 據(jù) - Restricted
33、 限制刪除。關(guān)聯(lián)表中有記錄時,本表記錄不得刪除 - Cascade 級聯(lián)-限制刪除 在刪除本表記錄后,如果關(guān)聯(lián)表有相關(guān)記錄,則系統(tǒng)會提示是否需要刪除,如果選擇“是”,則刪除,否則不做級聯(lián)刪除;,表方法(Methods),分類 - 覆蓋方法 Ax本身定義的方法,可重寫,有特定的執(zhí)行時機(jī) - 普通方法 由用戶定義的方法,完成與表相關(guān)的業(yè)務(wù)操作或功能 表的幾個主要方法: - Insert() - Update() - Delete() 幾個必要的普通方法 - Find() - InitFrom() - Exists(),建議建表步驟,新建一張表(Create a new table) 創(chuàng)建相應(yīng)的擴(kuò)展
34、類型(或者枚舉類型) 為表添加字段(當(dāng)擴(kuò)展類型建立好后,可以通過拖拽的方式添加字段) 為擴(kuò)展類型創(chuàng)建表的關(guān)聯(lián)(如果某個擴(kuò)展類型是關(guān)鍵字段) 建立表關(guān)聯(lián)(如果必要) 創(chuàng)建索引(如果必要,至少要將關(guān)鍵字段建立索引) 練習(xí):根據(jù)上面的步驟創(chuàng)建一對主從表,以一個字段關(guān)聯(lián);,圖和視圖,視圖(Views)是建立在表基礎(chǔ)之上的一種數(shù)據(jù)結(jié)構(gòu),其沒有物理存儲,只是對表數(shù)據(jù)的一種映射,可以通過建立關(guān)系將多張表合并成一個試圖; 圖(Maps)是建立在表基礎(chǔ)上的一種數(shù)據(jù)結(jié)構(gòu),其建立在多個具有相似性的表之上,起到共享數(shù)據(jù)和共享方法的作用;,開發(fā)輔助工具,開發(fā)工具啟動路徑:工具開發(fā)工具,AOT右鍵加載項,第四章:用戶界面
35、,主要內(nèi)容,理解項目這個角色; 了解AX圖形化界面; 掌握設(shè)計和創(chuàng)建Form的方法; 了解AX中的菜單的使用。,項目,私有和共享項目的分類和創(chuàng)建; 項目的導(dǎo)入和導(dǎo)出。,窗體設(shè)計(forms),對象模型:,Form中對象的引用,Form中常用的十個方法,FormRun.init() 這個方法初始化窗體和他的對象,這個方法是窗體啟動是第一個執(zhí)行的。 一定要執(zhí)行super()方法,否則其他對象將不會創(chuàng)建。 如果你希望進(jìn)行許多手動的初始化工作,需要在此編寫代碼,下邊是可以完成的一些工作。 驗證傳遞args對象的內(nèi)容 初始化一些支持類。 動態(tài)改變窗體的設(shè)計。 如果你在函數(shù)中要使用窗體的對象,需要在sup
36、er()函數(shù)調(diào)用之后。,Form中常用的十個方法,FormRun.close() 這個方法關(guān)閉窗體,如果你需要在執(zhí)行完窗體后需要清理一些內(nèi)容,需要在此編寫代碼。 FormDataSource.init() 這個方法初始化datasource,它被FormRun.init中的super()函數(shù)調(diào)用。這個方法在窗體被打開時只執(zhí)行一遍。 這個方法的主要任務(wù)是初始化獲取數(shù)據(jù)的query。 如果你希望修改或者替換窗體自動創(chuàng)建的query,需要在super調(diào)有之后編寫代碼。 FormDataSource.initValue() 這個方法給新記錄的初始化值,super()方法調(diào)用相關(guān)table的對應(yīng)方法,表
37、中的方法將調(diào)用記錄模板功能。 如果你有一些系統(tǒng)級的數(shù)據(jù)初始化,你需要將代碼寫在表上。,Form中常用的十個方法,FormDataSource.active() 當(dāng)數(shù)據(jù)源一條數(shù)據(jù)被激活是這個事件被調(diào)用。這個方法被重載改變當(dāng)前記錄的一些屬性。 修改進(jìn)入datasource的權(quán)限。 修改進(jìn)入field的權(quán)限 修改button的可用性。 FormDataSource.linkActive() 這個方法控制同步數(shù)據(jù)的連接。這個方法在控制者數(shù)據(jù)改變時被控制者激活數(shù)據(jù),如果liketype屬性為delayed和active。如果form的liketype為passive時這個方法也會在窗體打開時被調(diào)用一次。
38、 如果需要動態(tài)的切換active和delayed同步特性,可以使用一個條件判斷決定super()方法的調(diào)用。 如果希望控制同步,可以將super()方法刪除,調(diào)用formdatasource.executequery()方法。,Form中常用的十個方法,FormDataSource.validateWrite() 這個方法對插入和修改一條記錄進(jìn)行數(shù)據(jù)檢查和確認(rèn)。 Super()將調(diào)用對應(yīng)表中的方法,如果你有一些系統(tǒng)級的方法,可以將這些內(nèi)容寫在表中。 如果你需要區(qū)分插入和修改,你要使用一個條件判斷Recid字段,如果時修改是才會有值。 FormDataSource.write() 這個方法控制插
39、入和修改記錄,如果你希望一個系統(tǒng)級的控制,需要在表中實現(xiàn)這個方法。 如果在記錄提交時有一些情況要處理,需要將代碼寫在這里. FormDataObject.modified() 在用戶修改了字段內(nèi)容時被調(diào)用,這個方法可以被用于計算。 如果希望系統(tǒng)級的字段控制,你需要重載表中的modifierfield方法。,Form中常用的十個方法,FormDataObject.validate() 這個方法用來驗證字段的內(nèi)容。,通過X創(chuàng)建Form,static void Job2(Args _args) Args args; FormRun formrun; ; args = new Args(formStr
40、(Address); /args.caller(this); formrun = classFactory.formRunClass(args); formrun.init(); formrun.run(); formrun.wait(); ,Form設(shè)計使用的主要控件,Form的創(chuàng)建,舉例創(chuàng)建一個主從表結(jié)構(gòu)的Form。 數(shù)據(jù)源連結(jié)的幾種類型: Passive:被動型,從數(shù)據(jù)庫不自動更新,只有通過主數(shù)據(jù)源的active()方法中寫程序執(zhí)行更新; Delayed:延時型,在關(guān)聯(lián)的從數(shù)據(jù)庫插入前有一個暫停,以方便主表數(shù)據(jù)的查找; Active;積極型,主表插入數(shù)據(jù)后從表立即更新; InnerJoi
41、n:內(nèi)連接,關(guān)聯(lián)的兩個表都要有數(shù)據(jù) ; OuterJoin:外連接 ExistJoin:存在內(nèi)連接,只要找到一條內(nèi)連接記錄即可; NotExistJoin:找出不匹配的記錄。,Form創(chuàng)建的最佳實踐,form提供多個事件放置代碼,由于下邊的原因在form上盡量的少放置代碼。 窗體不能繼承,你不能將在form中實現(xiàn)的業(yè)務(wù)哦邏輯在其他應(yīng)用程序中復(fù)用。 X+代碼在form中實現(xiàn)的方法都在客戶端執(zhí)行,你不能指定你的代碼在客戶端還是服務(wù)器執(zhí)行。 如果你希望編寫和數(shù)據(jù)相關(guān)系統(tǒng)級的應(yīng)用邏輯,你需要講代碼寫在表里。表中有很多可以繼承和支持的類。 如果你想編寫和窗體以及數(shù)據(jù)相關(guān)的方法,建議你編寫一個窗體的支持類
42、。如果窗體能夠在不同的數(shù)據(jù)下允許,這種方法可以提供多態(tài)性。 如果你在窗體上放置了X,建議在design編寫代碼,而是講代碼放在Datasource上。在design中的很多方法決定用戶如何來操作窗體。,菜單項(Menu Item),有三種類型的Menu Item Display:用于連接窗體 Output:用于連接報表 Action:用于連接類 MenuItem在三種場合調(diào)用: MenuItem Button調(diào)用 在主菜單直接調(diào)用 在代碼中使用相關(guān)調(diào)用類 DEMO,Menus,Menu由部分菜單項組成 Demo,第五部分:X+語言基礎(chǔ),主要內(nèi)容,X+開發(fā)語言的主要特點; 面向?qū)ο缶幊袒A(chǔ); 了
43、解AX開發(fā)的基本工具; 對象和類; 異常處理。,什么是X+?,簡單的、面向?qū)ο蟮?、熟悉的?可靠性- X+提供了擴(kuò)展的編譯審查,緊隨其后的是次級運行審查。語言可以引導(dǎo)程序設(shè)計師養(yǎng)成更良好的編程習(xí)慣。存儲管理的模型簡單易懂;用一種new運算符來生成對象。沒有外部程序員定義的數(shù)據(jù)類型或算法。該模型忽略發(fā)生程序錯誤的整個類; 高性能- 當(dāng)不再引用一個對象時,對象被刪除掉并且它所占用 的內(nèi)存被釋放。該策略保證了這樣一種高可能性當(dāng)需要使用內(nèi)存時內(nèi)存可用,從而導(dǎo)致更好的運行; 解釋型及靈活性- 歸功于更快速的開發(fā)周期:原型,試驗和快速開發(fā),這與傳統(tǒng)的編譯,鏈接和測試周期不同; 共用性- 微軟Dynamic
44、s AX中的組件能無縫鏈接到每個支持COM標(biāo)準(zhǔn)和.NET集合的應(yīng)用程序。X+也支持微軟Dynamics AX內(nèi)嵌COM標(biāo)準(zhǔn)的外部組件。程序員稱這種方法為第三方COM組件和微軟自動辦公應(yīng)用。,面向?qū)ο缶幊?一個類可以被堪稱藍(lán)圖或者是模版,表明它衍生出對象,這種類是對象指定類型內(nèi)的方法和變量集合。 軟件對象是類的實例。每個實例都有它類中定義的數(shù)據(jù)成員和邏輯(方法)。 一種方法是同一個類或一個對象發(fā)生聯(lián)系的函數(shù)(子程序)。一個對象運用方法實現(xiàn)它的方法。,面向?qū)ο缶幊?在圖12中,軟件對象模型應(yīng)用在真實世界的對象,一臺電視機(jī)。與電機(jī)對象發(fā)生聯(lián)系的方法包含增加音量和調(diào)臺。電視機(jī)對象有許多變量表明它的狀態(tài)
45、:他被調(diào)到5臺音量為10。,X+開發(fā)工具,編碼編輯器 雙擊AOT中許多對象能在編碼編輯器中打開他們。編碼編輯器還能通過右鍵上下文菜單選擇Edit打開。 編碼編輯器窗口包含兩個長方格: 左邊方格包含當(dāng)前方法列表;右邊方格顯示X+代碼。,編輯器菜單介紹,開發(fā)輔助工具,調(diào)試器,X+數(shù)據(jù)類型,基本類型 Boolean Integer(int 和int64) Real Date TimeOfDay (0; 86400) String Enum 其他類型 Array 具有相同類型的組合 Container 容器類型(可以保存動態(tài)數(shù)量的各種類型數(shù)據(jù)) Table 系統(tǒng)中所有表可以定義為變量,可對表中字段操作
46、(記錄級類型) Class 類中變量和方法的實例化,X+數(shù)據(jù)類型,定義格式 數(shù)據(jù)類型 變量定義名 = 默認(rèn)值 舉例: -基本數(shù)據(jù)類型 str 20 right mystr1 = “zhaoxiansheng”; /定義一個名為mystr1 長度為20且右對齊的字符串 mystr1 = zhangchaobin;/字符串重新賦值 int i; i = 3; int64 j ; j = 8383838383838; real r ; r = 3.02125; Date d; d = 112007; Boolean b; b = false; /true or false enumName enum
47、; enum = enumName:value;/noyes舉例,X+數(shù)據(jù)類型,復(fù)雜數(shù)據(jù)類型 舉例: - 數(shù)組: int intArry20; str 10 txt20; str 20 txt; /動態(tài)數(shù)組 - 容器:容器數(shù)據(jù)類型可以包含boolean, integer, real, date, string, container, arrays, tables等數(shù)據(jù)類型,類實例除外; container c; c=1,ddhdh,false; c += 2.56,salestable; str t1,t2,t3; c=x,y,z; t1,t2,t3 = c; /通過這種方式給變量賦值 容器中
48、的幾個主要方法:,X+數(shù)據(jù)類型,condel() 刪除容器中的相關(guān)項目 confind() 查詢?nèi)萜髦邢嚓P(guān)項目 conins() 向容器中插入新項目 conlen() 返回容器中項目的數(shù)量 connull() 將容器置空; conpeek() 從容器中取出某一項目,并返回 conpoke() 替換容器中一個或多個項目的內(nèi)容 擴(kuò)展類型定義 擴(kuò)展類型名 變量名稱; 定義方式和基本類型相同; 表定義 表名稱 變量名稱 /不需要new(); 類類型定義 類名 變量名稱 /通過new方法將變量實例化 練習(xí):定義變量,運算符,X+主要控制語句,If and if . Else and if . Else
49、if Ternary operator(三元運算 ?:) Switch Loops - While - Do-while - For - Use of continue and break Select - Insert - Update - Delete,異常( Exceptions),什么是異常? 引起異常的原因: 用戶操作錯誤(User error) 邏輯錯誤(Logical error) 系統(tǒng)錯誤(System error) 異常的類型(Types) info warning deadlock error internal break dderror,常用處理程序,Try and Ca
50、tch 定義: (系統(tǒng)異常時用戶交互處理) To prevent the system from locking when an exception occurs, you can use two commands that identify and collect the exceptions. You can tell the system to give the user a message helping him to correct the error, or you can tell the system to retry the operation. 語法: Try Catch
51、(exception:error) ,Try,Try 和 Catch 命令 使用ReTry命令 確認(rèn) retry 命令不會導(dǎo)致無限循環(huán) 需要限定循環(huán)的次數(shù),Catch列表處理流程,Dialog,Dialog class Dialog class 是一個特殊的類 被用于設(shè)置參數(shù)以及用戶數(shù)據(jù)的獲取 類似一個窗體,但有區(qū)別 Methods new(); addField(); addGroup(); value(); active() run() User pressed Cancel - Run() = false User pressed OK - Run() = true Info :向用戶輸
52、入系統(tǒng)提示信息或警告信息 Box :一種特殊的Dialog,可以用于警告,選擇等場合; Error:用于發(fā)送一個錯誤信息; Box:info(str maintxt, str titlebar, str helptxt); box:yesNo(Choose Yes or No, DialogButton:Yes, Yes No Box Example, Answer Yes or No);,Dialog,Info (Infolog text); warning (Infolog text); error (Infolog text); 通過一段代碼來創(chuàng)建一個Dialog。,面向?qū)ο缶幊蹋∣OP
53、)介紹,面向?qū)ο笤O(shè)計 對象 (對象應(yīng)是實際問題中有意義的個體或概念實體,它保存數(shù)據(jù),有存儲空間) 類 (類是現(xiàn)實世界某些對象的共同特征(屬性和操作)的表示,對象是類的實例) -類的特點 1. 繼承 (extends, super) 2. 封裝 (包含類中變量與對象) 3. 重載 (OverLoad(不支持),類描述,類是什么? 其定義: 數(shù)據(jù) 操作數(shù)據(jù)的方法 為自己行為負(fù)責(zé)的個體 一個類包含: 類聲明(狀態(tài)屬性) 方法 練習(xí) 創(chuàng)建一個類,在其中定義變量和方法 思考:表(Table)和類(Class)有何不同?,類描述,new 構(gòu)造函數(shù),用來創(chuàng)建一個對象并初始化其成員變量。 finalize()
54、 析構(gòu)函數(shù),用來銷毀一個對象。系統(tǒng)不會自動調(diào)用,需要手動調(diào)用,會銷毀對象。由于AX有垃圾回收機(jī)制,不建議手動調(diào)用這個方法。,類描述,Table與類的區(qū)別,類描述,訪問控制 可以用private,protected,public進(jìn)行訪問控制。 訪問控制只能針對方法進(jìn)行限定,默認(rèn)訪問級別為public。 類成員的訪問級別Protected,并不可修改,只有類及其子類的方法可 以訪問。外部變量如果想訪問其成員變量只能通過訪問器來實現(xiàn)。,類描述,繼承 - AX只支持單繼承,不支持多繼承,語法跟Java類似,用extends表示繼承自某個類。 - 用final關(guān)鍵字可以防止類被繼承和類的方法被重載。 -
55、 在子類中可以通過super()調(diào)用父類方法。,類描述,抽象類 不能被實例化 可以有抽象方法(沒有方法體) 可以有普通方法(有實現(xiàn)) 不必含有抽象方法 只有抽象類可以含有抽象方法 繼承自抽象類的子類必須實現(xiàn)所有抽象方法,類描述,接口 在語法上可以看做是純虛類 在相互毫無關(guān)系的類之間找到相似點而不必在類之間建立關(guān)系 定義一個或多個類必須實現(xiàn)的方法列表 一個類可以實現(xiàn)多個接口,類描述,Overloading和默認(rèn)參數(shù) X+不支持Overloading 可以通過默認(rèn)參數(shù)模擬其行為 一個方法可以用多個參數(shù)列表調(diào)用,public str initName(int _age = age str _name
56、 = name) ,object.initName(12, “Hans”);,object.initName();,object.initName(12);,object.initName(,”Hans”);,類描述,內(nèi)聯(lián)方法 方法體內(nèi)的方法,對于只在某個方法中會用到的某段計算邏 輯,可以在該方法體內(nèi)定義一個方法。 事件 X+中不支持內(nèi)聯(lián)類和委托,不能實現(xiàn)標(biāo)準(zhǔn)的事件模型 X+的事件依賴于標(biāo)準(zhǔn)方法的調(diào)用,void clicked() super(); element.moveAddressToCustTable(); ,類描述,對象方法和類方法 - 對象方法 從屬于類,但必須通過實例調(diào)用 調(diào)用時
57、在對象后面跟隨“.”獲得方法 舉例: void testMethod();/定義一個對象方法 ref_name.testMethod(); /使用實例來調(diào)用該方法 - 類方法 從屬于類,其不需要通過實例而可以直接調(diào)用 需要用Static 關(guān)鍵字修飾 void testMethod();/定義一個對象方法 ref_name:testMethod(); /使用類名來調(diào)用該方法,類描述,方法的返回值 - void 關(guān)鍵字 表示沒有返回值 - 一個方法需要返回值,在方法名前注明需要返回的類型即可 類型可以是Ax認(rèn)可的任何數(shù)據(jù)類型 - 一個方法不需要返回值,方法名前 使用void 舉例: void me
58、thod1()/無返回值 / statement int method1()/有返回值,需要返回一個整型數(shù)據(jù) / statement return 6;/return 數(shù)據(jù)必須和返回值類型一致 ,類描述,方法的參數(shù) 一個方法在處理問題時,可能需要從外部獲取一些信息作為依據(jù),這些必要的信息是通過參數(shù)來傳遞的; 參數(shù)是一個方法的窗口 舉例: void method2(int paramter = 5)/參數(shù)定義的數(shù)量沒有限制 if( paramter = 9) 處理一種情況 else 處理另一種情況 調(diào)用:this.method2(9); 或者 this.method2();后者使用默認(rèn)值,類描述,Main方法 - Main方法是Ax用來直接調(diào)用類的入口函數(shù); -定義方法: static void Main(Args _args) main函數(shù)定義有三個約定,其一必須使用Static關(guān)鍵字進(jìn)行修飾,其二,不能有返回值,其三必須定義一個Args類型的參數(shù); 方法的修飾語 (具體參看開發(fā)者指南) abstract,client,display,edit,final,public,protected,pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 飛機(jī)油箱防爆技術(shù)
- 2026貴州康體旅投發(fā)展有限公司實習(xí)生招聘2人參考考試題庫及答案解析
- 2026吉林省吉林市永吉縣公益性崗位人員招聘66人備考考試題庫及答案解析
- 銀行股份公司管理制度(3篇)
- 石嘴山年會活動策劃方案(3篇)
- 學(xué)生協(xié)商活動策劃方案(3篇)
- 老客引流活動策劃方案(3篇)
- 公司內(nèi)部pos管理制度(3篇)
- 2026北京協(xié)和醫(yī)院婦科內(nèi)分泌與生殖中心合同制科研助理招聘備考考試試題及答案解析
- 2026江蘇蘇州大學(xué)納米科學(xué)技術(shù)學(xué)院課程助教招聘(2025-2026-2學(xué)期)考試備考題庫及答案解析
- 建筑防水工程技術(shù)規(guī)程DBJ-T 15-19-2020
- 矢量網(wǎng)絡(luò)分析儀校準(zhǔn)規(guī)范
- 高考英語閱讀理解分類及方法課件
- 紹興金牡印染有限公司年產(chǎn)12500噸針織布、6800萬米梭織布高檔印染面料升級技改項目環(huán)境影響報告
- DHA乳狀液制備工藝優(yōu)化及氧化穩(wěn)定性的研究
- 2023年江蘇省五年制專轉(zhuǎn)本英語統(tǒng)考真題(試卷+答案)
- 岳麓書社版高中歷史必修三3.13《挑戰(zhàn)教皇的權(quán)威》課件(共28張PPT)
- GC/T 1201-2022國家物資儲備通用術(shù)語
- 污水管網(wǎng)監(jiān)理規(guī)劃
- GB/T 6730.65-2009鐵礦石全鐵含量的測定三氯化鈦還原重鉻酸鉀滴定法(常規(guī)方法)
- GB/T 35273-2020信息安全技術(shù)個人信息安全規(guī)范
評論
0/150
提交評論