|
|
Strona 1 z 1
|
[ Posty: 5 ] |
|
Autor |
Wiadomość |
supersebek
Rejestracja: 2012-10-29, 20:13 Posty: 40
|
notatka
Napisałem raport w procedurze dok. magazynowego, który otwiera pole edycyjne notatki przy onkhchanged. Gdy jednak chwile się na nim popracuje i zaloguje na innego użytkownika to program przy wyjściu z dokumentu się wiesza. oto kod: Kod: int Sub OnKhChanged(long lId)
baseall bd bd.setbase("BM") bd.setkey("id") bd.setkeyseg("id", lId)
if bd.getrec(EQ) == 0 then //message using "%l", bd.getfield("khid")
baseall nt nt.setbase("NT") nt.setkey("super") nt.setkeyseg("typi", 0) nt.setkeyseg("baza",20) nt.setkeyseg("super", bd.getfield("khid"))
err = nt.GetRec(EQ)
if err == 0 && nt.getfield("opis") != "" then notatka1 = nt.getfield("opis") else notatka1 = "" endif
FORM "Notatka", 752, 520 BUTTON "Anuluj", 600, 336, 72, 24,-1 id1 = BUTTON "Zapisz", 516, 336, 72, 24, 3 MEDIT "Notatka kontrahenta", notatka1, 116, 4, 556, 312 rv = Execform oncommand2
if(nt.GetField("typi") == 0 && nt.GetField("baza") == 20 && nt.GetField("super") == bd.getfield("khid")) then //jest już notatka, więc update message notatka1 if nt.getfield("opis") != notatka1 then nt.SetField("opis",notatka1) message "update" err = nt.Update() endif else //jeszcze nie ma , tworzę nt.clear() if notatka1 != "" then message "new" nt.SetField("typi",0) nt.SetField("baza",20) nt.SetField("super", bd.getfield("khid"))
nt.SetField("opis",notatka1) err = nt.Insert() endif endif /* if(!err) then Message("zmieniłem") else Message(using "Błąd nr %d", err) endif */ //message using "%l", nt.getfield("super")
endif
EndSub
int sub onCommand2(Int id, Int msg)
if id == id1 then save endif
EndSub
|
2013-06-14, 08:32 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
supersebek
Rejestracja: 2012-10-29, 20:13 Posty: 40
|
Re: notatka
Kod: baseall nt nt.setbase("NT") nt.setkey("super") nt.setkeyseg("super", 65536) nt.setkeyseg("typi", 0) nt.setkeyseg("baza",20)
if nt.getrec(EQ) == 0 then message nt.getfield("opis") endif jak pobieram na czystej bazie nowo utworzonej pole opis to się wiesza. symfonia 2013.1.b
|
2013-06-14, 09:38 |
|
|
Misiek
Rejestracja: 2008-12-03, 21:11 Posty: 276 Pomógł: 2
|
Re: notatka
Hej, Dopisz na początku (dowolne miejsce przed otwarciem bazy NT) linijkę: i to powinno rozwiązać Twój problem Daj znać czy pomogło (w roku 2001 pisząc jedno ze swoich pierwszych rozwiązań, spędziłem 1,5 miesiąca nad szukaniem błędu, program Symfonia Handel wieszał się co jakiś czas, z niewiadomych powodów - jak się później okazało, w/w polecenie było za to odpowiedzialne). Polecenie LIMIT należy ZAWSZE stosować w przypadku, gdy otwierasz bazę NOTATEK/NT - jedno z pól zdefiniowanych w tej bazie to 8 kB i stąd wymaga to stosowania w/w polecenia.
_________________ Pozdrawiam
Misiek DGTL Rzeszów
|
2013-06-14, 09:45 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: notatka
Kod: limit 8000 baseall nt nt.setbase("NT") nt.setkey("super") nt.setkeyseg("super", 65536) nt.setkeyseg("typi", 0) nt.setkeyseg("baza",20)
if nt.getrec(EQ) == 0 then message nt.getfield("opis") endif
|
2013-06-14, 09:47 |
|
|
supersebek
Rejestracja: 2012-10-29, 20:13 Posty: 40
|
Re: notatka
dzięki. Pomogło.
pozdrawiam
|
2013-06-14, 09:59 |
|
|
|
Strona 1 z 1
|
[ Posty: 5 ] |
|
Kto jest online |
Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 20 gości |
|
Nie możesz tworzyć nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników
|
|
|
|