Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-21, 22:14x



Odpowiedz w temacie  [ Posty: 6 ] 
Dodawanie nowych pozycji w dokumencie - InfoDok 
Autor Wiadomość

Rejestracja: 2015-07-28, 10:28
Posty: 53
Post 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
error.png [ 15.15 KiB | Przeglądany 4441 razy ]
2015-09-28, 13:35
Wyświetl profil
Autor Wiadomość
 



Rejestracja: 2015-07-28, 10:28
Posty: 53
Post Re: Dodawanie nowych pozycji w dokumencie - InfoDok
Czy jest ktoś w stanie poratować w w/w zakresie?


2015-09-30, 12:43
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post Re: Dodawanie nowych pozycji w dokumencie - InfoDok
Ta wiadomość była pomocna.(1)
chyba brakuje pola idDlaRozliczen w zapisach.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2015-09-30, 12:53
Wyświetl profil

Rejestracja: 2015-07-28, 10:28
Posty: 53
Post 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
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post 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
Wyświetl profil

Rejestracja: 2008-03-10, 14:01
Posty: 593
Post Re: Dodawanie nowych pozycji w dokumencie - InfoDok
wycofuję pytanie, brakowało oczywiście IdDlaRozliczen

_________________
zz


2019-02-08, 08:59
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 6 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Dodanie kolejnej pozycji w dokumencie (InfoDok)

w Programowanie

WojtekM

2

3248

2015-09-07, 22:37

WojtekM Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. [HMP] Dodawanie pozycji w dokumencie SP w buforze

w Programowanie

Bartosh89

14

6339

2010-11-13, 17:44

jabis Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. liczba pozycji w dokumencie

w Programy Handlowe

emajcher

6

4475

2014-04-09, 10:11

emajcher Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki 300 pozycji na dokumencie

w Programy Handlowe

aga2

6

6192

2015-03-26, 17:04

Symfrookie Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Google [Bot] i 12 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

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant