Comarch ERP XL API – Wydruk dokumentu do pdf.

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 Postaw mi kawę na buycoffee.to ,a będę miał więcej energii na pisanie kolejnych ciekawych wpisów.

Jeden komentarz

  1. 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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *