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

FKP - InfoDok - Tworzenie dokumentu w buforze
https://forum.mix-soft.pl/viewtopic.php?f=15&t=1171
Strona 1 z 1

Autor:  Sławek [ 2009-09-07, 14:19 ]
Tytuł:  FKP - InfoDok - Tworzenie dokumentu w buforze

Witam!

Chodzi o FK Premium 2009.1.

Czy mógłby kotś z grupowiczów podzielić się fragmentem działającego kodu, który utworzy dokument w buforze?

Próbuje to zrobić za pomocą obiektu InfoDok ale nic się nie dzieje. Poniżej kod:

Kod:
InfoDok dok

dok.bDok = Open KatalogRoku() + "07dok_b.dat" For base "buf_dokum"
BaseError(KatalogRoku() + "07dok_b.dat", 4)
dok.bZap = Open KatalogRoku() + "06zap_b.dat" For base "buf_zapisy"
BaseError(KatalogRoku() + "06zap_b.dat", 4)

dok.SetField(0, "skrot", "DP")
dok.SetField(0, "nazwa", "DP/2009/01")
dok.SetField(0, "tresc", "Treść dokumentu")
dok.SetField(0, "datawpr", "2009-09-07")
dok.SetField(0, "datadok", "2009-09-07")
dok.SetField(0, "dataOper", "2009-09-07")
dok.SetField(0, "kwota", 100.00)

dok.Insert(1)
dok.SetField(1, "kwota", 100)
dok.SetField(1, "strona", 0)
dok.SetField(1, "synt", 100)
dok.SetField(1, "nrRozbKP", 3)

dok.Insert(1)
dok.SetField(1, "kwota", 100)
dok.SetField(1, "strona", 1)
dok.SetField(1, "synt", 200)
dok.SetField(1, "nrRozbKP", 2)

int err = dok.PutRec()
message using "putrec = %d, errors = %d", err, dok.GetField(0, "errors")

error ""


PutRec zwraca 0 i żaden dokument nie pojawia się.

Dzięki i Pozdrawiam

Autor:  barnie [ 2009-09-08, 12:05 ]
Tytuł:  PRZYKŁAD DODAWANIA DOKUMENTU ZA POMOCĄ OBIEKTU INFODOK

Przykład
^
Kod:
#include "dateutil.sci"

   BASEHANDLE  base_DOK , base_BUF , base_ZAP

   base_DOK = dbOpenDokBase( indeksRoku(), ZRODLO_KSIEGI, true )
   base_BUF = dbOpenDokBase( indeksRoku(), ZRODLO_BUFOR, true )
   base_ZAP = dbOpenZapBase( indeksRoku(), ZRODLO_BUFOR, true )

InfoDok dok

dok.bDok  = base_BUF
dok.bZap  = base_ZAP
dok.bKsie = base_DOK
dok.Begin(1)

dok.SetField(0, "skrot", "DP")
dok.SetField(0, "nazwa", "DP/2009/01")
dok.SetField(0, "tresc", "Treść dokumentu")
dok.SetField(0, "datawpr", "2009-09-07")
dok.SetField(0, "datadok", "2009-09-07")
dok.SetField(0, "dataOper", "2009-09-07")
dok.SetField(0, "kwota", 100.00)

dok.Insert(1)
dok.SetField(1, "kwota", 100.00)
dok.SetField(1, "strona", 0)
dok.SetField(1, "synt", 100)
dok.SetField(1, "nrRozbKP", 3)

dok.Insert(1)
dok.SetField(1, "kwota", 100)
dok.SetField(1, "strona", 1)
dok.SetField(1, "synt", 200)
dok.SetField(1, "nrRozbKP", 2)

dok.SprawdzDokument()

int err = dok.InsRec()

Autor:  Jarek75 [ 2009-09-10, 08:34 ]
Tytuł: 

Spróbuj na końcu InsRec zamiast PutRec. To tak na logikę. PutRec aktualizuje rekord wcześniej istniejący, a InsRec wstawia nowy. Przykład jest w pliku przel_zb.sci

Autor:  Sławek [ 2009-09-10, 10:09 ]
Tytuł: 

Jarek75 pisze:
Spróbuj na końcu InsRec zamiast PutRec. To tak na logikę. PutRec aktualizuje rekord wcześniej istniejący, a InsRec wstawia nowy. Przykład jest w pliku przel_zb.sci


Działa! :-D
Dziękuję za pomoc :-)

btw. w pomocy do FK - Opis języka raportów - pisze :-/ :

Cytuj:
InfoDok.PutRec - Zapisuje nowy, kompletny dokument do bufora...
...
InfoDok.InsRec - Modyfikuje uprzednio wczytany dokument w buforze...


Pozdrawiam

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