mojaSymfonia FORUM
https://forum.mix-soft.pl/

Symfonia Handel - wyszukiwanie po opisie
https://forum.mix-soft.pl/viewtopic.php?f=2&t=3254
Strona 1 z 3

Autor:  galahad [ 2011-08-02, 15:47 ]
Tytuł:  Symfonia Handel - wyszukiwanie po opisie

Witam,

Czy istnieje możliwość w Symfonii Handel wyszukiwania dokumentów po opisie (np. sprzedaży)?

Chciałbym w opisie umieszczać np. numer zamówienia i łatwo po nim szukać.

Dzięki za odpowiedz
Jarek

Autor:  byrusia [ 2011-08-10, 09:48 ]
Tytuł: 

moża
dodatkowymi raportami przyjmując formułe opisu np miejsce zamóweinia/ numer/ auto itd

Autor:  galahad [ 2011-08-12, 09:31 ]
Tytuł: 

Witam,

Domyślam się, że jest to w raportach.

W raportach - Kartoteki - Raporty z menu - Bufor sprzedaży dodałem procedurę wyszukiwania po opisie.

Mam coś takiego:


Kod:
limit 80000

string sCoWyszukac

FORM "Wyszukaj dokumentów po opisie", 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
baseDk dk

ioRec ioLista

long lPoz
long lIdTw

lPoz = SetPos(FS)

long err

while lPoz != 0
   
        lIdTw = GetLineId( lPoz )
       err=dk.GetRecById( lIdTw )
       buf = dk.GetField("opis")
       print buf,LF

    lPoz = SetPos(NX)   
wend



Po odpaleniu skryptu dla każdej pozycji zmienna buf ma wartość "wra"

Dlaczego tak jest?

Autor:  Misiek [ 2011-08-12, 11:38 ]
Tytuł: 

A u mnie wypisuje prawidłowo opisy wszystkich dokumentów...

PS. Sprawdzałem z innego miejsca --> Zestawienia --> Wykonaj raport --> ... tutaj działa OK

PS2. Pod prawym klawiszem myszy również działa ;-)

Autor:  byrusia [ 2011-08-12, 11:47 ]
Tytuł: 

a u mnie dziala ale tylko za pierwszym razem ... nastepne wyszukiwanie nie czysci poprzednich wynikow...
rozni sie tez wynik dla zaznaczonych i dla nie zaznaczopnych...
wiec cos jest nie tak....

Autor:  galahad [ 2011-08-12, 13:09 ]
Tytuł: 

Witam,

Sprawdzałem raport w testowej Symfonii, w produkcyjnej pokazywało dobrze opisy. Dzięki.

Teraz chciałbym wyszukać po opisach, znalazłem na forach takie wyrażenie:

Kod:
...
while lPoz != 0

        lIdTw = GetLineId( lPoz )
       err=dk.GetRecById( lIdTw )
        buf = dk.GetField("opis")
      if Find Regular (using "{*}%s{*}", sCoWyszukac) then

           ioLista.SetField("id",(using "%l", lIdTw))

        endif

    lPoz = SetPos(NX)
wend

ShowListWindow( ioLista, "DK" )
NoOutPut()


Ale po wykonaniu nie wyświetla żadnej listy oraz pojawia się kolejne okno, czy można zrobić to w tym samym oknie?

Autor:  Misiek [ 2011-08-17, 13:37 ]
Tytuł: 

Wstaw sobie debugger'a jak poniżej i zobaczysz, czy prawidłowo działa Ci regular

Kod:
   if Find Regular (using "{*}%s{*}", sCoWyszukac) then

           debugger

           ioLista.SetField("id",(using "%l", lIdTw))

        endif



LUB

dołącz cały kod, gotowy do uruchomienia - sprawdzę co tam możesz mieć nie tak...

Autor:  galahad [ 2011-08-18, 09:14 ]
Tytuł: 

Witam, wklejam pełny kod.


Kod:
limit 80000

string sCoWyszukac

FORM "Wyszukaj dokumentów po opisie", 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
baseDk dk

ioRec ioLista

long lPoz
long lIdTw

lPoz = SetPos(FS)

long err

while lPoz != 0

        lIdTw = GetLineId( lPoz )
       err=dk.GetRecById( lIdTw )
        buf = dk.GetField("opis")

      if Find Regular (using "{*}%s{*}", sCoWyszukac) then

           ioLista.SetField("id",(using "%l", lIdTw))

        endif

    lPoz = SetPos(NX)
wend

ShowListWindow( ioLista, "DK" )
NoOutPut()


Pozdrawiam
Jarek

Autor:  Misiek [ 2011-08-19, 14:31 ]
Tytuł: 

Ten kod działa prawidłowo - przetestowałem i porównałem wyniki z naszym raportem/rozwiązaniem - są zgodne.

Testy wykonałem na firmowej bazie z kilkoma tyś. dokumentów - w mojej ocenie wszystko jest OK.

Autor:  rafal [ 2012-02-16, 13:12 ]
Tytuł:  Re: Symfonia Handel - wyszukiwanie po opisie

Jakby ktoś potrzebował do FORTE
Kod:
limit 80000

string sCoWyszukac

dispatch xSp = xFactory.NewObject("BDokSp")

dispatch xSpParams = xSp.Params()


dispatch xIdRows = xFactory.NewObject("IdRows")



FORM "Wyszukaj dokumenty po opisie", 300,100

    edit "",sCoWyszukac,5,5,285,20
    button "Szukaj",110,40,80,20,2

int rx = ExecForm

if rx == -1 then error ""
xSpParams.opis = "Wyszukiwanie dokumentów po opisie *"+sCoWyszukac+"*"
baseTW tw
baseDk dk
//dk.SetKeySeg("id")

ioRec ioLista

long lPoz
long lIdTw

lPoz = dk.GetRec( FS )

long err

while lPoz == 0

        lIdTw = dk.GetField("id")
        buf = dk.GetField("opis")

      if Find Regular (using "{*}%s{*}", sCoWyszukac) then

           //ioLista.SetField("id",(using "%l", lIdTw))
         xIdRows.Add(lIdTw)
        endif

    lPoz = dk.GetRec( NX )
wend


//ShowListWindow( ioLista, "DK" )
xSpParams.wybrane = xIdRows
xSp.Load(xSpParams)
OpenWindow(xSp)

NoOutPut()

Autor:  mellos [ 2013-10-08, 11:21 ]
Tytuł:  Re: Symfonia Handel - wyszukiwanie po opisie

Dziękuję za ten temat i za skrypt z którego skorzystałem.
Skrypt dodałem do raportów sprzedaży i magazynu. Jednak działa on tylko na dokumentach wystawionych.
Potrzebuję by działał również na dokumentach buforowych w magazynie. Czy jest szansa by ktoś mi w tym pomógł.

Autor:  rafal [ 2013-10-08, 12:26 ]
Tytuł:  Re: Symfonia Handel - wyszukiwanie po opisie

Kod:
limit 80000

string sCoWyszukac

dispatch xMg = xFactory.NewObject("BDokMg")

dispatch xMgParams = xMg.Params()


dispatch xIdRows = xFactory.NewObject("IdRows")



FORM "Wyszukaj dokumenty po opisie", 300,100

    edit "",sCoWyszukac,5,5,285,20
    button "Szukaj",110,40,80,20,2

int rx = ExecForm

if rx == -1 then error ""
xMgParams.opis = "Wyszukiwanie dokumentów po opisie *"+sCoWyszukac+"*"
baseTW tw
baseMg mg
//dk.SetKeySeg("id")

ioRec ioLista

long lPoz
long lIdTw

lPoz = mg.GetRec( FS )

long err

while lPoz == 0

        lIdTw = mg.GetField("id")
        buf = mg.GetField("opis")

      if Find Regular (using "{*}%s{*}", sCoWyszukac) then

           //ioLista.SetField("id",(using "%l", lIdTw))
         xIdRows.Add(lIdTw)
        endif

    lPoz = mg.GetRec( NX )
wend


//ShowListWindow( ioLista, "DK" )
xMgParams.wybrane = xIdRows
xMg.Load(xMgParams)
OpenWindow(xMg)

NoOutPut()

Autor:  mellos [ 2013-10-08, 13:30 ]
Tytuł:  Re: Symfonia Handel - wyszukiwanie po opisie

Dzięki,
ale wyskakuje mi coś takiego:

Załączniki:
2013-10-08_132849.png
2013-10-08_132849.png [ 11.62 KiB | Przeglądany 7228 razy ]

Autor:  rafal [ 2013-10-08, 13:44 ]
Tytuł:  Re: Symfonia Handel - wyszukiwanie po opisie

U mnie działa na 2013.

Autor:  mellos [ 2013-10-08, 15:09 ]
Tytuł:  Re: Symfonia Handel - wyszukiwanie po opisie

No to u mnie nie działa w 2012.
Pod sprzedaż i magazyn brałem ten kod od Galahad co wkleił cały i on działa.
Patrząc na Twój kod to jest podobny do tego co do Forte, więc mnie pod bufor magazynu nie działa.

Strona 1 z 3 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/