AL语言扩展控制项开发指南:创建自定义UI组件与交互
AL语言扩展控制项开发指南创建自定义UI组件与交互【免费下载链接】ALHome of the Dynamics 365 Business Central AL Language extension for Visual Studio Code. Used to track issues regarding the latest version of the AL compiler and developer tools available in the Visual Studio Code Marketplace or as part of the AL Developer Preview builds for Dynamics 365 Business Central.项目地址: https://gitcode.com/gh_mirrors/al/ALAL语言扩展控制项是Dynamics 365 Business Central开发中的强大工具它允许开发者创建丰富的自定义用户界面组件和交互体验。本指南将带你了解如何从零开始构建功能完备的AL控制项掌握UI组件设计与数据交互的核心技巧让你的Business Central解决方案更加专业和用户友好。控制项开发基础理解AL扩展架构AL控制项Control Add-in是一种特殊的扩展类型它能够将Web技术HTML、CSS、JavaScript与AL代码无缝集成为Business Central页面提供高度定制化的UI元素。在项目的samples/ControlAddIn目录中你可以找到完整的控制项示例包括基础架构和交互逻辑。控制项开发主要涉及三个核心部分控制项定义.al文件声明控制项的属性、方法和事件前端资源JS/CSS文件实现UI渲染和客户端逻辑页面集成在AL页面中引用并使用控制项控制项定义文件结构解析控制项的定义文件通常位于项目的controladdin目录下例如samples/ControlAddIn/al/controladdin/AddIn.al。一个基础的控制项定义包含以下关键元素controladdin TestAddIn { Scripts https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-debug.js, ./js/main.js; StartupScript js/startup.js; StyleSheets css/skins.css; Images ./images/logo.png; RequestedHeight 500; MinimumHeight 500; VerticalShrink false; HorizontalStretch true; procedure CallJavaScript(i : integer; s: text; d : decimal; c : char); event Callback(i : integer; s: text; d : decimal; c : char); }在这个定义中我们声明了控制项所需的外部脚本、样式表、图片资源定义了控制项的尺寸属性以及AL与JavaScript之间的通信接口过程和事件。构建UI组件从设计到实现创建控制项的UI组件需要结合AL定义和前端技术。一个典型的控制项UI实现包含HTML结构、CSS样式和JavaScript逻辑这些文件通常存放在项目的js和css目录中。控制项前端资源组织在samples/ControlAddIn示例中前端资源的组织结构如下js/main.js控制项的主要逻辑实现js/startup.js控制项初始化脚本css/skins.css控制项样式定义images/logo.png控制项使用的图片资源这种组织方式确保了代码的模块化和可维护性是AL控制项开发的推荐实践。设计响应式控制项界面控制项的界面设计需要考虑Business Central的各种显示环境确保在不同尺寸的屏幕上都能提供良好的用户体验。通过设置控制项的尺寸属性可以实现响应式布局RequestedHeight 500; MinimumHeight 500; VerticalShrink false; HorizontalStretch true;这些属性定义了控制项的初始高度、最小高度以及是否允许垂直收缩和水平拉伸使控制项能够适应不同的页面布局需求。实现交互逻辑AL与JavaScript通信控制项的核心价值在于实现AL代码与前端之间的双向通信。通过定义过程Procedures和事件Events可以在AL和JavaScript之间传递数据和触发操作。从AL调用JavaScript方法在控制项定义中声明的过程可以从AL代码中调用用于向JavaScript传递数据或触发前端操作。例如在PageWithAddIn.al中我们可以看到如何调用控制项的方法action(CallJavaScript) { trigger OnAction(); begin CurrPage.ControlName.CallJavaScript(5, text, 6.3, c); end; }这段代码定义了一个页面操作当用户点击该操作时会调用控制项的CallJavaScript方法并传递四个不同类型的参数。从JavaScript触发AL事件控制项还可以通过事件将数据从JavaScript传递回AL代码。在控制项定义中声明事件event Callback(i : integer; s: text; d : decimal; c : char);然后在JavaScript中触发该事件Microsoft.Dynamics.NAV.InvokeExtensibilityMethod(Callback, [i, s, d, c]);在页面中我们可以为这个事件编写处理逻辑trigger Callback(i : integer; s: text; d : decimal; c : char) begin Message(Got from js: %1, %2, %3, %4, i, s, d, c); end;这种双向通信机制使得控制项能够响应用户交互并与Business Central的数据进行实时交互。控制项集成与测试提升开发效率开发AL控制项时有效的集成和测试方法可以显著提升开发效率。AL Explorer提供了强大的对象管理功能可以帮助你快速定位和测试控制项相关的页面和代码单元。使用AL Explorer管理控制项对象AL Explorer是Visual Studio Code中AL语言扩展的重要功能它提供了直观的界面来管理和浏览Business Central对象。通过AL Explorer你可以轻松找到控制项相关的页面、代码单元和其他对象方便进行集成测试。AL Explorer的筛选和分组功能可以帮助你快速定位控制项相关的对象特别是在大型项目中这一功能尤为重要。控制项测试策略控制项开发推荐采用以下测试策略单独测试前端逻辑使用模拟数据测试JavaScript功能测试AL与JavaScript通信验证参数传递和事件触发集成测试在实际页面中测试控制项的整体行为跨环境测试确保控制项在不同环境中正常工作项目中的samples/ControlAddIn提供了完整的测试示例包括测试页面和辅助代码单元可以作为测试策略的参考。进阶技巧打造专业级控制项要创建真正专业的AL控制项还需要掌握一些进阶技巧包括性能优化、错误处理和代码组织等方面。控制项性能优化大型控制项可能会影响页面加载速度和响应性能以下是一些优化建议最小化外部脚本依赖优化JavaScript代码避免不必要的DOM操作使用延迟加载技术加载非关键资源合理设置控制项的尺寸属性避免不必要的重绘代码复用与模块化为了提高代码的可维护性和复用性建议采用模块化的开发方式将复杂逻辑封装在代码单元中如AddInHelpers.al使用单例模式管理全局资源如AddInHelpersSingleton.al分离UI逻辑和业务逻辑提高代码清晰度处理边缘情况专业的控制项需要妥善处理各种边缘情况网络错误处理脚本加载失败的情况参数验证在AL和JavaScript中都进行参数验证内存管理避免内存泄漏特别是在频繁更新的控制项中兼容性处理确保控制项在不同版本的Business Central中都能正常工作总结开启AL控制项开发之旅AL语言扩展控制项为Dynamics 365 Business Central带来了无限的UI定制可能。通过本指南你已经了解了控制项开发的基础知识、UI设计、交互实现和测试策略。现在你可以开始创建自己的控制项为Business Central解决方案增添专业的自定义UI组件。要开始你的AL控制项开发之旅只需克隆项目仓库git clone https://gitcode.com/gh_mirrors/al/AL探索samples目录中的示例代码特别是ControlAddIn和ControlAddInHighCharts这些示例提供了丰富的控制项实现方案可以作为你开发的起点。祝你在AL控制项开发的道路上取得成功【免费下载链接】ALHome of the Dynamics 365 Business Central AL Language extension for Visual Studio Code. Used to track issues regarding the latest version of the AL compiler and developer tools available in the Visual Studio Code Marketplace or as part of the AL Developer Preview builds for Dynamics 365 Business Central.项目地址: https://gitcode.com/gh_mirrors/al/AL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

co-wechat-api单元测试教程:确保微信API调用的稳定性与可靠性

co-wechat-api单元测试教程:确保微信API调用的稳定性与可靠性

co-wechat-api单元测试教程:确保微信API调用的稳定性与可靠性 【免费下载链接】co-wechat-api Wechat API. Support Async Functions 项目地址: https://gitcode.com/gh_mirrors/co/co-wechat-api 想要确保你的微信公众平台应用稳定运行吗?co-wec…

2026/7/24 17:23:28 阅读更多 →
大学生暑假两个月,怎么系统提升AI能力?

大学生暑假两个月,怎么系统提升AI能力?

在AI全面渗透职场的背景下,大学生暑期不再仅依靠兼职、刷题提升自我,系统化掌握AI应用能力,已经成为应届生求职的通用加分项。根据2026年高校就业数据统计,具备AI落地应用能力的应届生,简历通过率较普通应届生高出41%&…

2026/7/22 10:24:50 阅读更多 →
PostgreSQL 存储过程终极静态分析工具:plpgsql_check 完全指南

PostgreSQL 存储过程终极静态分析工具:plpgsql_check 完全指南

PostgreSQL 存储过程终极静态分析工具:plpgsql_check 完全指南 【免费下载链接】plpgsql_check plpgsql_check is a linter tool (does source code static analyze) for the PostgreSQL language plpgsql (the native language for PostgreSQL store procedures). …

2026/7/22 11:55:48 阅读更多 →

最新新闻

一键换背景失效?揭秘Stable Video Diffusion、Runway ML、Pika底层抠像逻辑差异,精准匹配你的硬件配置

一键换背景失效?揭秘Stable Video Diffusion、Runway ML、Pika底层抠像逻辑差异,精准匹配你的硬件配置

更多请点击: https://kaifayun.com 第一章:一键换背景失效?揭秘Stable Video Diffusion、Runway ML、Pika底层抠像逻辑差异,精准匹配你的硬件配置 当“一键换背景”在视频生成工具中突然失效,问题往往不在于UI按钮&am…

2026/7/24 17:23:16 阅读更多 →
多个相同IP设备联网通信的解决方案

多个相同IP设备联网通信的解决方案

某工厂有多条自动化生产线,每条生产线由两至三台PLC进行控制,每台PLC都位于独立的网络中,并且有网段IP相同的情况出现(192.168.0.x),同时每个生产线网络中仅使用了十几个的ip地址左右。现要求对每个产线中的…

2026/7/24 17:23:16 阅读更多 →
大模型提示词长度优化实战指南(Token预算精算手册)

大模型提示词长度优化实战指南(Token预算精算手册)

更多请点击: https://kaifayun.com 第一章:大模型提示词长度优化实战指南(Token预算精算手册) 在大模型推理场景中,Token消耗直接决定API调用成本、响应延迟与上下文截断风险。盲目堆砌提示词常导致预算超支或关键信息…

2026/7/24 17:23:16 阅读更多 →
抖音在线解析免费工具哪个好用?2026实测整理给运营人实用参考

抖音在线解析免费工具哪个好用?2026实测整理给运营人实用参考

先看结论:这类工具怎么选 针对抖音在线解析需求,结合我2026年2月亲测5款主流工具,针对企业管理者做决策记录、会议管理、行业峰会内容消化的场景,目前没有万能的免费工具,选择核心看你的核心需求:只需要逐…

2026/7/24 17:23:16 阅读更多 →
3分钟打造个性化Windows桌面:TranslucentTB任务栏透明化完全指南

3分钟打造个性化Windows桌面:TranslucentTB任务栏透明化完全指南

3分钟打造个性化Windows桌面:TranslucentTB任务栏透明化完全指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是否厌倦了…

2026/7/24 17:23:16 阅读更多 →
大家望古今

大家望古今

大家望古今今音作古韵,昔言寻时声。嘻嘻自圣贤,叽叽己俗称。乐语千载事,苦行万年证。悠悠春秋月,哞哞光阴风。大树知汉萌,小草聊唐僧?古籍定正统,国风记真梦。再临此时渊,重提当天峰…

2026/7/24 17:22:15 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻