Servus miteinander,
mit meinem aktuellen Delphi Code erstelle ich eine LL-Previewdatei mit allen Rechnungen, merke mit je Rechnung die Position im LL File und exportiere am Ende aus diesem LL-File alles was ich benötige: Alle Rechnungen werden mit einem eigenen Namen als PDF exportiert und ggfls. einem Archivsystem zugeordnet. Rechnungen mit Email Kennzeichen werden per Email versendet, Rechnungen mit Zugferd-Kennzeichen bekommen das Zugferd XML importiert, Rechnung mit Druckkennzeichen werden zum Drucker versandt etc. Das alles funktioniert, da ich weiß, an welcher Position was steht und ich mit llStgsysConvert jede einzelne Aufgabe ansteuern kann. Das komplette LL-File landet ebenfalls im Archiv.
Unter .Net haben wir einen andere Herangehensweise und anstelle von DefineVars und DefineFields verwenden wir ein Dataset und rufen Print() auf um das LL File zu erstellen. Aber hier bekomme ich keine Information zurück, wo sich was befindet, um im Anschluß daran den Export anzustoßen. Oder doch?
Ich behelfe mir aktuell damit, jede einzelne Rechnung als Dataset bereitzustellen, einmal zu exportieren (Print() ruft scheinbar auch immer den Previewdialog auf) und für die Folgeaufgaben wieder in mit Append in ein “Gesamt” Preview-File zusammenzuführen. Das kostet ersten viel Zeit und zweitens bleibt bei LL30 immer ein Rest alloziierter Speicher übrig, der nicht mehr freigegeben wird. Meine Routine ist dies nicht, die Speicher stehen lässt. Das habe ich mit dem Leistungsprofiler abgecheckt.
Nun mein Problem bzw. meine Frage:
Ich würde gern wieder auf PrintStart → [Drucke jede einzelne Rechnung, merke Position] - PrintEnd zurückgreifen, aber das LlCore der API kennt das Dataset offensichtlich nicht, denn ein Aufruf dieser Funktion ruft eine Exception aus.
int nRet = (int)ioLLCorePrintStart.Invoke(ioCore,
new object[]
{
GetEnumValue(ioLlProjectValues, "List"),
psVorlagePfad,
nPrintMode
});
Habe ich hier grundsätzlich einen Denkfehler und der Ansatz ist komplett falsch? Ich will vermeiden, das ich für die einzelnen Aufgaben jedes mal das LL File neu erstellen muss, was mit dem Delphi Code gut funktioniert hat. Wie weiße ich also der LlCore-Ebene das Dataset zu?
Und wie lößt Ihr so eine Aufgabe?
Danke
Andreas