Problem z zagnieżdzonym, wewnętrznym zapytaniem w warunku IF

Napisz jakie masz sugestie oraz pytania odnośnie działania programów R2płatnik, R2płatnikPRO, R2płatnikSBO. Możesz tu także zgłaszać wszelkie błędy, usterki czy nieprawidłowości nieopisane w części FAQ, z którymi spotkałeś się podczas pracy z programami.
LeszekL
Posty: 1
Rejestracja: śr, 03 kwietnia 2019 12:35
Lokalizacja: Warszawa

Problem z zagnieżdzonym, wewnętrznym zapytaniem w warunku IF

Post autor: LeszekL » śr, 03 kwietnia 2019 12:55

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ę
Awatar użytkownika
maciejg
 
Posty: 90
Rejestracja: pn, 22 października 2018 11:55
Lokalizacja: SYMFONIA sp. z o.o.
Kontakt:

Post autor: maciejg » czw, 04 kwietnia 2019 8:55

Program obsługuje sql. Proszę sprawdzić czy są domknięte END IF-y. Prawdopodobnie zapytanie jest niewłaściwe.
Awatar użytkownika
Tomasz Drzewiecki
Posty: 8
Rejestracja: śr, 03 kwietnia 2019 12:01
Lokalizacja: Warszawa
Kontakt:

Post autor: Tomasz Drzewiecki » czw, 04 kwietnia 2019 10:05

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.
ODPOWIEDZ