如何在Acumatica客户界面添加带动态客户ID参数的内嵌iframe标签/侧边栏
在Acumatica客户界面嵌入带动态CustomerID的外部链接
实现方案:添加自定义标签页嵌入IFrame
以下是具体实现步骤和代码示例:
1. 打开自定义项目编辑器
在Acumatica中创建或打开目标自定义项目,找到**AR303000(Customer)**页面并进入编辑模式。
2. 添加自定义标签页
在页面的Tab容器中新增一个PXTabItem:
- 设置标签标题(如“外部客户信息”)
- 为标签页分配唯一的ID(如
tabExternalInfo)
3. 嵌入IFrame控件
在新建的标签页内添加PXIFrame控件:
- 设置ControlID为
extCustomerFrame - 初始URL可留空,后续通过代码动态赋值
4. 编写动态URL绑定代码
在ARCustomerMaint图的扩展类中,通过RowSelected事件动态拼接外部链接:
public class ARCustomerMaint_Extension : PXGraphExtension<ARCustomerMaint> { protected void _(Events.RowSelected<Customer> e) { if (e.Row == null) return; // 获取当前选中客户的CustomerID string currentCustomerID = e.Row.AcctCD; // 拼接带动态参数的外部链接 string externalUrl = $"https://mywebsite?f=CustomerID={currentCustomerID}"; // 更新IFrame的URL PXIFrame iframe = Base.Views[typeof(Customer)].FindControl("extCustomerFrame") as PXIFrame; if (iframe != null) { iframe.Url = externalUrl; } } }
5. 部署与测试
- 发布自定义项目
- 打开客户页面,切换不同客户,检查IFrame内的链接是否已自动替换为当前CustomerID,且页面正常加载
注意事项
- 确保外部网站允许Acumatica域名嵌入(需配置
X-Frame-Options或CORS策略) - 为自定义标签页配置相应的用户权限,避免无权限用户访问
- 若需使用侧边栏替代标签页,只需将IFrame控件放置到页面侧边容器中,代码逻辑保持一致
内容的提问来源于stack exchange,提问作者Rakavy Ravisingam
相关产品推荐
相关产品推荐

