Versions Compared

Key

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

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

...

7.126.2 UPRINT の使用例

...

例1:以下のRDMLプログラムは、受注番号を入力するようユーザーに要求し、注文の詳細とそれに関連付けられた明細行を印刷します。

          GROUP_BY  NAME(#ORDERDET)

...

 FIELDS(#ORDNUM #CUSTNUM #DATEDUE #ORDLIN #PRODUCT #QUANTITY #PRICE)
L1:  REQUEST   FIELDS(#ORDNUM)
     FETCH     FIELDS(#ORDERDET) FROM_FILE(ORDHDR)

...

 WITH_KEY(#ORDNUM)

...

 NOT_FOUND(L1)

...

 ISSUE_MSG(*YES)

...


    SELECT    FIELDS(#ORDERDET)

...

 FROM_FILE(ORDLIN)

...

 WITH_KEY(#ORDNUM)
    UPRINT    FIELDS(#ORDERDET)
    ENDSELECT
    ENDPRINT


例2:ACCOUNTというファイルに以下のフィールドとデータが保持されているとします。      UPRINT    FIELDS(#ORDERDET)      ENDSELECT        ENDPRINT  
例2:ACCOUNTというファイルに以下のフィールドとデータが保持されているとします。

会社(#COMP)

部門(#DIV)

課(#DEPT)

支出(#EXPEND)

収入(#REVNU)

01

1

ADM

400

576

"

"

MKT

678

56

"

"

SAL

123

6784

"

2

ADM

46

52

"

"

SAL

978

456

"

3

ACC

456

678

"

"

SAL

123

679

02

1

ACC

843

400

"

"

MKT

23

 


"

"

SAL

876

10

"

2

ACC

 


43

...

ファイルのキーが#COMP、#DIV、#DEPTの場合、以下のRDMLプログラムによって、このファイルからページ番号と小計付きのレポートが生成されます。 

     GROUP_BY  NAME(#ACCOUNTS)

...

  FIELDS((

...

#COMP *

...

TOTLEVEL1 *NEWPAGE)

...

 (

...

#DIV  *TOTLEVEL2)

...

 (

...

#DEPT  *TOTLEVEL3)

...

 (

...

#EXPEND *TOTAL)

...

 (

...

#REVNU  *TOTAL))

...


SELECT    FIELDS(#ACCOUNTS)

...

 FROM_FILE(ACCOUNT)

...


UPRINT    FIELDS(#ACCOUNTS)

...


ENDSELECT
ENDPRINT

フィールド属性について、以下の点に注意してください。

  • *NEWPAGE属性を使用すると、会社番号が変更されると必ず新しいページが開始されます。
  • *TOTLEVELn属性によって、要求される合計「レベル制御切れ」を示します。この場合、会社、部門(会社内)、および課(会社の部門内)別の合計が必要になります。
  • *TOTAL属性を使用すると、フィールドが合計されます。この場合、支出フィールドと収入フィールドが合計されます。

...

フィールド属性とその使用方法の詳細については、「フィールド属性」を参照してください。

また、LANSAがデータをソートしないことに注意してください。データは、UPRINTコマンドに渡された順序で印刷されます。情報の印刷順序に関し、プログラマの責任において、新しいページおよび合計レベル属性を「意味のあるもの」にしてください。 

上記のRDMLプログラムは、以下のようにコーディングすることもできます。 

     SELECT     FIELDS(#COMP #DIV #DEPT #EXPEND #REVNU) FROM_FILE(ACCOUNT)

...


UPRINT     FIELDS((

...

#COMP *

...

TOTLEVEL1 *NEWPAGE)

...

 (

...

#DIV  *TOTLEVEL2)

...

 (

...

#DEPT  *TOTLEVEL3)

...

 (

...

#EXPEND *TOTAL)

...

 (

...

#REVNU  *TOTAL))

...


ENDSELECT
ENDPRINT