У меня есть необходимость добавить пользовательский диалог на экран Заказа на продажу (SO301000), который по сути будет модифицированной версией существующего диалога «ДОБАВИТЬ СТОРОННУЮ ПУНКТ». Я называю мой "Поиск предметов".
Используя "Cst" в качестве суффикса для моих модов, мне удалось создать созданный диалог, необходимый базовый код в расширении графа (насколько я могу судить пока), но у меня есть только одна часть что я просто не могу заставить работать:
Когда вы нажимаете кнопку «ДОБАВИТЬ СТОРОННУЮ ПУНКТ», сетка в диалоговом окне заполняется данными. Когда вы нажимаете кнопку «ПОИСК ИЗДЕЛИЯ», в таблице нет данных. Однако, если вы нажмете кнопку refre sh сетки, она заполнится данными, фильтры начнут работать, и я могу выбрать несколько строк и нажать «ДОБАВИТЬ», чтобы добавить их в ожидаемый порядок.
Я просто не могу понять, почему в моей сетке нет данных, пока вручную не нажимают «Refre sh».
Я пытался добавить код перед тем, как открыть диалоговое окно, например:
[PXLookupButton]
public virtual IEnumerable AddInvBySiteCst(PXAdapter adapter)
{
/// this if(...) is the custom code I added, doesn't work
if (sitestatusCst.Cache.Current == null)
{
sitestatusCst.View.RequestRefresh();
}
sitestatusfilterCst.Cache.Clear();
if (sitestatusCst.AskExt() == WebDialogResult.OK)
{
return AddInvSelBySiteCst(adapter);
}
sitestatusfilterCst.Cache.Clear();
sitestatusCst.Cache.Clear();
return adapter.Get();
}
Но это не работает.
Я прошел через .aspx код исходного диалогового окна «Inventory Lookup» и моего диалогового окна «Поиск элемента», чтобы увидеть, что я упустил что-то очевидное, и даже изменил мой в режиме .aspx, чтобы настроить некоторые свойства, которые были в исходном диалоговом окне, но не отображались через «Свойства макета».
При необходимости я могу опубликовать часть своего диалогового окна с расширением .aspx и код C# из расширения.
Буду признателен за любые идеи.