Witam, w makiecie dokumentu próbujemy wstawić warunek, którego wartość będzie wynikiem zapytania z bazy SQL lub funkcji .
Poniższe warunki nie działają :
#IF "#DZI_Nazwa#$Znak[1]"#="a"
#IF "$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}"#="abc"
#IF "$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}"="abc"#
Taki warunek nie wyrzuca błędu jednak pomimo takich samych wartości zawsze wyświetlana jest zawartośc po #ELSE :
#IF "#DZI_Nazwa#"="abc nazwa pełna"#
Czy przyczyną braku działania jest błąd w składni czy program nie obsługuje tego typu zapytań?
Dziękuję
Problem z zagnieżdzonym, wewnętrznym zapytaniem w warunku IF
- Tomasz Drzewiecki
- Posty: 8
- Rejestracja: śr, 03 kwietnia 2019 12:01
- Lokalizacja: Warszawa
- Kontakt:
Witam,
Dołączam się do kolegi z którym pracujemy nad tym tematem.
1. Tak, potwierdzam że program obsługuje SQL, gdyż jeśli np. z zapytania wewnątrz IF
#IF "$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}"="abc"#
wyrzucimy cudzysłowy
#IF $SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}="abc"#
to program wypisuje błąd składni.
2. Samo zapytanie #IF działa i na przykładzie porównań z polami z danymi np. nazwa działu - wypisuje wartość, więc składnia jest spełniona
3. Samo zapytanie SQL wstawione w makietę też działa i wyświetla dokładnie oczekiwane 3 znaki, np. "abc".
$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}
Więc tutaj nie jest problem
4. Jednak połączenie dynamicznego zapytania/funkcji pobrania znaku + funkcji #IF nie potrafi rozpoznać wartości "abc" i zawsze wchodzi nam w warunek #ELSE#
Proszę o podanie dowolnego i działającego przykładu zastosowania połączenia IF z SQL lub z funkcją np. $Znak[1]
Z góry dziękuję!
Pozdrawiam,
Tomasz Drzewiecki
Shared Masters sp. z o.o.
Dołączam się do kolegi z którym pracujemy nad tym tematem.
1. Tak, potwierdzam że program obsługuje SQL, gdyż jeśli np. z zapytania wewnątrz IF
#IF "$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}"="abc"#
wyrzucimy cudzysłowy
#IF $SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}="abc"#
to program wypisuje błąd składni.
2. Samo zapytanie #IF działa i na przykładzie porównań z polami z danymi np. nazwa działu - wypisuje wartość, więc składnia jest spełniona
3. Samo zapytanie SQL wstawione w makietę też działa i wyświetla dokładnie oczekiwane 3 znaki, np. "abc".
$SQL{SELECT Left(d.nazwa, 3) FROM pracownk p, dzial d WHERE p.X_IDzial=d.X_I AND p.X_I={PRACOWNICY.X_I}}
Więc tutaj nie jest problem
4. Jednak połączenie dynamicznego zapytania/funkcji pobrania znaku + funkcji #IF nie potrafi rozpoznać wartości "abc" i zawsze wchodzi nam w warunek #ELSE#
Proszę o podanie dowolnego i działającego przykładu zastosowania połączenia IF z SQL lub z funkcją np. $Znak[1]
Z góry dziękuję!
Pozdrawiam,
Tomasz Drzewiecki
Shared Masters sp. z o.o.