View Proのテーマカラー「なし(no color)」は,色を指定しない,という意味です。透明色のことではありません。たとえば,テキストのカラーを「なし」に変更した場合,その色はデフォルトつまりブラックとなります。これは仕様です。
4Dアプリケーションで同時に複数の印刷ジョブを実行することはできません。たとえば,サーバーアプリケーションで印刷コマンドを使用してPDFを出力するような場合,あるプロセスが印刷ジョブを開始した後に別のプロセスが印刷設定コマンド(SET PRINT OPTION
WP USE PAG SETUP
_o_PAGE SETUP
など)を使用すると,「印刷ジョブを開始した後にこのコマンドを使用することはできません」エラーが返されます。これは仕様です。複数のプロセスが並行して印刷コマンドを使用することが想定されている場合,印刷ジョブをセマフォで排他的に制御するか,ワーカーなどを使用して印刷ジョブのキューを管理する必要があります。
メソッドエディターの左端(ブロックコードのノードが表示される領域)にマウスポインターを移動すると,ポインターが変形し,右向きに変化します。これは仕様です。変形したマウスポインターは,クリック操作により,行全体が選択できることを示しています。
4Dは,コンパイルモードで発生するエラーをインタープリターモードで発見し,デバッグできるよう,できるだけ同じ条件でエラーが発生するように設計されていますが,いくつかのエラーは,歴史的な経緯により,インタープリターモードでは発生せず,ON ERR CALL
でも抑止することができません。代表的な例は「範囲チェック」のランタイムエラーです。たとえば,パラメーターの$1
が未定義の場合,インタープリターモードであれば,そのままメソッドに渡してもエラーになりません。コンパイルモードでは,「範囲チェック」のランタイムエラーとなります。ON ERR CALL
でエラーダイアログを抑止することはできないため,Count parameters
でパラメーター数をチェックすることが必要であり,インタープリターモードではランタイムエラーが発生しないため,気をつけてコーディングするしかありません。これは仕様です。
18 R2では,_O_DISABLE BUTTON
および_O_ENABLE BUTTON
コマンドが廃止されました。コマンドはトークナイズされ,コンパイルも成功しますが,呼び出した場合,「未実装のコマンド」エラーが返されます。これは仕様です。v11以降,両コマンドの代わりにOBJECT SET ENABLED
を使用することが勧められています。
Appleの「スティッキーズ」や「メモ」のようなアプリは,HTML形式でテキストをコピー&ペーストするリッチテキストエディターです。HTMLのソースをみると,フォントサイズはピクセル(px
)単位で指定されていることがわかります。Write Proは,ワードプロセッサであり,フォントサイズはポイント(pt
)単位となっています。Microsoft Wordも同じです。スティッキーズでコピーしたテキストのフォントサイズが「14px
」だった場合,Write Proはこれをポイントに換算するので,14*0.75=10.5pt
となります。これは仕様です。別のアプリからリッチテキストをコピー&ペーストする場合,「スティッキーズ」や「メモ」のようなテキストエディターではなく,(フォントサイズをポイント単位でコピーする)ワードプロセッサからペーストしたほうが良いでしょう。
デザインモードの「アプリケーションビルド」ダイアログには,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()
で新規エンティティを作成してください。