4D ViewドキュメントをView Proに変換した場合,日付型の差を求める計算式が設定されたセルの値が変わってしまうことがあります。たとえば,A1
セルに2019-01-01
,A2
セルに2019-01-06
が代入されている場合,A2-A1
は5
(正)となりますが,A3/2
は2
(誤)となります。これは仕様です。
4Dランゲージで日付の減算を実行すれば,日数が整数で返されますが,4D Viewの計算エンジンは特殊であり,日付の除算や乗算であっても,計算値が整数で返されます。日数を整数ではなく,実数で計算したいのであれば,明示的に0
を加算してください。前述の例でいえば,(A3+0)/2
は2.5
となります。逆に,4D Viewと同じように整数で計算したいのであれば,INT(A3/2)
と記述することができます。
DOM Parse XML source
またはDOM Parse XML variable
でXML文書をインポートし,XML SET OPTION
でXML indentation
オプションをXML no indentation
に設定してからDOM EXPORT TO VAR
またはDOM EXPORT TO FILE
を使用した場合,依存のXMLノードに施されているプリティプリントは除去されません。これは仕様です。インデントは,DOM Create XML Ref
で作成したノードに適用されるオプションです。
###'###'##0.00;-###'###'##0.00;
のようにアポストロフィ記号が含まれるフォーマットが設定された4D ViewドキュメントをView Proに変換した場合,フォーマット文字列のアポストロフィがカンマ記号になります。これは仕様です。桁区切りにアポストロフィ記号を使用するSpreadJSのカルチャー設定を作成するか,View Proに変換してから### ##0.00;[Red]- ### ##0.00
のようなシンタックスで同等の条件フォーマットを設定してください。
外部ODBCデータベースに対し,SQL LOGIN
でログインした場合,Begin SQL
End SQL
ブロックであれば,1回のセッション内で何度でも使用することができますが,SQL EXECUTE
のほうは,2回目のコールでエラー1412
(SQL文がすでに開かれている)が返されます。これは仕様です。
ODBCデータソースに対してSQL EXECUTE
を続けて実行するのであれば,まず SQL CANCEL LOAD
で前のSQLステートメントを閉じる必要があります。
SET PICTURE METADATA
コマンドを使用すれば,JPEGまたはTIFF形式のピクチャにタグ情報を書き込むことができます。
Windows版でTIFF画像のタグ情報をひとつずつ更新した場合,毎回の書き込みで画像の展開と再圧縮が実行されるため,画像のサイズにより,処理にかなりの時間を要します。これはWIC(Windows Imaging Component)の制限であり,仕様です。圧縮の回数を抑えるため,タグ情報は1回のコールで更新することが勧められています。
64ビット版では,リスト形式のサブフォームに表示されたレコードを1回だけクリックした場合,On Clicked
イベントに続いてOn Display Detail
イベントが発生するかもしれません。これは仕様です。
On Display Detail
は,レコードの選択状態が変化したときなど,リストフォームの再描画が必要になったときに発生するイベントであり,そのタイミングは,描画レイヤーをキャッシュする仕組みなど,プラットフォーム側の実装にも影響されるので,32ビット版と64ビット版では,多少の違いがあるかもしれません。
ORDAのentity.clone()
メソッドは,データベースに保存されているエンティティに対して使用されることが想定されています。クライアント/サーバー版であれば,未保存であっても,entity.clone()
でエンティティがクローンできるかもしれませんが,スタンドアロン版で同じことをした場合,プライマリーキーの値がコピーされないので,問題になります。この点は,ドキュメントに説明されています。
Date
を使用すれば,協定標準時(UTC)の文字列をローカル時間に変換することができます。コンピューターのタイムゾーンがパリ(フランス)に設定されている場合,WindowsとMacでは,違う日付が返されることがあります。これは仕様です。
パリ時間がサマータイムに移行する日時は,毎年,変わります。また,1900-1910年の期間は,ずっとUTC+0:09:21
でした。Macは,この歴史的な事実を踏まえ,正確にUTCをローカル時間に変換します。間違っているのは,Windowsのほうです。
ネットワーク上で同じ公開名のサーバーアプリケーションが動いている場合,デザインモードの「アプリケーションビルド」画面で設定したプロジェクトでビルドされたクライアントアプリケーションは,自動アップグレード後に別のサーバーアプリケーションに接続してしまうかもしれません。これは仕様です。
ビルドプロジェクトには,サーバーのアドレスIPAddress
を含めることができますが,デザインモードの「アプリケーションビルド」画面には,これを入力する場所がないため,この値は空となります。
サーバーのアドレスが設定されていない場合,クライアントアプリケーションは,ネットワークにブロードキャストされている公開名でサーバーを探すため,ネットワーク上で同じ公開名のサーバーアプリケーションが動いている場合,別のサーバーアプリケーションに接続してしまう可能性があります。これが問題になるようであれば,ビルドプロジェクトにサーバーのアドレスを含めるようにしてください。