9.114 GET_PHYSICAL_LIST
データ・ディクショナリから物理ファイルとその記述のリストを取得して、呼び出し元のRDMLファンクションに可変長の作業リストで戻します。
Þこれは、 開発環境のみで使用される特殊BIF です。
各製品の対応
LANSA/AD |
使用可 |
|
Visual LANSA for Windows |
使用可 |
X_RUN パラメータがDBII=*NONEの場合、この組み込み関数はサポートされません。 |
Visual LANSA for Linux |
未対応 |
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
A |
必須 |
ポジショニング・ファイルの値。戻されるリストは、ディレクトリの中で、この引数で渡された値よりも大きく、かつ一番近い名前のファイルから始まります。 |
1 |
10 |
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
L |
必須 |
ファイル情報を含める作業リスト リストは以下のエントリー数を越えてはいけません。 呼び出し元のRDMLファンクションは、項目の長さの合計が正確に70バイトの作業リストを提供しなければなりません。 戻されるそれぞれのリスト項目は、次のような形式にする必要があります。 開始 - 終了 説明 1 - 10 物理ファイル名 11 - 20 物理ファイル・ライブラリ 21 - 60 記述 61 - 63 IBM iの場合はブランクに設定される Windows の場合は、このVisual LANSA固有の情報が設定されます。 62 - 62 自動RRNO (Y/N) 63 - 63 ファイルの@@RRNOと@@UPID (Y/N) 64 - 64 RDMLXファイル (Y/N) 65 - 70 <<将来の拡張>> |
70 |
70 |
||
2 |
A |
任意 |
戻されたリストの最後のファイル。通常、この値は次にこの組み込み関数を呼び出す時にポジショニング用の引数として使用されます。 |
1 |
10 |
||
3 |
A |
任意 |
戻りコード OK = ファイル詳細のリスト(満載または一部)が戻された。リストに戻された以上のファイルは存在しない OV = リスト(満載)が戻された。ただしリストに収まらなかったファイルがさらに存在する。通常、スタイル・リストを表示する時に、この値を使ってページに次のファイルがあることを示す NR = リストは空で戻された。リストの最後のファイルがブランクで戻される |
2 |
2 |
例
このファンクションを使用すれば、サイトで既存のLANSAデータベースを修正できるプログラムを作成することができます。
DEF_LIST NAME(#FILLST) FIELDS(#FILNAM #FILLIB #FILDES #SPARE)
TYPE(*WORKING) ENTRYS(10)
DEF_LIST NAME(#FILDSP) FIELDS((#SELECTOR *SEL) #FILNAM #FILLIB
#FILDES)
********** -Clear lists-
CLR_LIST NAMED(#FILLST)
CLR_LIST NAMED(#FILDSP)
********** -Request file to start from in list-
REQUEST FIELDS(#STRTFL) TEXT(('File to start from' 5 5))
********** -Get the list of files-
USE BUILTIN(GET_PHYSICAL_LIST) WITH_ARGS(#STRTFL)
TO_GET(#FILLST #LAST #RETCOD)
********** -If records found-
IF COND('(#RETCOD *EQ OK) *OR (#RETCOD *EQ OV)')
SELECTLIST NAMED(#FILLST)
ADD_ENTRY TO_LIST(#FILDSP)
ENDSELECT
**********
DISPLAY BROWSELIST(#FILDSP)
********** -Process selected records-
SELECTLIST NAMED(#FILDSP) GET_ENTRYS(*SELECT)
EXECUTE SUBROUTINE(FILE_EDIT)
ENDSELECT
ELSE
MESSAGE MSGTXT('No files found .... Program ended')
RETURN
ENDIF