Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Tabelle mit berechnetem Feld zur Laufzeit anlegen (https://www.delphipraxis.net/81094-tabelle-mit-berechnetem-feld-zur-laufzeit-anlegen.html)

HiWieGehts 20. Nov 2006 22:34

Datenbank: MyBase • Zugriff über: direkt TClientDataSet

Tabelle mit berechnetem Feld zur Laufzeit anlegen
 
Hallo,
ich verwende ein TClientDataSet, in dem ich zur Laufzeit eine Tabelle erstelle. Ich brauche in dieser Tabelle auch berechnete Spalten. Alles funktioniert, nur komme ich nicht dahinter, wie ich berechnete Spalten zur Laufzeit erstellen kann.
Hat jemand eine Idee oder kann mir sagen, wo ich dazu Hilfe finde?
Vielen Dank im Voraus an alle Hilfewilligen!
HiWieGehts

marabu 21. Nov 2006 06:47

Re: Tabelle mit berechnetem Feld zur Laufzeit anlegen
 
Guten Morgen,

vielleicht kannst du dir irgendwie so behelfen:

Delphi-Quellcode:
function CreateField(ds: TDataSet; fldClass: TFieldClass; fldKind: TFieldKind;
    const fldName, fldLabel: String; fldSize, fldWidth, fldIndex: Integer): TField;
begin
  Result := fldClass.Create(ds);
  with Result do
  begin
    Name := ds.Name + fldName;
    Size := fldSize;
    DisplayLabel := fldLabel;
    DisplayWidth := fldWidth;
    FieldName := fldName;
    FieldKind := fldKind;
    DataSet := ds;
    Index := fldIndex;
  end;
end;
Grüße vom marabu

HiWieGehts 21. Nov 2006 17:02

Re: Tabelle mit berechnetem Feld zur Laufzeit anlegen
 
Super!!!
Das ist es - ich habe fast alles probiert, aber immer mit TField, TFieldDef und TFieldDefs. Und die wollten nicht. In der Hilfe steht`s ja auch, dass man TField nicht direkt verwenden kann, ich habe aber nicht gefunden, was ich nehmen soll. TFieldClass ist die Lösung.
DANKE!!!
HiWieGehts


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