mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Eksport niezrealizowanych zamowien https://forum.mix-soft.pl/viewtopic.php?f=15&t=1386 |
Strona 1 z 1 |
Autor: | JacekBomba [ 2009-11-09, 16:39 ] |
Tytuł: | Eksport niezrealizowanych zamowien |
Witam. chcialbym wyeksportowac niezrealizowane zamowienia. Robie to w nastepujacy sposob: Int basBD=open KatalogFirmy()+"51bd.dat" for base "bd" baseError (basBD, 4) SetKey(basBD,"rozliczone") SetKeySeg(basBD, "oki", 1) Int errBD=GetREc(basBD,LT) while !errBD currentRow = "zamowienie" currentRow += ";" + ToString(GetField(basBD, "id")) Print # Numer_pliku; currentRow + LF errBD=GetREc(basBD,NX) Wend close basBD Niestety, jako wynik otrzymuje rowniez dokumenty z oki=1. Pozdrawiam, Jacek |
Autor: | tomko [ 2009-11-09, 17:01 ] |
Tytuł: | |
daj PR zamiast NX bo idziesz w dół po rekordach a nie do góry :) |
Autor: | rafal [ 2009-11-09, 20:21 ] |
Tytuł: | |
Kod: string currentRow basebd basBD basBD.SetKey("rozliczone") basBD.SetKeySeg("oki", 0) Int errBD=basBD.GetREc(GE) while !errBD && basBD.GetField("oki") == 0 currentRow = "zamowienie" currentRow += ";" + basBD.GetField("kod") Print currentRow + LF errBD=basBD.GetREc(NX) Wend |
Autor: | JacekBomba [ 2009-11-09, 23:46 ] |
Tytuł: | |
tomko pisze: daj PR zamiast NX bo idziesz w dół po rekordach a nie do góry :) Dlaczego w takim razie otrzymuje rowniez dokumenty z oki=1? Jesli szedlbym w dol, to nie powinienem dostac zadnych rekordow. |
Autor: | JacekBomba [ 2009-11-09, 23:48 ] |
Tytuł: | |
rafal pisze: Kod: string currentRow basebd basBD basBD.SetKey("rozliczone") basBD.SetKeySeg("oki", 0) Int errBD=basBD.GetREc(GE) while !errBD && basBD.GetField("oki") == 0 currentRow = "zamowienie" currentRow += ";" + basBD.GetField("kod") Print currentRow + LF errBD=basBD.GetREc(NX) Wend To po co zakladac indeks, skoro i tak przechodze przez wszystkie rekordy i 'recznie sprawdzam' rekordy? |
Autor: | Misiek [ 2009-11-10, 07:36 ] |
Tytuł: | |
JacekBomba pisze: rafal pisze: Kod: string currentRow basebd basBD basBD.SetKey("rozliczone") basBD.SetKeySeg("oki", 0) Int errBD=basBD.GetREc(GE) while !errBD && basBD.GetField("oki") == 0 currentRow = "zamowienie" currentRow += ";" + basBD.GetField("kod") Print currentRow + LF errBD=basBD.GetREc(NX) Wend To po co zakladac indeks, skoro i tak przechodze przez wszystkie rekordy i 'recznie sprawdzam' rekordy? Nie przechodzisz przez wszystkie rekordy, tylko ustawiasz się na nie rozliczonych (oki = 0) i biegasz po tych rekordach, do czasu aż nie trafisz na wartość oki != 0 - wtedy pętla While się kończy bo warunek w tej pętli jest nie spełniony. Warunek to oki = 0 nie będzie spełniony, jeżeli trafisz na zamówienia rozliczone i wtedy wypadasz z pętli. Kod Rafała jest tutaj jak najbardziej poprawny - minimum operacji do uzyskania oczekiwanego przez Ciebie efektu |
Autor: | JacekBomba [ 2009-11-10, 09:25 ] |
Tytuł: | |
Dzieki za pomoc. Pomylilem indeksy z filtrowaniem. |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |