2016-09-28 3 views
2

У меня есть пользовательская страница обработки. Основным ЦАП просмотра данных является ARRegister, но есть делегат представления данных. И вид & делегат присоединиться ARCashSale & ARInvoice к основной ЦАП, Причина этого заключается в том ... некоторые записи наличных продаж, а также другие счета, просроченные платежи, ЭСТ. Включены несколько столбцов сетки, в которых отображаются данные, специфичные для продажи наличных денег. Я вызываю статический метод в графе процессов, чтобы назначить делегат процесса. Метод работает без ошибок.Данные на экране обработки исчезают

В делегате представления данных я проверяю тип документа для каждой записи, возвращенной с BQL.
Если продажа за наличные, то yield return new PXResult<ARRegister, ARCashSale>(register, cashsale) ELSE yield return new PXResult<ARRegister>(register)

Причина делегат должен проверить некоторые другие условия, которые не могут быть определены с использованием стандартных BQL. Я замечаю, что данные в столбце, специфичные для продажи наличных денег, исчезают после того, как пользователь выбирает «Обработать все». Я не могу определить причину. Проверка на то, видели ли другие это.

DataView

public PXProcessingJoin<ARRegister, 
     LeftJoin<cs.ARCashSale, On<ARRegister.docType, Equal<cs.ARCashSale.docType>, And<ARRegister.refNbr, Equal<cs.ARCashSale.refNbr>>>, 
     LeftJoin<ARInvoice, On<ARRegister.docType, Equal<ARInvoice.docType>, And<ARRegister.refNbr, Equal<ARInvoice.refNbr>>>, 
      InnerJoin<Customer,On<ARRegister.customerID,Equal<Customer.bAccountID>>>>>, 
     Where2<Where<ARRegister.released, Equal<True>, And<ARRegister.branchID, Equal<Current<AccessInfo.branchID>>>>, 
      And<Where<Customer.finChargeApply,Equal<True>>>>> Registers; 
+0

У меня тоже есть подобная проблема, после нажатия кнопки процесса информация в соединенных столбцах исчезает. – Hybridzz

ответ

0

Вы поиграли с MatrixMode и/или SyncPosition на вашей странице сетки? Возможно, вам понадобится SyncPosition = «True» Также возникает проблема, если не используется весь процесс? (процесс 1 или 2 строки)

0

Это старый вопрос, но у меня была аналогичная проблема.

Вам необходимо добавить логическое поле с именем «Selected» для ЦАП, которое вы хотите обработать.

Способ, которым я решил использовать локальный ЦАП. Вы можете сделать это наследованием от ARRegister и просто добавить нужное поле.

В моем случае я использовал PXProjection, унаследованный от основного ЦАП, и добавил поля, которые мне нужны из объединенных ЦАП. Обратите внимание, что вам нужно добавить свойство BqlField = typeof(DAC.field) в атрибут типа этих полей, чтобы сопоставить их с правильным ЦАП.

Затем в представлении PXProcessing вы просто используете свой местный ЦАП.

Кроме того, при поиске неисправностей BQL очень полезно попробовать экран Профилировать запрос (SM205070).