Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>If you have know your to be calculated fields names at runtime, you can use something like that. </p> <pre><code>var initing:boolean; procedure TSampleForm.dsSampleAfterOpen( DataSet: TDataSet); var i:integer; dmp:tfield; begin if not initing then try initing:=true; dataset.active:=false; dataset.FieldDefs.Update; for i:=0 to dataset.FieldDefs.Count-1 do begin dmp:=DataSet.FieldDefs.Items[i].FieldClass.Create(self); dmp.FieldName:=DataSet.FieldDefs.Items[i].DisplayName; dmp.DataSet:=dataset; if (dmp.fieldname='txtState') or (dmp.FieldName='txtOldState') then begin dmp.Calculated:=true; dmp.DisplayWidth:=255; dmp.size:=255; end; end; dataset.active:=true; finally initing:=false; end; end; procedure TSampleForm.dsSampleAfterClose( DataSet: TDataSet); var i:integer; dmp:TField; begin if not initing then begin for i:=DataSet.FieldCount-1 downto 0 do begin dmp:=pointer(DataSet.Fields.Fields[i]); DataSet.Fields.Fields[i].DataSet:=nil; freeandnil(dmp); end; DataSet.FieldDefs.Clear; end; end; procedure TSampleForm.dsSampleCalcFields( DataSet: TDataSet); var tmpdurum,tmpOldDurum:integer; begin if not initing then begin tmpDurum := dataset.FieldByName( 'state' ).AsInteger; tmpOldDurum:= dataset.FieldByName( 'oldstate' ).AsInteger; dataset.FieldByName( 'txtState' ).AsString := State2Text(tmpDurum); dataset.FieldByName( 'txtOldState' ).AsString := State2Text(tmpOldDurum); end; end; procedure TSampleForm.btnOpenClick(Sender: TObject); begin if dsSample.Active then dsSample.Close; dsSample.SQL.text:='select id,state,oldstate,"" as txtState,"" as txtOldState from states where active=1'; dsSample.Open; end; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload