0

使用しているレポート ツールの精度に問題があります。問題は、その場で TADODataset からデータを読み込んでいるが、ftBCD フィールドを double に変換していることです。

これにより、レポート レベル (合計など) で操作を実行するときに丸め誤差が発生します。

これが起こらないように、通貨フィールドを ftBCD ではなく ftCurrency として指定したいと思います。

次のようにフィールドを作成すると:

TFieldDef.Create( ADODataset.FieldDefs,
    'test',
    ftCurrency,
    0,
    True,
    0
  );   

ADODataset.CreateDataSet;

時計を使用するとADODataset.Fields[0].DataType、値が ftBCD であることがわかります。

ftBCD フィールドとして割り当てられないように、TADODataset 内で ftCurrency フィールドを明示的に指定する方法はありますか?

4

1 に答える 1

0

これを試して:

ADODataSet.FieldByName('AField').Currency := True;
于 2010-09-03T10:06:02.987 に答える