You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

[ |../../index.htm#lansa/add_entry_e.htm]
現在地:

7.2.3 ADD_ENTRY の使用例

ブラウズ・リストに項目を定義、追加して、ブラウズ・リストを表示する
データベース・ファイルからブラウズ・リストに情報を取り込む
ブラウズ・リストの先頭または末尾に項目を追加する
作業リストを使用してブラウズ・リストの項目をソートする
ブラウズ・リストに項目を定義、追加して、ブラウズ・リストを表示する
#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)    
データベース・ファイルからブラウズ・リストに情報を取り込む
以下の例では、ユーザーに部門コード(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   
ブラウズ・リストの先頭または末尾に項目を追加する
この例では、社員の一連の詳細を入力するようユーザーに要求します。
社員の一連の詳細それぞれがブラウズ・リストに追加されます。
これらの社員の詳細は、ブラウズ・リストの先頭または末尾に追加できます。
ブラウズ・リストの先頭には項目を追加できないため、詳細を保持するために作業リストが使用され、詳細を表示するためにブラウズ・リストが使用されます。
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(VISIBLE) CLR_LIST   #EMPBROWSE SELECTLIST NAMED(#EMPWORKNG) ADD_ENTRY  TO_LIST(#EMPBROWSE) ENDSELECT   ENDROUTINE  
作業リストを使用してブラウズ・リストの項目をソートする
この例では、社員の一連の詳細を入力するようユーザーに要求します。
社員の一連の詳細それぞれがブラウズ・リストに追加されます。
ブラウズ・リストをさまざまな方法でソートするためのファンクション・キーが用意されています。
ブラウズ・リストの項目はソートできないため、ソート済みの詳細を保持するために作業リストが使用され、ソート順で表示するためにブラウズ・リストが使用されます。
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  
[ |../../index.htm#lansa/add_entry_e.htm]

  • No labels