mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Handel Premium-NOTATKA https://forum.mix-soft.pl/viewtopic.php?f=15&t=161 |
Strona 1 z 2 |
Autor: | lofix [ 2008-06-13, 07:59 ] |
Tytuł: | Handel Premium-NOTATKA |
Czy jest ktoś na forum kto potrafi napisać raport umożliwiający odszukanie towarów po dowolnej frazie zawartej w notatce?Niestety ja nie potrafię ale byłoby to bardzo ciekawe i potrzebne usprawnienie. |
Autor: | lofix [ 2008-06-13, 12:30 ] |
Tytuł: | |
Oczywiście "nie za nic" |
Autor: | barnie [ 2008-06-13, 18:25 ] |
Tytuł: | |
W kartotece raportów dodaj nowy raport w katalogu : Raporty → Kartoteki → Raporty z menu → Towary o nazwie : "Szukaj towaru po notatce" Wklej załączony kod. Załatwione. W towarach w menu kontekstowym masz nową funkcję :) Kod: limit 80000 string sCoWyszukac FORM "Wyszukaj towar po notatce", 300,100 edit "",sCoWyszukac,5,5,285,20 button "Szukaj",110,40,80,20,2 int rx = ExecForm if rx == -1 then error "" baseTW tw baseNT nt ioRec ioLista long lPoz long lIdTw lPoz = SetTaggedPos(FS) while lPoz != 0 lIdTw = GetLineId( lPoz ) nt.SetKey ("super" ) nt.SetKeySeg( "typi",0 ) nt.SetKeySeg( "baza",22 ) nt.SetKeySeg( "super", lIdTw) if !nt.GetRec( EQ ) then buf = nt.GetField("opis") else buf = "" endif if Find Regular (using "{*}%s{*}", sCoWyszukac) then ioLista.SetField("id",(using "%l", lIdTw)) endif lPoz = SetTaggedPos(NX) wend ShowListWindow( ioLista, "TW" ) NoOutPut() Zaznacz towary wśród, których na być szuakanie i uruchom raport. Fakturę wyślę pocztą :) P.S. dzięki rafal za pomoc |
Autor: | lofix [ 2008-06-14, 11:35 ] |
Tytuł: | |
Niestety nie da się wyszukać dowolnej frazy z notatki lub jej części,wyszukiwanie rozróżnia też wielkie i małe litery.Szkoda Potrzebuję też dodatkowej funkcjonalności w zakresie obsługi zamienników towarów,lub też dostosowania Symfonii do specyficznej branży motoryzacyjnej.Złośliwym odpowiadam że tak...i owszem..dzwoniłem,rozmawiałem,prosiłem..i co ?Nic. Czekać kazali odpowiedzi zero. Tak więc jeśli jest ktoś zainteresowany proszę o odpowiedź. |
Autor: | barnie [ 2008-06-14, 12:44 ] |
Tytuł: | |
lofix pisze: Niestety nie da się wyszukać dowolnej frazy z notatki lub jej części, co przez to rozumiesz. podaj przykład lofix pisze: wyszukiwanie rozróżnia też wielkie i małe litery.Szkoda poprawione Kod: limit 80000 string sCoWyszukac FORM "Wyszukaj towar po notatce", 300,100 edit "",sCoWyszukac,5,5,285,20 button "Szukaj",110,40,80,20,2 int rx = ExecForm if rx == -1 then error "" baseTW tw baseNT nt ioRec ioLista long lPoz long lIdTw lPoz = SetTaggedPos(FS) while lPoz != 0 lIdTw = GetLineId( lPoz ) nt.SetKey ("super" ) nt.SetKeySeg( "typi",0 ) nt.SetKeySeg( "baza",22 ) nt.SetKeySeg( "super", lIdTw) if !nt.GetRec( EQ ) then buf = lCase(nt.GetField("opis")) else buf = "" endif if Find Regular (using "{*}%s{*}", lCase(sCoWyszukac)) then ioLista.SetField("id",(using "%l", lIdTw)) endif lPoz = SetTaggedPos(NX) wend ShowListWindow( ioLista, "TW" ) NoOutPut() lofix pisze: Potrzebuję też dodatkowej funkcjonalności w zakresie obsługi zamienników towarów,lub też dostosowania Symfonii do specyficznej branży motoryzacyjnej. Zamienniki są dostępne jako dodatkowy raport http://www.mojaSymfonia.pl/index.php?ln ... pm=192&s=1 |
Autor: | lofix [ 2008-06-14, 17:42 ] |
Tytuł: | |
Za licho nie odszuka np:10-0050 ale,0050 tak itd.. Co do dodatku,wiem że taki jest.Próbowałem uzyskać więcej informacji o nim dzwoniąc do różnych firm.Najczęściej "twórca" niewiele pamiętał o możliwościach swojego dzieła.Wszędzie kazali czekać na szczegóły które miały być wysłane na email.Czekam i nic. Dlatego szukam rozwiązań na forum i odziwo są i to za DARMO!! Za kasę trudno-dziwne? Obecnie biję się z myślami...czy zmienić oprogramowanie na typowe dla branży motoryzacyjnej,czy może jednak starać się o dostosowanie Symfonii do której się już przyzwyczaiłem.POMOCY!! |
Autor: | barnie [ 2008-06-14, 18:19 ] |
Tytuł: | |
lofix pisze: Za licho nie odszuka np:10-0050 ale,0050 tak itd.. Mechanizm ten używa wyrażeń regularnych w celu wyszukania szukanego tekstu. Nie będę rozpisywał się o zagadnieniu wyrażeń regularnych. Powiem jedynie, że znaki takie jak "-", "+", "#" itp.. są znakami specjalnymi. W związku z tym jeżeli szukany ciąg zawiera takie znaki należy poprzedzić je znakiem "/". I tak jak szukasz ciągu "10-0050" powinieneś wpisać "10/-0050" |
Autor: | lofix [ 2008-06-14, 18:34 ] |
Tytuł: | |
Rozumiem.Tylko że nie zawsze wiem że one tam są (te znaki naturalnie) więc kombinuję jak "zamieszać" aby były one ignorowane podczas wyszukiwania ale jak znam siebie to wszystko i tak pokręcę że bez 0,5l nie razbieriosz. A swoją drogą co by było gdyby używał wyrażeń nieregularnych? |
Autor: | lofix [ 2008-06-14, 18:41 ] |
Tytuł: | |
Pewnie palnołem coś głupiego,a co mi tam.Kto pyta Nie błądzi. |
Autor: | barnie [ 2008-06-14, 18:56 ] |
Tytuł: | |
lofix pisze: Rozumiem.Tylko że nie zawsze wiem że one tam są (te znaki naturalnie) więc kombinuję jak "zamieszać" aby były one ignorowane podczas wyszukiwania ale jak znam siebie Wpisz "10*0050" wtedy znajdzie Ci towar "100050" lub "10-0050" czyli masz to co chciałeś. lofix pisze: A swoją drogą co by było gdyby używał wyrażeń nieregularnych? a co to jest? |
Autor: | lofix [ 2008-06-14, 20:41 ] |
Tytuł: | |
Po pierwsze poszukałem trochę na temat wyrażeń regularnych...rzeczywiście palnołem głupotę.:) Po drugie nie rozumiemy się.Chodzi o to że nie wiem w którym miejscu występuje znak np: "-" czy "." albo 10-0050 lub 10005-0,problem polega na tym aby wyeliminować z procesu szukania znaki specjalne. |
Autor: | rafal [ 2008-06-14, 23:39 ] |
Tytuł: | |
Oj wydaje mi się, że dostałeś sporo wiedzy w tym temacie. Poskładaj sobie teraz to wszystko do kupy i postaraj się użyć. lofix pisze: Po drugie nie rozumiemy się.Chodzi o to że nie wiem w którym miejscu występuje znak np: "-" czy "." albo 10-0050 lub 10005-0,problem polega na tym aby wyeliminować z procesu szukania znaki specjalne. Jak nie wiesz gdzie może wystąpić znak szukaj "1*0*0*0*5*0" i zwróci Ci wszystkie 100050 cokolwiek i gdziekolwiek znajduje się w środku. lofix pisze: Dlatego szukam rozwiązań na forum i odziwo są i to za DARMO!! Za kasę trudno-dziwne? nie liczyłbym na zbyt wiele za DARMO. barrnie chyba ma za dużo czasu, że wyskrobał dla Ciebie coś takiego. Ja jestem zwolennikiem bardziej naprowadzania na rozwiązanie niz dawanie gotowego. lofix pisze: Obecnie biję się z myślami...czy zmienić oprogramowanie na typowe dla branży motoryzacyjnej,czy może jednak starać się o dostosowanie Symfonii do której się już przyzwyczaiłem.POMOCY!! Nie myśl, że jak zmienisz oprogramowanie to będzie ono idealne. Będzie miało "zamienniki " ale będzie brakowało innej funkcjonalności, którą ma Handel. Pewnie też będziesz musiał wydać parę PLN żeby dostosować do specyfiki swojej działalności. Decyzja i tak należy do Ciebie. |
Autor: | lofix [ 2008-06-15, 09:44 ] |
Tytuł: | |
Oczywiście że nie liczę na DARMOCHĘ .Pomoc barrnie jest nieoceniona ,wszyscy dyplomatycznie unikają odpowiedzi jakby była to wiedza tajemna. Poczytałem ,kombinowałem i doszedłem do czegoś takiego: Kod: limit 80000 string sCoWyszukac FORM "Wyszukaj towar po notatce", 300,100 edit "",sCoWyszukac,5,5,285,20 button "Szukaj",110,40,80,20,2 int rx = ExecForm if rx == -1 then error "" baseTW tw baseNT nt ioRec ioLista long lPoz long lIdTw lPoz = SetTaggedPos(FS) while lPoz != 0 lIdTw = GetLineId( lPoz ) nt.SetKey ("super" ) nt.SetKeySeg( "typi",0 ) nt.SetKeySeg( "baza",22 ) nt.SetKeySeg( "super", lIdTw) if !nt.GetRec( EQ ) then buf = lCase(nt.GetField("opis")) else buf = "" endif if Find Regular (using "{*}/%s{*}",lCase(sCoWyszukac)) then ioLista.SetField("id",(using "%l", lIdTw)) endif lPoz = SetTaggedPos(NX) wend ShowListWindow( ioLista, "TW" ) NoOutPut() Jest efekt napewno komuś jeszcze się przyda. |
Autor: | barnie [ 2008-06-15, 11:43 ] |
Tytuł: | |
rozumiem, że zmieniłeś Kod: if Find Regular (using "{*}%s{*}",lCase(sCoWyszukac)) then Kod: if Find Regular (using "{*}/%s{*}",lCase(sCoWyszukac)) then |
Autor: | lofix [ 2008-06-15, 12:24 ] |
Tytuł: | |
Dało tyle że na przykładzie wyszukiwania powiedzmy " 10-5100" nie muszę kombinować gdzie jest "-" Nie znam się na programowaniu ale mnie to bardzo zainteresowało. |
Strona 1 z 2 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |