Zmodyfikowałem formularz InventTable, aby użytkownicy mogli filtrować elementy w zależności od statusu "Zatrzymano" w formularzu ustawień domyślnych ustawień zamówień . Dostają listę "kupowalnych" przedmiotów, "nadających się do sprzedaży" przedmiotów, wszystkich przedmiotów lub zablokowanych przedmiotów do sprzedaży lub zakupu w zależności od wartości dwóch pól wyboru.Dynamika AX: Wyłącz źródło danych z formularza w kodzie przy jednoczesnym użyciu zaawansowanej opcji filtrowania/sortowania
Dodałem źródła danych InventItemSalesSetup i InventItemPurchSetup w kodzie i włączam je lub wyłącza, gdy użytkownik zaznaczy lub odznacza pole wyboru.
Wszystko działa poprawnie, chyba że jedno z źródeł danych jest wyłączone. Następnie opcja "Zaawansowane filtrowanie/sortowanie" przestaje działać. Pojawia się błąd: "Źródło danych nie jest włączone".
Błąd pochodzi z metody "saveCueEnabled" formularza SysQueryForm. Kiedy to nazywa:
if (!CueRun::canSaveQueryAsCue(this.args().caller()))
return false;
który wzywa:
static boolean canSaveQueryAsCue(QueryRun qr)
{
int numOfDataSources, i;
QueryBuildDataSource ds;
Query q;
Common cursor;
;
if (!qr)
return false;
q = qr.query();
if (!q)
return false;
numOfDataSources = q.dataSourceCount();
for(i = 1; i <= numOfDataSources; i++)
{
ds = q.dataSourceNo(i);
if(ds.dynalinkCount() > 0)
return false;
// Check if it is temp
cursor = qr.getNo(i);
if (cursor.dataSource() && cursor.isTmp())
return false;
}
return true;
}
Kiedy robi się numer kodu źródłowego w kwerendzie „dataSourceCount” metoda zwraca również liczyć z niepełnosprawnymi źródeł danych, a gdy Otrzymuje QueryBuildDataSource z wyłączonych źródeł danych w pętli otrzymasz pusty DS i ulega awarii, gdy sprawdza, czy jest to tabela tymczasowa.
Rozwiązałem problem, dodając dodatkowe, jeśli w kodzie "saveCueEnabled", ale zastanawiam się, czy istnieje sposób, aby włączyć/wyłączyć źródła danych bez uzyskania tego błędu.
Mam nadzieję, że wyjaśniłem się dobrze, dziękuję!
Myślę, że to powinno zadziałać. Dzięki, spróbuję, jeśli jeszcze raz pojawię się z tym problemem. –