本文仅供AX从业者和爱好者学习交流之用,由于原文版权问题,请勿转载
虽然AX是一个用相同的部署支持多国家,语言,公司规模和行业的国际产品,它也是及其高产的开发平台,它可以使布局非常容易配置并自动安排应用功能的布局。唯一的呈现技术是基于建模元素属性,配置和安全设定以及个性化,它为每一个用户将窗体,报表,菜单,菜单的显示控件相应的Web元素的布局整合在一起。该技术叫做IntelliMorph,它支持AX中的胖客户端和Web客户端类型。
IntelloMorph技术设计的首要需求是为国际发布做准备,但与其他EPR产品不同的是,IntelliMorph必须用相同的部署为用多个语言的多个国家做准备,而且不管用户界面的语言如何,必须提供相同的用户体验。这使得元数据驱动和属性驱动的用户交互界面成为必须,窗体,报表,菜单和菜单项同时兼顾全球和本地配置和安全设定。这种设计的一个积极的副作用是用户可以通过多种方式个性化用户界面。在AX4.0中进一步扩展了个性化设定,用户可以引用所有的胖客户端窗体作为最爱,可以向其绑定任意查询。
IntelliMorhp自动排列功能基于许可证代码,配置和安全键和个性化,不需要更改任何代码。图11-1显示了元素,比如窗体,报表,菜单和web,布局的过滤结构。

图11-1:IntelliMorph呈现结构
该布局包括许可证代码,它打开配置键,配合键包含安全键引用或者安全键的子配置键。
安全键控制菜单项的访问,菜单项引用为用户组或者单个用户提供的可用功能。单个用户可以属于多个用户组,权限的完整集合组成最大的安全级别。界面体验的最后一个因素是个性化,它允许用户通过隐藏,显示和配置展现的控件来修改用户界面。
接下来的部分将会描述这些元素和他们之间的交互和依赖的更多细节,包括个性化的讨论。
注意
用户界面的呈现不仅仅局限于支持IntelliMorph技术,它也为开发拥有众多不同控件类型的,比如ActiveX和ListView控件,Mircrosoft Windows 窗体提供了丰富的设计选项集合。AX报表也有它们自己的设计器,可以在用X++和属性窗体的排列和格式化时进行可视化设计一张报表(译注:那个设计器实在是不敢恭维,呵呵。)。
最佳实践
了解IntelliMorph的工作原理可以帮助开发应用扩展的运行时呈现。如果遵循最佳时间的设计规则和模式,可以优化IntelliMorph技术的使用确保有一个统一的应用运行时界面。最佳实践原则集中在使用呈现控件的默认属性设定,它决定如何呈现元素和功能。也包括标签的一般使用,字段组,扩展数据类型,自动组,安全和配置键和菜单项。AX的标准应用采用所有的最佳实践规则和模式开发(译注:这牛吹大啦,呵呵),这提供了应用和底层业务逻辑交互的统一方式。第四章,"MorphX开发工具",提供了关于最佳实践工具的描述。可以在AX SDK中发现规则和模式的细节。
窗体的原理
如果总是从头开始设计,设计应用窗体是一件非常耗时的工作,特别是应用必须运行在多语言部署的情况下。这就是最佳实践要求尽可能地通过拖拽来创建报表并手动设定非常非常少量属性的原因。有时候系统的默认属性值可能不适合当前的情况,这是几乎所有属性都可以定制的原因。
在设计一个表或者视图作为底层数据源的窗体的布局时,可以使用与AOT中的原始表和视图相同的字段组和字段结构,倘若通过拖拽将它从这些节点中拖到窗体的Data Sources节点的话。这些数据源应该被配置使用AX AutoJoin系统,这可以确保两个窗体连接时数据同步。当处理布局和属性设定时,保持Auto或者Default设定。这可以优化自动排列技术的使用并限制移动像素以统一和排列窗体显示与其他应用的需要。
在设计窗体时,遵循下列列表中推荐的做法,可以尽量优化字段排列技术的使用。大多数模式是窗体设计的属性设置。
1.尽可能使用默认设定,特别是Left,Top,Width,Height,Frame,WindosResize,WindowType和HideToolbar.
2.当使用表或者视图做为数据源的时候使用DataGroup属性。
3.当使用DataGroup属性时,将AutoDataGroup属性设为Yes,这样就会根据数据源的行为调整所有的行为。
4.使用标签而不是硬编码的字符串。
5.使用标签作为帮助文本(状态栏帮助)而不是硬编码的字符串。
6.使用TitleDataSource属性提供为用户更好和更可视的数据体验。
7.如果要在X++代码中使用控件,将AutoDeclaration属性设为Yes。
8.尽量使用AutoJoin系统。
如果客户要求一种非常特殊的用户体验,没有任何设计限制阻止全部重新修改用户界面。唯一的缺点是培训,灵活性和升级在一定程度上变得复杂。
报表的原理
IntelliMorph对于报表甚至比窗体更加重要,报表的最佳实践主要是保留属性的默认设置。当设计一个报表的时候,报表将要执行的环境通常是不可知的。这种类型的信息包含如下:
1.用户打印机所用的纸张的大小
2.根据用户的安装设置和语言,标签的长度或者内容可能不同
3.哪些字段通过安全和配置键设置禁用了
4.用户设定的字段(扩展数据类型)的长度
5.数据发送到报表的排列顺序
6.用户系统通过subtotals设定打印还是仅仅使用totals设定打印
7.字体和字体大小的默认设定
8.报表获取数据的表中的记录数量
可以创建两种类型的报表设计:Auto(AutodesignSpecs)或者Generated(Design)。大多数常规报表可以使用Auto,有特殊功能需求不能通过Auto设计实现的使用Generated设计。也可以为设计是由外部决定的报表使用Generated设计,比如:
1.由外部决定报表的布局,要求信息显示在非常特定的位置的报表。
2.在部署期间需要根据用户的需求进行调整设计的报表。发票是一个例子。大多数控件需要有固定的位置(不设置为Auto),用报表设计器移动它们。
尽可能地遵循如下设计模式:
1.尽可能采用默认属性设定,特别是Orientation,Width,Label,标签的宽度和格式信息,因为固定的设定导致报表控件不考虑从属性窗体中可用的IntelliMorph自动排列技术。
2.尽量使用Auto设计报表类型
(译注:说实在的AX的报表平台做对格式有很高要求的报表太难过了)。
使用IntelliMorph
IntellMorph为个性化AX窗体提供了众多选项。这些选项允许移动控件,设置控件的属性,向Form中添加额外的字段。窗体在应用运行的时候定制,设置按每个用户保存。依赖于个性化类型,个性化选项可以在很多地方被调用。无论是用鼠标移动进入Form然后通过菜单的命令隐藏一列还是通过高级个性化窗体重命名一列,个性化选项都使用了相同的框架。
高级个性化窗体,如图11-2所示,提供给用户个性化选项:

图11-2:高级个性化窗体
使用该工具,用户可以改变Tab页的顺序,移动元素,移除字段,添加Form数据源中存在的额外字段,重命名字段,阻止字段内容被编辑,更改默认的字段长度,甚至可以从窗体外观的多个版本中挑选一个。个性化设置可以共享,比如一个部门想采用一个通用的外观,该外观与整个公司的标准外观不一样,但又不想修改全局窗体布局,可以这样设置。
为了是用户个性化可以工作,必须通过窗体设计属性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相关推荐

  1. 思科CCNA第一本教材 第十一章 配置和测试网络 个人总结

    11.3     IOS 基础 Cisco Internetwork Operating System (IOS) 就是为 Cisco 设备配备的系统软件 Cisco IOS 可为设备提供下列网络服务 ...

  2. 计算机网络离不开光缆,九年级物理全册 第二十一章 第四节 越来越宽的信息之路习题课件 新人教版.ppt...

    九年级物理全册 第二十一章 第四节 越来越宽的信息之路习题课件 新人教版.ppt 第二十一章信息的传递,第四节越来越宽的信息之路,1微波的性质更接近光波,大致沿_______传播,需要每隔_____k ...

  3. [转]Windows Shell 编程 第十一章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987992】...

    第十一章 探索Shell 我们现在将注意力从API转向Windows Shell本身.从这一章往后,我们的目标主要集中在清晰和全面的揭示探测器的工作原理和Shell 命名空间的构成对象上,最后给出客户 ...

  4. stm32官方例程在哪找_正点原子Linux第十一章模仿STM32驱动开发格式实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第十一章模仿STM32驱动开发格式实验 在上一章使用C语 ...

  5. 鸟哥的Linux私房菜(基础篇)- 第十一章、认识与学习 BASH

    第十一章.认识与学习 BASH 最近升级日期:2009/08/25 在 Linux 的环境下,如果你不懂 bash 是什么,那么其他的东西就不用学了!因为前面几章我们使用终端机下达命令的方式,就是透过 ...

  6. stm32看门狗_「正点原子NANO STM32开发板资料连载」第十一章 独立看门狗实验

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十一章 独 ...

  7. 看门狗寄存器c语言代码_「正点原子NANO STM32F103开发板资料连载」第十一章 看门狗实验...

    1)实验平台:[正点原子] NANO STM32F103 开发板 2)摘自<正点原子STM32 F1 开发指南(NANO 板-HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 ...

  8. input自适应_【正点原子FPGA连载】第十一章基于OV5640的自适应二值化实验-领航者ZYNQ之HLS 开发指南...

    1)摘自[正点原子]领航者ZYNQ之HLS 开发指南 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手 ...

  9. 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高...

    第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...

  10. 《Go语言圣经》学习笔记 第十一章 测试

    <Go语言圣经>学习笔记 第十一章 测试 目录 go test 测试函数 测试覆盖率 基准测试 剖析 示例函数 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语 ...

最新文章

  1. NetBeans 时事通讯(刊号 # 5 - Apr 29, 2008)
  2. Machine Learning week 3 quiz : Logistic Regression
  3. 面试官:你了解JVM的锁优化吗?
  4. C/C++求职宝典21个重点笔记
  5. 用心推荐三个嵌入式方向精品号
  6. .NET5 开发手机提词应用,基于内嵌Web服务器及PowerPoint自动化
  7. CSS Hack 汇总快查
  8. 计算机适配器有什么作用,例举适配器是什么
  9. 【numpy】numpy.ones()函数
  10. webapi 初识 net
  11. linux自动点击软件上的按钮有什么用,教会你Linux Shell自动交互的三种方法
  12. java 基础数据结构源码详解及数据结构算法
  13. 秋天的第一杯奶茶?NO,是第一份大数据学习宝典
  14. ICCID码解析方式
  15. 【MySQL】汇总数据
  16. vnc报错 PID file /home/root/.vnc/localhost.pid not readable after start.
  17. 使用Mixamo绑定骨骼导入动画
  18. Android 中的卡顿丢帧原因概述 - 低内存篇
  19. 云计算机有什么用,云电脑对玩家来说有什么作用
  20. php实现简单的留言板

热门文章

  1. phpcms漏洞总结
  2. APR分析-共享内存篇
  3. windows下ab的安装和压测
  4. linux下安装jdk,非常简单的操作
  5. mysql索引篇之覆盖索引、联合索引、索引下推
  6. TransmittableThreadLocal详解
  7. 大话InnoDB索引原理
  8. Elasticsearch技术解析与实战(三)文档的聚合
  9. 币安布局去中心化交易所,原来是因为这三个原因!
  10. [bzoj2242][SDOI2011]计算器