Valor monetario
Olá pessoal
Criei um campo em uma (DECIMAL 15,2) tabela no interbase 7.1
acesso essa tabela com deexpress e clientedataset e no clientdataset coloco ele como currency.
Coque acontece é o seguinte neste campo se coloco R$110,00 ao terminar de digitar ele fica como R$ 109,99 e assim por diante alguem pode me dar uma dica pq isto esta acontendo?
desde já muito obrigado.
desculpem a mensagem anterior é que digitei errado
[b:2109c0dca9]Debug,
Mensagem anterior removida![/b:2109c0dca9]
Sandra/Moderação
Criei um campo em uma (DECIMAL 15,2) tabela no interbase 7.1
acesso essa tabela com deexpress e clientedataset e no clientdataset coloco ele como currency.
Coque acontece é o seguinte neste campo se coloco R$110,00 ao terminar de digitar ele fica como R$ 109,99 e assim por diante alguem pode me dar uma dica pq isto esta acontendo?
desde já muito obrigado.
desculpem a mensagem anterior é que digitei errado
[b:2109c0dca9]Debug,
Mensagem anterior removida![/b:2109c0dca9]
Sandra/Moderação
Debug
Curtidas 0
Respostas
Bon Jovi
16/06/2004
DECIMAL do Interbase equivale ao TFMTBCDField no Delphi com dbExpress, e não TCurrencyField.
GOSTEI 0
Bon Jovi
16/06/2004
Fiquei curioso com esse problema, fiz um teste e isso não aconteceu. Teria q detalhar melhor, ou entao ver o q tem de diferente em relacao a esse exemplo q funciona:
.PAS:
DFM:
Delphi7 - dbExpress - Midas
.PAS:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBXpress, DB, SqlExpr, Grids, DBGrids, FMTBcd, Provider,
DBClient, StdCtrls, ExtCtrls, DBCtrls, Mask;
type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
DBGrid1: TDBGrid;
SQLDataSet1: TSQLDataSet;
SQLDataSet1ID: TIntegerField;
SQLDataSet1VALOR: TFMTBCDField;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
DataSetProvider1: TDataSetProvider;
ClientDataSet1ID: TIntegerField;
ClientDataSet1VALOR: TFMTBCDField;
ButtonApplyUpdates: TButton;
DBNavigator1: TDBNavigator;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
procedure ButtonApplyUpdatesClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ButtonApplyUpdatesClick(Sender: TObject);
begin
ClientDataSet1.ApplyUpdates(-1);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ClientDataSet1.Open;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ClientDataSet1.Close;
end;
end.DFM:
object Form1: TForm1 Left = 192 Top = 107 Width = 544 Height = 375 Caption = ´Form1´ Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = ´MS Sans Serif´ Font.Style = [] OldCreateOrder = False OnCreate = FormCreate OnDestroy = FormDestroy PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 4 Top = 160 Width = 11 Height = 13 Caption = ´ID´ FocusControl = DBEdit1 end object Label2: TLabel Left = 4 Top = 204 Width = 42 Height = 13 Caption = ´VALOR´ FocusControl = DBEdit2 end object DBGrid1: TDBGrid Left = 4 Top = 32 Width = 325 Height = 120 DataSource = DataSource1 TabOrder = 0 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clWindowText TitleFont.Height = -11 TitleFont.Name = ´MS Sans Serif´ TitleFont.Style = [] end object ButtonApplyUpdates: TButton Left = 248 Top = 4 Width = 80 Height = 25 Caption = ´ApplyUpdates´ TabOrder = 1 OnClick = ButtonApplyUpdatesClick end object DBNavigator1: TDBNavigator Left = 4 Top = 4 Width = 240 Height = 25 DataSource = DataSource1 TabOrder = 2 end object DBEdit1: TDBEdit Left = 4 Top = 176 Width = 134 Height = 21 DataField = ´ID´ DataSource = DataSource1 TabOrder = 3 end object DBEdit2: TDBEdit Left = 4 Top = 220 Width = 212 Height = 21 DataField = ´VALOR´ DataSource = DataSource1 TabOrder = 4 end object SQLConnection1: TSQLConnection ConnectionName = ´IBConnection´ DriverName = ´Interbase´ GetDriverFunc = ´getSQLDriverINTERBASE´ LibraryName = ´dbexpint.dll´ LoginPrompt = False Params.Strings = ( ´DriverName=Interbase´ ´Database=c:\teste.gdb´ ´RoleName=RoleName´ ´User_Name=sysdba´ ´Password=masterkey´ ´ServerCharSet=´ ´SQLDialect=3´ ´ErrorResourceFile=´ ´LocaleCode=0000´ ´BlobSize=-1´ ´CommitRetain=False´ ´WaitOnLocks=True´ ´Interbase TransIsolation=ReadCommited´ ´Trim Char=False´) VendorLib = ´gds32.dll´ Left = 4 Top = 316 end object SQLDataSet1: TSQLDataSet CommandText = ´select ID, VALOR from TABELA´ MaxBlobSize = -1 Params = <> SQLConnection = SQLConnection1 Left = 36 Top = 316 object SQLDataSet1ID: TIntegerField FieldName = ´ID´ ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] Required = True end object SQLDataSet1VALOR: TFMTBCDField FieldName = ´VALOR´ ProviderFlags = [pfInUpdate] Precision = 15 Size = 2 end end object DataSource1: TDataSource DataSet = ClientDataSet1 Left = 132 Top = 316 end object ClientDataSet1: TClientDataSet Aggregates = <> Params = <> ProviderName = ´DataSetProvider1´ Left = 100 Top = 316 object ClientDataSet1ID: TIntegerField FieldName = ´ID´ ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] Required = True end object ClientDataSet1VALOR: TFMTBCDField FieldName = ´VALOR´ ProviderFlags = [pfInUpdate] Precision = 15 Size = 2 end end object DataSetProvider1: TDataSetProvider DataSet = SQLDataSet1 UpdateMode = upWhereKeyOnly Left = 68 Top = 316 end end
Delphi7 - dbExpress - Midas
GOSTEI 0