![]() |
FastReport: Anpassung des Designers für End-Benutzer
Hallo zusammen,
wir testen gerade FastReport 4.7.91 um in Erfahrung zu bringen, ob dieses Reporting-Tool für uns in Frage kommt. Es geht dabei darum, dass wir es in unserer Anwendung einbauen und der End-Benutzer damit die Reports erstellen / bearbeiten können soll. Wir benötigen allerdings die Möglichkeit, den Designer, den der Benutzer angezeigt bekommt, zur Laufzeit zu steuern, ihn anzupassen / einzuschränken. Wenn z.B. "nur" ein Briefpapierlayout erstellt werden soll, soll der Benutzer keine Möglichkeit haben, Bänder einzufügen; keine Daten, Variablen, Klassen bzw. Funktionen zur Verfügung haben; keine Code-Seite haben usw. Gibt bestimmt auch andere Beispiele, wo sowas nötig ist. Da scheint FastReport sehr große "Mängel" zu haben, oder wir finden den richtigen Weg nicht. Seltsam ist es auch, dass man sehr wenig dazu findet, egal wo man sucht: Foren, Newsgroups usw. Entweder braucht es keiner, was ich mir eigentlich nicht so richtig vorstellen kann, oder es ist möglich und wir finden nicht heraus wie oder es ist nicht möglich und alle haben sich damit abgefunden. Wie auch immer: hier im Forum fand ich nur ![]() Daher versuche ich mein Glück mit diesem Post und in dieser (richtigeren) Kategorie. Was zumindest funktioniert, ist Folgendes:
Delphi-Quellcode:
Damit kann man schon mal einige der (Tool-)bars bzw. bestimmte Buttons darauf ausblenden. Das ist gut, allerdings möchte ich viel mehr steuern können. Z.B. den Button auf der ObjectBar zum Einfügen von Bändern.
var
Designer: TfrxDesignerForm; begin frxReport1.DesignReportInPanel(PanelDesigner); Designer := TfrxDesignerForm(frxReport1.Designer); Designer.NewB.Visible := false; Designer.OpenB.Visible := false; Designer.NewDialogB.Visible := false; Designer.GroupB.Visible := false; Designer.VariablesB.Visible := false; Designer.StatusBar.Visible := false; Designer.UngroupB.Visible := false; ... end; Nach einigem Gefummel habe ich mal in den Sourcen geguckt, was die Jungs da machen, kam ich dann zu dieser Lösung:
Delphi-Quellcode:
Das klappt auch (auch wenn es sicherlich nicht so toll ist, auf ImageIndex abzufragen), doch netterweise wird dieser Button wieder stumpf eingeblendet, wenn man im Designer einen anderen Bereich anklickt etc.
if Designer.ObjectsTB1.ButtonCount > 0 then begin
for i := 0 to Designer.ObjectsTB1.ButtonCount - 1 do begin // Button zum Einfügen von Report-Bändern (Unit frxDesgn, ab Zeile 1715, ObjectBandB := TToolButton.Create(Self);) if Designer.ObjectsTB1.Buttons[i].ImageIndex = 1 then begin Designer.ObjectsTB1.Buttons[i].Visible := false; end; end; end; Dann geht es weiter mit den Bereichen wie Datenbaum, Reportbaum, Objektinspektor. Die kann man zwar komplett verstecken, aber wenn man im Datenbaum z.B. nur den Bereich (Tab) "Variablen" ausblenden möchte, geht es scheinbar nicht. Man kommt an das Panel bzw. den TreeView dran, aber die Tabs sind von außen nicht erreicbar. Dann kommen diese Bereiche auch noch in einigen Unterfenstern des Designers, die man wohl noch etxra ansprechen müsste. Aber auch hier werden die Elemente des Designers oft einfach stumpf wieder eingeblendet, so dass man den Eindruck bekommt, dass FastReport für solche Anpassungen für den End-Benutzer, die eigentlich ein Muss für eine Software sind, gar nicht ausgelegt ist. Die Komponente mag super Features haben und schnell sein, aber was das angeht, scheint es eine Katastrophe zu sein. Hat da jemand Erfahrungen und weiß wie man sowas evtl. doch hinbekommt oder der bestätigen könnten, dass sowas tatsächlich nicht möglich ist. Wäre schön und wichtig zu wissen woran man ist. Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz