You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Acumatica UI(ASPX表单)中显示远程IP地址及所需DAC属性

在Acumatica UI(ASPX表单)中展示远程IP地址的实现方法及所需DAC属性

实现步骤

1. 定义DAC字段

根据需求选择是否持久化IP地址:

  • 仅UI显示(不存储):定义未绑定字符串字段
  • 需要存储:定义绑定数据库表的字段

示例代码(未绑定字段):

public abstract class remoteIP : IBqlField { }

[PXString(15)]
[PXUIField(DisplayName = "远程IP地址", Enabled = false)]
public virtual string RemoteIP { get; set; }

若需存储,将PXString替换为PXDBString,并确保对应数据库表存在同名字段。

2. 在ASPX页面添加绑定控件

打开目标ASPX表单,添加绑定到该字段的文本控件:

<px:PXTextEdit ID="edRemoteIP" runat="server" DataField="RemoteIP" />

3. 在Graph中赋值远程IP

在Graph的RowSelected事件中获取并赋值访问者IP:

protected virtual void YourDAC_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
{
    var row = e.Row as YourDAC;
    if (row == null) return;

    // 获取当前请求的远程IP
    string ipAddress = PXWebRequestContext.Current.Request.UserHostAddress;
    // 处理本地测试环境的回环地址(可选)
    if (ipAddress == "::1" || ipAddress.Equals("localhost", StringComparison.OrdinalIgnoreCase))
        ipAddress = "127.0.0.1";

    cache.SetValueExt<YourDAC.remoteIP>(row, ipAddress);
}

所需DAC属性说明

  • PXStringAttribute/PXDBStringAttribute:
    定义字符串类型字段,PXDBString用于需持久化到数据库的字段,PXString用于未绑定的只读字段,可指定长度(如15适配IPv4地址)。
  • PXUIFieldAttribute:
    控制UI表现:DisplayName设置字段显示名称,Enabled = false将字段设为只读,避免用户编辑。
  • PXUnboundAttribute(可选):
    明确标记字段为未绑定(不关联数据库字段),仅用PXString也可实现未绑定效果,添加后语义更清晰。

内容的提问来源于stack exchange,提问作者Hemendra Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:28:59