Strona 1 z 1

opis towaru na wydruku

: 31 sty 2009, 12:44
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

Re: opis towaru na wydruku

: 02 lut 2009, 21:09
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.

Re: opis towaru na wydruku

: 05 lut 2009, 06:55
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

Re: opis towaru na wydruku

: 05 lut 2009, 21:44
autor: pores
no to w CR bedziesz to samo miał tak:

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

Re: opis towaru na wydruku

: 07 lut 2009, 12:36
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

Re: opis towaru na wydruku

: 07 lut 2009, 19:39
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)

Re: opis towaru na wydruku

: 08 lut 2009, 23:54
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

Re: opis towaru na wydruku

: 09 lut 2009, 11:45
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