アプリケーションのパフォーマンスと動作を劇的に改善するのに役立つ秘密のオプションに関する一連のブログ記事を開始しました。互換性シリーズの第二弾は、ビジネスアプリケーションの国際的な使用についてです。これは、他の国に販売すること、あるいは、他の国から同僚が来てしばらく仕事をするが、その国のシステムを使用することを意味します。あなたが「数値が>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><数字がどのように表示されるかわからない?データベースの設定を確認してください。v11以降で作成されたアプリケーション)、すべてうまくいっているので、これ以上読む必要はありません。どのように動作させるか4D開発者は、国際的な使用を想定して設計しますが、エンドユーザーは、どのような地域設定でも、クライアント/サーバーモードでの混合設定でも、使用することができます。仕組み(互換モード)4D開発者は、ある地域(通常はローカル)の設定に合わせて設計し、エンドユーザーは全く同じ設定にする必要がありました。例「ドイツでは「##,##0.00」、アメリカでは「1,234.56」、スイスでは「>>>>>>」と表示されます。internationalLY)最近の4Dバージョンでは、4Dメソッドのすべてが国際的なフォーマットになっている。定数の数値は、国際的な小数点の区切り記号であるドットを使用して定義されます(例えば、5.3など)。“yyyy-mm-dd”(2018-07-31)形式で定義されています。デリミターとして使用される”-“と、年/月/日の順序に注意してください。時刻は24時間表示で定義されています。値が表示(またはフォーマット)されると同時に、現在の地域設定が使用されます。私はこのブログ記事をドイツのシステムで書いているので、String(!2018-07-31!)の結果は「2018.07.31」、String(5.3)の結果は「5,3」となります。同じアプリケーションの場合。これは長年の開発者にとって発想の転換が必要ですが、結果として余分な努力をすることなく国際的に動作するアプリケーションを手に入れることができます。移行のヒント地域設定の動作を変更するには、地域設定がハードコーディングされているすべての場所を変更する必要があります。これはほとんど不可能なミッションかもしれません。このため、互換性オプションが存在し、デフォルトで「互換性」に設定されているのです。獲得するものがたくさんあるので、実際にどれくらい難しいのか見てみましょう。あなたがすることは何もありません。v16以降でそのメソッドを開くと、$i:=5.3が表示されるのです。日付や時間でも同じです。フィルター4Dでは、メソッドやフォームにハードコーディングされたフォーマット(例えば、”###.##0,00“)が認められていますが、私たちは20年以上にわたって、それを避けるようにアドバイスしてきました。あなたがどこでもフィルターを使っているなら、それを変更するのは非常に簡単です。5個や10個のフィルターがあるかもしれませんが、おそらく20個以上にはならないでしょう。そこで、フィルターをローカルフォーマットからインターナショナルフォーマットに変更する必要があります(例えば、小数点にドット(”.”)を使用し、千の区切りにカンマ(”,”)を使用)。それが終わったら、互換性チェックボックスを有効にして完了です。メソッドの中にあるハードコードされたフィルタを見つける方法このステップは、上で説明したものほど簡単ではありません。アプリケーションでフィルタを使っていても、場合によってはフィルタをスキップして「クイック&ダーティ」なコードを作っていないかどうかわからないことがあります。***0が典型的なフォーマットです。必要なのはフォーマットの一部分(できるだけユニークなもの)だけです。あなたのメソッドにこれらのテキスト断片があったら、ハードコーディングされている可能性がかなり高いです。デザインモードの検索ツールを使って、これらのコードの断片を検索し、その結果をブラウズしてください。いくつかしか見つからなかったら、手作業でそれらを調べ、次のようなフィルターで置き換えます。nameたくさん見つかった場合は、手動で検索し、検索条件が正しいかどうかを確認します。必要なら微調整をする。多少手間がかかるかもしれませんが、ほとんどのケースに対応できるパターンを定義できるようになります。このパターンを使えば、自動的に「検索と置換」ができるようになるはずです。必要な労力にもよりますが、あなたのコードを実行して検索するメソッドを書くこともできます。CODEコマンドを使って、あなたのコードを検索するメソッドを書くこともできます。フォームにハードコードされたフィルタをすべて見つける方法4Dはフォームの検索オプションを提供していないので、フォームの中にハードコードされたフォーマットがないか自動的にチェックすることはできません。私たちは開発者なので、自分でそれを行うことができます.まず、すべてのテーブルのすべてのフォームのリストを取得し、それらをループする必要があります。次に、各フォームについて、すべてのオブジェクトのリストを取得し、それらについてもループさせます。最後に、各オブジェクトについて、数値形式が使われているかどうかを調べ、使われている場合は、それがハードコーディングされているかどうかを調べます。あれば、それを報告します。良い点:このコードは、デザインモードでのメソッドの検索オプションと同様のリストを提供します。各結果を開き、手作業で書式を指定する必要があるので、時間がかかるかもしれません。現在のアプリケーションでフィルタを確認し、新しいフィルタを作成します。すべてのフィルターで地域設定を使い続ける...まだ変更しないすべてのメソッドとフォームでフィルタを使用するように変更するデプロイする同時に、アプリケーションのコピーも用意します。社内で、または選ばれたベータテスターのために。(既存のものを置き換える)関連コマンドほぼすべての場合において、地域設定に従った数字の書式設定が必要ですが、いくつかの例外があります。データをインポートまたはエクスポートする際に異なるルールを使用する場合があります。これは、誰がそのデータを使用するか、または誰がそのデータを提供したかに依存します。XMLやJSON形式のデータでは、常にドット(“.”)を小数点の区切り文字として使用します。あなたの仕事は、このような例外を処理することだけであり、通常の動作ではありません。世界中どこでも、ユーザーの地域設定に関係なく、小数点の区切り文字としてドットを使用して数値を文字列に変換するには、以下を使用します。"&xml")注:XMLという形式であっても、ドットを小数点以下の区切り文字として使いたい場合には、どのようなユースケースにも対応可能です。文字列をパースするときに、その文字列が小数点の区切り文字としてドットを使っていることがわかっている場合(XMLやJSON文書から取り込んだため)には、次のように使います。Num($mystring;".")まとめ古い、確立されたアプリケーションでは、多少の作業が必要かもしれませんが、結果として、正しい数値フォーマットを持つアプリケーションをどこにでもデプロイすることができるようになります。これにより、テクニカルサポートの負担が軽減され、顧客も助かるでしょう。これはWin-Winの関係です。トマス・モールは、1988年に4Dのドイツ法人が設立された際にテクニカル・ディレクターとして入社し、ドイツとオーストリアの両方で4D開発者のコミュニティの構築に貢献しました。長年にわたり技術的な問題で顧客をサポートする中で、販売や経営に関わることが多くなった後、1999年に4Dドイツのマネージング・ディレクターに昇格しました。マーケティングチームとともに4D製品ラインの全体的な戦略の発案と遂行に責任を負っています。Posts4Dサミット2023。究極の対面体験が帰ってきた。お客様のプライバシーは当社にとって非常に重要です。方針お問い合わせご質問、ご提案、または4Dブロガーと連絡を取りたいですか?私たちに連絡を取ってください。お客様のプライバシーは当社にとって非常に重要です。ここをクリックすると、当社の。