Операция перемещается из поля заголовка в поле строк сетки.Когда поле заголовка будет изменено, обновите строки.Это будет № 2 в вашем вопросе.
В # 1 ваша проблема заключается в том, что представление данных Documents является членом SOOrderEntry graph , а не членом созданного вами расширения SOOrderEntry graph * .В расширении графа контексте вы получаете доступ к свойствам базового графа, используя свойство Base
, поэтому вы должны смотреть на Base.Document
.
Для реализации сначала вы хотите, чтобы поле заголовка вызывало события, когда ономодифицирована.Это достигается путем установки для свойства CommitChanges
элемента управления ASPX значения true
:
![enter image description here](https://i.stack.imgur.com/Eagae.png)
Далее необходимо объявить обработчик события FieldUpdated
дляМодификация поля заголовка крюка и изменение строк сведений на основе поля заголовка:
using PX.Data;
namespace PX.Objects.SO
{
public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
{
public void SOOrder_OrderDesc_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
{
SOOrder order = e.Row as SOOrder;
if (order != null)
{
foreach (SOLine line in Base.Transactions.Select())
{
line.TranDesc = order.OrderDesc;
}
}
}
}
}
Перед изменением поля заголовка: ![enter image description here](https://i.stack.imgur.com/jrrJx.png)
После изменения поля заголовка: ![enter image description here](https://i.stack.imgur.com/90kaD.png)
Я использовал простое назначение =
, чтобы установить значение строки сведений.Вы можете использовать метод SetValue
или SetValueExt
, если вы хотите, чтобы присвоение вызвало событие.Использование SetValueExt
вызовет событие FieldUpdated.