Słowem wstępu zaznaczę, że nie jestem programistą. Jednak w celu automatyzacji pewnych procesów, musiałem się zająć wykorzystaniem API w Comarch ERP XL. Do stworzenia pierwszego programu wykorzystującego API użyję Microsoft Visual Studio (edycję Community), które jest do pobrania tutaj: https://visualstudio.microsoft.com/pl/downloads/
Po pobraniu instalujemy program w domyślnej konfiguracji i uruchamiamy go. Klikamy w „Utwórz nowy projekt”
Następnie wybieramy „Aplikacja konsoli” i klikamy „Dalej”
Kolejne ustawienia, na potrzeby tego wpisu możemy zostawić domyślne i przechodzimy dalej.
W ostatnim kroku klikamy „Utwórz”. Teraz w oknie programu rozwijamy strzałkę w dół przy „Any CPU” i uruchamiamy Menedżer konfiguracji.
Następnie w oknie menadżera konfiguracji, w polu „Aktywne platformy rozwiązania”, rozwijamy listę i wybieramy opcję „<Nowy…>”.
W nowo otwartym oknie wybieramy platformę „x86” i potwierdzamy OK.
Teraz czas na kod naszego programu. Będzie to program, który wykona nam wydruk dokumentu. Poniżej jest cały kod do skopiowania i wklejenia w Visual Studio. Później zajmiemy się analizą jego istotnych elementów.
using System;
using cdn_api;
namespace XLWykonajPodanyWydruk
{
class APIWykonajPodanyWydruk
{
[STAThread]
static void Main(string[] args)
{
XLLoginInfo_20221 Login = new XLLoginInfo_20221();
Login.Wersja = 20221;
Login.ProgramID = "API.NET";
Login.Baza = "Nazwa bazy z menedżera baz";
Login.OpeIdent = "Identyfikator operatora";
Login.OpeHaslo = "Hasło operatora";
Int32 SessionID = 0;
Int32 APIVersion = 20221;
int LoginResult = cdn_api.cdn_api.XLLogin(Login, ref SessionID);
if (LoginResult == 0)
{
XLWydrukInfo_20221 wydruk = new XLWydrukInfo_20221();
wydruk.Wersja = APIVersion;
wydruk.Zrodlo = 0;
wydruk.Format = 6;
wydruk.Wydruk = 303;
wydruk.FiltrSQL = "(TrN_GIDTyp=2033 AND TrN_GIDNumer=14416212)";
wydruk.Urzadzenie = 1;
int NowyWydruk = cdn_api.cdn_api.XLWykonajPodanyWydruk(wydruk);
}
cdn_api.cdn_api.XLLogout(SessionID);
}
}
}
W Visual Studio po prawej stronie w „Eksploratorze rozwiązań” wybieramy plik program.cs i wklejamy skopiowany kod.
Uwaga!!! do prawidłowego funkcjonowania programu konieczne jest zainstalowanie programu Comarch ERP XL na stacji roboczej, na której program jest uruchamiany. Oraz dodana baza do menedżera baz z wpisem dla wszystkich użytkowników.
W kolejnym kroku klikamy prawym klawiszem myszy na „Zależności” i wybieramy „Dodaj odwołanie do projektu…”
Następnie przechodzimy na kartę „Przeglądaj” i klikamy przycisk „Przeglądaj…”. Musimy teraz zlokalizować plik cdn_api20221.net.dll (Na potrzeby tego wpisu używam Comarch ERP XL w wersji 2022.1). Domyślnie plik znajduje się w lokalizacji C:\Program Files (x86)\Comarch ERP XL 2022.1\. Po wybraniu pliku klikamy przycisk „Dodaj” oraz zamykamy okno „Menadżer odwołań” przyciskiem OK. Może się pojawić błąd mówiący o tym, że odwołanie jest nie prawidłowe, ale nie przejmujmy się tym. Potwierdzamy OK i działamy dalej.
Kolej teraz na analizę kodu programu, w pierwszej kolejności musimy uzupełnić prarametry:
Login.Baza = "Nazwa bazy danych Comarch ERP XL z menedżera baz";
Login.OpeIdent = "Identyfikator operatora, przez którego API będzie się logowało do Comarch ERP XL";
Login.OpeHaslo = "Hasło wyżej wymienionego operatora";
Kolejne parametry do uzupełnienia to identyfikator wydruku z Comarch ERP XL, który będziemy chcieli wywołać.
wydruk.Zrodlo = 0;
wydruk.Format = 6;
wydruk.Wydruk = 303;
Załóżmy, że chcemy wydrukować dokument FS. Otwieramy Comarch ERP XL, przechodzimy do listy dokumentów FS i otwieramy wybrany dokument FS. Klikamy strzałkę w dół pod ikoną drukarki i wybieramy opcję „Konfiguracja wydruków…”
W nowo otwartym oknie „Konfiguracja wydruków” klikamy dwu krotnie interesujący nas wydruk i w górnej części nowo otwartego okno „Format wydruku” mamy interesujące nas parametry: ID źródła, wydruku i formatu. Podstawiamy je do kodu programu.
Ostatni parametr to filtr SQL, który zawęzi nam wydruk do konkretnego dokumentu. Można go uzyskać przez kliknięcie ikony wykrzyknika (będąc w otwartym dokumencie FS) w górnej części ekranu z wciśniętym klawiszem CTRL na klawiaturze. Wtedy w nowo otwartym oknie „Konfiguracja raportów” na zakładce „Parametry” znajdziemy interesujący nas filtr SQL.wydruk.FiltrSQL = "(TrN_GIDTyp=2033 AND TrN_GIDNumer=14128836)";
Po prawidłowym skonfigurowaniu parametrów w programie, uruchamiamy go przyciskiem . Naszym oczom powinny się ukazać najpierw logo Comarch ERP XL, a następnie standardowe okno realizacji wydruku.
Ostatecznie na ekranie zostanie otwarty nasz dokument FS w pliku .pdf.
Warto wspomnieć jeszcze że parametrem wydruk.Urzadzenie = 1
; możemy regulować to, gdzie nasz wydruk jest wysyłany. Wg dokumentacji to typ urządzenia wyjściowego (1- ekran; 2 – domyślna drukarka, 3 – inna drukarka, 4 – serwer wydruków).
Jeżeli zdecydujemy się na opcję 3 – inna drukarka, to w dodatkowym parametrze musimy podać nazwę drukarki, na którą ma być wysłany wydruk wydruk.NazwaDrukarki = "Nazwa drukarki np. Samsung"
;
Jest jeszcze opcja wydruku bezpośrednio do pliku, bez podglądu na ekran. Można ją zrealizować za pomocą dwóch dodatkowych parametrów wydruk.DrukujDoPliku = 1; wydruk.PlikDocelowy = @"C:\Users\user\Desktop\XLwydrukDoPliku.pdf";
Wtedy usuwamy parametr wydruk.Urzadzenie = 1;
Koniec 🙂
Jeżeli pomogłem to ,a będę miał więcej energii na pisanie kolejnych ciekawych wpisów.
Hi! I just wish to give you a big thumbs up for the excellent info you have here on this post. I am coming back to your blog for more soon.