尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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),仅供参考
RELATED

相关推荐

为什么选择explicit-architecture-php?Symfony开发者必须知道的5大理由

为什么选择explicit-architecture-php?Symfony开发者必须知道的5大理由

为什么选择explicit-architecture-php?Symfony开发者必须知道的5大理由 【免费下载链接】explicit-architecture-php This repository is a demo of Explicit Architecture, using the Symfony Demo Application. 项目地址: https://gitcode.com/gh_mirrors/ex/ex…

📅 2026/8/23 17:16:03
基于大数据+Hadoop的国内篮球联赛数据分析与可视化系统的设计与实现

基于大数据+Hadoop的国内篮球联赛数据分析与可视化系统的设计与实现

国内篮球联赛数据分析与可视化系统的背景随着国内篮球运动的快速发展,中国男子篮球职业联赛(CBA)及其他区域性联赛的竞技水平和商业价值逐年提升。篮球比赛产生的数据量呈指数级增长,包括球员表现、战术执行、比赛节奏等多维度信息…

📅 2026/8/23 17:16:03
雨雾天气交通目标检测数据集:8类别、5,200张图像 | 目标检测

雨雾天气交通目标检测数据集:8类别、5,200张图像 | 目标检测

雨雾天气交通目标检测数据集:8类别、5,200张图像 | 目标检测 源码数据分享 链接: https://pan.baidu.com/s/1H8eSFTu0lkrHPxVrObjRJg?pwddjjq 提取码: djjq 一、引言:恶劣天气——自动驾驶 自动驾驶技术正在快速改变人类的出行方式,从L2级…

📅 2026/9/10 5:16:16
MORE NEWS

更多资讯

📰

Arduino IDE跨平台安装与故障排查全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

微表情识别模型fer-1.h5端到端部署与实时优化

简介:本资源是一个面向人工智能初学者与毕业设计/课程设计学生的深度学习实战项目——基于CNN与YOLO的人脸情绪识别系统,聚焦于从人脸检测到表情分类的端到端实现,适用于安防、人机交互、教育演示等场景。压缩包共11个文件,含3个核…

📰

Greenfield 0.5.4:Minecraft城市操作系统深度解析

1. 项目概述:这不是一张地图,而是一座可呼吸的虚拟城市你点开这个标题时,大概率正坐在电脑前,手指悬在鼠标上犹豫——“绿地(Greenfield)0.5.4”这串字符背后,到底藏着什么?它真能像…

📰

论文降重与改写避坑指南:如何识别不可靠的文本处理服务

引言 毕业论文写作是每位学子都要经历的重要阶段,而降重与文本改写往往是其中绕不开的一环。面对市面上琳琅满目的服务,如何辨别其可靠性,避免踩坑,成为许多同学关心的问题。本文结合我的亲身经历,系统梳理识别不可靠…

📰

蜘蛛表格:多维表字段关联技术解析与应用实践

1. 项目概述:打破数据孤岛的蜘蛛表格蜘蛛表格是一种新型的多维表格工具,它通过创新的字段关联技术,彻底改变了传统表格数据孤立的状态。我在实际的数据分析工作中发现,传统表格最大的痛点就是数据分散在各个孤立的表格中&#xff…

📰

Spring Boot 2.x 日志配置 与集成 Logback 日志框架,SQL日志记录方式汇总

目录 Spring Boot 日志依赖关系 Spring boot 全局日志设置 Spring boot Log Levels 日志级别 Spring boot Log Groups 日志记录器组 Logback 日志配置文件详解 java -jar 启动设置日志输出级别 动态切换 Logback 日志输出级别 logback.xml 配置文件定时监控 LoggerCon…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬