Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Acumatica 有人能帮我编辑&;即使在装运状态已确认、已完成或已开具发票后,也在装运屏幕上保存跟踪号字段_Acumatica_Acumatica Kb - Fatal编程技术网

Acumatica 有人能帮我编辑&;即使在装运状态已确认、已完成或已开具发票后,也在装运屏幕上保存跟踪号字段

Acumatica 有人能帮我编辑&;即使在装运状态已确认、已完成或已开具发票后,也在装运屏幕上保存跟踪号字段,acumatica,acumatica-kb,Acumatica,Acumatica Kb,下面是我在ShipmentEntry graph extension中尝试的代码,但未启用save按钮以保存跟踪号的新条目。也由于此代码,整行字段都已启用 protected virtual void SOShipment_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected BaseEvent) { if (BaseEvent != null)

下面是我在ShipmentEntry graph extension中尝试的代码,但未启用save按钮以保存跟踪号的新条目。也由于此代码,整行字段都已启用

 protected virtual void SOShipment_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected BaseEvent)
        {
            if (BaseEvent != null)
                BaseEvent(sender, e);

            SOShipment row = e.Row as SOShipment;

            if (row == null)
                return;


                PXUIFieldAttribute.SetEnabled<SOPackageDetailEx.trackNumber>(sender, row, true);
                Base.Document.Cache.AllowUpdate = true;
                Base.Packages.Cache.AllowUpdate = true;
}

 protected virtual void SOPackageDetailEx_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected BaseEvent)
        {
            if (BaseEvent != null)
                BaseEvent(sender, e);
            SOPackageDetail row = e.Row as SOPackageDetail;
            if (row == null) return;
                PXUIFieldAttribute.SetEnabled<SOPackageDetailEx.trackNumber>(sender, row, true);
        }
protected virtual void soshipping\u RowSelected(PXCache发送方、PXRowSelectedEventArgs e、PXRowSelected BaseEvent)
{
if(BaseEvent!=null)
BaseEvent(发送方,e);
SoShipping行=e.作为SoShipping的行;
if(行==null)
返回;
PXUIFieldAttribute.SetEnabled(发送方,行,true);
Base.Document.Cache.AllowUpdate=true;
Base.Packages.Cache.AllowUpdate=true;
}
受保护的虚拟无效SOPackageDetailEx_RowSelected(PXCache发送方、PXRowSelectedEventArgs e、PXRowSelected BaseEvent)
{
if(BaseEvent!=null)
BaseEvent(发送方,e);
SOPackageDetail行=e.作为SOPackageDetail的行;
if(row==null)返回;
PXUIFieldAttribute.SetEnabled(发送方,行,true);
}

提前感谢您的帮助。

以下代码编辑跟踪号字段的值,并将其保存到数据库中,即使货物已开具发票:

sOPackageDetailEx.TrackNumber = "Some Value";
Base.Packages.Update(sOPackageDetailEx);
Base.Caches[typeof(SOPackageDetailEx)].PersistUpdated(sOPackageDetailEx);

此代码必须在SOShipmentEntry扩展类中编写,其中sOPackageDetailEx是“sOPackageDetailEx”类的实例

只有在数据更改时,或者在缓存上设置IsDirty=True,或者使用带有更新/修改值的缓存设置状态方法时,才启用“保存”按钮。当由于文档状态而禁用整个文档时,您似乎只想启用一个字段。这与最佳实践背道而驰,所以你需要更加努力才能做到这一点。请先尝试AllowUpdate,然后尝试SetEnabled(行,false)以禁用所有字段,然后重新启用需要启用的唯一字段。嗨,Hayk,我不太清楚在哪里放置此代码,请告诉我在哪个事件中或在哪个位置确切地放置此代码。我已尝试此代码SOPackageDetailEx_RowSelected事件和SOShipment_Rowpersisted事件,但我无法修改和保存跟踪nbr更改。