Marek C.

Marek C. Epicor 9 - droga
przez ... na
Ostrołękę

Temat: Warunek IF

Sorry za być może podstawowe pytanie. Jak zapisać warunek If aby był poprawny. Chodzi mi o 4 warunek gdzie ma zwrócić nie liczbę a słowo?

if{INVCDTL.TaxCatID_Description}='Kategoria 23%' then 23 else
if{INVCDTL.TaxCatID_Description}='Kategoria 8%' then 8 else
if{INVCDTL.TaxCatID_Description}='Kategoria 0%' then 0 else
if{INVCDTL.TaxCatID_Description}='Kategoria BEZVAT' then 'BezVat' else
0

Pozdr
MC
Sławomir M.

Sławomir M. Specjalista ds.
jakości
oprogramowania,
Asseco Business S...

Temat: Warunek IF

Rozumiem, że pole w które wchodzą wartości nie jest numeryczne. W takim wypadku przekonwertuj numery na tekst bo tekstu na numery raczej się nie uda ;)

if{INVCDTL.TaxCatID_Description}='Kategoria 23%' then totext(23) else
if{INVCDTL.TaxCatID_Description}='Kategoria 8%' then totext (8) else
if{INVCDTL.TaxCatID_Description}='Kategoria 0%' then totext(0) else
if{INVCDTL.TaxCatID_Description}='Kategoria BEZVAT' then 'BezVat' else
totext (0)

Oczywiście możesz zamiast totext() zastosować ciapki ''. Oczywiście to wszystko jest pięknie jak chodzi Ci tylko o przekształcenie wartości z pola na inną wartość. Jeżeli chcesz uzyskać pola numeryczne i tekstowe to nie wiem czy jest taka możliwość.Sławomir Malinowski edytował(a) ten post dnia 19.10.11 o godzinie 11:22

konto usunięte

Temat: Warunek IF

if{INVCDTL.TaxCatID_Description}='Kategoria BEZVAT' then 'BezVat' else
'0'

ewentulanie przy użyciu CStr(0)

tutaj help;)
http://publib.boulder.ibm.com/infocenter/rtnlhelp/v6r0...Mateusz H. edytował(a) ten post dnia 19.10.11 o godzinie 11:57
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Warunek IF

Crystal Reports ustala typ formuły na podstawie pierwszej zwracanej wartości.
Czyli jeśli pierwsza wartość jest tekstowa to wszystkie pozostałe też muszą być tekstowe. Nie można tego mieszać.

Możesz skonwertować liczbę do tekstu za pomocą funkcji ToText lub CStr lub w drugą stronę za pomocą ToNumber.
W twoim przypadku, skoro chcesz mieć tekst "BezVAT" to lepiej skonwertować wszystko na tekst.

Poza tym zamiast stosowania wielu if'ów proponuję użyć konstrukcji select - case, bo będzie ładnie i przejrzyście:

select {INVCDTL.TaxCatID_Description}
case 'Kategoria 23%': '23'
case 'Kategoria 8%': '8'
case 'Kategoria 0%': '0'
case 'Kategoria BEZVAT': 'BezVat'
default: '0'

Weż jednak pod uwagę, że jakiś czas mogą się zmienić stawki VAT i będziesz musiał poprawić ten raport.
Lepiej w takich przypadkach stosować automatyczne mechanizmy np. grupowanie niż "hardcodować" stawki VAT.
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Warunek IF

Więcej na temat funkcji warunkowych (if i inne) opisałem na moim blogu:
http://sulmar.blogspot.com/2011/10/funkcje-warunkowe.html

Następna dyskusja:

Zakres dat jako warunek ins...




Wyślij zaproszenie do