Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: Lucus w Luty 24, 2022, 16:00:35

Tytuł: Kontrolka z wartością (dowolna)
Wiadomość wysłana przez: Lucus w Luty 24, 2022, 16:00:35
Hej,

Tworzę sobie w zestawieniu kontrolkę z wartością (dowolna) jak poniżej:
{CHL_DB: SELECT -1, '(dowolna)' UNION ALL SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw:Grupa:-1:(dowolna)}Problem mam taki, że mimo wpisania w wartości domyślnej -1 po włączeniu zestawienia nie wyświetla mi się lista produktów (samo kliknięcie wylicz też nic nie daje).
Musze dopiero wejść w kontrolkę (tam jest zaznaczona opcja "dowolna") i dać ok, a następnie wylicz.
Czy da się jakoś sprawić, aby od razu wyświetlały się towary z dowolnej grupy?
Może częściowym rozwiązaniem byłoby zaznaczenie od razu wszystkich grup? (tylko jak to napisać?)

Zauważyłem też, że w "Towary i usługa" zaznaczenie grupa dowolna wyświetla również towary z grupą "brak", a w zestawieniu własnym są one pomijane. Z czego to wynika?
Tytuł: Kontrolka z wartością (dowolna)
Wiadomość wysłana przez: yemet w Luty 24, 2022, 16:22:17
"Brak" to nie jest prawdziwa grupa. Towary, które są oznaczone grupą "brak" mają NULLa  w tw_idgrupa. W słowniku grup towarowych nie ma wpisu z NULLem. To samo dotyczy innych słowników, np. cech i kategorii. Da się to z tym poradzić np. isnullem na tw_idrgupa i joinem na słownik grup, który to uwzględni.

Spróbuj tak (pisane z pamięci):

... in ( ({CHL_DB: SELECT -1, '(dowolna)' UNION ALL SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw:Grupa:-1:(dowolna)})
or -1 in  ({CHL_DB: SELECT -1, '(dowolna)' UNION ALL SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw:Grupa:-1:(dowolna)})
)
Tytuł: Odp: Kontrolka z wartością (dowolna)
Wiadomość wysłana przez: Lucus w Luty 25, 2022, 14:41:28
Działa, tylko bez objęcia w podwójne nawiasy :)
Tylko:
... in ({CHL_DB: SELECT -1, '(dowolna)' UNION ALL SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw:Grupa:-1:(dowolna)})
or -1 in  ({CHL_DB: SELECT -1, '(dowolna)' UNION ALL SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw:Grupa:-1:(dowolna)})
Dla odwiedzających w przyszłości - dodając ORDER BY trzeba by nazwać wszystkim nazwom na liście wspólne określenie:
... in ({CHL_DB: SELECT -1, '(dowolna)' AS Nazwa UNION ALL SELECT grt_Id, grt_Nazwa AS Nazwa FROM sl_GrupaTw ORDER BY Nazwa:Grupa:-1:(dowolna)})
or -1 in  ({CHL_DB: SELECT -1, '(dowolna)' AS Nazwa UNION ALL SELECT grt_Id, grt_Nazwa AS Nazwa FROM sl_GrupaTw ORDER BY Nazwa:Grupa:-1:(dowolna)})

Dzięki Wielkie  :D
Tytuł: Odp: Kontrolka z wartością (dowolna)
Wiadomość wysłana przez: birds22 w Luty 25, 2022, 15:12:26
Uściślę odnoście ORDER:
Jeżeli chcemy sortować po aliasie to musi on być w pierwszym SELECT. W kolejnym nie musi go być wcale albo może być zupełnie inny
Poniższe też zadziała:
Cytuj
SELECT -1, '(dowolna)' AS Nazwa
UNION ALL
SELECT grt_Id, grt_Nazwa AS NazwaInna
FROM sl_GrupaTw
ORDER BY Nazwa

Ale równie dobrze możesz posortować po numerze kolumny czyli ORDER BY 2 i nie musisz mieć aliasu.
Tytuł: Odp: Kontrolka z wartością (dowolna)
Wiadomość wysłana przez: Lucus w Luty 25, 2022, 15:17:43
@birds22
Dzięki za twój post. Nie wiedziałem, że to działa w ten sposób.