Witam,
Wykonanie funkcji XLWykonajPodanyWydruk z trybem podglądu na ekran (urzadzenie=1) powoduje zawieszenie się tej funkcji i tym samym całej aplikacji. Trzeba ją ubić z menedżera zadań.
Kod:
public static void WykonajWydruk(int zrodlo, int wydruk, int format, string filtrSql, int urzadzenie)
{
var wydrukInfo = new XLWydrukInfo_24();
wydrukInfo.Wersja = ApiVer;
wydrukInfo.Zrodlo = zrodlo;
wydrukInfo.Wydruk = wydruk;
wydrukInfo.Format = format;
wydrukInfo.FiltrSQL = filtrSql;
wydrukInfo.Urzadzenie = urzadzenie;
var ret = cdn_api.cdn_api.XLWykonajPodanyWydruk(wydrukInfo); // to się wiesza
Validate(ret, "XL_WykonajWydruk", 87);
}
Przykład:
ApiXL.WykonajWydruk(0, 303, 6, "(TrN_GIDTyp=2033 AND TrN_GIDNumer=45483)", 1); // faktura sprzedaży
Będę wdzięczny za wskazówki.
API - XlWykonajPodanyWydruk
Moderator: mikey
- viesiek1
- Posty: 425
- Rejestracja: 03 maja 2011, 18:40
- Rola: Administrator CDN XL
- Wersja: 2023
- Lokalizacja: Bielsko-Biała
- Kontakt:
Re: API - XlWykonajPodanyWydruk
A może tak Ci się uda:
Kod: Zaznacz cały
Runtime.ConfigurationDictionary.WykonajWydruk(...)Wiesław Świergała
tel: +48 33 829 54 50
e-mail: wieslaw.swiergala@hydro.com.pl
http://www.hydro.com.pl
tel: +48 33 829 54 50
e-mail: wieslaw.swiergala@hydro.com.pl
http://www.hydro.com.pl
Re: API - XlWykonajPodanyWydruk
ConfigurationDictionary jest równe null. Wydaje mi się, że nie ma możliwość skorzystania z metod tej klasy inaczej niż przez callbacki (hydra).
- viesiek1
- Posty: 425
- Rejestracja: 03 maja 2011, 18:40
- Rola: Administrator CDN XL
- Wersja: 2023
- Lokalizacja: Bielsko-Biała
- Kontakt:
Re: API - XlWykonajPodanyWydruk
Tak, przez Hydrę, ale bez użycia funkcji API. Robisz normalny Callback w dużej Hydrze i i używasz tej funkcji. Ja sam nie miałem potrzeby wywoływać wydruku, ale widziałem taką opcję, więc Ci podpowiadam. Niestety nie mam pewności czy i jak ona działa.
Wiesław Świergała
tel: +48 33 829 54 50
e-mail: wieslaw.swiergala@hydro.com.pl
http://www.hydro.com.pl
tel: +48 33 829 54 50
e-mail: wieslaw.swiergala@hydro.com.pl
http://www.hydro.com.pl
- viesiek1
- Posty: 425
- Rejestracja: 03 maja 2011, 18:40
- Rola: Administrator CDN XL
- Wersja: 2023
- Lokalizacja: Bielsko-Biała
- Kontakt:
Re: API - XlWykonajPodanyWydruk
Udało mi się zrobić wydruk przez API. Podany niżej kod działa:
Kod: Zaznacz cały
private void Test()
{
Int32 APIVersion = 23;
Int32 SessionID = -1;
try
{
cdn_api.XLLoginInfo_23 XLLogin = new cdn_api.XLLoginInfo_23();
XLLogin.Wersja = APIVersion;
XLLogin.Winieta = -1;
cdn_api.cdn_api.XLLogin(XLLogin, ref SessionID);
cdn_api.XLWydrukInfo_23 XLWydruk = new cdn_api.XLWydrukInfo_23();
XLWydruk.Wersja = APIVersion;
XLWydruk.Zrodlo = 1;
XLWydruk.Wydruk = 2;
XLWydruk.Format = 1;
XLWydruk.FiltrSQL = "(TrN_GIDTyp=2033 AND TrN_GIDNumer=199381)";
XLWydruk.Urzadzenie = 3; // Inna drukarka
XLWydruk.DrukujDoPliku = 1;
XLWydruk.PlikDocelowy = "C:\\plik.pdf";
int lReturn = cdn_api.cdn_api.XLWykonajPodanyWydruk(XLWydruk);
MessageBox.Show("Wynik: " + lReturn.ToString(), "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Błąd wydruku: " + ex.Message, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (cdn_api.cdn_api.XLLogout(SessionID) != 0)
{
MessageBox.Show("Błąd przy wylogowaniu", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
MessageBox.Show("Wykonano");
}
}
}
Wiesław Świergała
tel: +48 33 829 54 50
e-mail: wieslaw.swiergala@hydro.com.pl
http://www.hydro.com.pl
tel: +48 33 829 54 50
e-mail: wieslaw.swiergala@hydro.com.pl
http://www.hydro.com.pl