コマンドでメニューを構築した場合,編集メニューのペースト操作でリストボックスのセルにテキストをペーストした直後に On Data Change イベントが発生するかもしれません。メニュー項目には「イベントを発生されない」というプロパティがありますが,コマンドで追加したメニュー項目はデフォルトでこのプロパティが有効にされているためです。
コマンドで構築したメニュー項目には,下記の要領でプロパティを設定することができます。
SET MENU ITEM PROPERTY(menu ; line ; "4D_execute_without_validating"; True)
エンティティセレクションおよびカレントセレクションは,共通のアドレステーブルを使用してレコードを特定するようになっています。レコードが削除されると,空いたアドレスは再利用できるようになり,サイズが足りていれば,そこに新規レコードが保存されます。これは,エンティティセレクション/カレントセレクションを作成した後,その中に含まれるレコードを削除し,続けて新規レコードを保存した場合,エンティティセレクション/カレントセレクションの内容が入れ替わることを意味しています。マルチプロセスで環境でエンティティセレクションまたはカレントセレクションを保持している間に当該テーブルのレコードが他のプロセスに削除される可能性がある場合,この振る舞いを念頭に置いてアプリケーションを設計する必要があります。そのようなテーブルのレコードはすぐに削除するのではなく,削除フラグなどを活用し,メンテナンス業務の一環として整理することを検討できるかもしれません。
OPEN PRINTING JOB
で印刷ジョブを開始すれば,PRINT SELECTION
やPRINT RECORD
といった印刷コマンドを組み合わせて実行することができますが,PRINT LABEL
を混ぜることはできません。これは仕様です。PRINT LABEL
は内部的に印刷ジョブを開始するようになっており,毎回,単独で実行する必要があります。
Write Proドキュメントの用紙向きを切り替えても,wk page width
とwk page height
が入れ替わるわけではありません。これは仕様です。幅と高さは飽くまで用紙の寸法に基づいており,レンダリングモードのPortrait/Landscapeといった向きの設定やページの回転とは無関係です。
プロジェクトにメニューバー#1が存在せず,明示的にSET MENU BAR
を実行しなかった場合,ビルドしたMac版のアプリケーションはすぐに終了します。これは仕様です。
Get menu bar reference
はプロセスのカレントメニューバーを返すコマンドです。SET MENU BAR
でメニューバーをインストールしていることが前提になります。SET MENU BAR
を使用せずに,プロパティで連結メニューが設定されたフォームを表示した場合,連結メニューは表示されますが,Get menu bar reference
は空の文字列を返すことになります。これは仕様です。
Windows版でCurrent machine
から返される文字列は15
文字が限度となっています。これは仕様です。コマンドはローカルコンピューターのNetBIOS名を返すようになっているためです。
配列の最大サイズは符号付き32ビット(21億以上)ですが,配列のカレント項目(添字を省略した変数)は符号付き16ビットつまり32767
です。Find in array
などで返された値が32767
を超える場合,その値を配列のカレント項目に代入することはできません。別途,倍長整数型の変数を用意して管理する必要があります。これは仕様です。