2

バックグラウンド

米国のユーザーがアプリケーションの最初のユーザー ベースでしたが、カナダ、イギリス、スカンジナビアのユーザーもシステムを使用するまでに拡大しました。

PowerBuilder データウィンドウは、小数とピリオドが転置されたスカンジナビア通貨形式 (###.###,00) を好みませんでした。データウィンドウでフォーマットを設定しようとすると、フォーマットが無効であるというエラーが表示されました。

この問題に遭遇したのは私たちだけではありませんが、インターネットでの通常の検索では、このトピックについてあまり見かけませんでした。

現在の回避策

当面の間、開発者の 1 人が回避策を見つけました。ログイン スクリプトでセッションの Windows オペレーティング システムの通貨形式を変更し、データウィンドウ フィールドの format プロパティに「[currency]」を入力してオペレーティング システムの通貨形式を選択することでした。フォーマット。

これは機能しているように見えますが、いくつかの理由から、私の意見では最適なソリューションとは言えません。

  1. スカンジナビアのユーザーは、他のユーザーとは異なるアイコンを使用してアプリを実行する必要があります。アプリにログインするために 2 つの異なるアイコンを使用することがどれほど腐っているか、さらに、それぞれが異なる形式のスクリプトを開始するというメンテナンスの煩わしさについて詳しく説明する必要はありません。
  2. ユーザーセッションでの単一通貨の通貨フォーマットの問題のみを解決します。アプリの国際化が進むにつれて、同じレポートにさまざまな通貨を表示できるようにする必要があるかもしれません。

もっと良い方法があるに違いない

Spolsky の Unicode エッセイを読む必要があると誰かが言うことはほぼ間違いありません。しかし、それとは別に、PowerBuilder の洗練されたソリューションの詳細に興味があります。前もって感謝します。

4

1 に答える 1

2

表示形式の定義に関する PB のヘルプから:

数値と通貨の設定

アプリケーションが展開される国に関係なく同じように動作するようにするには、表示形式と編集マスクで使用されるデータウィンドウ式とマスクで、数値に US 表記を使用する必要があります。つまり、データウィンドウ式または数値マスクで数値を指定する場合、カンマは常に 3 桁の区切り記号を表し、ピリオドは常に小数点以下の桁数を表します。また、通貨の記号を表すには、常に $ 記号を使用する必要があります。

実行時に、数値と通貨に対してローカルで正しい記号が表示されます。カンマとピリオドは、Windows コントロール パネルの [地域または国際設定] プロパティ シートのユーザーの数値設定で定義された区切り文字に置き換えられます。マスク内の $ 記号は、Windows コントロール パネルのユーザーの通貨設定で定義されている現地通貨記号に置き換えられます。たとえば、コンマが小数点以下の桁数を表し、ピリオドが千の位を表す国では、ユーザーはこれらの形式で数値を表示します。

これはおそらくあなたが望んでいた答えではないでしょう...私が提案できるのはこれです:

  • レポートの場合、任意の方法で数値をフォーマットし、文字列として表示する計算フィールドを使用します。
  • 入力フィールドには、組み込みの通貨マスクを使用します。いずれにせよ、ユーザーはおそらくデフォルトのシステム ロケールを使用する方が快適に感じるでしょう。
于 2009-04-19T09:19:46.697 に答える