API - dodawanie PZ z pliku XML

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

rafal
Posty: 48
Rejestracja: 02 paź 2009, 16:31
Rola: Inny

Re: API - dodawanie PZ z pliku XML

Post autor: rafal »

Jesli używasz kodu, który załączyłes na poczatku tematu to przypuszczam że problemem jest to że masz tylko jedną strukture odpowiedzialna za element dokumentu.
W pętli probujesz zmieniać tylko EAN. Spróbuj tworzyć cały obiekt.

Kod: Zaznacz cały

forech(var v in ...){
  cdn_api.XLDokumentElemInfo_22 dokumenteleminfo = new XLDokumentElemInfo_22();
  dokumenteleminfo.TowarEAN = row["EAN"].ToString();
  cdn_api.cdn_api.XLDodajPozycje(IDokumentID, dokumenteleminfo);
}
Jesli chodzi o otworzenie okna towaru. Zapoznaj się z funkcja UruchomFormatkeWgGID opis znajdziesz w dokumentacji w sekcji Dodatkowe->Zdarzenia.

marek1712
Posty: 21
Rejestracja: 25 mar 2011, 12:55
Rola: Inny
Wersja: 10

Re: API - dodawanie PZ z pliku XML

Post autor: marek1712 »

Z tą pętlą to chyba coś dziwnego? Skoro wczytuję EAN w pętli to powinien zostać nadpisany przy następnym przebiegu? A w debuggerze widzę, że po zakończonym przebiegu wartość z TowarEAN jest przepisywana to TowarKOD i temu są problemy. Nieważne - zrobiłem jak kolega zasugerował (czyli obiekt tworzę wewnątrz pętli i tyle). Dzięki.
Teraz druga kwestia - UruchomFormatkeWgGID
Ta struktura wymaga ustawienia m.in. takich właściwości:
GIDFirma
GIDNumer
GIDLp
Skąd mam je wziąć skoro ich nie ustawiam? W XLDodajPozycje mam je wpisać ręcznie i stamtąd pobrać?

rafal
Posty: 48
Rejestracja: 02 paź 2009, 16:31
Rola: Inny

Re: API - dodawanie PZ z pliku XML

Post autor: rafal »

Zrobiłbym tak: próbujesz dodać pozycje jesli się nie udaje z powodu braku towaru uruchamiasz wspomniana wczesniej funkcje z uzupełniona następujaco strukturą:

Kod: Zaznacz cały

int error=cdn_api.cdn_api.XLUruchomFormatkeWgGID(new XLGIDGrupaInfo_18()
            {
                Wersja= twoj numer wersji,
                GIDTyp=16,
                GIDFirma=twoj numer firmy,
                GIDNumer=-1
                
            });
GIDNumer - jesli podasz -1 pokaże się lista towarów do wyboru. Tym samym zmusisz użytkownika aby wybrał towar lub go dodał o to chyba chodziło.

marek1712
Posty: 21
Rejestracja: 25 mar 2011, 12:55
Rola: Inny
Wersja: 10

Re: API - dodawanie PZ z pliku XML

Post autor: marek1712 »

Dziękuję - czyli dobrze kombinowałem ;)
Teraz mam problem z pobraniem towaru który zaznaczył user - jak to zrobić?
W dokumentacji jest informacja:
w przekazanej strukturze zostanie skopiowany GID tego towaru lub kontrahenta, a ten z kolei można przekazać do funkcji XLDodajPozycje.
Tyle, że XLDodajPozycje wymaga EAN, kodu towaru lub jego nazwy. A dostaję GID (akurat na komputerze z Visualem nie mam dostępu do bazy XLa więc strzelam, że właściwy GID jest zwracany).

EDIT - chyba znalazłem. Ustawiam TwrReq na 1 i pobieram GID z TwrTyp?

EDIT2: - poprzedni EDIT nie działa. Napisałem coś takiego:

Kod: Zaznacz cały

int result = cdn_api.cdn_api.XLDodajPozycje(IDokumentID, dokumenteleminfo);
                        if (result != 0)
                        {
                            MessageBox.Show("Wynik dodawania pozycji: " + result.ToString());

                            cdn_api.XLGIDGrupaInfo_22 UruchomFormatkeWgID = new XLGIDGrupaInfo_22();
                            UruchomFormatkeWgID.Wersja = 22;
                            UruchomFormatkeWgID.GIDTyp = 16;
                            UruchomFormatkeWgID.GIDNumer = -1;

                            int wynik_formatki = cdn_api.cdn_api.XLUruchomFormatkeWgGID(UruchomFormatkeWgID);
                            MessageBox.Show("Wynik formatki: " + wynik_formatki.ToString());
                            if (wynik_formatki == 0)
                            {
                                dokumenteleminfo.TwrReq = 1;
                                dokumenteleminfo.TwrTyp = UruchomFormatkeWgID.GIDNumer;     //Nie wiem po co dwa
                                dokumenteleminfo.TwrNumer = UruchomFormatkeWgID.GIDNumer;   //razy trzeba przypisywać GIDNumer ale działa :)
                                cdn_api.cdn_api.XLDodajPozycje(IDokumentID, dokumenteleminfo);
                                MessageBox.Show("Jaki GID się wyświetla?: " + UruchomFormatkeWgID.GIDNumer.ToString());
                            }
                        }
Ma to sens?
Dopiero gdy TwrTyp i TwrNumer mają wartość wtedy pozycja dodaje się do dokumentu (gdy tylko jedna wartość jest ustawiona to nie działa; pomijam fakt, że część pól w dokumentacji nie jest opisana).

KME
Posty: 36
Rejestracja: 24 sty 2009, 17:47
Rola: Inny

Re: API - dodawanie PZ z pliku XML

Post autor: KME »

a nie byłoby logiczniej

dokumenteleminfo.TwrTyp = UruchomFormatkeWgID.GIDTyp
albo
dokumenteleminfo.TwrTyp = 16

marek1712
Posty: 21
Rejestracja: 25 mar 2011, 12:55
Rola: Inny
Wersja: 10

Re: API - dodawanie PZ z pliku XML

Post autor: marek1712 »

No właśnie coś mi fiksuje jeśli nie ustawię obydwu wartości - mniejsza jednak z tym ;)
Kolejny problem - tym razem XLDodajPozycje.
Jeśli mam towar, który nie ma EAN, a nie znam kodu (do uzupełnienia pola TowarKOD) - jak mogę na podstawie nazwy towaru wydobyć jego kod?

rafalW
Posty: 60
Rejestracja: 15 sty 2012, 14:13
Rola: Inny
Lokalizacja: Puławy

Re: API - dodawanie PZ z pliku XML

Post autor: rafalW »

Jeśli mam towar, który nie ma EAN, a nie znam kodu (do uzupełnienia pola TowarKOD) - jak mogę na podstawie nazwy towaru wydobyć jego kod?
API nie sluzy do zwracania danych, musisz dodac obsluge bazy

ODPOWIEDZ