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

HMP 2010.1.a OnKHChanged
https://forum.mix-soft.pl/viewtopic.php?f=2&t=1976
Strona 1 z 1

Autor:  MMM [ 2010-04-26, 10:14 ]
Tytuł:  HMP 2010.1.a OnKHChanged

Witam!
Mam taką procedurkę umieszczoną w 'Procedury dokumentu magazynowego' (w rzeczywistości jest ona zupełnie inna, ale obrazuje ideę):
Kod:
int sub OnKHChanged(long lId)
string kod   
   BaseBM bm
   if bm.Open() then Exit
   bm.SetKey("id")
   bm.SetKeySeg("id", lId)
   bm.GetRec(EQ)
   kod = bm.GetField("khkod")
   bm.Close()

   OnKHChanged=0
   if Mid(LCase(kod),1,1)!="t" then
      message("Kontrahent musi zaczynać sie na 'T'!")
      OnKHChanged=-6000
   endif
endsub

Co ma powodować, że na dokumencie może być wybrany tylko kontrahent zaczynający się na literę 'T'. Ma wyświetlić komunikat i pozostać w polu wyboru kontrahenta. I to działa dobrze.
Tylko, że jest problem właśnie wtedy, gdy warunek NIE zachodzi.
Załóżmy, że wybieram sobie jakiegoś kontrahenta. Uzupełniają się wszystkie pozostałe jego dane jak NP i adres. Uruchamiana jest procedura sprawdzająca i stwierdza, że dane nie są prawidłowe. Więc zmieniam kontrahenta na 'testowy'. I co? Dane się nie uzupełniają - pozostają po poprzednio wybranym kontrahencie!

Błąd mój, czy Symfonii? A co ważniejsze - jak go obejść...
[EDIT]
Co więcej. Sprawdziłem, że do bazy zapisuje się KHKod kontrahenta na 'T', a pozostałe dane (m.in.) KHId tego poprzedniego kontrahenta...

Autor:  rafal [ 2010-04-26, 10:46 ]
Tytuł: 

Moim zdaniem działanie podanego raportu jest poprawne.
Przy wybraniu "złego" kontrahenta program nie wypuści z pola "kod kontrahenta" aż do wyboru popranego.

Autor:  MMM [ 2010-04-26, 11:16 ]
Tytuł: 

OK. Ale problem w tym, że nie uzupełnia danych poprawnego kontrahenta...

Autor:  rafal [ 2010-04-26, 12:28 ]
Tytuł: 

Zgadza się.
Chyba to błąd.

Autor:  wrob [ 2010-04-26, 12:34 ]
Tytuł: 

jak sie po powrocie do doka przez -6000 wywali kontrahenta przejdzie na date i wroci na kontrahenta i wybierze nowego to wtedy uaktualnia - ale tez jakos nie zawsze.......

moze w kodzie wyczyscic pola kth w bm przed oddaniem -6000 ?

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