ApiAutomator przykład 3 - masowe generowanie dokumentów PDF
: 24 lip 2018, 19:33
Czasem zachodzi potrzeba wygenerowania sporej ilości wydruków PDF, faktur, zamówień lub innych dokumentów. W naszej bazie po ostatniej operacji mamy sporo PZtów, aby je zapisać w plikach PDF można wykorzystać funkcję API - XLWykonajPodanyWydruk.
Wypełnienie odpowiednich danych w strukturze funkcji powierzymy procedurze danych:
Pliki generujemy jako nazwa dokumentu z rozszerzeniem PDF. Funkcja replace zamienia nam znaki shlash '/' na podkreślenie, bo Windows nie pozwala by znajdowały się w nazwie pliku.
Należy też wskazać prawidłowy katalog (po stronie klienta) w którym mają utworzyć się wszystkie pdfy (w przykładzie jest e:\wydruki).
możemy sprawdzić co zwraca ta procedura wykonując komendę
wynik jest następujący:
wywołanie tej komendy z poziomu AA wygląda tak:
źródła skryptów dostępne są tutaj
bazę danych zawierającą podstawowe dane przydatne do testowania funkcjonalności można pobrać tutaj
darmową wersję ApiAutomatora tutaj
jeśli zrobisz backup swojej bazy produkcyjnej i odtworzysz ją jako bazę testową, na której już nie będą realizowane procesy biznesowe to swobodnie możesz na niej wykorzystywać darmową licencję ApiAutomatora.
Wypełnienie odpowiednich danych w strukturze funkcji powierzymy procedurze danych:
Kod: Zaznacz cały
create procedure aa.WydrukPZDane @Gid int = 0
as
begin
select
'XLWykonajPodanyWydruk' as _komenda,
0 as Zrodlo,
538 as Wydruk,
1 as Format,
'TrN_GIDTyp=1489 AND TrN_GIDNumer=' + cast(trn_gidnumer as varchar(10)) as FiltrSQL,
'e:\wydruki\' + replace(cdn.nazwaobiektu(1489,trn_gidnumer,0,2),'/','_') + '.pdf' as PlikDocelowy, /*' katalog i nazwa plików docelowych */
2 as Urzadzenie,
1 as DrukujDoPliku
from
cdn.TraNag
where
trn_gidtyp = 1489
end
Należy też wskazać prawidłowy katalog (po stronie klienta) w którym mają utworzyć się wszystkie pdfy (w przykładzie jest e:\wydruki).
możemy sprawdzić co zwraca ta procedura wykonując komendę
Kod: Zaznacz cały
exec aa.WydrukPZDane
Kod: Zaznacz cały
aa.exe --zrodlo=n:1,aa.WydrukPZDane ^
--dbUser=sa ^
--dbPass=aaaaaa ^
--cdnName=3lance ^
--cdnLogin=ADMIN ^
--cdnPass="" ^
--logInfo="*.debug=false;*.info=true" ^
--dbString="DRIVER={SQL Server};Server=cdnsrv\ex14;Database=ERPXL_3lance"
bazę danych zawierającą podstawowe dane przydatne do testowania funkcjonalności można pobrać tutaj
darmową wersję ApiAutomatora tutaj
jeśli zrobisz backup swojej bazy produkcyjnej i odtworzysz ją jako bazę testową, na której już nie będą realizowane procesy biznesowe to swobodnie możesz na niej wykorzystywać darmową licencję ApiAutomatora.