|
|
Strona 1 z 1
|
[ Posty: 6 ] |
|
Dodawanie nowych pozycji w dokumencie - InfoDok
Autor |
Wiadomość |
WojtekM
Rejestracja: 2015-07-28, 10:28 Posty: 53
|
Dodawanie nowych pozycji w dokumencie - InfoDok
Witam ponownie, Męczyłem się przez pół dnia z dodawaniem pozycji na WB w Forte i doszedłem do tego, że najprawdopodobniej moje problemy wynikają m.in. z niewłaściwego korzystania z funkcji Begin, Insert oraz Next - chociaż wydaje mi się, że wypróbowałem wszystkie kombinacje . Mam więc pytanie jak należy je prawidłowo używać (dla uproszczenia chodzi tylko o zapisy - a nie rejestry). Dlatego, że dane dokumentu nie są zapisywane w tabeli "zapisy" to wnioskuję, że przed dok.SetField(0, ...) nie dodaję ani Begin ani Insert, które to odnoszą się tylko do zapisów i rejestrów (index 1 lub 2 w funkcji SetField). Na logikę Begin(1) idzie jako pierwszy przed wywołaniem pierwszego dok.SetField(1,...). Następnie dodaję pola przez SetField(1,...) a następnie... No właśnie co? Next czy Insert? Wg dokumentacji Insert umożliwia dodanie nowego zapisu w dokumencie. A więc wydaje mi się, że powinno być przed wywołaniem Next, które to zgodnie z dokumentacją umożliwia ustawienie kolejnego zapisu w dokumencie. A żeby coś ustawić najpierw trzeba coś stworzyć (dodać). Chociaż mam tu spore wątpliwości czy ja dobrze rozumiem tą dokumentację... A może się mylę? Bo zgodnie z dokumentacją funkcja Begin również "ustawia" pierwszy zapis - a więc wypadałoby go najpierw utworzyć. Niestety wywołanie funkcji Insert przed Begin wywala błędy... Poniżej prezentuję swój kod, którego celem jest dodanie dwóch pozycji na wyciągu bankowym. Niestety Symfonia wywala błąd, który również załączam. Bardzo proszę o pomoc w ustaleniu co robię źle (gdzie popełniam błąd). Co ciekawe próba dodania tylko jednego zapisu w Forte również kończy się niepowodzeniem. Ciągle są jakieś błędy a do tego formularz ustawia konto tylko po Wn lub tylko po Ma - mimo, że ustawione jest dodanie konta po obu stronach... kod: Kod: #include "fkutil.sci" #include "dbnames.sci"
InfoDok dok
dok.bZap = dbOpenZapBase(indeksRoku(), ZRODLO_BUFOR, true) dok.bDok = dbOpenDokBase( indeksRoku(), ZRODLO_BUFOR, true ) dok.bKsie = dbOpenDokBase( indeksRoku(), ZRODLO_BUFOR, true )
dok.SetField(0, "skrot", "WB") dok.SetField(0, "nazwa", "DP/2015/08") dok.SetField(0, "tresc", "Treść dokumentu") dok.SetField(0, "datawpr", "2015-09-11") dok.SetField(0, "datadok", "2015-09-11") dok.SetField(0, "dataOper", "2015-09-11") dok.SetField(0, "kwota", 2004)
dok.begin(1) dok.SetField(1, "opis", "bla bla") dok.SetField(1, "kwota", 1002) dok.SetField(1, "strona", 0) dok.SetField(1, "synt", 100) dok.SetField(1, "pozycja", 0)
//dok.next(1) dok.Insert(1) dok.next(1) //najpierw next później Insert... Tj. Begin -> next -> insert -> next -> insert...
dok.SetField(1, "kwota", 1002) dok.SetField(1, "strona", 1) dok.SetField(1, "synt", 200) dok.SetField(1, "pozycja", 0)
//dok.next(1) dok.Insert(1) dok.next(1) //najpierw next później Insert... Tj. Begin -> next -> insert -> next -> insert...
dok.SetField(1, "opis", "bla bla") dok.SetField(1, "kwota", 1002) dok.SetField(1, "strona", 0) dok.SetField(1, "synt", 100) dok.SetField(1, "pozycja", 1)
//dok.next(1) dok.Insert(1) dok.next(1) //najpierw next później Insert... Tj. Begin -> next -> insert -> next -> insert...
dok.SetField(1, "kwota", 1002) dok.SetField(1, "strona", 1) dok.SetField(1, "synt", 200) dok.SetField(1, "pozycja", 1)
dok.InsRec()
//ZAMYKAMY DB DbClose(dok.bZap) DbClose(dok.bDok) DbClose(dok.bKsie)
Załączniki:
error.png [ 15.15 KiB | Przeglądany 4442 razy ]
|
2015-09-28, 13:35 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
WojtekM
Rejestracja: 2015-07-28, 10:28 Posty: 53
|
Re: Dodawanie nowych pozycji w dokumencie - InfoDok
Czy jest ktoś w stanie poratować w w/w zakresie?
|
2015-09-30, 12:43 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: Dodawanie nowych pozycji w dokumencie - InfoDok
(1)
chyba brakuje pola idDlaRozliczen w zapisach.
|
2015-09-30, 12:53 |
|
|
WojtekM
Rejestracja: 2015-07-28, 10:28 Posty: 53
|
Re: Dodawanie nowych pozycji w dokumencie - InfoDok
@rafal jesteś WIELKI!!! Działa :D Co ciekawe próbowałem dodać wcześniej to pole, ale ciągle były jakieś błędy więc dałem to później w komentarz sądząc, że jest ono nie istotne... A teraz działa O_o :)
Dzięki!!!
|
2015-09-30, 13:28 |
|
|
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
Re: Dodawanie nowych pozycji w dokumencie - InfoDok
W czasie wykonywania poniższego kodu mam komunikat, że dokument o takiej nazwie został już wprowadzony. Robi mi się dok. z jednym zapisem, przy otwieraniu mam błąd o niepoprawnym rozbiciu na kontach Kod: #include "fkutil.sci" #include "dbnames.sci"
InfoDok dok
dok.bZap = dbOpenZapBase(indeksRoku(), ZRODLO_BUFOR, true) dok.bDok = dbOpenDokBase( indeksRoku(), ZRODLO_BUFOR, true ) dok.bKsie = dbOpenDokBase( indeksRoku(), ZRODLO_BUFOR, true )
dok.begin(1) dok.SetField(0, "skrot", "WB") dok.SetField(0, "nazwa", "DP/2015/08") dok.SetField(0, "tresc", "Treść dokumentu") dok.SetField(0, "datawpr", "2015-08-11") dok.SetField(0, "datadok", "2015-08-11") dok.SetField(0, "dataOper", "2015-08-11") dok.SetField(0, "kwota", 1001.00) dok.Insert(1)
dok.SetField(1, "opis", "bla bla") dok.SetField(1, "kwota", 1002) dok.SetField(1, "strona", 0) dok.SetField(1, "synt", 100) dok.SetField(1, "pozycja", 0) dok.Insert(1)
dok.next(1) dok.SetField(1, "kwota", 1002) dok.SetField(1, "strona", 1) dok.SetField(1, "synt", 200) dok.SetField(1, "pozycja", 0)
//---------------------
dok.Insert(1) dok.SetField(1, "opis", "xxx") dok.SetField(1, "kwota", 1001) dok.SetField(1, "strona", 0) dok.SetField(1, "synt", 100) dok.SetField(1, "pozycja", 1)
dok.Insert(1) dok.next(1) dok.SetField(1, "kwota", 1001) dok.SetField(1, "strona", 1) dok.SetField(1, "synt", 200) dok.SetField(1, "pozycja", 1)
dok.InsRec()
//ZAMYKAMY DB DbClose(dok.bZap) DbClose(dok.bDok) DbClose(dok.bKsie)
_________________ zz
|
2019-02-07, 15:28 |
|
|
zz
Rejestracja: 2008-03-10, 14:01 Posty: 593
|
Re: Dodawanie nowych pozycji w dokumencie - InfoDok
wycofuję pytanie, brakowało oczywiście IdDlaRozliczen
_________________ zz
|
2019-02-08, 08:59 |
|
|
|
Strona 1 z 1
|
[ Posty: 6 ] |
|
Kto jest online |
Użytkownicy przeglądający to forum: Bing [Bot] 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
|
|
|
|