Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-05-10, 18:03x



Odpowiedz w temacie  [ Posty: 5 ] 
import kontrahentow - problem z rodzajem 
Autor Wiadomość

Rejestracja: 2009-10-29, 09:48
Posty: 48
Pomógł: 1
Post import kontrahentow - problem z rodzajem
Witam.
Probuje zaimportowac kontrahenta przy pomocy ponizszego kodu:

Kod:
//================================================================================
// Import kontrahenta.
//================================================================================
int Sub CustomerImport()

Clear(basKH)
string naglowek = readColumn()   
string kod = readColumn()
string nazwa = readColumn()
string miasto = readColumn()
string ulica = readColumn()
string numerDomu = readColumn()
string numerLokalu = readColumn()
string kodPocztowy = readColumn()
string nip = readColumn()
string telefon = readColumn()
string typPlatnosciId = readColumn()
string rabat = readColumn()
string czyBrutto = readColumn()
string cennikId = readColumn()
string negocjacjaCen = readColumn()
string terminPlatnosci = readColumn()
string rodzajId = readColumn()
   
SetField (basKH, "typ", "0")
SetField (basKH, "typi", 0)
SetField (basKH, "subtypi", 0)
SetField (basKH, "kod", kod)
SetField (basKH, "nazwa", nazwa)
SetField (basKH, "miejscowosc", miasto)
SetField (basKH, "ulica", ulica)
SetField (basKH, "dom", numerDomu)
SetField (basKH, "lokal",numerLokalu)
SetField (basKH, "kodpocz", kodPocztowy)
SetField (basKH, "nip", nip)
SetField (basKH, "tel1", telefon)
if typPlatnosciId != "" then
   SetField (basKH, "formaplatn", Val(typPlatnosciId))
endif
SetField (basKH, "upust", Val(rabat))
int grupaceni = 0
if czyBrutto == "1" then
   grupaceni = grupaceni + 1
endif
select case (cennikId)
   case "65":
      grupaceni = grupaceni + 2   // A
   case "66":
      grupaceni = grupaceni + 4   // B
   case "67":
      grupaceni = grupaceni + 6   // C
   case "68":
      grupaceni = grupaceni + 8   // D
endselect
SetField (basKH, "grupaceni", grupaceni)
if negocjacjaCen = "0" then
   SetField (basKH, "negoc", "T")
else
   SetField (basKH, "negoc", "N")
endif
if rodzajId == "" then
   SetField (basKH, "rodzaj", 3100)
else
   SetField (basKH, "rodzaj", Val(rodzajId))
endif
SetField (basKH, "idkraju", 5801)
SetField (basKH, "katalog", 2100)

if InsRec(basKH) != 0 then
   ShowMsgError()   
   baseError (basKH, 2)
   Error ""
endif

EndSub


Mam problem z przypisaniem rodzaju kontrahenta oraz typu platnosci. Jesli przypisze rodzaj (id = 438 tak jak dla istniejacych w bazie kontrahentow, ktorych wczesniej sobie wyeksportowalem) to powstaje ponizszy blad:
1. W podgladzie kontrahenta nie pojawia sie zaden rodzaj
2. Nie moge przypisac kontrahentowi jakiegokolwiek rodzaju (pojawia sie komunikat 'Nieznany katalog lub rodzaj')
3. Nie moge usunac takiego kontrahenta (pojawia sie nieudokumentowany blad obslugi bazy -4101)

W przypadku platnosci, nie pojawia sie przypisana forma platnosci.

Gdzie tkwi blad?

Pozdrawiam,
Jacek Frieske


2010-01-07, 12:55
Wyświetl profil
Autor Wiadomość
 



Rejestracja: 2009-10-29, 09:48
Posty: 48
Pomógł: 1
Post 
Problem pojawia sie podczas importu wartosci slownikowych zdefiniowanych w tabeli XT. Z tabeli odczytalem sobie wartosc id katalogu o nazwie DOSTAWCY = 116. Zaimportowalem kontrahenta zgodnie z powyzszym kodem podajac jako id katalogu wartosc 116

Kod:
SetField (basKH, "katalog", 116)


Po imporcie kontrahenta w polu katalog istnieje wartosc 51BM.DAT Przeanalizowalem zawartosc tabeli XT i widze, ze sa dwa pola o identyfikatorze 116 (DOSTAWCY oraz 51BM.DAT) W dokumentacji jest napisane, ze pole id jest polem unikalnym (autoincrement). Czy u was tez istnieje taka niespojnosc?

Jak obejsc problem importu kontrahenta i przypisania mu wartosci slownikowych (typ platnosci, rodzaj, katalog)?


2010-01-07, 15:36
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3984
Pomógł: 445
Post 
Katalogi dodane przez użytkownika w programie nie będą miały mniejszego ID niż 65000.
Tak więc nie wiem skąd u Ciebie ID jest równe 116.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2010-01-07, 16:13
Wyświetl profil
Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2008-04-18, 18:52
Posty: 5169
Pomógł: 59
Post 
dokladniej 2^16 czyli >65536


2010-01-07, 16:15
Wyświetl profil

Rejestracja: 2009-10-29, 09:48
Posty: 48
Pomógł: 1
Post 
Rozwiazanie jest banalne, ale bez pomocy bym nigdy tego nie znalazl. Podczas eksportu tabeli xt w konwersji z liczby na stringa rzutowalem long'a na int'a i stad wziely sie problemy z wartosciami identyfikatorow.

Dzieki za pomoc,

pozdrawiam
Jacek


2010-01-07, 16:58
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 5 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Import kontrahentów

w Programy Księgowe

ŁukaszM

7

4324

2013-01-04, 22:24

ŁukaszM Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Import kontrahentów

w Programy Księgowe

Api

1

1834

2014-01-27, 16:38

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Import kontrahentów z FK do Handel ??

w Programy Handlowe

Zuzol

2

2314

2013-05-24, 21:27

wrob Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Import specjalny - uzgadnianie kontrahentów

w Programy Księgowe

MarB

1

2780

2013-03-18, 16:41

wrob Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 8 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:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant