Мне нужно использовать свой настраиваемый атрибут для запуска события, в этом случае мне нужно, чтобы usrTextileItem==true активировал поле usrTextileItemType для visible=true.
вот моя декларация в расширении для текстиля
[PXBool]
[PXUIField(DisplayName="Textile Item")]
вот моя декларация в расширении для типа текстильного изделия
[PXDBString(1)]
[PXUIField(DisplayName="Textile Item Type", Visible=false)]
[PXDefault("C")]
[PXStringList(
new string[]{
"C","Y","B","F"
},
new string[]{
"Cotton", "Yarn","Beam","Finish Goods"
})]
а это мой нынешний InventroyMaint__Extension
protected void InventoryItem_UsrTextileItem_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
{
InventoryItem row = (InventoryItem)e.Row;
InventoryItemExt ext = cache.GetExtension<InventoryItemExt>();
if(ext.usrTextileItem==true){
PXUIFieldAttribute.SetVisible<InventoryItemExt.usrTextileItemType>(cache, row, true);
}
}
и я не могу получить значение расширения, и у меня есть 3 ошибки, в которых говорится: Первая ошибка:
«PX.Data.PXCache» не содержит определения для «GetExtension», а лучшая перегрузка метода расширения «PX.Data.PXCacheEx.GetExtension(PX.Data.IBqlTable)» содержит некоторые недопустимые аргументы в файле: Code#InventoryItemMaint(37 )
Аргумент экземпляра: невозможно преобразовать из «PX.Data.PXCache» в «PX.Data.IBqlTable» в файле: Code#InventoryItemMaint(37)
'usrTextileItem': нельзя ссылаться на тип через выражение; попробуйте «PX.Objects.IN.InventoryItemExt.usrTextileItem» вместо этого в файле: Code#InventoryItemMaint(39)