Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fastreport Objekt in abhängikeit von DB Feld (https://www.delphipraxis.net/133704-fastreport-objekt-abhaengikeit-von-db-feld.html)

mkinzler 11. Mai 2009 17:32

Re: Fastreport Objekt in abhängikeit von DB Feld
 
So sollte es überprüfbar sein
Delphi-Quellcode:
if list.IndexOf('Persons') > -1 then //Feld vorhanden

manfred_h 11. Mai 2009 17:45

Re: Fastreport Objekt in abhängikeit von DB Feld
 
Das wars!! Danke mkinzler :thumb:

Delphi-Quellcode:
procedure DefaultPERSONSOnBeforePrint(Sender: TfrxComponent);
var
i: Integer;
ds: TfrxDataSet;
list: TStringList;
db_list: String;                      
 
begin
  ds := Report.GetDataset('default');// username of ds
  list := TStringList.Create;
  ds.GetFieldList(list);
  for i := 0 to list.Count - 1 do
  begin            
    if list.IndexOf('Persons') > -1 then //Feld vorhanden
      DefaultPERSONS.Visible := true;      
   ds.Next;                  
  end;
end;
Shalom
Manfred

mkinzler 11. Mai 2009 17:49

Re: Fastreport Objekt in abhängikeit von DB Feld
 
Die For-Schleife ist aber auch noch unnötig

rbi 11. Mai 2009 17:58

Re: Fastreport Objekt in abhängikeit von DB Feld
 
Hallo

versuche einmal den Code wie folgt zu erweitern:

Delphi-Quellcode:
  for i := 0 to list.Count - 1 do
  begin    
   if ds.Value[list[i]]<>NULL then begin  
     db_list := ds.Value[list[i]]; // get field value by its name
         if db_list = 'PERSONS' then DefaultPERSONS.Visible := true;
     end;
   ds.Next;                  
  end;
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]

mkinzler 11. Mai 2009 18:00

Re: Fastreport Objekt in abhängikeit von DB Feld
 
@rbi: Du scheinst weder die Frage noch den Verlauf richtig gelesen zu haben

manfred_h 11. Mai 2009 18:06

Re: Fastreport Objekt in abhängikeit von DB Feld
 
Danke nochmals. :dp:

hier nochmals ohne for Schlaufe:

Delphi-Quellcode:
procedure DetailData1OnBeforePrint(Sender: TfrxComponent);
var
i: Integer;
ds: TfrxDataSet;
list: TStringList;
db_list: String;                      
 
begin
  ds := Report.GetDataset('default');// username of ds
  list := TStringList.Create;
  ds.GetFieldList(list);
  begin
    if list.IndexOf('PERSONS') > -1 then //Feld vorhanden
      DefaultPERSONS.Visible := true;
    if list.IndexOf('WORKER') > -1 then //Feld vorhanden
      DefaultWORKER.Visible := true;
    if list.IndexOf('PLACEMENT') > -1 then //Feld vorhanden
      DefaultPLACEMENT.Visible := true;
    if list.IndexOf('BEDS') > -1 then //Feld vorhanden
      DefaultBEDS.Visible := true;
    if list.IndexOf('Q_GIDEONS') > -1 then //Feld vorhanden
      DefaultQ_GIDEONS.Visible := true;
    if list.IndexOf('CAT') > -1 then //Feld vorhanden
      DefaultCAT.Visible := true;              
   ds.Next;                  
  end;
end;
Danke :cheer:
Manfred

mkinzler 11. Mai 2009 18:31

Re: Fastreport Objekt in abhängikeit von DB Feld
 
Dah <TStringList>.IndexOf() intern eine Schleife verwendet könnte man evaluieren, das Ganze iinerhalb einer Schleife zu machen:
Delphi-Quellcode:
PersonsVorhanden := False;
...
for i := 0 to list.Count -1 do
begin
    if list[i] = 'PERSONS' then PersonsVorhanden := True;//Feld vorhanden
    ...
end;
DefaultPERSONS.Visible := PersonsVorhanden;
...

manfred_h 12. Mai 2009 09:12

Re: Fastreport Objekt in abhängikeit von DB Feld
 
Besteht ein Vorteile bei einer Variante?

Manfred

mkinzler 12. Mai 2009 09:14

Re: Fastreport Objekt in abhängikeit von DB Feld
 
Bei vielen Feldern könnte die erste etwas langsam sein, da bei jedem .IndexOf() eine intern eine Schleife durchlaufen wird

manfred_h 12. Mai 2009 09:36

Re: Fastreport Objekt in abhängikeit von DB Feld
 
Danke für den Hiinweis :wink:

Delphi-Quellcode:
procedure DetailData1OnBeforePrint(Sender: TfrxComponent);
var
i: Integer;
ds: TfrxDataSet;
list: TStringList;
db_list: String;                      
begin
  ds := Report.GetDataset('default');// username of ds
  list := TStringList.Create;
  ds.GetFieldList(list);
  for i := 0 to list.Count -1 do      
  begin
    if list[i]='PERSONS' then DefaultPERSONS.Visible := true; //Feld vorhanden
    if list[i]='WORKER' then dist_worker.Visible := true;
    if list[i]='PLACEMENT' then DefaultPLACEMENT.Visible := true;      
    if list[i]='BEDS' then DefaultBEDS.Visible := true;      
    if list[i]='Q_GIDEONS' then DefaultQ_GIDEONS.Visible := true;      
    if list[i]='CAT' then DefaultCAT.Visible := true;                      
    ds.Next;                  
  end;
end;
Shalom
Manfred


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.
Seite 2 von 3     12 3      

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