AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi FastReport: Anpassung des Designers für End-Benutzer

FastReport: Anpassung des Designers für End-Benutzer

Ein Thema von shadowman · begonnen am 7. Aug 2009
Antwort Antwort
shadowman

Registriert seit: 1. Nov 2005
48 Beiträge
 
#1

FastReport: Anpassung des Designers für End-Benutzer

  Alt 7. Aug 2009, 12:02
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 diesen Post hier und der ist 6 Jahre alt und nicht beantwortet.

Daher versuche ich mein Glück mit diesem Post und in dieser (richtigeren) Kategorie.

Was zumindest funktioniert, ist Folgendes:

Delphi-Quellcode:
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;
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.

Nach einigem Gefummel habe ich mal in den Sourcen geguckt, was die Jungs da machen, kam ich dann zu dieser Lösung:
Delphi-Quellcode:
   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;
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.

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!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz