Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...

7.2.3 ADD_ENTRY の使用例

ブラウズ・リストに項目を定義、追加して、ブラウズ・リストを表示する

データベース・ファイルからブラウズ・リストに情報を取り込む

ブラウズ・リストの先頭または末尾に項目を追加する

作業リストを使用してブラウズ・リストの項目をソートする

Anchor
ADD_ENTRY_EX1
ADD_ENTRY_EX1
ブラウズ・リストに項目を定義、追加して、ブラウズ・リストを表示する

#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
ADD_ENTRY_EX2
ADD_ENTRY_EX2
データベース・ファイルからブラウズ・リストに情報を取り込む

以下の例では、ユーザーに部門コード(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
ADD_ENTRY_EX3
ADD_ENTRY_EX3
ブラウズ・リストの先頭または末尾に項目を追加する

この例では、社員の一連の詳細を入力するようユーザーに要求します。

社員の一連の詳細それぞれがブラウズ・リストに追加されます。

これらの社員の詳細は、ブラウズ・リストの先頭または末尾に追加できます。

ブラウズ・リストの先頭には項目を追加できないため、詳細を保持するために作業リストが使用され、詳細を表示するためにブラウズ・リストが使用されます。 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
ADD_ENTRY_EX4
ADD_ENTRY_EX4
作業リストを使用してブラウズ・リストの項目をソートする

この例では、社員の一連の詳細を入力するようユーザーに要求します。

社員の一連の詳細それぞれがブラウズ・リストに追加されます。

ブラウズ・リストをさまざまな方法でソートするためのファンクション・キーが用意されています。

ブラウズ・リストの項目はソートできないため、ソート済みの詳細を保持するために作業リストが使用され、ソート順で表示するためにブラウズ・リストが使用されます。

   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