Drucken und exportieren
microtech ERP gibt Datensätze über Layouts aus. Layouts liegen in Layout-Gruppen der Form
Modul.Name, etwa Au.VogDrVorgang für Auftrag/Vorgänge/Vorgänge/Vorgang. Jede Gruppe enthält
die einzelnen Layouts wie „Rechnung" oder „(Projekte-Liste)".
Gedruckt werden kann jeder Datensatz, der
IHasAutoDataSet umsetzt: Artikel,
Adressen, Projekte und Vorgänge gleichermaßen. Der Ablauf ist immer derselbe:
LayoutBuilderfür das Layout holen- Druckereinstellungen setzen
Build()undPrintaufrufen
Die GraphQL-Schnittstelle bietet keine Druckausgabe.
Aus einem Datensatz drucken
GetLayoutBuilder
ermittelt die Layout-Gruppe aus dem Datensatz selbst:
var artikel = bpApp.QueryDataSet<Artikel>()
.First(a => a.ArtNr == "10000");
var layout = artikel.GetLayoutBuilder("(Artikel-Liste)")
.WithPrinterSettings(new LayoutPrinterSettings
{
FileExport = true,
PrintKind = PrintKind.pkErsteFolgeSeiten,
FileFormat = FileFormats.AdobeAcrobatReader,
FileName = @"C:\Export\Artikel.pdf",
FileOverwrite = true
})
.Build();
artikel.Print(layout);
Ohne Layoutnamen verwendet GetLayoutBuilder() das erste Layout des Datensatzes und überspringt
dabei E-Mail-Layouts. Für den Druck auf dem eingestellten Drucker setzen Sie FileExport = false;
FileFormat, FileName und FileOverwrite entfallen dann.
Der Datensatz muss aus einer Abfrage stammen. Andernfalls wirft Print eine
InvalidOperationException.
Layouts einer Gruppe auswählen
Über bpApp.Drucken und
OpenLayoutGroup
sprechen Sie eine Gruppe direkt an und lesen mit
GetPossibleLayouts
die verfügbaren Layoutnamen:
var drucken = bpApp.Drucken;
try
{
var gruppe = drucken.OpenLayoutGroup(LayoutGroupAuftrag.VogDrVorgang);
foreach (var name in gruppe.GetPossibleLayouts())
Console.WriteLine(name);
var layout = gruppe.GetLayoutBuilder("Rechnung")
.WithFileExport(true)
.WithFileFormat(FileFormats.AdobeAcrobatReader)
.WithFileName(@"C:\Export\Rechnung.pdf")
.WithFileOverwrite(true)
.Build();
vorgang.Print(layout);
}
finally
{
bpApp.FreeSpecialObject(drucken);
}
Das SpecialObject müssen Sie selbst wieder freigeben. Der Weg über den Datensatz erledigt das bereits.
Die Gruppennamen stehen als Konstanten bereit und lassen sich ebenso als Zeichenkette
("Au.VogDrVorgang") übergeben:
| Klasse | Modul | Beispiele |
|---|---|---|
LayoutGroupAuftrag |
Au. |
VogDrVorgang, ArtDrFormular, AdrDrListe |
LayoutGroupGlobal |
Gl. |
AnsDrListe, BnkDrListe |
LayoutGroupFiBu |
Fi. |
Finanzbuchhaltung |
LayoutGroupLohn |
Lo. |
Lohnabrechnung |
LayoutGroupSupport |
Su. |
Support |
Druckereinstellungen setzen
| Feld | Bedeutung |
|---|---|
PrintKind |
Seitenauswahl, etwa PrintKind.pkErsteFolgeSeiten |
FileExport |
true gibt in eine Datei statt auf den Drucker aus |
FileFormat |
Zielformat aus FileFormats |
FileName |
Pfad der Exportdatei |
FileOverwrite |
true überschreibt, false nummeriert den Dateinamen durch |
Bei FileExport = true verlangt
WithPrinterSettings sowohl
FileFormat als auch FileName und wirft sonst eine MissingFieldException.
Warning
WithPrinterSettings speichert die Einstellungen am Layout. Sie gelten damit auch für spätere
Ausgaben desselben Layouts, ebenso in der microtech-ERP-Oberfläche. Die Einzelmethoden
WithFileExport, WithPrintKind, WithFileFormat, WithFileName und WithFileOverwrite
wirken nur auf die aktuelle Ausgabe.
Die hinterlegten Einstellungen lesen Sie mit
GetPrinterSettings:
var einstellungen = artikel.GetLayoutBuilder("(Artikel-Liste)").GetPrinterSettings();
Console.WriteLine($"{einstellungen.FileFormat} → {einstellungen.FileName}");
Ausgabe in Dokumente ablegen
Ist die Vorgangsart entsprechend eingerichtet, legt microtech ERP die Ausgabe als Dokument ab. Das Auslesen dieser Dokumente beschreibt das Dokumente-Kapitel.