mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Procedura OnKhChanged https://forum.mix-soft.pl/viewtopic.php?f=15&t=2525 |
Strona 1 z 1 |
Autor: | wojtek [ 2010-12-02, 09:48 ] |
Tytuł: | Procedura OnKhChanged |
Kod: int Sub OnKhChanged(long lId) OnKhChanged = 0 // message using "%i",bBufor bBufor = 1 to bufor Limit 10000 long lKhId string sKhNazwa,sNotka int bnt = Open KatalogFirmy() + "51nt.dat" for base "nt" //baza notatek BaseError(KatalogFirmy() + "51nt.dat", 4) int bbd = Open KatalogFirmy() + "51bd.dat" for base "bd" BaseError(KatalogFirmy() + "51bd.dat", 4) // int bKh = Open KatalogFirmy() + "51kh.dat" for base "kh" //BaseError(KatalogFirmy() + "51kh.dat", 4) SetKey(bbd, "id") SetKeySeg(bbd, "id", lId) GetRec(bbd, EQ) lKhId = GetField(bbd, "khid") message GetField(bbd, "khkod") message using "%l",lKhId SetKey(bnt,"super") SetKeySeg(bnt,"super",lKhId) if !GetRec(bnt, EQ) then message using "%i",GetRec(bnt, EQ) sNotka = mid(GetField(bnt, "opis"),1,10) message sNotka endif //sNotka = "" close bbd close bnt limit 2000 EndSub Witam, Co może być nie tak w moim kodzie powyżej. Procedura ma działać w ten sposób, że w czasie zmainy/doawania kontrahenta na dokument ma się wyświetlić w message informacjAa że istnieje notatka dla tego kontrahenta. Fragment kodu opowiedzialny za identyfikację kontrahenta działa OK. Problem pojawia się przy bnt. Wartość GetRec(bnt, EQ) = 4 pomimo tego że na kontrahencie jest notatka i pod pervasivem widać ten rekord z wartością pola "super" = id kontrahenta z wystawianego okumentu?[/code] |
Autor: | sqza [ 2010-12-02, 11:14 ] |
Tytuł: | |
Oto zmodyfikowany działający kod :) Kod: int Sub OnKhChanged(long lId) OnKhChanged = 0 // message using "%i",bBufor bBufor = 1 to bufor Limit 10000 long lKhId string sKhNazwa,sNotka int bnt = Open KatalogFirmy() + "51nt.dat" for base "nt" //baza notatek BaseError(KatalogFirmy() + "51nt.dat", 4) int bbd = Open KatalogFirmy() + "51bd.dat" for base "bd" BaseError(KatalogFirmy() + "51bd.dat", 4) // int bKh = Open KatalogFirmy() + "51kh.dat" for base "kh" //BaseError(KatalogFirmy() + "51kh.dat", 4) SetKey(bbd, "id") SetKeySeg(bbd, "id", lId) GetRec(bbd, EQ) lKhId = GetField(bbd, "khid") message GetField(bbd, "khkod") message using "%l",lKhId SetKey(bnt,"super") SetKeySeg(bnt,"super",lKhId) SetKeySeg(bnt,"baza",20) if !GetRec(bnt, EQ) then message using "%i",GetRec(bnt, EQ) sNotka = mid(GetField(bnt, "opis"),1,10) message sNotka endif //sNotka = "" close bbd close bnt limit 2000 EndSub Brakowało określenia bazy z której pochodzi powiązanie z notatką - w przypadku kontrahenta 20 Kod: SetKeySeg(bnt,"baza",20) |
Autor: | wojtek [ 2010-12-02, 11:17 ] |
Tytuł: | |
Dzięki |
Autor: | wojtek [ 2010-12-02, 12:46 ] |
Tytuł: | |
A czy istniej możliwość dopisania nowej procedury OnKhchanged dla dokumentów płatności? Chodzi o to że trzeba dla wszystkich nowo wystawianych dokumentów sprawdzać w locie podczas wybierania kontrahenta czy znajduje się przy nim jakas notatka. Dla dok sprzedaży,zakupu i magazynowych nie ma problemu bo procedura jest. Problem jest z dok płatności. Chyba że istnieje jakiś inny sposob sprawdzenia czy jest notatka dla kontrahenta. |
Autor: | rafal [ 2010-12-02, 21:53 ] |
Tytuł: | |
A jak sprawdzisz czy jest notatka to co dalej chcesz z tym zrobić? |
Autor: | wojtek [ 2010-12-03, 11:43 ] |
Tytuł: | |
Nic. Księgowa wtedy sobie ją przeczyta i będzie swoje wiedziała. Ja mam za zadanie sprawić aby podczas wystawiania dokumentu wyświetliła się inforamcja ze przy kontrahencie jest notatka |
Autor: | rafal [ 2010-12-03, 13:19 ] |
Tytuł: | |
No to może wystarczyłoby OnAfterInsert? |
Autor: | wojtek [ 2010-12-03, 15:06 ] |
Tytuł: | |
Generalnie to After to jest już po fakcie , ale w ostateczności księgowa ptrzyjeła. Najbardziej zależanło jej dok sprzedaży. Pozrawiam |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |