Page History
[ |../../index.htm#lansa/add_entry_e.htm]
現在地:
...
7.2.3 ADD_ENTRY の使用例
ブラウズ・リストに項目を定義、追加して、ブラウズ・リストを表示する
| Anchor | ||||
|---|---|---|---|---|
|
#EMPBROWSEというブラウズ・リストに2つの項目を定義、追加して、そのブラウズ・リストを表示するには、以下のようにコマンドを使用します。
DEF_
...
LIST NAME(#EMPBROWSE)
...
FIELDS(#EMPNO #GIVENAME #SURNAME)
CHANGE #EMPNO 'A0001'
CHANGE #GIVENAME 'JOHN'
CHANGE #SURNAME 'SMITH'
ADD_ENTRY TO_LIST(#EMPBROWSE)
...
CHANGE #EMPNO 'A0002'
...
CHANGE #GIVENAME 'MARY'
...
CHANGE #SURNAME 'BROWN'
ADD_
...
ENTRY TO_LIST(#EMPBROWSE)
...
DISPLAY BROWSELIST(#EMPBROWSE)
...
| Anchor | ||||
|---|---|---|---|---|
|
以下の例では、ユーザーに部門コード(ADM、MKTなど)を入力するよう要求します。
指定の部門に属しているすべての社員が#EMPBROWSEという名前のブラウズ・リストに追加されます。その後、結果のブラウズ・リストがユーザーに表示されます。
DEF_
...
LIST NAME(#EMPBROWSE)
...
FIELDS(#SECTION #EMPNO #SURNAME #GIVENAME)
BEGIN_LOOP
REQUEST FIELDS(#DEPTMENT)
...
BROWSELIST(#EMPBROWSE)
CLR_
...
LIST NAMED(#EMPBROWSE)
...
SELECT FIELDS(#EMPBROWSE)
...
FROM_FILE(PSLMST1)
...
WITH_KEY(#DEPTMENT)
ADD_
...
ENTRY TO_LIST(#EMPBROWSE)
...
ENDSELECT
END_
...
LOOP| Anchor | ||||
|---|---|---|---|---|
|
この例では、社員の一連の詳細を入力するようユーザーに要求します。
社員の一連の詳細それぞれがブラウズ・リストに追加されます。
これらの社員の詳細は、ブラウズ・リストの先頭または末尾に追加できます。
ブラウズ・リストの先頭には項目を追加できないため、詳細を保持するために作業リストが使用され、詳細を表示するためにブラウズ・リストが使用されます。 DEFINE FIELD
DEFINE FIELD(#WHERE)
...
TYPE(*CHAR)
...
LENGTH(1)
...
LABEL('
...
Top or Bottom')
...
DEFAULT(B)
DEF_
...
LIST NAME(#EMPBROWSE)
...
FIELDS(#EMPNO #SURNAME #GIVENAME)
DEF_LIST NAME(#EMPWORKNG)
...
FIELDS(#EMPNO #SURNAME #GIVENAME) TYPE(*WORKING)
...
ENTRYS(9999)
...
BEGIN_LOOP
REQUEST FIELDS(#WHERE #EMPNO #SURNAME #GIVENAME) BROWSELIST(#EMPBROWSE)
IF COND('#WHERE = B')
ADD_ENTRY TO_LIST(#EMPWORKNG)
...
ELSE
ADD_
...
ENTRY TO_LIST(#EMPWORKNG)
...
AFTER(*START)
...
ENDIF
EXECUTE SUBROUTINE(VISIBLE)
END_
...
LOOP以下のサブルーチンは、作業リスト(#EMPWORKNG)の内容を、表示されるブラウズ・リスト# EMPBROWSEにコピーするために使用されます。 SUBROUTINE NAME
SUBROUTINE NAME(VISIBLE)
CLR_
...
LIST #EMPBROWSE
SELECTLIST NAMED(#EMPWORKNG)
ADD_
...
ENTRY TO_LIST(#EMPBROWSE)
...
ENDSELECT
ENDROUTINE
| Anchor | ||||
|---|---|---|---|---|
|
この例では、社員の一連の詳細を入力するようユーザーに要求します。
社員の一連の詳細それぞれがブラウズ・リストに追加されます。
ブラウズ・リストをさまざまな方法でソートするためのファンクション・キーが用意されています。
ブラウズ・リストの項目はソートできないため、ソート済みの詳細を保持するために作業リストが使用され、ソート順で表示するためにブラウズ・リストが使用されます。
DEF_
...
LIST NAME(#EMPBROWSE)
...
FIELDS(#EMPNO #SURNAME #GIVENAME)
DEF_LIST NAME(#EMPWORKNG)
...
FIELDS(#EMPNO #SURNAME #GIVENAME) TYPE(*WORKING)
...
ENTRYS(9999)
...
DEFINE FIELD(#UK_EMPNO)
...
REFFLD(#IO$KEY)
...
DEFAULT('''09''')
...
DEFINE FIELD(#UK_SURNME)
...
REFFLD(#IO$KEY)
...
DEFAULT('''10''')
...
DEFINE FIELD(#UK_GVNNME)
...
REFFLD(#IO$KEY)
...
DEFAULT('''11''')
...
BEGIN_LOOP
REQUEST FIELDS(#EMPNO #SURNAME #GIVENAME) BROWSELIST(#EMPBROWSE) USER_KEYS((
...
09 EMPNO *NEXT)(
...
10 'SURNAME'
...
*NEXT)(
...
11 '
...
GIVNAME '))
...
CASE OF_FIELD(#IO$KEY)
...
WHEN VALUE_IS('=
...
#UK_EMPNO')
SORT_
...
LIST NAMED(#EMPWORKNG)
...
BY_FIELDS(#EMPNO)
...
WHEN VALUE_IS('=
...
#UK_SURNME')
SORT_
...
LIST NAMED(#EMPWORKNG)
...
BY_FIELDS(#SURNAME)
...
WHEN VALUE_IS('=
...
#UK_GVNNME')
SORT_
...
LIST NAMED(#EMPWORKNG)
...
BY_FIELDS(#GIVENAME)
...
OTHERWISE
ADD_
...
ENTRY TO_LIST(#EMPWORKNG)
...
ENDCASE
EXECUTE SUBROUTINE(VISIBLE)
...
END_LOOP
SUBROUTINE NAME(VISIBLE)
CLR_
...
LIST NAMED(#EMPBROWSE)
...
SELECTLIST NAMED(#EMPWORKNG)
ADD_
...
ENTRY TO_LIST(#EMPBROWSE)
...
ENDSELECT
ENDROUTINE
RETURN