4D v14.3データ入力の制御と補助 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
データ入力の制御と補助
データ入力の制御と補助
プロパティリストを使用して、アクティブオブジェクトへのデータ入力を制御または補助する様々なプロパティを設定できます。これらのプロパティを使用すると以下のことが可能です:
入力可属性はユーザーがオブジェクトに値を入力できるかどうかを指定します。これはフィールドおよび変数オブジェクトのプロパティリストの“入力”テーマで設定します。 フォームウィザードのリレートフィールド入力可チェックボックスの選択を解除している場合、リレートしたテーブルのフィールドは入力ができません。この場合、プロパティリストで入力可にチェックを入れると、そのフィールドオブジェクトへの入力を許可できます。 すべてのアクティブオブジェクトはデフォルトで入力可です。特定のフォーム上の特定のフィールドやオブジェクトを入力不可にしたい場合、入力可チェックボックスの選択を解除します。入力不可のオブジェクトはデータの表示のみを行います。メソッドでフィールド名や変数名を使用してデータを制御します。入力不可オブジェクトでもOn Clicked, On Double Clicked, On Drag Over, On Drop, On Getting Focus そして On Losing Focus フォームイベントは使用できます。これを利用すれば、カスタムコンテキストメニューを容易に管理し、ドラッグ&ドロップ可能なインターフェースをデザイン、そして入力不可変数を選択することができます。 注:
必須入力チェックボックスを選択すると、そのフォーム上でフィールドが必須入力となります。フィールドに値が入力されない場合、4Dはレコードを受け入れません。 デフォルトでフィールドは必須入力ではありません。すべてのフォームでフィールドを必須入力にするには、ストラクチャーエディターのインスペクターウィンドウで必須入力属性を設定します。特定のフォームのみでフィールドを必須入力にしたい場合、オブジェクトプロパティの必須入力オプションを選択します。 入力可と必須入力属性は、ストラクチャーエディターで設定するフィールド属性と同じです (フィールドプロパティ参照)。これらの属性を特定のフォームで異なるものに設定したい場合、フィールドごとにプロパティで設定できます。これらの属性はフィールドおよび変数オブジェクトのプロパティリストの"入力"テーマで設定できます。
フォーム上のアクティブオブジェクトごとにタブ有効属性を設定できます。この属性が選択されると、オブジェクトは入力順に組み込まれ、ユーザーがTabキーを押すことで選択されるようになります。 デフォルトでこの属性は、この属性をサポートするすべてのアクティブオブジェクトに対し選択されています。選択を解除すると、そのオブジェクトは入力順から外されます。しかしマウスクリックやメソッドによって選択することは可能です。 入力順についてはデータの入力順を変更するを参照してください。 入力ができない (ボタンなどの) オブジェクトに対し、タブ有効プロパティを設定できます。この場合Tabキーを使用してオブジェクトを選択することができますが、依然として入力はできません。 タブ有効プロパティは、オブジェクトがフォーカスを得ることが可能な場合にのみ有効です。しかしいくつかのオブジェクトはフォーカスを得ることができてもタブが有効でない場合があります (例えばクリックで選択可能だがタブでは選択できないオブジェクト)。この場合、オブジェクトはデータ入力順には含められません。 このプロパティはアクティブオブジェクト (入力可か不可かにかかわらず) や入力できないフィールドのプロパティリスト中、"入力"テーマで設定できます。 オブジェクトに対しフォーカス表示プロパティが選択されていると、そのオブジェクトはフォーカスを得ることができ、またキーボードなどを使用してアクティブ化することができます。オブジェクトはフォーカスを得ると、オブジェクトごとあるいはOSごとに定められた方法でハイライトします。ただし"フォーカスの四角を隠す"オプションが選択されている場合を除きます (後述)。 チェックボックスにフォーカスがある チェックボックスが選択されているが、フォーカスが表示されない状態 入力できないオブジェクトにフォーカス表示プロパティが設定されていると、ユーザーはエリアの内容を選択、コピー、およびドラッグ&ドロップすることができます。 実行時、フィールドやすべての入力可オブジェクトは (Tabキーやクリックにより) フォーカスを得たときグラフィカルにそれを表現します。フォーカスの四角を隠すオプションをチェックするとこのグラフィカル表現を無効にできます。 入力可フォームオブジェクトには選択リストを割り当てることができます。3タイプの選択リスト、標準の選択リスト、指定リスト、除外リストがあります。 標準の選択リストはプロパティリストの“データソース”テーマで、指定リストや除外リストは"値の範囲"テーマで指定します。 選択リストを割り当てる前に、リストエディターを使用して事前にリストを作成しなければなりません (リスト参照)。 "データソース"テーマの選択リストドロップダウンリストを使用してフィールドに対しデータソース選択リストを割り当てると、4Dはデータ入力中に 自動で選択リストを表示します。 デフォルトで、選択リストはデータ入力時に自動的にウィンドウに表示されます。この選択リストは実行されているフォームにおいてフィールドまたは入力可能オブジェクトが選択されたときに表示されます。そしてユーザーはリストから入力する値を選択できます。 また、ポップアップメニュー、ドロップダウンリスト と コンボボックスを使用して選択リストを関連づけ、フィールドまたは変数に対しての値の入力と表示を管理することが出来ます(選択リストが階層リストだった場合、最初のレベルのみが使用可能です)。これをするためには、プロパティリストの”変数名”の中にフィールドまたは変数の名前を入力するだけです(ポップアップメニュー、ドロップダウンリストを参照して下さい)。 選択リストから選択した値は入力によって上書きすることが出来ます(リストが指定リストであった場合を除く)。 除外リストを使用すると、リスト中の項目は入力できなくなります。例えば従業員に使用される入力フォーム上のフィールドに、管理者だけが入力できる値のリストを除外リストとして割り当てることができます。 フィールドの選択リストはテーブルまたはフォームレベルで設定できます。テーブルレベルで選択リストを割り当てるにはストラクチャーエディターのイ ンスペクターウィンドウを使用します(フィールドプロパティ参照)。するとこのフィールドにはすべてのフォームとデータベースの検索エディターで選択リストが有効になります。フォームレベルで 選択リストを割り当てると、そのフォームだけで選択リストが有効になります。 この場合、ポップアップメニュー、ドロップダウンリスト または コンボボックス を使用することによってフィールド内のデータ入力とデータ表示を直接管理できます。 指定リスト (“値の範囲”テーマ) は有効な値のリストを指定するために使用します。例えば指定リストとして役職名のリストを指定できます。こうすると、事前に作成されたリスト中の役職名だけ有効な値となります。 指定リストを指定しても、フィールドが選択されたときに自動でリストは表示されません。フォーム実行中に指定リストの内容を表示したい場合は、"データソース"テーマの選択リストドロップダウンで同じリストを指定します。 日本語利用時の注意点: 入力フィルターは日本語IMEと互換性がありません。入力文字種の制限及び#を使用した入力文字数の制限もできません。例えば半角数字のみを2文字だけ入力を許可する目的で、入力フィルターに&9##と指定しても、IME経由での全角数字やその他日本語文字の入力を防ぐことはできませんし、任意の数の文字が入力できてしまいます。アプリケーション仕様としてこのような制御が必要な場合は4Dコマンドを使用する必要があります。 入 力フィルターを使用するとデータ入力中にユーザーがタイプできる文字を制御できます。先に説明したデータ入力制御とは異なり、入力フィルターは文字ごとに 処理が行われます。例えばパーツ番号が常に2つの文字とそれに続く3つの数字で構成されるとき、そのパターンを入力フィルターを通して強制することができ ます。さらに特定の文字や数字のみを使用するよう制御することもできます。 入力フィルターはデータ入力時にのみ動作します。ユーザーがオブ ジェクトの選択を解除した後のデータ表示には効果がありません。通常入力フィルターと表示フォーマットを一緒に使用します。フィルターはデータ入力を制約し、表示フォーマットはデータ入力後の値の表示を制御します。 データ入力中、入力フィルターはタイプされるたびに文字を評価します。ユーザーが無効な文字をタイプすると (例えば数字ではなく文字)、4Dは入力を受け付けません。ユーザーが有効な文字を入力するまで値は変更されません。 入力フィルターは入力フィルタードロップダウンリストから組み込みのフィルターを選択する、またはエリアに入力フィルターコードをタイプすることで設定できます。入力フィルタードロップダウンリストには日付、時間、または文字オブジェクトのフィルターが含まれます。 ほとんどの場合、4D組み込みのフィルターを使用することができます。しかしカスタマイズされたフィルターを作成することも可能です (フィルターエディター参照)。開発者が作成したフィルターの名前は縦棒 (|) 付きで入力フィルターリストの先頭に追加されます。 ドロップダウンリストから選択した後に入力フィルターを更新することができます。例えば大文字と小文字、記号およびワイルドカード文字 (@) の入力を許可したい場合、まず以下のフィルターを選択します: 入力フィルターのコードは通常アンパサンド (&) から始まります。これは4Dに、この後に続く文字が入力フィルターであることを伝えます。コードがチルダ (~) から始まる場合、これは “&” と同じ意味を持ちますが、文字が自動で大文字に変換される点が異なります。 入力フィルタードロップダウンリストから選択できる入力フィルターの説明は以下の表の通りです:
入力フィルターの使用時には通常、対応する表示フォーマットを使用します。入力フィルターが動作するのはデータ入力時のみです。そのフィールドから外に出てしまったら、データ表示についての効力は失います。例えばソーシャルセキュリティ番号の入力フィルター(&9###-##-####)を使用した場合、これに対応するソーシャルセキュリティ番号の表示フォーマット(###-##-####)を選択すべきです。表示フォーマットが選択されていない場合、ハイフンなしの番号だけがそのフィールドに表示されます。 よく使用されるフィールドタイプ用の入力フィルターとそれに対応する表示フォーマットを以下に紹介します:
表示フォーマットは詳細フォーム、一覧フォーム、クイックレポート上で使用できます。クイックレポートでの表示フォーマットの利用については表示フォーマットの設定を参照してください。 4D では、フォームのフィールド内にプレースホルダーテキストを表示することができます。 このテキストはフィールド内で半透明のテキストとして表示され、入力されるデータに関するヘルプ、指示、具体例などを表示します。このテキストはユーザーが文字をエリアに入力した瞬間に表示されなくなります: プレースホルダーテキストは、フィールドの中身が消去されると再び表示されます。 プレースホルダーテキストは、プロパティリストの入力のテーマから設定することが出来ます: プレースホルダーのオプションは以下のオブジェクトに対して設定可能です:
プレースホルダーとして表示できるデータの型は以下の通りです:
xliff 参照を ":xliff:resname" の形でプレースホルダーとして使用することもできます。例えば、 :xliff:PH_Lastname 参照を使用する場合にはプレースホルダーのフィールドには参照のみを渡して下さい。参照と静的なテキストを組み合わせることはできません。 注: プレースホルダーのテキストは、新しい OBJECT SET PLACEHOLDER と OBJECT Get placeholder コマンドを使用するとプログラミングによって設定したり取得したりすることができます。 オブジェクトプロパティの"値の範囲"テーマにある入力エリアで最大値と最小値を指定して、数値や日付時間の範囲を制限できます。 データ入力時、ユーザーが最小値より小さい値や最大値より大きい値を入力すると、警告メッセージが表示されます。4Dは入力カーソルをそのエリアに戻し、ユーザーは有効な値を入力しなければなりません。 最大値や最小値を設定するには、制限値として指定する値を入力します。制限を設定する入力エリアには適切な入力フィルターを設定します。例えば日付フィールドに最大値と最小値を設定する場合、日付入力フォーマットを設定します。 設定した値は上限と下限になります。つまりユーザーは設定された最大値と最小値を入力することができます。最小値より小さい値、あるいは最大値よりも大きい値が拒否されます。例えば最大値が15のとき、ユーザーは15を入力できますが、16は入力できません。ユーザーが入力できる値を制限するためにメソッドを使用することもできます。メソッドではより正確で有用な情報をユーザーにフィードバックできます。またデータベースの他の値に基づく制限値を設定することもできます。例えばメソッドを使用すれば顧客ごとの与信限度額を検証できます。 指定リストを使用して非連続の許可値のリストを作成することもできます。 フィールドや入力可能オブジェクトにデフォルト値を割り当てることができます。デフォルト値は新規レコードが作成され、最初に表示されるときに代入されます。エリアが入力不可に設定されていなければ、デフォルト値を書き換えることができます。 プロパティリストの"値の範囲"テーマ内、デフォルト値欄に、デフォルト値として指定する値をタイプします。デフォルト値はフィールド型に対応していなければなりません。日付、時刻、シーケンス番号については、4Dが提供する記号を使用することができます。日付と時刻はシステムから取得されます。シーケンス番号は4Dが自動で生成します。自動で使用できるデフォルト値の記号は以下の通りです:
レコード毎のユニーク番号を生成するためにシーケンス番号を使用できます。シーケンス番号は倍長整数型で新規レコード毎に生成されます。番号は1から始まり、1づつ増加します。シーケンス番号が割り当てられたレコードが削除されても、その番号は再利用されません。シーケンス番号はテーブルごとに管理されます。詳細は4DランゲージリファレンスのSequence numberコマンドを参照してください。 (コンボボックス、スクロールエリア、ポップアップメニュー、タブコントロール、ドロップダウンリストなど) オブジェクトが値のリストを表示する場合、デフォルト値として使用する値のリストを定義できます。リストはフォームが表示される前にオブジェクトにロードされます。 デフォルト値のリストを受け入れるオブジェクトの場合、デフォルト値エリアがボタンになります: このボタンをクリックすると、デフォルト値ダイアログボックスが表示されれます:
デフォルト値のリストを入力します。値は行ごとに分割されます。OKをクリックするとデフォルト値ダイアログボックスが閉じられ、プロパティリストウィンドウに戻ります。 デフォルト値ダイアログボックスにデフォルト値を入力すると、リストは自動で、オブジェクトに割り当てられた変数と同じ名前の配列にロードされます。ランゲージを使用してこの配列を参照することで、オブジェクトを管理できます。 注:
このオプションはフィールドまたは入力可のオブジェクトに対して特定のキーボードレイアウトを関連付けます。例えば、国際的なアプリケーションに対して、フォーム内にギリシャ文字で入力しなければならないフィールドがあった場合、"ギリシャ語"のキーボードレイアウトをこのフィールドに対して関連付けることができます。これにより、このフィールドがフォーカスを受けている場合にはデータ入力時にキーボード設定が自動的に変わります。 デフォルト値<None>のとき、オブジェクトはカレントのキーボードレイアウトを使用します。 注意: このオプションは、 OBJECT SET KEYBOARD LAYOUT と OBJECT Get keyboard layout コマンドを使用して動的に設定することが可能です。 4Dにはカスタマイズ可能な、統合されたスペルチェッカーが含まれています。文字やテキスト型のフィールドや変数、および4D Writeエリアでチェックを有効にできます。 自動スペルチェックプロパティ (“入力”テーマ) を使用して、そのオブジェクトのスペルチェックを有効にします。有効にすると、スペルチェックはデータ入力時に自動的に実行されます。 注: オブジェクトごとにSPELL CHECKINGコマンドを使用してチェックを行うこともできます。 4Dでは、スペルチェックは絶えずテキストエリア内で実行されていて、エラーは破線の下線が直接テキストに引かれてハイライトされます: 異なる色の破線はエラーの種類を表しています:
ユーザーをそれをみて、コンテキストメニュー(下線の引かれた単語を右クリックで表示)またはスペルチェッカーダイアログを使用して修正することが出来ます。 スペルチェックのオプションを表示するためには、下線の引かれた単語を右クリックします。コンテキストメニューが表示され、その中にスペルチェッカーのコマンドがあります: 注: 自動スペルチェックとコンテキストメニューのオプションがチェックされている必要があります。 スペルチェッカーダイアログ表示のオプションを選択すると、修正した値を入力するダイアログが表示されます: このダイアログボックスは、セッションの間、ユーザーが閉じるまでアプリケーション内の全てのウィンドウに表示されるフローティングするウィンドウです。 4Dのスペルチェッカーでは修正候補の提示をしてくれるだけではなく、以下のオプションと機能が用意されています(コンテキストメニュー内またはスペルチェッカーダイアログボックス内):
スペルチェックのサブメニューでは、以下の様な機能が使用可能です:
OS X のシステムのスペルチェッカーには、他にもいくつかの修正のためのオプションが存在します:
4Dは、スペルチェックの際に使用される辞書は以下の通りです:
フォーム上のフィールドやアクティブオブジェクトにヘルプメッセージを追加して、ユーザーがデータベースを使いやすくし、生産性が向上するよう手助けすることができます。ヘルプメッセージはTipsとして表示されます。 例えばデータ入力時に日付は年、月、日をスラッシュで区切るようユーザーに指示するヘルプメッセージを作成できます。 ヘルプTipはマウスがフィールドやオブジェクトに重なった時に表示されます: 注: フィールドにはデータベースストラクチャーレベルでヘルプメッセージを結び付けることができます。この場合フィールドのヘルプTipは、そのフィールドが 置かれたすべてのフォームで表示されます。詳細はフィールドプロパティの"ヘルプTip"を参照してください。同じフィールドに2つの異なるヘルプTipが結び付けられている場合、フォームレベルのヘル プが優先されます。 プロパティリストにある"ヘルプ"テーマのヘルプTipドロップダウンリストを使用してフォーム中の任意のオブジェクトにヘルプTipを結び付けることができます。以下のいずれかが可能です:
選択あるいは入力したメッセージは、フォーム中で選択されたフィールドやオブジェクト用にヘルプTipとして表示されます。 選択したオブジェクトのヘルプTip割り当てを削除するには、プロパティリストでなしを選択します。 注: Mac OSにおいて、ポップアップ型のウィンドウではヘルプTipsの表示はサポートされなくなりました。 このプロパティは文字やテキスト型のフィールドや変数で使用できます。このプロパティを選択すると、オブジェクト中で選択した文字列の反転状態が、フォーカスを失った後も表示されるようになります。これにより、テキストスタイルを更新するようなインターフェースの実装が容易になります (マルチスタイル (リッチテキストエリア)参照)。 OPEN FONT PICKER コマンドとOPEN COLOR PICKERコマンドを使用することによってカラーピッカーとフォントピッカーを表示させることが出来ます。ユーザーは、これらのウィンドウをクリックすることにより、フォーカスされているオブジェクトのカラーやフォントを直接変更することが出来ます。 これらのユーザーの行動を管理するために、この機能を有効化するためには「テキスト」テーマ内のピッカーの使用を許可のプロパティにチェックをします。 このプロパティは、フィールド、変数、そしてコンボボックス型のオブジェクトに対して存在します。初期設定では全てのフォームオブジェクトにおいてこのチェックは外れています。ピッカーウィンドウを使用してカラーやフォントを変更可能にしたいオブジェクト全てについて、明示的にこのプロパティにチェックをする必要があります。 |
プロパティ
プロダクト: 4D ARTICLE USAGE
デザインリファレンス ( 4D v14.3) Inherited from : データ入力の制御と補助 ( 4D v14 R2) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||