Hallo zusammen,
ich möchte ein Card-Projekt mehrfach ausdrucken.
Es gibt eine Logik, welche (C#) ListLabel.Variables füllt. Anschließend wird ListLabel.Print() aufgerufen. Einen DataContext habe ich hierbei nicht.
Snippet:
[code]string printerName = “My local Printer”;
// Exemplarisch Variablen füllen
ListLabel.Variables[“MyKey”] = “MyValue”;
// Ein MemoryStream, da das Projekt aus der Datenbank kommt
ListLabel.AutoProjectStream = streamProject;
// Report beinhaltet quasi die Metadaten. ListandLabelType ist vom Typ: LlProject
// Hier im Beispiel ist es “LlProject.Card”
ListLabel.AutoProjectType = report.ListandLabelType;
ListLabel.AutoDestination = LlPrintMode.Normal;
for (int i = 0; i < numberOfCopies; i++) {
ListLabel.Print(printerName);
}
[/code]
Ein Listenprojekt kann ich ohne Probleme mehrfach ausdrucken. Jedes Dokument hat den gleichen Inhalt.
Bei der “Card” verhält es sich anders:
- Das Projekt hat nur eine einzige DIN A4-Seite
- Die erste Seite ist immer korrekt
- Die zweite Seite hat keine Werte (Variablen), obwohl laut Debugger im VisualStudio die Werte von ListLabel innerhalb der Schleife immernoch gleich sind. Es äußert sich darin, dass im Bericht bestimmte Konditionen erfüllt sein müssen (z.B. Variable A == 5) ansonsten werden bestimmte Elemente (beispielsweise Bilder) ausgeblendet. ListLabel.Variables[“A”] hat den Wert 5 und wird beim ersten Aufruf von Print() korrekt ausgegeben. Eine Kondition wie “CurrentPage == 1” gibt es im Bericht nicht (wie gesagt, es ist nur eine Seite).
Was ich versucht habe:
- ListLabel.AutoMasterMode macht mit None, AsFields, AsVariables keinen Unterschied
- Aufruf wie in KBTD000497 (In C#: ListLabel.Core.LlPrintSetOption(…)) machen keinen Unterschied. Es wird in dem Falle (trotz Copy-Parameter und LL_PRNOPT_COPIES_SUPPORTED und positiver Rückgabewerte) sogar nur ein einziges Dokument ausgedruckt. LlPrintGetOption(LL_PRNOPT_COPIES) lieferte mir die übergebene Anzahl an Kopien korrekt zurück.
Wie kann ich es schaffen, dass bei einem “Card” Projekt der 2. Aufruf der Print()-Funktion das selbe Ergebnis liefert? Bei Listenprojekten funktioniert es ohne Probleme.
Im Handbuch habe ich leider keine detailierten Informationen hierzu gefunden (außer, dass es 3 Projekttypen gibt).
Mit freundlichen Grüßen
Matthias Büge
EDIT (Lösung):
Dem ListLabel.DataSource wurde nur eine Dummy-Liste übergeben. Als ich den DataSource mit den richtigen Daten (in unserem Falle ein DataSet) gefüllt habe, konnte der Bericht korrekt ausgedruckt werden.