Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

KbmMemTable and Currency

43 views
Skip to first unread message

Umberto Di Gioia

unread,
Nov 21, 2002, 5:54:49 AM11/21/02
to
Hi all,

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


Umberto Di Gioia

unread,
Nov 21, 2002, 6:19:43 AM11/21/02
to
Done!
I should have known. It was just the International Settings in Control
Panel.
Simply set that to two decimal digits (and Euro currency...) and it displays
as expected.

Sorry for the wasted bandwidth.

Umberto


0 new messages