デザインモードの「アプリケーションビルド」ダイアログには,BuildApp.xml
のIPAddress
キーに相当するフィールドがありません。そのため,このダイアログでビルドしたクライアントアプリケーションは,自動アップグレード後に接続するべきサーバーをIPアドレスではなく,公開名とポート番号で探します。これは仕様です。
ネットワーク上に同名のサーバーが同時に公開されており,公開名とポート番号ではサーバーが特定できない場合,BuildApp.xml
を編集し,IPアドレスを指定するようにしてください。そうすれば,そのアドレスがUpgrade4DClientのinfo.json
ファイルにコピーされます。
コレクションメソッドのcollection.equal()
は,オプションのck diacritical
が渡されなかった場合,1e10-6
というイプシロン値を内部的に使用します。この値は,SET REAL COMPARISON LEVEL
で設定したイプシロン値には影響されません(非ドキュメント)。実数型が格納されたコレクション型の比較をする場合,オプションのck diacritical
は渡さないようにしてください。
例:
$a:=New collection(1/Log(10)) //0.43429448190325...
$b:=New collection(0.4342944819033)
$test:=$a[0]=$b[0] //true
$test:=$a.equal($b) //true
$test:=$a.equal($b;ck diacritical) //false
dataClass
entity
entitySelection
dataStore
のようなORDAオブジェクトをOB Copy
でコピーすることはできません。これは仕様です。この点は,ドキュメントのエンティティに関するページで言及されています。エンティティを(DUPLICATE RECORD
のようなイメージで)複製するのであれば,entity.toObject()
のようなメソッドを介して標準オブジェクトに値を転写するか,entity.clone()
で新規エンティティを作成してください。
4D Write Proドキュメントをwk web html
形式でエクスポートした場合,セクション・ヘッダー・フッターなどは失われることになります。これは仕様です。
4D Write ProのHTMLフォーマットは,XHTMLフォーマットを拡張することで,セクション・ヘッダー・フッターなどを表現しています。HTML 5には,section
header
footer
といったタグが存在しますが,4D Write ProのHTMLフォーマットは,HTML 4をベースにしているため,こうしたタグには対応していないことが関係しています。
View Proエリアは,SpreadJSをベースにしており,CEF版のWebエリアに表示されています。そのため,標準のView Proコマンドに加え,SpreadJSのJavaScript APIもWebエリアコマンド経由で実行することができます。たとえば,セルのスタイルを変更した後,下記のようなコードで操作を取り消すことができます(command
+Z
を入力することに相当)。
Utils.spread.undoManager().undo()
spread
ではなく,Utils.spread
と記述する必要がある点に留意してください。このテクニックは,リボンインタフェースだけで使用することができます。これは仕様です。ツールバーインタフェースで取り消すことができるのは,値の入力など,基本的な処理だけとなっています。
Internet Commandsではメールが送信でき,SMTP Transporter
では送信できない場合,SMTPサーバーのTLSバージョンが古い可能性があります。これは仕様です。サーバーがTLS_1.1
またはTLS_1.2
をサポートしていない場合,checkConnectivity()
でエラー 42
43
49
が返されます。これに対応するOpenSSL内部エラーメッセージは下記のとおりです。
1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
古いSMTPサーバーを使用する場合,4DのデフォルトTLSバージョンを引き下げる必要があります。
SET DATABASE PARAMETER(Min TLS version;TLSv1_0)
Mac版でTRANSFORM PICTURE
のScale
オプションの倍率を0.5
から0.99
に設定した場合,.jpg
画像ファイルのサイズが縮小される代わりに拡大されることがあります。これは仕様です。0.5
あるいは1
のように割り切れる倍率であれば,問題ありません。現行バージョンでは,.jpg
画像を処理するためにシステムのライブラリをコールしています。システムは,最高の画質つまり100%
をデフォルトで適用しています。v12では,4D側で画質が94%
に設定されていました。画像を中途半端な倍率(たとえば78%
)にリサイズする必要があり,v12と同等のサイズを得たい場合,CONVERT PICTURE
で明示的に画質を指定してください。
64ビット整数型のフィールドに登録されている符号なし整数値を符号あり32ビット整数型の変数(C_LONGINT
)に代入した場合,インタープリターモードにおけるオーバーフロー値(例:30,000,000
)の扱いは,プラットフォーム依存となります。これは仕様です。Windowsでは,オーバーフロー値が0
になりますが,Macではなりません。そのため,クエリや演算の結果がプラットフォーム間で違うことがあります。なお,コンパイルモードでは,どちらのプラットフォームでも同じ結果になります。いずれにしても,整数値オーバーフローの動作は「未定義」ですので,特定の動作を前提にしたコーディングは避けるべきです。たとえば,整数をC_REAL
で処理できるかもしれません。