mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Spr. ceny dostawy przed wyst. dok. mag. https://forum.mix-soft.pl/viewtopic.php?f=15&t=3421 |
Strona 1 z 1 |
Autor: | zz [ 2011-10-28, 12:37 ] |
Tytuł: | Spr. ceny dostawy przed wyst. dok. mag. |
PRZED wystawieniem dok. mag. muszę sprawdzić cenę dostawy - czy nie zero. Chciałem sprawdzać Selectem MZ join PW join DW , ale niestety - nie działa przed wystawieniem dokumentu. Gdzie mogę znaleźć te powiązania? ew. inny sposób? - próbowałem wykorzystać obiekty, ale niestety nie umiem... :( |
Autor: | Khavert [ 2011-11-08, 03:54 ] |
Tytuł: | Re: Spr. ceny dostawy przed wyst. dok. mag. |
Witam, Jeżeli przed wystawieniem dokumentu to musisz operować bazami BM - Dokumenty magazynowe i BZ - pozycje dokumentów z polem łączącym "super". Rozumiem iż chcesz sprawdzić tuż przed wystawieniem dokumentu, a więc w raporcie Procedury dokumentu magazynowego w OnBeforeInsert. W procedurze zwracany jest id dokumentu w buforze lId a więc: na samym początku całego raportu wstawiasz: Kod: basebz bz // bufor pozycji basetw tw //Kartoteka towarowa int errbz Następnie bezpośrednio w procedurze Kod: bz.setkey("super") bz.setkeyseg("super",lId) errbz = bz.GetRec(EQ) //lub GetRec(GE) nie pamiętam dokładnie While !errbz tw.GetRecById(bz.GetField("idtw") //ustaw na rekordzie w bazie towarowej wg pozycji w dok if tw.GetField("cenazak") == 0 then //TUTAK KOD CO ZROBIĆ JEŚLI CENA ZAKUPU = 0 else //I JEŻELI NIE JEST = 0 endif errbz = bz.GetRec(NX) // przejdź do następnego rekordu Wend zz pisze: PRZED wystawieniem dok. mag. muszę sprawdzić cenę dostawy - czy nie zero. Chciałem sprawdzać Selectem MZ join PW join DW , ale niestety - nie działa przed wystawieniem dokumentu. Gdzie mogę znaleźć te powiązania? ew. inny sposób? - próbowałem wykorzystać obiekty, ale niestety nie umiem... :( Kod: |
Autor: | zz [ 2011-11-08, 08:43 ] |
Tytuł: | |
Gdyby to było takie proste..... :( Ja mam sytuację, kiedy niektóre dostawy mają cenę 'realną' , a niektóre 'sztuczną'=0 dlatego muszę sprawdzać bazę dostaw. |
Autor: | Khavert [ 2011-11-08, 18:22 ] |
Tytuł: | |
A więc jak już mamy idtw - bez szukania w bazie towarowej TW - musimy znaleźć ową dostawę w bazie dw (na początku deklaracja basedw dw). szukamy po id w towaru Kod: dw.SetKey("idtw") //klucz towarowy zdefiniowany w bazie dw.SetKeySeg("idtw",bz.GetField("idtw") /klucz którego wartość jest równa idtw dw.getrec(LS) //ostatni zapisany rekord - tutaj nie wiem jak to będzie działało bo piszę z pamięci message "%f", round(dw.getField("cena"),4) //okienko z ceną w zaokrągleniu do 4 miejsc po przecinku //i standardowo jeżeli cena == 0 to nie ma wprowadzonej, else jest ściągnij sprawdź itp. jeżeli ściągałoby cenę z nieprawidłowej dostawy to trzeba użyć pętli w bazie DW i znleźć najpóźniejszą datę zz pisze: Gdyby to było takie proste..... :( Ja mam sytuację, kiedy niektóre dostawy mają cenę 'realną' , a niektóre 'sztuczną'=0 dlatego muszę sprawdzać bazę dostaw. |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |