Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   FastReport Textfeld.visible = False (https://www.delphipraxis.net/104578-fastreport-textfeld-visible-%3D-false.html)

Ando 6. Dez 2007 17:40


FastReport Textfeld.visible = False
 
Hallo zusammen
Ich steh grad aufm Schlauch.
kann mir mal wer sagen wie man zur Laufzeit in einem FastReport eine Textkomponente auf Visible = False setzt ?

Fröhlichen Nikolaus wünscht
Andre

Neumann 7. Dez 2007 08:39

Re: FastReport Textfeld.visible = False
 
Hallo,

das ist nicht besonders schwierig, man muss nur die Scriptsprache (Code im Report) verwenden.

Beispiel (Pascal Script):

Delphi-Quellcode:
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
begin
   If <MwSt1> = 0 then
  begin
    child3.visible:=false;                                                                                    
  end;
   If <MwSt2>=0 then
  begin
    child4.visible:=false;                                              
  end;
  If <MwSt3>=0 then
  begin
    child5.visible:=false;
  end;
end;
Hier werden Childbänder ausgeblendet, wenn jeweils nichts zu Anzeigen da ist. Genauso kann man es mit einzelnen Memofeldern usw. machen.

Gruß

[edit=MrSpock]Code Tags eingefügt. Mfg, MrSpock[/edit]

RavenIV 7. Dez 2007 09:17

Re: FastReport Textfeld.visible = False
 
Falls Du den FastReport von ausserhalb (also vom Delphi-Code aus) steuern willst, kannst Du FindObject benutzen.

Ich verwende es so (bei FastReport 4):
Delphi-Quellcode:
  for i := 0 to FrxStandardReport.PagesCount - 1 do
  begin
    if FrxStandardReport.Pages[i].Name = 'Page1' then
    begin
      if FrxStandardReport.Pages[i].FindObject('IB_Database') <> nil then
      begin
        TfrxIB_Database(FrxStandardReport.Pages[i].FindObject('IB_Database')).Connected := False;
        TfrxIB_Database(FrxStandardReport.Pages[i].FindObject('IB_Database')).Params.Clear;
        TfrxIB_Database(FrxStandardReport.Pages[i].FindObject('IB_Database')).Params.Values['Path'] := Engine.DataBasePath;
        TfrxIB_Database(FrxStandardReport.Pages[i].FindObject('IB_Database')).Params.Values['USER NAME'] := Engine.DataBaseUser;
        TfrxIB_Database(FrxStandardReport.Pages[i].FindObject('IB_Database')).Params.Values['Password'] := Engine.DataBasePassword;
        TfrxIB_Database(FrxStandardReport.Pages[i].FindObject('IB_Database')).Params.Values['PROTOCOL'] := DBProtocol; // IBProtocolNames [Engine.DatabaseProtocol];
        TfrxIB_Database(FrxStandardReport.Pages[i].FindObject('IB_Database')).Params.Values['SERVER'] := Engine.DataBaseServer;
        TfrxIB_Database(FrxStandardReport.Pages[i].FindObject('IB_Database')).Connected := True;
      end
      else
      begin
        MessageDlg('Datenbank-Komponente "IB_Database" nicht gefunden', mtError, [mbOK], 0);
      end;
    end;
  end;

Neumann 7. Dez 2007 12:56

Re: FastReport Textfeld.visible = False
 
An Mr Spock:

Das ist kein Delphi-Quellcode,

sondern Pascalscript von Fastreports. Die Markierung als Delphi-Code könnte zu Fehlinterpretationen führen.


Gruß

Neumann

Ando 8. Dez 2007 08:04

Re: FastReport Textfeld.visible = False
 
OK...Danke
die Tipps haben geholfen.

Gruß Andre


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 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