Просмотр данных не обновляется sh с проекционным ЦАП - PullRequest
0 голосов
/ 06 мая 2020
• 1000 отображается в соответствии с выбранным INKitRegister.

Например, если выбрана сборка комплекта «A», тогда в таблице расширений отображаются данные, связанные с «A», но когда я нажимаю на навигацию, тогда отображаются данные «A», а не другие выбранные данные INKitRegister . но когда выбрано a, то поля расширения не отображаются, но после отображения данных «A» всегда отображаются данные «A», а не другие данные сборки навигационного набора, что я делаю не так?

Я использовал ниже запрос для таблицы расширений в Extension Graph

    public PXSelect<INRegisterKitAssemblyExt,
                      Where<INRegisterKitAssemblyExt.refNbr,
                       Equal<Current<INKitRegister.refNbr>>, And<INRegisterKitAssemblyExt.kitRevisionID, Equal<Current<INKitRegister.kitRevisionID>>>>> RegisterAssemblyExtDtl;

protected virtual void INKitRegister_KitInventoryID_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e) {
    if(RegisterAssemblyExtDtl.Current == null) {
                RegisterAssemblyExtDtl.Insert();
            }
 RegisterAssemblyExtDtl.Current.Text = "Value of A";
}

1 Ответ

0 голосов
/ 06 мая 2020

Первичный DA C представления данных PXSelect не должен принадлежать классу расширения:

PXSelect<INRegisterKitAssemblyExt, ...

Вместо этого следует использовать базовый DA C расширения:

PXSelect<INKitRegister, ..

INKitRegister - это проекция DA C в INRegister DA C:

[PXPrimaryGraph(typeof(KitAssemblyEntry))]
[PXCacheName(Messages.INKit)]
[PXProjection(typeof(Select2<INRegister, InnerJoin<INTran, On<INRegister.FK.KitTran>>>), 
              Persistent=true)]
[Serializable]
public partial class INKitRegister : IBqlTable, ILSPrimary

Вы пытаетесь добавить привязанное к базе данных поле в проекцию INKitRegister, но таблица базы данных INKitRegister не существует:

public class INRegisterKitAssemblyExt: PXCacheExtension<INKitRegister>

Вы должны использовать расширение DA C в реальной таблице базы данных INRegister, используемой проекцией для сохранения полей:

public class INRegisterKitAssemblyExt: PXCacheExtension<INRegister>
...