0

ヨーロッパの数値フォーマットを希望どおりに処理していないフレックスグリッドセルがあります。いくつかの詳細は、コードで私から離れて抽象化される可能性があります。

現在、私のコントロールパネルの「ローカルリージョン」はターゲットの場所(デンマーク/デンマーク)に設定されています。

デンマーク語形式の12,36などの10進値を正常に入力できます(米国形式では、もちろんこれは12.36です)。

この値は適切に処理され、SQLに渡されて使用されるときに処理されます。

その後、私はさまざまなチェックが下で、そしてこの行で起こると思います

.Redraw = flexRDDirect

グリッドが再描画しようとすると、このセルのマイ番号が変換されます。

12,36と入力すると、コンマが直接小数点に変換されており、最初にインプレース関数を使用してデンマーク語から米国(またはその逆)に適切にフォーマットされていないと思います。次に、ある時点でセルが再検証され、この値12.36がまだデンマーク語形式であると想定されます。これは1236に相当します(ただし、1000の区切り文字が間違った位置にあるため、記述が不十分です)。

これで、私の値である12,36(または米国では12.36)がデンマーク語で12.36になりました。これは、適切にフォーマットされた場合(正しい位置に数千の区切り文字)、実際には1.236,00(デンマーク語)になります。これは、私の元の値の100倍になります。 12,36

それで、vb6 / flexgridに、このコンマを明示的に小数点に変換し、その後ローカルフォーマットを試行するものがありますか(これは基本的に私の値を100倍にします)?.Redraw = flexRDDirect値が変化するのを見る行で何かが呼び出されていますか?提供されている関数を使用せずに、ローカル領域のフォーマット自体に対応しようとしているカスタムコードがどこかにあるのではないかと思います。しかし、そうではないかもしれません!

これはすべて、私のコーディングの専門分野ではありません。さらに詳細が必要な場合はお知らせください。

4

1 に答える 1

0

私はその問題を発見しました。他の何かが数値を変換してフォーマットしようとしていました。障害のあるプロシージャは、数値に 0 と小数点を追加しようとしていました。そのため、VB+region_settings がそれを (適切に) 処理すると、めちゃくちゃになりました。

于 2013-01-21T16:13:57.990 に答える