第十一章:配置和安全---IntelliMorph
生活随笔
收集整理的這篇文章主要介紹了
第十一章:配置和安全---IntelliMorph
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文僅供AX從業(yè)者和愛好者學習交流之用,由于原文版權問題,請勿轉載
雖然AX是一個用相同的部署支持多國家,語言,公司規(guī)模和行業(yè)的國際產品,它也是及其高產的開發(fā)平臺,它可以使布局非常容易配置并自動安排應用功能的布局。唯一的呈現(xiàn)技術是基于建模元素屬性,配置和安全設定以及個性化,它為每一個用戶將窗體,報表,菜單,菜單的顯示控件相應的Web元素的布局整合在一起。該技術叫做IntelliMorph,它支持AX中的胖客戶端和Web客戶端類型。
IntelloMorph技術設計的首要需求是為國際發(fā)布做準備,但與其他EPR產品不同的是,IntelliMorph必須用相同的部署為用多個語言的多個國家做準備,而且不管用戶界面的語言如何,必須提供相同的用戶體驗。這使得元數(shù)據(jù)驅動和屬性驅動的用戶交互界面成為必須,窗體,報表,菜單和菜單項同時兼顧全球和本地配置和安全設定。這種設計的一個積極的副作用是用戶可以通過多種方式個性化用戶界面。在AX4.0中進一步擴展了個性化設定,用戶可以引用所有的胖客戶端窗體作為最愛,可以向其綁定任意查詢。
IntelliMorhp自動排列功能基于許可證代碼,配置和安全鍵和個性化,不需要更改任何代碼。圖11-1顯示了元素,比如窗體,報表,菜單和web,布局的過濾結構。
圖11-1:IntelliMorph呈現(xiàn)結構
該布局包括許可證代碼,它打開配置鍵,配合鍵包含安全鍵引用或者安全鍵的子配置鍵。
安全鍵控制菜單項的訪問,菜單項引用為用戶組或者單個用戶提供的可用功能。單個用戶可以屬于多個用戶組,權限的完整集合組成最大的安全級別。界面體驗的最后一個因素是個性化,它允許用戶通過隱藏,顯示和配置展現(xiàn)的控件來修改用戶界面。
接下來的部分將會描述這些元素和他們之間的交互和依賴的更多細節(jié),包括個性化的討論。
注意
用戶界面的呈現(xiàn)不僅僅局限于支持IntelliMorph技術,它也為開發(fā)擁有眾多不同控件類型的,比如ActiveX和ListView控件,Mircrosoft Windows 窗體提供了豐富的設計選項集合。AX報表也有它們自己的設計器,可以在用X++和屬性窗體的排列和格式化時進行可視化設計一張報表(譯注:那個設計器實在是不敢恭維,呵呵。)。
最佳實踐
了解IntelliMorph的工作原理可以幫助開發(fā)應用擴展的運行時呈現(xiàn)。如果遵循最佳時間的設計規(guī)則和模式,可以優(yōu)化IntelliMorph技術的使用確保有一個統(tǒng)一的應用運行時界面。最佳實踐原則集中在使用呈現(xiàn)控件的默認屬性設定,它決定如何呈現(xiàn)元素和功能。也包括標簽的一般使用,字段組,擴展數(shù)據(jù)類型,自動組,安全和配置鍵和菜單項。AX的標準應用采用所有的最佳實踐規(guī)則和模式開發(fā)(譯注:這牛吹大啦,呵呵),這提供了應用和底層業(yè)務邏輯交互的統(tǒng)一方式。第四章,"MorphX開發(fā)工具",提供了關于最佳實踐工具的描述。可以在AX SDK中發(fā)現(xiàn)規(guī)則和模式的細節(jié)。
窗體的原理
如果總是從頭開始設計,設計應用窗體是一件非常耗時的工作,特別是應用必須運行在多語言部署的情況下。這就是最佳實踐要求盡可能地通過拖拽來創(chuàng)建報表并手動設定非常非常少量屬性的原因。有時候系統(tǒng)的默認屬性值可能不適合當前的情況,這是幾乎所有屬性都可以定制的原因。
在設計一個表或者視圖作為底層數(shù)據(jù)源的窗體的布局時,可以使用與AOT中的原始表和視圖相同的字段組和字段結構,倘若通過拖拽將它從這些節(jié)點中拖到窗體的Data Sources節(jié)點的話。這些數(shù)據(jù)源應該被配置使用AX AutoJoin系統(tǒng),這可以確保兩個窗體連接時數(shù)據(jù)同步。當處理布局和屬性設定時,保持Auto或者Default設定。這可以優(yōu)化自動排列技術的使用并限制移動像素以統(tǒng)一和排列窗體顯示與其他應用的需要。
在設計窗體時,遵循下列列表中推薦的做法,可以盡量優(yōu)化字段排列技術的使用。大多數(shù)模式是窗體設計的屬性設置。
1.盡可能使用默認設定,特別是Left,Top,Width,Height,Frame,WindosResize,WindowType和HideToolbar.
2.當使用表或者視圖做為數(shù)據(jù)源的時候使用DataGroup屬性。
3.當使用DataGroup屬性時,將AutoDataGroup屬性設為Yes,這樣就會根據(jù)數(shù)據(jù)源的行為調整所有的行為。
4.使用標簽而不是硬編碼的字符串。
5.使用標簽作為幫助文本(狀態(tài)欄幫助)而不是硬編碼的字符串。
6.使用TitleDataSource屬性提供為用戶更好和更可視的數(shù)據(jù)體驗。
7.如果要在X++代碼中使用控件,將AutoDeclaration屬性設為Yes。
8.盡量使用AutoJoin系統(tǒng)。
如果客戶要求一種非常特殊的用戶體驗,沒有任何設計限制阻止全部重新修改用戶界面。唯一的缺點是培訓,靈活性和升級在一定程度上變得復雜。
報表的原理
IntelliMorph對于報表甚至比窗體更加重要,報表的最佳實踐主要是保留屬性的默認設置。當設計一個報表的時候,報表將要執(zhí)行的環(huán)境通常是不可知的。這種類型的信息包含如下:
1.用戶打印機所用的紙張的大小
2.根據(jù)用戶的安裝設置和語言,標簽的長度或者內容可能不同
3.哪些字段通過安全和配置鍵設置禁用了
4.用戶設定的字段(擴展數(shù)據(jù)類型)的長度
5.數(shù)據(jù)發(fā)送到報表的排列順序
6.用戶系統(tǒng)通過subtotals設定打印還是僅僅使用totals設定打印
7.字體和字體大小的默認設定
8.報表獲取數(shù)據(jù)的表中的記錄數(shù)量
可以創(chuàng)建兩種類型的報表設計:Auto(AutodesignSpecs)或者Generated(Design)。大多數(shù)常規(guī)報表可以使用Auto,有特殊功能需求不能通過Auto設計實現(xiàn)的使用Generated設計。也可以為設計是由外部決定的報表使用Generated設計,比如:
1.由外部決定報表的布局,要求信息顯示在非常特定的位置的報表。
2.在部署期間需要根據(jù)用戶的需求進行調整設計的報表。發(fā)票是一個例子。大多數(shù)控件需要有固定的位置(不設置為Auto),用報表設計器移動它們。
盡可能地遵循如下設計模式:
1.盡可能采用默認屬性設定,特別是Orientation,Width,Label,標簽的寬度和格式信息,因為固定的設定導致報表控件不考慮從屬性窗體中可用的IntelliMorph自動排列技術。
2.盡量使用Auto設計報表類型
(譯注:說實在的AX的報表平臺做對格式有很高要求的報表太難過了)。
使用IntelliMorph
IntellMorph為個性化AX窗體提供了眾多選項。這些選項允許移動控件,設置控件的屬性,向Form中添加額外的字段。窗體在應用運行的時候定制,設置按每個用戶保存。依賴于個性化類型,個性化選項可以在很多地方被調用。無論是用鼠標移動進入Form然后通過菜單的命令隱藏一列還是通過高級個性化窗體重命名一列,個性化選項都使用了相同的框架。
高級個性化窗體,如圖11-2所示,提供給用戶個性化選項:
圖11-2:高級個性化窗體
使用該工具,用戶可以改變Tab頁的順序,移動元素,移除字段,添加Form數(shù)據(jù)源中存在的額外字段,重命名字段,阻止字段內容被編輯,更改默認的字段長度,甚至可以從窗體外觀的多個版本中挑選一個。個性化設置可以共享,比如一個部門想采用一個通用的外觀,該外觀與整個公司的標準外觀不一樣,但又不想修改全局窗體布局,可以這樣設置。
為了是用戶個性化可以工作,必須通過窗體設計屬性AllowUserSetup 和AllowAdd定義個性化的不同層級。一共有四種個性化層級,如表11-1所示:
(譯注:在我用的版本AX4.0SP1中,Form Design并沒有AllowAdd屬性,所以后面的表11-1的內容暫時不翻譯,等搞清楚了再說)。
Form中X++代碼的使用也可以改變個性化層級,如果有關控件位置的方法被覆蓋了,核心會自動限定用戶設置的層級。
雖然AX是一個用相同的部署支持多國家,語言,公司規(guī)模和行業(yè)的國際產品,它也是及其高產的開發(fā)平臺,它可以使布局非常容易配置并自動安排應用功能的布局。唯一的呈現(xiàn)技術是基于建模元素屬性,配置和安全設定以及個性化,它為每一個用戶將窗體,報表,菜單,菜單的顯示控件相應的Web元素的布局整合在一起。該技術叫做IntelliMorph,它支持AX中的胖客戶端和Web客戶端類型。
IntelloMorph技術設計的首要需求是為國際發(fā)布做準備,但與其他EPR產品不同的是,IntelliMorph必須用相同的部署為用多個語言的多個國家做準備,而且不管用戶界面的語言如何,必須提供相同的用戶體驗。這使得元數(shù)據(jù)驅動和屬性驅動的用戶交互界面成為必須,窗體,報表,菜單和菜單項同時兼顧全球和本地配置和安全設定。這種設計的一個積極的副作用是用戶可以通過多種方式個性化用戶界面。在AX4.0中進一步擴展了個性化設定,用戶可以引用所有的胖客戶端窗體作為最愛,可以向其綁定任意查詢。
IntelliMorhp自動排列功能基于許可證代碼,配置和安全鍵和個性化,不需要更改任何代碼。圖11-1顯示了元素,比如窗體,報表,菜單和web,布局的過濾結構。
圖11-1:IntelliMorph呈現(xiàn)結構
該布局包括許可證代碼,它打開配置鍵,配合鍵包含安全鍵引用或者安全鍵的子配置鍵。
安全鍵控制菜單項的訪問,菜單項引用為用戶組或者單個用戶提供的可用功能。單個用戶可以屬于多個用戶組,權限的完整集合組成最大的安全級別。界面體驗的最后一個因素是個性化,它允許用戶通過隱藏,顯示和配置展現(xiàn)的控件來修改用戶界面。
接下來的部分將會描述這些元素和他們之間的交互和依賴的更多細節(jié),包括個性化的討論。
注意
用戶界面的呈現(xiàn)不僅僅局限于支持IntelliMorph技術,它也為開發(fā)擁有眾多不同控件類型的,比如ActiveX和ListView控件,Mircrosoft Windows 窗體提供了豐富的設計選項集合。AX報表也有它們自己的設計器,可以在用X++和屬性窗體的排列和格式化時進行可視化設計一張報表(譯注:那個設計器實在是不敢恭維,呵呵。)。
最佳實踐
了解IntelliMorph的工作原理可以幫助開發(fā)應用擴展的運行時呈現(xiàn)。如果遵循最佳時間的設計規(guī)則和模式,可以優(yōu)化IntelliMorph技術的使用確保有一個統(tǒng)一的應用運行時界面。最佳實踐原則集中在使用呈現(xiàn)控件的默認屬性設定,它決定如何呈現(xiàn)元素和功能。也包括標簽的一般使用,字段組,擴展數(shù)據(jù)類型,自動組,安全和配置鍵和菜單項。AX的標準應用采用所有的最佳實踐規(guī)則和模式開發(fā)(譯注:這牛吹大啦,呵呵),這提供了應用和底層業(yè)務邏輯交互的統(tǒng)一方式。第四章,"MorphX開發(fā)工具",提供了關于最佳實踐工具的描述。可以在AX SDK中發(fā)現(xiàn)規(guī)則和模式的細節(jié)。
窗體的原理
如果總是從頭開始設計,設計應用窗體是一件非常耗時的工作,特別是應用必須運行在多語言部署的情況下。這就是最佳實踐要求盡可能地通過拖拽來創(chuàng)建報表并手動設定非常非常少量屬性的原因。有時候系統(tǒng)的默認屬性值可能不適合當前的情況,這是幾乎所有屬性都可以定制的原因。
在設計一個表或者視圖作為底層數(shù)據(jù)源的窗體的布局時,可以使用與AOT中的原始表和視圖相同的字段組和字段結構,倘若通過拖拽將它從這些節(jié)點中拖到窗體的Data Sources節(jié)點的話。這些數(shù)據(jù)源應該被配置使用AX AutoJoin系統(tǒng),這可以確保兩個窗體連接時數(shù)據(jù)同步。當處理布局和屬性設定時,保持Auto或者Default設定。這可以優(yōu)化自動排列技術的使用并限制移動像素以統(tǒng)一和排列窗體顯示與其他應用的需要。
在設計窗體時,遵循下列列表中推薦的做法,可以盡量優(yōu)化字段排列技術的使用。大多數(shù)模式是窗體設計的屬性設置。
1.盡可能使用默認設定,特別是Left,Top,Width,Height,Frame,WindosResize,WindowType和HideToolbar.
2.當使用表或者視圖做為數(shù)據(jù)源的時候使用DataGroup屬性。
3.當使用DataGroup屬性時,將AutoDataGroup屬性設為Yes,這樣就會根據(jù)數(shù)據(jù)源的行為調整所有的行為。
4.使用標簽而不是硬編碼的字符串。
5.使用標簽作為幫助文本(狀態(tài)欄幫助)而不是硬編碼的字符串。
6.使用TitleDataSource屬性提供為用戶更好和更可視的數(shù)據(jù)體驗。
7.如果要在X++代碼中使用控件,將AutoDeclaration屬性設為Yes。
8.盡量使用AutoJoin系統(tǒng)。
如果客戶要求一種非常特殊的用戶體驗,沒有任何設計限制阻止全部重新修改用戶界面。唯一的缺點是培訓,靈活性和升級在一定程度上變得復雜。
報表的原理
IntelliMorph對于報表甚至比窗體更加重要,報表的最佳實踐主要是保留屬性的默認設置。當設計一個報表的時候,報表將要執(zhí)行的環(huán)境通常是不可知的。這種類型的信息包含如下:
1.用戶打印機所用的紙張的大小
2.根據(jù)用戶的安裝設置和語言,標簽的長度或者內容可能不同
3.哪些字段通過安全和配置鍵設置禁用了
4.用戶設定的字段(擴展數(shù)據(jù)類型)的長度
5.數(shù)據(jù)發(fā)送到報表的排列順序
6.用戶系統(tǒng)通過subtotals設定打印還是僅僅使用totals設定打印
7.字體和字體大小的默認設定
8.報表獲取數(shù)據(jù)的表中的記錄數(shù)量
可以創(chuàng)建兩種類型的報表設計:Auto(AutodesignSpecs)或者Generated(Design)。大多數(shù)常規(guī)報表可以使用Auto,有特殊功能需求不能通過Auto設計實現(xiàn)的使用Generated設計。也可以為設計是由外部決定的報表使用Generated設計,比如:
1.由外部決定報表的布局,要求信息顯示在非常特定的位置的報表。
2.在部署期間需要根據(jù)用戶的需求進行調整設計的報表。發(fā)票是一個例子。大多數(shù)控件需要有固定的位置(不設置為Auto),用報表設計器移動它們。
盡可能地遵循如下設計模式:
1.盡可能采用默認屬性設定,特別是Orientation,Width,Label,標簽的寬度和格式信息,因為固定的設定導致報表控件不考慮從屬性窗體中可用的IntelliMorph自動排列技術。
2.盡量使用Auto設計報表類型
(譯注:說實在的AX的報表平臺做對格式有很高要求的報表太難過了)。
使用IntelliMorph
IntellMorph為個性化AX窗體提供了眾多選項。這些選項允許移動控件,設置控件的屬性,向Form中添加額外的字段。窗體在應用運行的時候定制,設置按每個用戶保存。依賴于個性化類型,個性化選項可以在很多地方被調用。無論是用鼠標移動進入Form然后通過菜單的命令隱藏一列還是通過高級個性化窗體重命名一列,個性化選項都使用了相同的框架。
高級個性化窗體,如圖11-2所示,提供給用戶個性化選項:
圖11-2:高級個性化窗體
使用該工具,用戶可以改變Tab頁的順序,移動元素,移除字段,添加Form數(shù)據(jù)源中存在的額外字段,重命名字段,阻止字段內容被編輯,更改默認的字段長度,甚至可以從窗體外觀的多個版本中挑選一個。個性化設置可以共享,比如一個部門想采用一個通用的外觀,該外觀與整個公司的標準外觀不一樣,但又不想修改全局窗體布局,可以這樣設置。
為了是用戶個性化可以工作,必須通過窗體設計屬性AllowUserSetup 和AllowAdd定義個性化的不同層級。一共有四種個性化層級,如表11-1所示:
(譯注:在我用的版本AX4.0SP1中,Form Design并沒有AllowAdd屬性,所以后面的表11-1的內容暫時不翻譯,等搞清楚了再說)。
Form中X++代碼的使用也可以改變個性化層級,如果有關控件位置的方法被覆蓋了,核心會自動限定用戶設置的層級。
轉載于:https://www.cnblogs.com/Farseer1215/archive/2007/07/28/833418.html
總結
以上是生活随笔為你收集整理的第十一章:配置和安全---IntelliMorph的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web标准不标准
- 下一篇: 怪怪设计论闲谈篇:职责与解耦的矛盾