wersja 4411. W bazie z wieloma obiektami, lista pokoi wybranego obiektu może być pusta.
Zakładam, że mamy bazę z 2 lub więcej obiektami. Każdy obiekt ma przynajmniej jeden pokój. W danych wspólnych wchodzimy w listę pokoi, widzimy wszystkie, możemy je filtrować rozwijalnymi listami z położeniem lub obiektem (powiedzmy A, B, C). Wybieramy jeden z obiektów (obiekt A), zamykamy okno.
Wchodzimy na listę obiektów, zaznaczamy obiekt B, dolna ikona pokoje - lista jest pusta.
- dla obiektu A będzie zapełniona
- dla obiektu B jest pusta
- dla obiektu C jest pusta
Okazuje się, że lista wywołana przez dolna ikonę Pokoje jest filtrowana podwójnie: raz przez obiekt, dla którego została wywołana, raz przez własne ustawienie - tu już niedostępne, a zapamiętane w chwili zamknięcia pełnej listy pokoi. Zatem w naszym przykładzie, lista wywoływana przez dolna ikonę pokoje ma pokazać pokoje należące do obiektu B oraz do obiektu A (SELECT .... WHERE OBIEKT_ID = 1 AND OBIEKT_ID = 2). Żaden pokój nie ma pola obiekt_id wypełnionego wartością obu obiektów jednocześnie, więc żaden pokój nie będzie widoczny. Trzeba więc otworzyć ogólną listę pokoi, wyłączyć filtrowanie obiektu, i wtedy wszystko wraca do normy.
Obiekty - zaginione pokoje
Wręcz oczekuję, że prawa użytkownika do obiektu ograniczą widoczność pokoi tegoż. Tego nie sprawdzałem, mój użytkownik miał prawa do wszystkich obiektów.
Proszę odtworzyć sobie opisane przez mnie zachowanie, a okaże się, że:
- (1) wywołanie listy pokoi bezpośrednio ma dostępny filtr obiektu
- (2) wywołanie listy pokoi dla obiektu (dolna ikona z listy obiektów) otwiera listę pokoi bez dostępnego filtra w postaci listy rozwijalnej
Zależność od obiektu może i jest faktycznie sprawdzana tak, jak opisana, ale filtr obiektu jest zapamiętywany (chyba w rejestrze, bo jest pamiętany po zamknięciu programu).
Filtr wybrany w oknie (1) jest pamiętany w oknie (2). Dlatego jeśli w oknie (1) ustawię widoczność pokoi tylko Obiektu A, przejdę na listę obiektów, wybiorę Obiekt B i dla niego otworzę listę pokoi (2), to nakładające się filtry będą szukać pokoi spełniających nieistniejący warunek: należących do dwóch obiektów.
edit: filmik pokazujący błąd
Proszę odtworzyć sobie opisane przez mnie zachowanie, a okaże się, że:
- (1) wywołanie listy pokoi bezpośrednio ma dostępny filtr obiektu
- (2) wywołanie listy pokoi dla obiektu (dolna ikona z listy obiektów) otwiera listę pokoi bez dostępnego filtra w postaci listy rozwijalnej
Zależność od obiektu może i jest faktycznie sprawdzana tak, jak opisana, ale filtr obiektu jest zapamiętywany (chyba w rejestrze, bo jest pamiętany po zamknięciu programu).
Filtr wybrany w oknie (1) jest pamiętany w oknie (2). Dlatego jeśli w oknie (1) ustawię widoczność pokoi tylko Obiektu A, przejdę na listę obiektów, wybiorę Obiekt B i dla niego otworzę listę pokoi (2), to nakładające się filtry będą szukać pokoi spełniających nieistniejący warunek: należących do dwóch obiektów.
edit: filmik pokazujący błąd