Versions Compared

Key

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

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

...

7.93.3 OPEN の使用例

...

例1:最初の画面対話処理中に顧客マスター・ファイルCUSTMSTを開きます。

   OPEN FILE(CUSTMST)

...

...

または 

   OPEN FILE(CUSTMST)

...

 USE_OPTION(*FIRSTSCREEN)

...

...


例2:「必要に応じて」開かれる顧客マスター・ファイルを除くすべてのファイルを直ちに開きます。 

   OPEN FILE(*ALL)

...

 USE_OPTION(*IMMEDIATE)

...


OPEN FILE(CUSTMST)

...

 USE_OPTION(*ONDEMAND)

...


例3:ファイルSTATESを開き、すべてのレコードを作業リスト#WRK例3:ファイルSTATESを開き、すべてのレコードを作業リスト#WRK_LISTにロードしてから、ファイルSTATESを閉じます。
OPEN      FILELISTにロードしてから、ファイルSTATESを閉じます。 

   OPEN      FILE(STATES)

...

 USE_OPTION(*IMMEDIATE)

...


SELECT    FIELDS(#WRK_LIST)

...

 FROM_FILE(STATES)
ADD_

...

ENTRY TO_LIST(#WRK_LIST)

...


ENDSELECT
CLOSE     FILE(STATES)

...


例4:ファイルSTATESを開き、すべてのレコードを州名例4:ファイルSTATESを開き、すべてのレコードを州名(STATNM)順に作業リスト#WRK_LISTにロードしてから、ファイルSTATESを閉じます。
OPEN      FILELISTにロードしてから、ファイルSTATESを閉じます。 

   OPEN      FILE(STATES)

...

 USE_OPTION(*OPNQRYF)

...

 KEYFLD('STATNM')

...


SELECT    FIELDS(#WRK_LIST)

...

 FROM_FILE(STATES)
ADD_

...

ENTRY TO_LIST(#WRK_LIST)

...


ENDSELECT
CLOSE     FILE(STATES)

...


例5:ファイルSTATESを開き、すべてのレコードを州名例5:ファイルSTATESを開き、すべてのレコードを州名(STATNM)順に作業リスト#WRK_LISTにロードします。次に、郵便番号(POSTCD)が2000~3999のレコードのみを選択し、ファイルSTATESを閉じます。 OPEN      FILE

   OPEN      FILE(STATES)

...

 USE_OPTION(*OPNQRYF)

...

 KEYFLD('STATNM')

...

 QRYSLT('(

...

POSTCD *GE 2000) *AND (POSTCD *LE 3999)')
SELECT    FIELDS(#WRK_LIST)

...

 FROM_FILE(STATES)
ADD_

...

ENTRY TO_LIST(#WRK_LIST)

...


ENDSELECT
CLOSE     FILE(STATES)

...


例6:名前および住所のクエリー要求についてのみ応答する、完全なユーザー駆動型の名前例6:名前および住所のクエリー要求についてのみ応答する、完全なユーザー駆動型の名前/住所レポートを作成します。名前/住所ファイルの名前はNAMESです。
    DEFINE    FIELD住所ファイルの名前はNAMESです。 

       DEFINE    FIELD(#SELECTION)

...

 TYPE(*CHAR)

...

 LENGTH(100)

...

 LABEL('

...

Select :')

...


   DEFINE    FIELD(#ORDER_BY)

...

  TYPE(*CHAR)

...

 LENGTH(100)

...

 LABEL('

...

Sort   :')

...


    DEF_LINE  NAME(#LINE1)

...

 FIELDS(#CUSTNO #NAME #ADDR1 #ADDR2 #ADDR3 #POSTCD #CRTDATE)
L1: REQUEST   FIELDS(#SELECTION #ORDER_BY)
    OPEN      FILE(NAMES) USE_OPTION(*OPNQRYF)

...

 IO_ERROR(L1)

...

 QRYSLT(#SELECTION)

...

 KEYFLD(#ORDER_BY)

...


    SELECT    FIELDS(#LINE1)

...

 FROM_FILE(NAMES)

...


    PRINT     LINE(#LINE1)

...


    ENDSELECT
   CLOSE     FILE(NAMES)

...


例7:ユーザーが名前例7:ユーザーが名前/住所ファイルの住所行3行で地区名をスキャンすることのできるレポートを作成します。要求された地区を含むすべての顧客の詳細を印刷します。
DEFINE    FIELD住所ファイルの住所行3行で地区名をスキャンすることのできるレポートを作成します。要求された地区を含むすべての顧客の詳細を印刷します。 

   DEFINE    FIELD(#SRCHSUB)

...

 TYPE(*CHAR)

...

 LENGTH(20)

...

 LABEL('

...

Suburb :')

...


DEFINE    FIELD(#SELECT)

...

 TYPE(*CHAR)

...

 LENGTH(256)
DEF_

...

LINE  NAME(#LINE1)

...

 FIELDS(#CUSTNO #NAME #ADDR1 #ADDR2 #ADDR3 #POSTCD #CRTDATE)
REQUEST   FIELDS(#SRCHSUB)
USE  BUILTIN(TCONCAT) WITH_ARGS('''(

...

ADDR1 *

...

CT "'''

...

  #SRCHSUB '''")''')

...

 TO_GET(#SELECT)

...


USE  BUILTIN(TCONCAT)

...

 WITH_ARGS(

...

#SELECT '''

...

 *

...

OR (

...

ADDR2 *

...

CT "'''

...

 #SRCHSUB '''")''')

...

 TO_GET(#SELECT)

...


USE  BUILTIN(TCONCAT)

...

 WITH_ARGS(

...

#SELECT '''

...

 *

...

OR (

...

ADDR3 *

...

CT "'''

...

 #SRCHSUB '''")''')

...

 TO_GET(#SELECT)

...


OPEN      FILE(NAMES)

...

 USE_OPTION(*OPNQRYF)

...

 QRYSLT(#SELECT)

...

 KEYFLD(*FILE)

...


SELECT    FIELDS(#LINE1)

...

 FROM_FILE(NAMES)

...


PRINT     LINE(#LINE1)

...


ENDSELECT
CLOSE     FILE(NAMES)

...


例8:ファイルSTATESを開き、すべてのレコードをブラウズ・リスト#BROWSELにロードし、州が例8:ファイルSTATESを開き、すべてのレコードをブラウズ・リスト#BROWSELにロードし、州が'NSW'および'QLD'、郵便番号が2000~4999のレコードのみを選択します。
DEFINE    FIELD、郵便番号が2000~4999のレコードのみを選択します。 

   DEFINE    FIELD(#FIELDA)

...

 TYPE(*CHAR)

...

 LENGTH(256)

...


DEFINE    FIELD(#FIELDB)

...

 TYPE(*CHAR)

...

 LENGTH(256)

...


CHANGE    FIELD(#FIELDA)

...

 TO('(

...

DEPTMENT *

...

EQ "ADM")

...

 *

...

OR (

...

DEPTMENT *

...

EQ "MNT")

...

 OR ')

...


CHANGE    FIELD(#FIELDB)

...

 TO('(

...

DEPTMENT *

...

EQ "FLT")

...

 *

...

OR (

...

DEPTMENT *

...

EQ "MIS")')

...


EXCHANGE  FIELDS(#FIELDA)

...


EXCHANGE  FIELDS(#FIELDB)

...


OPEN      FILE(STATES)

...

 USE_OPTION(*OPNQRYF)

...

 QRYSLT('=EXCHANGE')

...


SELECT    FIELDS((#BROWSEL))

...

 FROM_FILE(STATES)
ADD_

...

ENTRY TO_LIST(#BROWSEL)

...


ENDSELECT