メインコンテンツまでスキップ
バージョン: 20 R7 BETA

Select document

Select document ( directory ; fileTypes ; title ; options {; selected} ) -> 戻り値

引数説明
directoryText, Integerドキュメント選択ダイアログボックスで ディレクトリのアクセスパスをデフォルトで表示する、または デフォルトユーザフォルダを表示する空の文字列 (Windowsでは"My documents"、 Mac OSでは"Documents")、または メモリーされたアクセスパスの番号
fileTypesTextフィルタするドキュメントタイプのリスト、または ドキュメントをフィルタしない"*"
titleText選択ダイアログボックスのタイトル
optionsInteger任意の選択
selectedText arrayアクセスパスのリストを含む配列 + 選択されたファイルの名前
戻り値Text選択されたファイルの名前(複数の選択がある場合、 リストの最初のファイル)

説明

Select documentコマンドは、標準のドキュメントを開くことのできるダイアログボックスを表示します。このダイアログボックスでは、1つ以上のファイルを選択できます。そしてこのコマンドは選択されたファイルの名前または完全なアクセスパスを返します。

引数directoryは、フォルダの内容がドキュメントを開くダイアログボックスで冒頭に表示されるフォルダを示します。3タイプの値を渡すことができます。

  • 表示するフォルダへの完全なアクセスパスを含むテキスト。
  • 空の文字列。この場合カレントオペレーティングシステムのデフォルトユーザフォルダ (Windowsでは"My documents"、Mac OSでは"Documents") が設定されます。
  • 記憶されたアクセスパスの数値 (1から32,000) 。これは選択ボタンをクリックしたときに開いているフォルダのアクセスパスをメモリに保存できることを意味します。つまり、ユーザによって選択されたフォルダを指します。このコマンドの最初の呼び出しで任意の数値を呼び出すと (例えば5)、コマンドはオペレーティングシステムのデフォルトユーザフォルダを表示します (空の文字列を渡すことに対応する) 。ユーザはハードディスク上の複数のフォルダをざっと見る場合もありますが、選択ボタンをクリックすると、アクセスパスが記憶され、数値の5が結び付けられます。更に数値の5を呼び出すと、記憶されたアクセスパスがデフォルトで使用されます。新しい場所が選択されると、5に対応するパスが更新されます。

このメカニズムを利用して、32,000までのパス名を記憶できます。Windowsではセッションの間だけそれぞれのパスが保持されます。Mac OSでは一つのセッションから次のセッションまで、パスが保持されています。パス名が正しくないと、引数defaultPathは無視されます。

Note: このメカニズムは、Select folderコマンドで使用しているメカニズムと同じです。記憶されたパス名の数値は、この二つのコマンド間で共有されます。

引数fileTypeには、開くダイアログボックスで選択するファイルのタイプを渡し、; (セミコロン) で区切られた幾つかのタイプのリストを渡します。それぞれの指定されたタイプに対して、ダイアログボックスの選択メニューに行が追加されます。

  • Mac OSでは、標準的なMac OSタイプ(TEXT、APPLなど) またはUTI (Uniformタイプ識別子) タイプのどちらかを渡します。ファイルタイプの標準化のニーズを満たすために 、UTIはAppleによって指定されます。例えば、"public.text" は、テキストタイプのファイルのUTIタイプとなります。UTIに関する詳細については、developer.apple.com Webサイトの、 Uniform Type Identifier Concepts page を参照してください。
  • Windowsでは、標準的なMac OSのファイルタイプ (4Dが内部的に対応させます) またはファイル拡張子 (.txt、.exe など) を渡します。Windowsでは、ダイアログボックスに"*.*"を入力することによって、全てのファイルタイプを表示させることができます。しかしこの場合、4Dは選択されたファイルタイプのチェックを追加して実行します。認識されていないファイルタイプが選択された場合、コマンドはエラーを返します。

表示されているファイルを1つ以上のタイプに限定したくない場合は、文字列"*" (アスタリスク) または".*" をfileTypeに渡します。

ダイアログボックスに表示されるラベルを引数titleに渡します。デフォルトで、空の文字列を渡すと、ラベル"開く" が表示されます。

引数optionsはファイルを開くダイアログボックスで使用できる詳細機能を指定します。4D には下記の定数がSystem Documents System Documentsテーマで定義されています。

定数コメント
Allow alias files倍長整数8ドキュメントとしてショートカット(Windows) やエイリアス(Mac OS) を選択できます。この定数が使用されずにエイリアスやショートカットが選択されると、コマンドはターゲット要素のアクセスパスを返します。定数を渡すと、 コマンドはエイリアスまたはショートカット自体のパスを返します。
File name entry倍長整数32ユーザーに"別名で保存 (新規保存)"ダイアログへのファイル名の入力を許可する。4Dはファイルを作成しません。ファイルの作成は開発者が行わなくてはなりません。Documentシステム変数が更新されます。このコンテキストではdirectory引数にディレクトリではなくファイルへのパスが格納されているかもしれません。そのファイル名は別名で保存テキストフィールドのデフォルトファイル名として使用されます。親ディレクトリはデフォルトパスとして使用されます。
Multiple files倍長整数1キーの組み合わせShift+click (隣接するファイルの選択) とCtrl+click (Windows) 、またはCommand+click (Mac OS) を使用すると、複数のファイルを同時に選択できます。この場合引数selectedを渡し、選択されたファイルをすべてリストにして受け取ります。この定数が使用されないと、コマンドは複数ファイルの選択を許可しません。
Package open倍長整数2(Mac OSのみ): パッケージをフォルダとして開きその内容を閲覧できます。この定数が使用されないと、コマンドはパッケージの開封を許可しません。
Package selection倍長整数4(Mac OSのみ): パッケージを一つのパッケージとして選択することを許可します(省略時のデフォルト)。ユーザーがパッケージの中身を閲覧/選択できるようにしたい場合には、Package open を使用してください。
Use sheet window倍長整数16(Mac OSのみ): 選択ダイアログボックスをシートウィンドウで表示します(Windowsでは、このオプションは無効です)。シートウィンドウはMac OS Xインタフェースに特有なもので、グラフィックアニメーションを伴います (詳細については、*ウィンドウタイプ(互換性)*を参照してください) 。この定数が使用されないと、コマンドは標準なダイアログボックスを表示します。

オプションを使用したくない場合は、引数optionsに0を渡します。

任意の引数selectedで、ユーザが選択したすべてのファイルの完全なアクセスパス (アクセスパス+名前) を取得します。コマンドはユーザの選択に従って、配列を作成、サイズ決定して、埋めたりします。オプションMultiple filesを使用する場合や選択したファイルのアクセスパスを探したい時に、この引数を使用すると便利です (配列の値からコマンドによって返されたファイルの名前を取り出します) 。ファイルが選択されていない場合、空の配列が返されます。

注: Mac OS上では、選択したパッケージはフォルダとして扱われます。selected 配列に返されるパス名は最後に":"を含みます。例: Disk:Applications:4D:4D v11.4:US:4D Volume Desktop.app:

コマンドは選択されたファイルの名前(Windowsでは名前+拡張子) を返します。複数のファイルが選択されている場合、コマンドは選択されたファイルのリストにある最初のファイル名を返します。ファイルのリストは引数selectedで取得されます。ファイルが何も選択されていない場合、コマンドは空の文字列を返します。

例題 1

次の例を使用して、4Dのデータファイルを特定します。

 var $platform : Integer
 PLATFORM PROPERTIES($platform)
 If($platform=Windows)
    $DocType:=".4DD"
 Else
    $DocType:="com.4d.4d.data-file" //UTIタイプ
 End if
 $Options:=Allow alias files+Package open+Use sheet window
 $Doc:=Select document("";$DocType;"Select the data file";$Options)

例題 2

ユーザーが指定したカスタムドキュメントを作成する:

 $doc:=Select document(System folder(Documents folder)+"Report.pdf";"pdf";"Report name:";File name entry)
 If(OK=1)
    BLOB TO DOCUMENT(Document;$blob) // $blob には作成するドキュメントの内容が格納されている
 End if

システム変数およびセット

コマンドが正しく実行され、有効なドキュメントが選択されると、システム変数OKに1が代入されます。システム変数Documentは選択されたファイルの完全なアクセスパスを格納します。

ファイルが何も選択されていない場合(例えば、ファイルを開くダイアログボックスでCancelボタンをクリックした場合) 、システム変数OKに0が代入され、システム変数Documentは空になります。

参照

Open document
Select folder