2015-05-05 4 views
0

Я пытаюсь добавить новую кнопку на панели инструментов рядом с надписью «TAKE CASE» на экране Case (CR306000). Я настроил CRCaseMaint DAC, но кнопка не появляется. Может кто-нибудь предложить.Добавить кнопку на верхнюю панель инструментов на экране Case

+0

Можете ли вы поделиться код, который вы добавили? – Gabriel

ответ

0

реплицировано это и проблема и решение было PXAction должно быть общедоступным. В примере выше его обозначено как личное.

код следующим образом работы:

public class CaseExtension : PXGraphExtension<CRCaseMaint> 
{ 
    public PXAction<CRCase> Change2; 

    [PXButton(CommitChanges=true)] 
    [PXUIField(DisplayName="Change Me")] 
    protected virtual void change2() 
    { 

    } 
} 
+0

Спасибо Али за вашу помощь. – Krunal

0

Следующие шаги необходимы для вас:
1. Создайте библиотеку классов (CL). .
2. Ссылка в созданных CL DLLs из папки Acumatica, которые начинаются с ПХ *
3. В CL добавить новый класс CRCaseMaintExt с членом TakeCase так:

public class CRCaseMaintExt : PXGraphExtension<CRCaseMaint> 
{ 
     private PXAction<CRCase> TakeCase2; 

     [PXButton] 
     [PXUIField(DisplayName = "Take Case")] 
     public virtual IEnumerable takeCase2(PXAdapter adapter) 
     { 
      //your custom code 
      return adapter.Get(); 
     } 
} 

4. Принять к сведению, что случай в TakeCase и takeCase. Также имеет значение PXAction
5. Построить CL
6. Добавить ссылку на CL в проект Acumatica.

+0

Это дает мне ошибку компиляции, как показано ниже. – Krunal

+0

Тип «PX.Objects.CR.CRCaseMaint» не может использоваться как параметр типа «Таблица» в общем типе или методе «PX.Data.PXCacheExtension

». Нет никакого неявного преобразования ссылок из 'PX.Objects.CR.CRCaseMaint' в 'PX.Data.IBqlTable'. – Krunal

+0

О, извините, пожалуйста, замените PXCacheExtension на PXGraphExtension. Я также изменил ответ –

0

Вот еще одна причина. На базовой схеме находится код

public PXAction<CRCase> takeCase; 
     [PXUIField(DisplayName = "Take Case", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Select)] 
     [PXButton] 
     public virtual IEnumerable TakeCase(PXAdapter adapter) 

У самой Acumatica есть кнопка TakeCase, которая блокирует вашу кнопку TakeCase. Вам нужно понять, зачем вам нужна еще одна кнопка Take Case, потому что команда Acumatica уже реализовала ее. Вы уверены, что хотите его заменить?

+0

Нет. Я не хочу заменять существующую кнопку. Я хочу создать одну новую кнопку «CreateCase», через которую я хочу отправить дело на другой сайт. – Krunal

+0

Тогда вы можете использовать TakeCase2, который находится в модифицированном первом ответе –

Смежные вопросы