opis towaru na wydruku

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

pawcio
Posty: 26
Rejestracja: 02 paź 2008, 10:55
Rola: Użytkownik CDN XL
Wersja: 9.2

opis towaru na wydruku

Post autor: pawcio »

Witam,
W kartotece towaru jest opis.
W opisie są różne informacje.
Chciałbym wyciągnąć na wydruk tylko część tych informacji.
Treść mógłbym rozdzielić jakimś znakiem i pierwsza część takiego opisu do tego znaku będzie wyciągana na wydruk, reszta nie.

Kod użyty w tej chwili wyciąga cały opis:

Kod: Zaznacz cały

{ZamElem.ZaE_TwrNazwa} + '  ' + (IF ISNULL({ZaEOpisy.ZeO_Opis}) Then '' Else {ZaEOpisy.ZeO_Opis})
Czy ma ktoś pomysł / patent?

Pozdrawiam

hundzik
Posty: 301
Rejestracja: 11 mar 2008, 19:08
Rola: Administrator CDN XL
Wersja: 9.6.1
Lokalizacja: lubelszczyzna.

Re: opis towaru na wydruku

Post autor: hundzik »

wyciagniecie kawalka stringa z nazwy towaru - a mianowicie wszystkiego do znaku malpy:

SUBSTRING(Twr_Nazwa, 1, CHARINDEX('@', Twr_Nazwa) - 1)

sadze ze powinienes sobie poradzic dalej. nie wiem tylko jak w przypadku opisu potraktuje to znak konca lini - bo w opisie przeciez sa. no chyba ze to akurat u ciebie nie ma znaczenia.

pozdrawiam.

pawcio
Posty: 26
Rejestracja: 02 paź 2008, 10:55
Rola: Użytkownik CDN XL
Wersja: 9.2

Re: opis towaru na wydruku

Post autor: pawcio »

nie jestem dobry w te klocki, wydruki edytuje w Crystal Reports bo tyle potrafie.
języka SQL nie znam jeszcze i trochę to potrwa.

nie mogę użyć tej składni w CR, nie rozpoznaje komend, nawet gdy chciałbym ją użyć do wyciągania części nazwy.

pozdrawiam

Awatar użytkownika
pores
Posty: 254
Rejestracja: 14 lip 2008, 13:53
Rola: Inny
Wersja: 2023
Kontakt:

Re: opis towaru na wydruku

Post autor: pores »

no to w CR bedziesz to samo miał tak:

left({ZamElem.ZaE_TwrNazwa}, InStr ({ZamElem.ZaE_TwrNazwa},'@' ))
pozdrawiam

stefan poręba
http://www.dobrafarma.pl

pawcio
Posty: 26
Rejestracja: 02 paź 2008, 10:55
Rola: Użytkownik CDN XL
Wersja: 9.2

Re: opis towaru na wydruku

Post autor: pawcio »

Dzięki dla ciebie "pores", po przerobieniu dla swoich potrzeb zadiałało.

Kod wygląda tak:

Kod: Zaznacz cały

{ZamElem.ZaE_TwrNazwa} + '  ' + (IF ISNULL({ZaEOpisy.ZeO_Opis}) Then '' 

Else 

Left ({ZaEOpisy.ZeO_Opis}, instr ({ZaEOpisy.ZeO_Opis}, '@')))
ale nie pomyślałem, że mogą być towary, w których będzie tylko opis niedostępny dla klienta, czyli znak rozdzielający @ też nie powinnien się pojawiać.
Może masz jakiś pomysł?

Siedziałem, grzebałem i nie mogę nic wymyśleć.
Tak jak mówiłem, jestem słaby w tym :( .

Pozdrowienia

Geronimo
Posty: 18
Rejestracja: 06 lut 2009, 19:17
Rola: Administrator CDN XL

Re: opis towaru na wydruku

Post autor: Geronimo »

pawcio pisze:Dzięki dla ciebie "pores", po przerobieniu dla swoich potrzeb zadiałało.

Kod wygląda tak:

Kod: Zaznacz cały

{ZamElem.ZaE_TwrNazwa} + '  ' + (IF ISNULL({ZaEOpisy.ZeO_Opis}) Then '' 

Else 

Left ({ZaEOpisy.ZeO_Opis}, instr ({ZaEOpisy.ZeO_Opis}, '@')))
ale nie pomyślałem, że mogą być towary, w których będzie tylko opis niedostępny dla klienta, czyli znak rozdzielający @ też nie powinnien się pojawiać.
Może masz jakiś pomysł?

Siedziałem, grzebałem i nie mogę nic wymyśleć.
Tak jak mówiłem, jestem słaby w tym :( .

Pozdrowienia
-1 powinno wystarczyć ;)
Funkcja InStr zwraca pozycję na której występuje szukany znak/ciąg znaków.
Funkcja Left obcina ciąg znaków do długości zadanej liczbą po przecinku tutaj zwróconej przez funkcję InStr.
Google naszym przyjacielem :idea:

Kod: Zaznacz cały

Left ({ZaEOpisy.ZeO_Opis}, instr ({ZaEOpisy.ZeO_Opis}, '@')-1)

hundzik
Posty: 301
Rejestracja: 11 mar 2008, 19:08
Rola: Administrator CDN XL
Wersja: 9.6.1
Lokalizacja: lubelszczyzna.

Re: opis towaru na wydruku

Post autor: hundzik »

alez czy w moim pierwszym dziele - ino sql-owym nie bylo -1? ;)

a wracajac do problemu ze w niektorych towarach opis ma byc niewidoczny dla klienta - proste - wprowadzasz zasaze ze opis do znaku przykladowej malpy sie drukuje, a po niej nie. Co to znaczy? Znaczy to ni mniej ni wiecej to, ze jesli ktos chce ukryc caly opis przed klientem stawia na poczatku malpe. A skoro malpa jest na poczatku to znaczy ze przed malpa juz nic nie ma. A skoro przed malpa nic nie ma to nie ma sie co wydrukowac. Prawda? Proste? Proste ;)

pozdr

pawcio
Posty: 26
Rejestracja: 02 paź 2008, 10:55
Rola: Użytkownik CDN XL
Wersja: 9.2

Re: opis towaru na wydruku

Post autor: pawcio »

Dzięki wszystkim za pomoc i pomysły.

Wszystko rozbija się o opis towaru w jego karcie, gdzie umieszczamy informacje różnego typu potrzebne przy przygotowywaniu oferty dla klienta, np:
"poj.500ml @ opakowanie szklane lub plastikowe, pakowane po 10szt. w kartonach"


informacja: poj.500ml jest dla klienta, po @ jest dla osoby robiącej ofertę lub dla magazyniera.

Robiąc ofertę na 20 pozycji, które mają opis tylko dla osoby robiącej ofertę lub dla magazyniera, czyli przed @ nic nie ma, to wydruk z CRYSTALA wyglądać będzie np:
1. nazwa towaru @
2. nazwa towaru @
3. nazwa towaru @
........ itd.

Próbowałem składnie w warunkiem "-1" zaproponowaną przez "hundzik" i tą zaproponowaną przez "Geronimo", ale
po dodaniu -1 wydruk nie działa, wyskakuje komunikat z Crystal Report Viewer:

"Długość ciągu jest mniejsza od 0 lub nie jest liczbą całkowitą."

Czyli dalej coś nie tak z moją wiedzą :-)

pozdr

ODPOWIEDZ