mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
OnTwChanged a kod dokumentu https://forum.mix-soft.pl/viewtopic.php?f=15&t=2436 |
Strona 1 z 1 |
Autor: | zz [ 2010-11-02, 13:50 ] |
Tytuł: | OnTwChanged a kod dokumentu |
Witam. W jaki sposób znaleźć kod dokumentu ZMO, jeśli procedurę chcę wywołać z poziomu OnTwChanged? |
Autor: | rafal [ 2010-11-02, 14:19 ] |
Tytuł: | |
Przy wywołaniu funkcji OnTwChanged zwracane jest Id pozycji dokumentu. Aby pobrać numer dokumentu pobierz powiązany rekord dokumentu. Jeżeli to Symfonia to : Kod: int Sub OnTwChanged(long lId) basebp bp bp.GetRecById( lId ) basebp bd bd.GetRecById( bp.GetField("super") ) message bd.GetField("kod") OnKhChanged = 0 EndSub W FORTE można podobnie lub za pomocą obiektów |
Autor: | zz [ 2010-11-02, 14:24 ] |
Tytuł: | |
No właśnie moje pytanie dotyczy tego Cytuj: W FORTE można podobnie lub za pomocą obiektów bo nie wiem, jak dane tego obiektu stąd sprawdzić. |
Autor: | rafal [ 2010-11-02, 14:26 ] |
Tytuł: | |
Sprawdź ten kod, który podałem wyżej i napisz czy zadziałało. |
Autor: | zz [ 2010-11-02, 14:36 ] |
Tytuł: | |
Niestety mam błąd wykonania: Nie przypisano bazy to rekordu typu BaseAll... (PS. mam FORTE 2010 - jak w podpisie) |
Autor: | rafal [ 2010-11-02, 15:02 ] |
Tytuł: | |
Kod: int Sub OnTwChanged(long lId) dispatch xDk = xFactory.NewObject("BDokumentZo") dispatch con = GetAdoConnection() dispatch rs = "ADODB.Recordset" string sSQL = using "SELECT * FROM ZP WHERE id = %l", lId if rs.State == 1 then rs.Close() rs.Open ( sSQL ,con,3) if rs.RecordCount > 0 then xDk.Load(using "id=%l", rs.Fields("super").Value) message xDk.kod endif |
Autor: | zz [ 2010-11-02, 15:18 ] |
Tytuł: | |
Dzięki, bardzo mi to ułatwi 'życie' |
Autor: | tomas [ 2010-11-02, 17:06 ] |
Tytuł: | |
A nie dało się samymi obiektami? Po co ten kawałek z zapytaniem. |
Autor: | rafal [ 2010-11-02, 22:55 ] |
Tytuł: | |
Może i można. Jak ktoś wie jak zrobić to samymi obiektami to proszę o info. Aż prosiłoby się o użycie obiektu BPozycjaZo i załadowanie go danymi pozycji o ID zwracanym przez OnTwChanged. Jednak z tego co mi wiadomo obiekt BPozycjaZo nie może istnieć "sam". Czyli nie możemy zrobić czegoś takiego : Kod: dispatch xPo = xFactory.NewObject("BPozycjaZo") tym badziej, że nie ma Kod: xPo.Load(using "id=%l", lId) |
Autor: | jabis [ 2010-11-03, 14:28 ] |
Tytuł: | |
A może rozszerzyć tok myślenia o dokument a nie tylko ograniczać się do pozycji ?! Kod: dispatch xDk, xPo int Sub OnAddNewDokument(long lId) OnAddNewDokument = 0 xDk = xFactory.NewObject("BDokumentZk") xDk.Load(using "id=%l", lId) EndSub int Sub OnTwChanged(long lId) OnTwChanged = 0 xPo = xDk.pozycje Message using "DK: %l PO: %l ID: %l", xDk.id, xPo.item(xPo.Count).id, lId EndSub Na jednej stacji roboczej równocześnie wystawiane dwa dokumenty podawały mi właściwą ilość pozycji podczas dodawania kolejnej... to może być rozwiązanie :) A jak wiemy... zawsze na końcu jest nowa pozycja :) |
Autor: | rafal [ 2010-11-03, 15:11 ] |
Tytuł: | |
podoba mi się to rozwiązanie i wygląda, że działa Kod: dispatch xDk, xPo int Sub OnAddNewDokument(long lId) xDk = xFactory.NewObject("BDokumentZo") xDk.Load(using "id=%l", lId) OnAddNewDokument = 0 EndSub int Sub OnBeforeEdit(long lId) xDk = xFactory.NewObject("BDokumentZo") xDk.Load(using "id=%l", lId) OnBeforeEdit = 0 EndSub int Sub OnBeforeBuforEdit(long lId) xDk = xFactory.NewObject("BDokumentZo") xDk.Load(using "id=%l", lId) OnBeforeBuforEdit = 0 EndSub int Sub OnTwChanged(long lId) message xDk.kod OnTwChanged = 0 EndSub no i jest za pomocą obiektów :) |
Autor: | zz [ 2010-11-05, 11:36 ] |
Tytuł: | |
Dziękuję za rady. |
Autor: | jabis [ 2010-11-14, 16:20 ] |
Tytuł: | |
Dodatkowa pora... Ze względu na różne zmiany podczas edycji dokumentu, warto jest w każdym zdarzeniu ponowne wczytanie obiektu. Przykładowo... stworzyliśmy powiązanie z dokumentem innym za pomocą procedur i do puki nie wczytamy ponownie obiektu, powiązanie nie będzie widoczne w obiekcie. Więc OnTwChange powinno wyglądać prawidłowo tak: Kod: int Sub OnTwChanged(long lId) xDk = xFactory.NewObject("BDokumentZo") message xDk.kod OnTwChanged = 0 EndSub |
Autor: | jabis [ 2010-11-22, 01:37 ] |
Tytuł: | |
ZZ mile widziane kliknięcie na przycisk 'pomógł' ;) |
Autor: | zz [ 2010-11-22, 08:59 ] | |||
Tytuł: | ||||
Oczywiście...Przepraszam... Ale w Chrome nie widać przycisku POMÓGŁ (może mam coś z ustawieniami, bo w IE jest)
|
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |