Hallo,
leider sind die Reports stark angewachsen, so das es ein paar Sekunden dauert bis ein Inhalt im Previiew Fenster erscheint.
Ich würde daher gerne ein Waitcursor anzeigen bis der Report im report vollständig angezeigt wird.
Hallo,
leider sind die Reports stark angewachsen, so das es ein paar Sekunden dauert bis ein Inhalt im Previiew Fenster erscheint.
Ich würde daher gerne ein Waitcursor anzeigen bis der Report im report vollständig angezeigt wird.
Können Sie uns noch Details darüber geben wo/wie Sie die Vorschau anzeigen? In einer eigenen Form mit PreviewControl? WinForms? WPF? Haben Sie IncrementalPreview
auf true
?
Danke für die Antwort
Ich habe nur wenig eingestellt, wie ich in einem Beispiel gefunden habe
LL.PreviewControl = Me.ListLabelPreviewControl1
'Dateiauswahl, variablenübergabe
LL.AutoShowSelectFile = False
LL.AutoShowPrintOptions = False
LL.AutoDestination = LlPrintMode.PreviewControl
LL.Print(LlProject.List, Application.StartupPath & reportdatei_xps)
Und ich nutze Winforms und das Previewcontrol ist in einem eigenen Fenster
In diesem Fall müsste es eigentlich reichen, direkt vor dem Aufruf von Print
folgendes zu machen:
Cursor = Cursors.WaitCursor
Application.DoEvents()
und danach dann
Cursor = Cursors.Default
Können Sie das einmal testen? Ansonsten müsste ich einmal versuchen, das hier nachzustellen.
Nein,
es erscheint der wait cursor, der dann wieder auf default wechselt, bevor ca 40 Sekunden man auf ein leeres Prieview Control schaut.
Zu dem Zeitpunkt nach ca 40 Sekunden sind dann 1 von 5 Seiten in dem Seitenanzahlbereich .
Nach wieder etwas Wartezeit erscheint dann dort 1 von 210 Seiten
Und das ist dann der komplette bis dahin fertiggestellte Report.
Das Problem tritt auch beim Export auf, bei grösseren Projektem dauert das und der Cursor bleibt auf Default(Nachdem ich es vorher auf Waitcursor umgestellt habe).
Das Programmicon in der Taskleiste zeigt ein Fortschrittbalen an.
Daher hoffe ich das auch ein Waitcursor machbar ist.
Wir werden uns das ansehen. Meines Wissens haben wir Ihre Anwendung gerade wegen einer anderen Frage ohnehin im Support vorliegen. Ich werde mich hier dann noch einmal melden und bitte um etwas Geduld.
Wir haben hierzu die neuen Optionen LS_OPTION_MOUSEMODE
26 und LS_OPTION_MOUSE_WAIT
4 eingeführt.
Nun kann bei Bedarf der Wait Modus explizit genutzt, und nach dem Print zurückgesetzt werden. Der Mode kann nur programmatisch gesetzt werden. Die Controls zum Moduswechsel (Hand, Zoom, Text) sind dann solange “disabled”.
Eine Implementierung könnte z.B. folgendermaßen aussehen:
private void btnPrintToPreviewControl_Click(object sender, EventArgs e)
{
try
{
if (LL.PreviewControl == null)
LL.PreviewControl = previewControl;
LL.AutoProjectFile = "template.lst";
LL.AutoShowSelectFile = false;
LL.AutoShowPrintOptions = false;
LL.AutoDestination = LlPrintMode.PreviewControl;
Cursor = Cursors.WaitCursor;
Application.DoEvents();
previewControl.SetOption((IntPtr)26, (IntPtr)4);
LL.Print();
previewControl.SetOption((IntPtr)26, (IntPtr)2);
Cursor = Cursors.Default;
}
catch (ListLabelException exc)
{
MessageBox.Show(exc.Message, exc.Source, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Der Wait Cursor ist, während der Bericht geladen wird, beim “hovern” über dem Control nun sichtbar. Wurde der Bericht vollständig geladen, wird der Cursor zurückgesetzt.
Die neuen Optionen werden Teil des kommenden Service Packs für List & Label 25 sein.
@Pedro_Lopes_da_Costa Wir werden Ihnen die aktualisierten Module speparat über das Support-Portal zur Verfügung stellen.
Unter Vb NET sieht das ganze dann so aus, falls jemand mal danach sucht
LL.PreviewControl = Me.ListLabelPreviewControl1
LL.AutoShowSelectFile = False
LL.AutoShowPrintOptions = False
Cursor = Cursors.WaitCursor
Application.DoEvents()
Me.ListLabelPreviewControl1.SetOption(CType(26, IntPtr), CType(4, IntPtr))
LL.Print(LlProject.List, "report.lst")
Me.ListLabelPreviewControl1.SetOption(CType(26, IntPtr), CType(2, IntPtr))