17r5のexport structure fileコマンドでフォームをエクスポートした場合,フォームの名前がそのままフォルダーの名前として使用されます。ファイルシステムで許可されていない名前がつけられたフォームは,必然的にエラーが返されることになります。
プロジェクトモードでは,識別子がファイルパスの一部になりますので,フォーム・オブジェクト・メソッドの名前に : \ / . といった文字を使用することは控えてください。バージョン管理システムとの連携を考え,POSIXパスのフォルダー区切り文字も避けたほうが無難です。なお,テーブルは,名前ではなく,番号がフォルダー名に使用されるので,問題にはなりません。
忘れがちな点として,Windowsでは,歴史的な経緯により,フォルダー名に使用できない識別子があります。
IN OUT CON PRN AUX NUL
COM1 COM2 COM3 COM4 COM5 COM6 COM7 COM8 COM9
LPT1 LPT2 LPT3 LPT4 LPT5 LPT6 LPT7 LPT8 LPT9
Windows版でMDIウィンドウの閉じるボタンをクリックしたり,Alt+F4を入力したり,タイトルバーの左端にあるウィンドウメニューの「閉じる」アクションを実行したりしても,アプリケーションが終了しない場合,アプリケーション「終了」アクションがきちんと設定されているか,確認してください。
「終了」アクションが実行されるためには,「終了」標準アクションが設定された項目がメニューに存在しなければなりません。「終了」メニューを設定することにより,Windows版でMDIウィンドウの「閉じる」ボタンがこのメニュー項目に関連付けられます。Mac版では,アプリケーションメニューに「…を終了」という項目が追加され,代わりに本来の項目がメニューから取り除かれます。
このメニュー項目にプロジェクトメソッドが設定されていない場合,項目を選択すると,自動的に確認ダイアログが表示され,終了することに同意すると,アプリケーションの終了プロセスが始まります。
このメニュー項目にプロジェクトメソッドが設定されている場合,項目を選択すると,確認ダイアログは省略され,すぐにアプリケーションの終了プロセスが始まります。
「終了」標準アクションが設定された項目がメニューに存在しない場合,MDIウィンドウの「閉じる」ボタンをクリックしても何も起きません。
ヘルプTipsが表示されているときにOBJECT SET HELP TIPを使用した場合,表示中のヘルプは取り消され,新しい内容のヘルプが表示されます。これは仕様です。設定したメッセージが以前と同じものであったとしても,この点は変わりません。マウスポインターの移動中にコマンドを実行すると,ヘルプTipsが絶えず点滅し,ユーザーに不快な印象を与えるかもしれませんので,注意が必要です。
Current method nameをフォームメソッド内でコールした場合,コンパイルモードではフォーム名に出現する最後のピリオド以降の文字列が返されます。これは仕様です。たとえば,Invoice.Output.Dialogのような名前をフォームに設定した場合,Dialogだけが返されます。フォーム名にピリオドは使用しないでください。
ユーザーモードのメニュー項目「ファイル > 読み込み > ODBCソースから読み込み」および「ファイル > 書き出し > データをODBCソースに書き出し」は,64ビット版でdisabled状態となっています。IMPORT ODBC EXPORT ODBC も64ビット版では使用できません。これは仕様です。ODBC経由でデータの読み書きをするのであれば,標準のSQLコマンドを使用してください。
注記: 32ビット版アプリケーションは,17r4が最後のリリースとなります。17r5以降,4Dおよび4D Serverは64ビット版アプリケーションのみのリリースとなり,32ビット版は提供されません。
17r3以降,スプレッドシートをVP EXPORT DOCUMENTで.xlsx形式でエクスポートすることができるようになりました。.4vp形式を指定した場合,コマンドは同期処理でファイルを書き出しますが,.xlsx形式を指定した場合,非同期処理でファイルを書き出した後,コールバックとして渡されたFormulaオブジェクトが実行されるようになっています。On Close Boxフォームイベントでコマンドを実行した場合,ウィンドウが閉じられることにより,非同期処理がアボートされてしまうため,.xlsx形式のエクスポートはキャンセルされてしまいます。これは仕様です。ダイアログの終了と同時にエクスポートを実行するのであれば,コールバックとして渡されたFormulaオブジェクトが実行された後にウィンドウを閉じるようにしてください。
17r3は,v2004のストラクチャファイルを開くことができる最後のバージョンです。v17r4で開こうとすると「データベースストラクチャが無効です。バージョンが古すぎるか,ファイルを修復する必要があります」というエラーが返されます。これは仕様です。
Write Pro文書・画像・セクション・段落のボーダー(罫線)は,コンテキストメニュー,またはWP SET ATTRIBUTESとwk border style wk border widthの組み合わせで設定することができますが,テーブル全体や特定の行列のボーダーは設定することができません。これは仕様です。
ボーダーは,テーブル・行・列ではなく,セルの属性です。テーブル全体や特定の行列のボーダーする場合,下記のようにセルの集合を取得した上でWP SET ATTRIBUTESを使用します。
$table:=WP Get element by ID($wp;"t1")
$cells:=WP Table get cells($table;1;1;MAXLONG;MAXLONG)
WP SET ATTRIBUTES($cells;wk border style;wk none)
v16では,リスト型のサブフォームダブルクリックすると,FORM SET INPUTで指定した入力フォームに切り替わりましたが,v17では常にデフォルトの入力フォームが使用され,FORM SET INPUTで指定したフォームは使用されません。これは仕様です。以前の振る舞いはバグであり,意図的な設計によるものではありませんでした。サブフォームの内容は,OBJECT SET SUBFORMで明示的に切り替えることができます。
追記: ビルド237123以降,仕様が見直され,サブフォームに対してFORM SET INPUTが使用できるようになりました。(ACI0099331)