2016-12-24 2 views
0

Im пытается создать пользовательскую страницу обработки на вкладке пользовательской страницы. Im работает с пользовательским расширением и имеет DAC, объявленный в моем классе расширения.Acumatica Добавление страницы обработки на вкладке

Im не в состоянии установить DataMember моего графа к моему объекту PXProcessing

Моей обработка BLC

public class tableProcess: PXGraph<submittalProcess> { public PXCancel<PX.Objects.PM.ProjectEntry_Extension.ProjectLinesTable> Cancel; public PXProcessing<PX.Objects.PM.ProjectEntry_Extension.ProjectLinesTable, Where<PX.Objects.PM.ProjectEntry_Extension.ProjectLinesTable.contractID, Equal<Current<Contract.contractID>>>> fixtureItems; public submittalProcess()
{ fixtureItems.SetProcessCaption("Approve"); fixtureItems.SetProcessAllCaption("Approve All"); fixtureItems.SetProcessDelegate<ProjectCustom.submittal>(delegate(ProjectCustom.submittal graph, PX.Objects.PM.ProjectEntry_Extension.ProjectLinesTable items) { graph.Clear(); graph.ApproveOrder(items, true); }); } }

Главной BLC delcaring действию

public class submittal: PXGraph<submittal,  ProjectEntry_Extension.atcProjectLinesTable> 
{ 
    public PXSelect<ProjectEntry_Extension.atcProjectLinesTable> Orders; 
    public void ApproveOrder(ProjectEntry_Extension.atcProjectLinesTable order, bool isMassProcess = false) 
    { 
    Orders.Current = order; 

Orders.Update(order); 
Persist(); 
if (isMassProcess) 
{ 
PXProcessing.SetInfo(String.Format(
"Order {0} has been successfully approved.", order.ItemNumber)); 
} 
} 


public PXAction<ProjectEntry_Extension.atcProjectLinesTable> Approve; 
[PXProcessButton] 
[PXUIField(DisplayName = "Approve")] 
protected virtual IEnumerable approve(PXAdapter adapter) 
{ 
foreach (ProjectEntry_Extension.atcProjectLinesTable order in adapter.Get()) 
{ 
Actions.PressSave(); 
PXLongOperation.StartOperation(this, delegate() 
{ 
submittal graph = PXGraph.CreateInstance<submittal>(); 
graph.ApproveOrder(order); 
}); 
yield return order; 
} 
} 

Ive пытался использовать их пространства имен присвойте tableProcess.fixtureItems для сетки, но вне ее класса расширения.

Есть ли способ инициализировать tableProcess в моем классе ProjectEntry_Extension?

ответ

2

В настоящее время Acumatica не позволяет создавать вложенные страницы в пределах вкладки другой страницы. В вашем случае было бы лучше эмулировать внешний вид экрана обработки внутри вкладки путем объявления столбца выбора и кнопок «Процесс/Процесс» для сетки обработки. Чтобы запустить некоторый процесс для выбранных или всех записей в сетке обработки, используйте статический метод PXLongOperation.StartOperation, как описано в разделе . Выполнение операций обработки в разделе T200 учебный курс.