Ausdruck aus Vorschau

Hallo,
ist es möglich, zu bestimmen, ob ein Report aus einer Vorschau heraus gedruckt wurde oder die Vorschau einfach wieder geschlossen wurde? Das Problem wurde hier schon zweimal angefragt, allerdings komme ich mit den Antworten zu keinem Ergebnis. Ein vielversprechender Ansatz war die Verwendung des OnPrintJobInfo Events. Leiter löst das bei mir nur beim direkten Druck aus, nicht aber beim Druck aus der Vorschau. Ich verwende List und Label mit Delphi 10.3.

Hallo Herr Schubert,

vielen Dank für Ihren Beitrag und willkommen im List & Label-Forum. :slight_smile:

Es gibt einen undokumentierten Callback LL_NTFY_PREVIEW_ACTIONRESULT, welcher die Info enthält, was innerhalb einer Vorschau passiert ist.

Im lParam erhält man eine Struktur vom Typ scLSNtfyActionResult, die so aussieht:

{
 enum enAction { LS_ACTION_PRINT, LS_ACTION_FAX, LS_ACTION_MAIL, LS_ACTION_EXPORT};
   UINT        _nSize;
 enAction    _nAction;
 const VARIANT* _pvParameterList;
};

Dieser Callback müsste unter Delphi jedoch noch von Ihnen implementiert werden.

Im .NET sähe die Implementierung wie folgt aus:

Das PreviewControl hat, ebenso wie die ListLabel-Komponente, jetzt einen neuen Event “ViewerActionResult”. Die öffentlichen Member der zugehörigen EventArgs-Struktur sehen wie folgt aus:

/// <summary>
/// EventArgs for the ViewerActionResult event.
/// </summary>
public class ViewerActionResultEventArgs : EventArgs
{
    /// <summary>
    /// The action that was finished.
    /// </summary>
    public LlViewerAction Action { get; private set; }
    /// <summary>
    /// Dictionary of parameters with detailed information on the result of the action.
    /// </summary>
    public Dictionary<string, string> Parameters { get; private set; }
}

Ausgelöst wird das Event für Druck, Speichern unter, Fax und Mailversand. Beachten Sie, dass der direkte Export aus dem List & Label-Vorschaufenster nach PDF, Word und Excel bei angehängter Komponente über andere Mechanismen läuft (Drilldown-Druck) und daher nicht erfasst werden kann. Der Event deckt hier die “Speichern unter”-Aktion des Viewers ab, in der in diverse Bildformate, Text und ebenfalls PDF exportiert werden kann. Bei Verwendung des PreviewControls ist dies auch die einzige für den Benutzer verfügbare Aktion.

Die Liste der Parameter variiert je nach Aktion.

alle Actions:
“Storage” → Name der Storage-Datei
“Result” → numerischer Wert, 0=OK (LL/LS Fehlercode)
“Errortext” → im Falle von Fehlern
LS_ACTION_EXPORT:
“Format” → Formatkürzel (“LL”, “PDF”, …)
“FilenameList” → ‘;’-separierte Liste
LS_ACTION_PRINT:
“PageRange” → Seitenbereich(e)
“Copies.ABCABCABC” → Anzahl der “collated” Kopien
“Copies.AAABBBCCC” → Anzahl der seitenweisen Kopien
LS_ACTION_FAX:
“PageRange” → Seitenbereich(e)
“Copies.ABCABCABC” → Anzahl der “collated” Kopien
“Copies.AAABBBCCC” → Anzahl der seitenweisen Kopien
“PagesWithEmptyFaxNumbers” → Anzahl der Seiten ohne Faxnummer
“FaxNumberList” → ‘;’-separierte Liste der Faxnummern
LS_ACTION_MAIL:
“Provider” → “SMAPI”, …
“FilenameList” → ‘;’-separierte Liste
“Recipient.To” → ‘;’-separierte Liste
“Recipient.CC” → ‘;’-separierte Liste
“Recipient.BCC” → ‘;’-separierte Liste

Weitere Informationen zum Thema Callback finden Sie auch in der List & Label-Programmierer Referenz:

Callbacks und Notifications
Definition einer Callback-Routine
Datenübergabe an die Callback-Routine

Sollten diese Informationen noch nicht ausreichen, kommen Sie gerne nochmals auf uns zu :slight_smile: