sorry for the very basic question, but that's my first attempt at using mem
tables and the demo seems not to compile properly on my machine.
The question is very simple: how do I display decimal digits for a currency
field in a DBGrid attached to a kbmMemTable?
To test it, I dropped on a form just a kbmMemTable, a datasource and a
dbgrid, then two buttons (one to add a couple of records and the other to
close the program).
Here it's the relevant part of my code:
procedure TForm1.FormCreate(Sender: TObject);
begin
kbmMemTable1 := TkbmMemTable.Create(Self);
kbmMemTable1.MasterSource := Nil;
kbmMemTable1.FieldDefs.Clear;
kbmMemTable1.FieldDefs.Add('Desc', ftString, 30, False);
kbmMemTable1.FieldDefs.Add('LisA', ftCurrency, 0, False);
kbmMemTable1.FieldDefs.Add('LisB', ftCurrency, 0, False);
kbmMemTable1.FieldDefs.Add('LisC', ftCurrency, 0, False);
kbmMemTable1.FieldDefs.Add('Qt', ftInteger, 0, False);
kbmMemTable1.IndexDefs.Add('ByDesc','Desc',[]);
kbmMemTable1.CreateTable;
DataSource1.DataSet := kbmMemTable1;
DBGrid1.Columns[0].FieldName:='Desc';
DBGrid1.Columns[1].FieldName:='LisA';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
with kbmMemTable1 do begin
Open;
IndexName:='ByDesc';
Insert;
FieldByName('Desc').AsString:='prima voce';
FieldByName('LisA').AsCurrency:=12.21;
FieldByName('LisB').AsCurrency:=12.22;
FieldByName('LisC').AsCurrency:=12.23;
FieldByName('Qt').AsInteger:=1;
Post;
Insert;
FieldByName('Desc').AsString:='seconda voce';
FieldByName('LisA').AsCurrency:=22.21;
FieldByName('LisB').AsCurrency:=22.22;
FieldByName('LisC').AsCurrency:=22.23;
FieldByName('Qt').AsInteger:=1;
Post;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
kbmMemTable1.Close;
Close;
end;
end.
Umberto
Sorry for the wasted bandwidth.
Umberto