Скрытие пользовательских полей в опции копирования за - PullRequest
0 голосов
/ 22 мая 2019

Как скрыть поле при копировании и прошлом.Поле является частью расширения заказа на продажу. DAC.

Я пытался [PXCopyPasteHiddenFields (typeof (PSSOOrderExtNV.usrIsInHandsDate))], и я получаю следующую ошибку компиляции.

ОшибкаCS0592 Атрибут 'PXCopyPasteHiddenFields' недопустим в этом типе объявления.Он действителен только для объявлений 'class, field'.

Я попытался переопределить метод CopyPasteGetScript. Я не получил желаемый результат.

public delegate void CopyPasteGetScriptDelegate(Boolean isImportSimple, List<Command> script, List<Container> containers);
    [PXOverride]
    public void CopyPasteGetScript(Boolean isImportSimple, List<Command> script, List<Container> containers, CopyPasteGetScriptDelegate baseMethod)
    {
        baseMethod(isImportSimple, script, containers);
        SOOrder order = Base.Document.Current;
        if(Base.Document.Cache.GetStatus(order) == PXEntryStatus.Inserted)
        {
            PSSOOrderExtNV extn = PXCache<SOOrder>.GetExtension<PSSOOrderExtNV>(order);
            extn.UsrHoldUntil = null;
            extn.UsrReadyforProductionapproval = null;
            extn.UsrReadyForProduction = null;
            extn.UsrIsOrdered = null;
            extn.UsrIsAllocated = null;
            extn.UsrEmbPaperReceived = null;
            extn.UsrEmbGoodsReceived = null;
            extn.UsrWorksheetPrinted = null;
            extn.UsrGoodsOnCarts = null;
            Base.Document.Update(order);
        }
    }

Обновление

Я изменил код, как показано ниже в расширении графа SOOrderEntry.Он не выдает ошибку при компиляции, но копирует значения в новый порядок.

        [PXCopyPasteHiddenFields(typeof(SOOrder.cancelled), typeof(SOOrder.preAuthTranNumber), typeof(SOOrder.ownerID), typeof(SOOrder.workgroupID), 
                             typeof(PSSOOrderExtNV.usrHoldUntil),typeof(PSSOOrderExtNV.usrReadyForProduction),typeof(PSSOOrderExtNV.usrReadyforProductionapproval),typeof(PSSOOrderExtNV.usrIsOrdered),
                             typeof(PSSOOrderExtNV.usrIsAllocated),typeof(PSSOOrderExtNV.usrEmbPaperReceived),typeof(PSSOOrderExtNV.usrEmbGoodsReceived),typeof(PSSOOrderExtNV.usrWorksheetPrinted),
                             typeof(PSSOOrderExtNV.usrGoodsOnCarts))]
    public PXSelect<SOOrder, Where<SOOrder.orderType, Equal<Current<SOOrder.orderType>>, And<SOOrder.orderNbr, Equal<Current<SOOrder.orderNbr>>>>> CurrentDocument;

1 Ответ

0 голосов
/ 22 мая 2019

Атрибут PXCopyPasteHiddenFields обычно украшает DataViews.

В этом примере на графике заказа на продажу скрывается поле SOLine.Completed из DataView транзакций:

[PXViewName(Messages.SOLine)]
[PXImport(typeof(SOOrder))]
[PXCopyPasteHiddenFields(typeof(SOLine.completed))]
public PXOrderedSelect<SOOrder, SOLine,
    Where<SOLine.orderType, Equal<Current<SOOrder.orderType>>,
        And<SOLine.orderNbr, Equal<Current<SOOrder.orderNbr>>>>,
    OrderBy<Asc<SOLine.orderType, Asc<SOLine.orderNbr, Asc<SOLine.sortOrder, Asc<SOLine.lineNbr>>>>>> Transactions;
...