Rohit

To Create a single field you have to create all the fields, so you
can either use the IDE to create a persistant field defs as per your query
(I used to hate this in d5 because if a field changed in size the whole
thing would spit)
and then before you open the table programtically create your calc field
(as per the link I posted) or in your case as the query is dynamic you have
to
make all the fielddefs to match your query (see sample code below)

The biggest problem with this is getting the metadata for the Field you
need to create (I manage this with a 'MetaEntity') but I'm sure you can come
up with
a solution.

Does this make sense?

Neven


procedure TmwkMemTable.MakeFields(var Fields: TmwkStringArray);
var
  i: integer;
  Field: TField;
  FieldClass: TFieldClass;
  FieldType: TFieldType;
  MetaColumn: TmwkMetaColumn;
begin
  Self.FieldDefs.Clear;
  Self.Fields.Clear;
  for i := low(Fields) to high(Fields) do
  begin
    MetaColumn := MetaEntity.ColumnByName(Fields[i]);
    if MetaColumn = nil then Continue;
    FieldType := MetaColumn.FieldType;
    FieldClass := Self.GetFieldClass(FieldType);
    if not assigned(FieldClass) then begin
      Fields[i] := '';
      continue;
    end;
    Field := FieldClass.Create(Self);
    if not assigned(Field) then break;
    Field.FieldName := Fields[i];
    Field.FieldKind := fkData;
    if MetaColumn.DataSize <> 0 then Field.Size := MetaColumn.DataSize;
    Field.DataSet := Self;
    Field.Name := Self.Name+Field.FieldName;
    Self.FieldDefs.Add(Field.Name,FieldType,MetaColumn.DataSize,False);
  end;
end;

----- Original Message ----- 
From: "Rohit Gupta" <[EMAIL PROTECTED]>
To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]>
Sent: Friday, June 13, 2003 12:16 PM
Subject: Re: [DUG]: Adding Calculated Field


> I did some web searches and found scores of people with the same
> problem.... some with an identical requirement to me.  Amidst the
> hundreds of rplies, I think I have a solution - I am about to create a
> test app.
>
> To:             Multiple recipients of list delphi
> <[EMAIL PROTECTED]>
> Send reply to:  [EMAIL PROTECTED]
> From:           "Nello Sestini" <[EMAIL PROTECTED]>
> Subject:        Re: [DUG]:  Adding Calculated Field
> Date sent:      Fri, 13 Jun 2003 06:50:20 +0700
>
> > if you aren't using persistent fields then ISTR you can't
> > define calculated fields.
> >
> > is it possible to pre-define a few of these calculated
> > checkboxes (all handled by the same handler) and alter
> > their grid visibility on the fly instead of creating them?
> >
> > (i don't completely understand your problem so this may
> > be a miss)
> >
> >
> > -ns
> > http://www.roserox.co.th
> >
> > ----- Original Message -----
> > From: "Rohit Gupta" <[EMAIL PROTECTED]>
> > To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]>
> > Sent: Friday, June 13, 2003 04:36
> > Subject: Re: [DUG]: Adding Calculated Field
> >
> >
> > > Any other suggestions.. I am really stuck here...
> > >
> > >
> > > PROBLEM
> > >
> > > The only solution I have is to use a calculated field at run-time.  I
cant
> > define
> > > persistent fields as the query changes depending on user input.  The
list
> > from the qry
> > > gets displayed and the user needs to deselect some rows.
> > >
> > > If I have a calculated field linked to a checkbox - then when he
presses
> > space or dbl-
> > > clicks on that column, I can fire a separate qry to record this in an
> > exclusion table....
> > > and because its a calculated field I can refresh the display to give
him
> > immediate
> > > feedback.  if the exclusion table was joined to the query then I would
> > have to refresh
> > > the query which can take several minutes I would not be able to
provide
> > immediate
> > > feedback.
> > >
> > > The only other soultion would have been multiple inserts from an sql
> > statement - but
> > > that is not supported.  Then I could have populated an inclusion table
> > instead.
> > >
> > > > How do I go about adding a calculated field to a dataset/grid at
> > run-time ?  I
> > > > have tried various things - none of them work
> > > >
> > > > fielddefs.add
> > > > fielddefs.addfielddef
> > > > fields.add
> > > > Regards
> Regards
>
> Rohit
>
> ====================================================
> ==================
> CFL - Computer Fanatics Ltd.  21 Barry's Point Road, AKL, New
> Zealand
> PH    (649) 489-2280
> FX    (649) 489-2290
> email [EMAIL PROTECTED]  or  [EMAIL PROTECTED]
> ====================================================
> ==================
>
> --------------------------------------------------------------------------
-
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz
> To UnSub, send email to: [EMAIL PROTECTED]
> with body of "unsubscribe delphi"
> Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
>
>

---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED] 
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

Reply via email to