Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET
Moderator: mikey
john_doe
Posty: 650 Rejestracja: 26 maja 2008, 22:15
Rola: Inny
Post
autor: john_doe » 06 sie 2013, 15:27
Hej,
mam taki kod, który jest "ubogi" jednak narazie chodzi o to aby zadziałał.
Niestety otrzymuję
Nieznaleziony Clarion-proxy do obsługi interface-u COM.
Nie wczytany DLL zawierający odpowiedni proxy.
Załadować statycznie odpowiedni interface proxy.
puściłem rejestr.bat nic nie pomogło
kod
Kod: Zaznacz cały
private void drukuj()
{
Int32 APIVersion = 19;
Int32 SessionID = -1;
Int32 loginResult;
try
{
cdn_api.XLLoginInfo_20 Login = new cdn_api.XLLoginInfo_20();
Login.Wersja = APIVersion;
Login.Winieta = -1;
Login.ProgramID = "API Printout to pdf";
Login.UtworzWlasnaSesje = 0;
loginResult = cdn_api.cdn_api.XLLogin(Login, ref SessionID);
cdn_api.XLWydrukInfo_20 printIt = new cdn_api.XLWydrukInfo_20();
printIt.Wersja = APIVersion;
printIt.DrukujDoPliku = 1;
printIt.Zrodlo = 1;
printIt.Format = 2;
printIt.Wydruk = 2;
printIt.FiltrSQL = "(TrN_GIDTyp=2033 AND TrN_GIDNumer=461877722)";
printIt.Urzadzenie = 3;
printIt.PlikDocelowy = @"C:\\Users\Krychu\Documents\xl.pdf";
Int32 printResult;
printResult = cdn_api.cdn_api.XLWykonajPodanyWydruk(printIt);
Console.WriteLine("Session ID: " + SessionID + " ----> " + printResult);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
finally
{
if(cdn_api.cdn_api.XLLogout(SessionID) != 0 )
{
Console.WriteLine("Error during Logout");
}
else
{
Console.WriteLine("Logout successful!");
}
Console.ReadKey();
}
}
john_doe
Posty: 650 Rejestracja: 26 maja 2008, 22:15
Rola: Inny
Post
autor: john_doe » 08 sie 2013, 15:26
zapuściłem rejestr.bat jako administrator ( to przeoczyłem )
API zwraca kod błedu 249
zainstalowałem drukarkę PDF doPDF. Czy muszę zmienić jej nazwę? Ma to w ogóle związek ze sprawą?
teraz mam komunikat
Crystal Reports: błąd wykonania funkcji
Crystal Reports: błąd wykonania funkcji UstawParametry. Wydruk niemożliwy.
#-2147352571: Wystąpiła sytuacja wyjątkowa
%SOURCE%=
%DESCRIPTION%=
na windows 7 i xp jest dokładnie to samo
viesiek1
Posty: 425 Rejestracja: 03 maja 2011, 18:40
Rola: Administrator CDN XL
Wersja: 2023
Lokalizacja: Bielsko-Biała
Kontakt:
Post
autor: viesiek1 » 09 sie 2013, 07:51
Poniżej kod procedury, która wykonuje wydruk faktury do PDF, podpięta po klawisz umieszczony na formatce FS. Przed chwilą sprawdziłem, plik PDF został wygenerowany. Mam wersję 2013.5, ale kod działał od wersji 11.
Kod: Zaznacz cały
private static bool MakePrint()
{
Global.IsFinalInvoice();
Global.GetSendFileFullPath();
Int32 APIVersion = 24;
Int32 SessionID = -1;
try
{
cdn_api.XLLoginInfo_24 XLLogin = new cdn_api.XLLoginInfo_24();
XLLogin.Wersja = APIVersion;
XLLogin.ProgramID = "Sprzedaż";
XLLogin.Winieta = -1;
int lRetLogin = cdn_api.cdn_api.XLLogin(XLLogin, ref SessionID);
cdn_api.XLWydrukInfo_24 XLWydruk = new cdn_api.XLWydrukInfo_24();
XLWydruk.Wersja = APIVersion;
Global.PrintParameters lPrintParameters = Global.GetPrintParameters();
XLWydruk.Zrodlo = lPrintParameters.fZrodlo;
XLWydruk.Wydruk = lPrintParameters.fWydruk;
XLWydruk.Format = lPrintParameters.fFormat;
//XLWydruk.Zrodlo = 1;
//XLWydruk.Wydruk = 14;
//XLWydruk.Format = 1;
XLWydruk.FiltrSQL = "(TrN_GIDTyp=" + Global.gvGIDTyp + " AND TrN_GIDNumer=" + Global.gvGIDNumer + ")";
XLWydruk.Urzadzenie = 3; // Inna drukarka
XLWydruk.DrukujDoPliku = 1;
XLWydruk.PlikDocelowy = Global.gvSendFileFullPath;
int lPrintReturn = cdn_api.cdn_api.XLWykonajPodanyWydruk(XLWydruk);
if (lPrintReturn != 0)
{
ErrorAPI(APIVersion, 87, lPrintReturn);
return false;
}
else
{
if (File.Exists(Global.gvSendFileFullPath))
{
string lFileName = Path.GetFileName(Global.gvSendFileFullPath);
string lFilePath = Path.GetDirectoryName(Global.gvSendFileFullPath);
if (File.Exists(lFilePath + "\\Kopia " + lFileName))
{
if (Global.MoveWithReplace(lFilePath + "\\Kopia " + lFileName, Global.gvSendFileFullPath))
return true;
else
return false;
}
else
return false;
}
else
return false;
}
}
catch (Exception ex)
{
MessageBox.Show("Błąd wydruku: " + ex.Message, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
finally
{
//Runtime.WindowController.UnlockThread();
if (cdn_api.cdn_api.XLLogout(SessionID) != 0)
{
MessageBox.Show("Błąd przy wylogowaniu", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
// MessageBox.Show("Wystawiono WM dla kontrahenta: " + CustomerAkronim);
}
//Runtime.WindowController.LockThread();
}
}
john_doe
Posty: 650 Rejestracja: 26 maja 2008, 22:15
Rola: Inny
Post
autor: john_doe » 09 sie 2013, 13:38
dzięki Wiesław
Twój kod jest bardzo zbliżony do mojego tak ogólnie ( pomijając, że lepszy
) jednak nadal nie mogę znaleźć przyczyny dlaczego nie działa.
Zapuściłem Twój kod dla świętego spokoju. Dokładnie taki sam error -> 249