Page History
[ |../../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