Acumatica 获取图形外部的当前缓存

Acumatica 获取图形外部的当前缓存,acumatica,Acumatica,我创建了一个自定义选择器,其逻辑取决于屏幕标题部分中字段的值。由于逻辑不在保存视图的图形中,我如何获取此标头部分的缓存的当前值?我在页眉中将引用的字段设置为commitchanges=true,甚至在页面的页眉部分设置了SyncPosition=true。以下逻辑没有给出缓存中(我假设)的当前值: mh = (xTACMappingHeader)PXSelect< xTACMappingHeader, Where< xTACMap

我创建了一个自定义选择器,其逻辑取决于屏幕标题部分中字段的值。由于逻辑不在保存视图的图形中,我如何获取此标头部分的缓存的当前值?我在页眉中将引用的字段设置为commitchanges=true,甚至在页面的页眉部分设置了SyncPosition=true。以下逻辑没有给出缓存中(我假设)的当前值:

mh = (xTACMappingHeader)PXSelect< xTACMappingHeader,
                        Where<    xTACMappingHeader.mappingName, Equal<Required<xTACMappingDetail.mappingName>>>>.Select(new PXGraph<FinancialTranslatorMaint>(), md.MappingName);
_Graph.Caches[typeof(YourDAC)].Current
mh=(xTACMappingHeader)PXSelect.Select(new PXGraph(),md.mappingName);
在图之外的图中检索缓存当前值的最佳方法是什么


谢谢…

PXCache对象永远不存在于图形之外。您可以通过PXCustomSelectorAttribute的_graph字段访问当前图形:

protected PXGraph _Graph;
比如:

mh = (xTACMappingHeader)PXSelect<…>.Select(_Graph, md.MappingName);
在初始化缓存时,Acumatica框架为每个字段属性调用上的CacheAttached()方法。PXCustomSelectorAttribute根据当前正在初始化的PXCache对象的Graph属性为_Graph字段赋值:

public class PXCustomSelectorAttribute : PXSelectorAttribute
{
    ...

    public override void CacheAttached(PXCache sender)
    {
        ...

        _Graph = sender.Graph;

        ...
    }

    ...
}

PXCache对象永远不存在于图形之外。您可以通过PXCustomSelectorAttribute的_graph字段访问当前图形:

protected PXGraph _Graph;
比如:

mh = (xTACMappingHeader)PXSelect<…>.Select(_Graph, md.MappingName);
在初始化缓存时,Acumatica框架为每个字段属性调用上的CacheAttached()方法。PXCustomSelectorAttribute根据当前正在初始化的PXCache对象的Graph属性为_Graph字段赋值:

public class PXCustomSelectorAttribute : PXSelectorAttribute
{
    ...

    public override void CacheAttached(PXCache sender)
    {
        ...

        _Graph = sender.Graph;

        ...
    }

    ...
}

您可以使用CacheAttached事件获取图形。见下面的例子

public class YourAttribute : PXEventSubscriberAttribute
{
    private PXGraph _Graph = null;

    public override void CacheAttached(PXCache sender)
    {
        _Graph = sender.Graph;    
        base.CacheAttached(sender);
    }
}

您可以使用CacheAttached事件获取图形。见下面的例子

public class YourAttribute : PXEventSubscriberAttribute
{
    private PXGraph _Graph = null;

    public override void CacheAttached(PXCache sender)
    {
        _Graph = sender.Graph;    
        base.CacheAttached(sender);
    }
}

显然_Graph变量是自定义选择器属性的某种隐式部分。我不知道它是如何得到它的价值的,但它似乎按照您指定的方式工作。我仍然想知道它是如何得到它的价值的,但目前这并不重要。非常感谢_Graph变量是自定义选择器属性的某种隐式部分。我不知道它是如何得到它的价值的,但它似乎按照您指定的方式工作。我仍然想知道它是如何得到它的价值的,但目前这并不重要。多谢