Beleg nach dem hinzufügen drucken.
Sascha Balke
Hallo Zusammen,ich möchte via customize Regel einen Belegdruck auslösen, nachdem der Beleg selbst hinzugefügt/gespeichert worden ist.
Die Printdef habe ich dafür bereits angelegt. Per Function Button funktioniert das bereits. Nun möchte ich das ganze automatisieren.
Hat jemand von euch eine Idee?
Rafael Stalder
Hallo SaschaDu könntest via Customize nach dem Hinzufügen des Belegs (FormDataAdd), einen MenuClick auf das Print-MenuItem auslösen, somit könnte das Ganze gedruck werden.
Voraussetzung ist aber, dass sich deine Form nach dem Hinzufügen nicht schliesst und den Formmode nicht wechselt, weiss nicht ob das möglich ist.
Gruss Rafael
Heiko Szendeleit
Spricht etwas gegen die Verwendung der Standardfunktion im Kopfbereich der Printdefinition "Druck nach speichern"(neben der Aktivierung von "Druck", "Email", Excel" usw.) ??
Mit freundlichen Grüßen aus Hamburg
Heiko Szendeleit
Sascha Balke
Dagegen spricht, dass diese Einstellung global ist und nicht formbezogen.Unabhängig davon ich das via Regel schon realisiert und völlig vergessen diesen Beitrag auf "gelöst" zu setzen.
Stefan Berger
Hallo,mich würde interessieren, wie die Regel ausschaut. Stehe gerade vor dem gleichen Problem.
Wenn ich einen Beleg hinzufüge, dann soll dieser Beleg auf einem speziellen Drucker rauskommen ohne das der User etwas mitbekommt und noch die Möglichkeit hat seinen Beleg auf dem eigenen Drucker zu drucken.
Dafür habe ich eine neue PrintDef mit einem Freitext angelegt und diese auf inaktiv gesetzt und steuer den entsprechenden Drucker dann über das Layout.
So wenn ich jetzt einen Beleg hinzufüge, dann möchte ich das der Beleg autom. über die Printdef gedruckt wird.
Dies mache ich über LayoutHelper.LayoutOpener.ExecutePrintDef jedoch benötige ich die DocNum dazu. Die DocNum wird aber erst endgültig festgelegt, nachdem der Beleg in die Datenbank geschrieben ist. Wie komme ich über customize am besten an die erzeugt Belegnummer?
Danke & Gruß
Stefan
Michael Egloff
Hallo Herr Berger,beim After-Event vom FormDataAdd gibts ein Feld, welches die DocEntry des soeben hinzugefügten Beleges enthält.
Das Feld heisst:
pVal.BusinessObjectKeyString
Das ist die DocEntry des Beleges. Entweder muss man nun die DocNum rausfinden (z.B. mittels Query) oder aber man kann den Belegdruck anpassen, damit die PrintDefinition mittels DocEntry ausgedruckt werden kann
Manuel Marhold
Hi,soweit ich weiss, ist eine Printdefinition an einen FormType gebunden, und somit pro form.
Also war das von Heiko schon richtig, oder etwa nicht?
Stefan Berger
Hi,Heiko hat schon recht, aber sobald zwei Aktive Printdef existieren, geht eine Chosse List auf - die ich nicht haben möchte!
Stefan
Sascha Balke
Hallo Stefan,anbei eine Möglichkeit (inkl. Abfrage), wie du es realisieren kannst. Dabei kann die PrintDef ruhig auf "inaktiv" stehen, da du diese ja geziel aufrufst.
string docNum = TextEdit.GetFromUID(pVal.Form, "8").Value;
string docDate = TextEdit.GetFromUID(pVal.Form, "10").Value;
if (SwissAddonFramework.UI.Dialogs.MessageBox.Show("Möchten Sie diesen Beleg drucken?",
"Ja",
"Nein",
SwissAddonFramework.UI.Dialogs.MessageBox.Buttons.Button2) == SwissAddonFramework.UI.Dialogs.MessageBox.Buttons.Button1)
{
LayoutHelper.LayoutOpener.OpenLayout(LayoutHelper.LayoutOpener.OpenLayoutModes.Print,"143",
"PrintDef", "T0000049","DocNum",docNum,
"DocDate", docDate);
return true;
}
else
{
}
return true;
Das ganze packst du in eine customize-Rule und nutzt als EventTyp "FormDataAdd" und als Modus "Add".
hth
Stefan Berger
Danke Sascha, hört sich super an und werde ich testen!Gruß
Stefan
Sascha Balke
Da nicht für.In einem Projekt haben wir es so gelöst, in dem wir eine Tabelle angelegt haben, in der die FormTypes und den zugehörigen PrintDefs sowie PrintModi enthalten sind. Ergänzend dazu gibt es noch einen Schalter, mit dem wir steuern ob der Druck für die Form XYZ überhaupt erfolgen soll.
Diese Parameter lesen wir aus und führen dann den Druck aus. Ist eine schöne Sache, denn so hat mein "nur" ein paar Zeilen Code und kann damit nahezu alles erschlagen.
0
Please sign in to leave a comment.
Comments
0 comments