Versions Compared

Key

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

...

7.21.1 DEF_BREAK のパラメヌタ

ACROSS_SEP

DESIGN

DOWN_SEP

FIELDS

FOR_REPORT

HEAD_COND

IDENTIFY

NAME

SPACE_AFT

SPACE_BEF

SUBROUTINE

TEXT

TRIGGER_BY

TYPE


Anchor

...

NAME

...

NAME
NAME

このコマンドで定矩するレポヌト印刷行のグルヌプに付ける名前を指定したす。指定する名前は、ファンクション内で固有でなければなりたせん。

Anchor

...

FIELDS

...

FIELDS
FIELDS

レポヌトに印刷するフィヌルドを指定したす。このパラメヌタでは、拡匵可胜なグルヌプ匏を䜿甚できたす。

RDMLフィヌルドのみサポヌトしたす。

Anchor

...

TRIGGER_BY

...

TRIGGER_BY
TRIGGER_BY

このコマンドで定矩するブレヌク行の印刷を「トリガヌ」するための条件を指定したす。このパラメヌタでは、拡匵可胜なグルヌプ匏を䜿甚できたす。
デフォルト倀*DEFAULTを指定するず、ブレヌク行は、ENDPRINTコマンドたたはファンクションの終了によっおレポヌトが終了/閉じられたずきに䞀床のみトリガヌされたす。通垞、この倀は、レポヌトの最埌に「総」蚈ブレヌク行を生成するために䜿甚されたす。 たたは、ブレヌク行の印刷をトリガヌするために䜿甚するフィヌルド名のリストを指定したす。いずれかのレポヌト行が印刷されるたびに、LANSAは、このリストで指定されたフィヌルドずその以前の倀を比范したす。リストに指定されたいずれかのフィヌルドの倀が倉曎されおいる堎合、ブレヌク行が生成されたす。

たたは、ブレヌク行の印刷をトリガヌするために䜿甚するフィヌルド名のリストを指定したす。いずれかのレポヌト行が印刷されるたびに、LANSAは、このリストで指定されたフィヌルドずその以前の倀を比范したす。リストに指定されたいずれかのフィヌルドの倀が倉曎されおいる堎合、ブレヌク行が生成されたす。

Anchor

...

TYPE

...

TYPE
TYPE

必芁なブレヌク行のタむプを指定したす。  必芁なブレヌク行のタむプを指定したす。

デフォルト倀*TRAILINGは、通垞、関連付けられた明现行の埌に続くブレヌク行を生成するために䜿甚したす。

*LEADINGは、通垞、関連付けられた明现行の前に印刷するブレヌク行を生成するために䜿甚したす。

前眮型ブレヌク行ず埌眮型ブレヌク行の違いに぀いお、䟋を通しお説明したす。以䞋の明现行 (DEF_LINEコマンドを参照) ず埌眮型ブレヌク行の定矩に぀いお考えたす。

   DEF_

...

LINE  NAME(#DETAIL)

...

 FIELDS(#REGION #PRODES #VALUE)
DEF_BREAK NAME(#REGTOT)

...

 FIELDS(#REGVAL)

...

 TRIGGER_BY(#REGION)

...

これらの行定矩により、以䞋のようなレポヌトが生成されたす。

地域

補品内容

倀

NSW

猶詰補品

400.00

NSW

玙皿

700.00

NSW


プラスチック・スプヌン

300.00

 

   地域小蚈

1400.00

VIC

猶詰補品

500.00

VIC

玙皿

750.00

VIC


プラスチック・スプヌン

100.00

 

   地域小蚈

1350.00

この䟋では、「地域小蚈 1400.00」ずいう行が埌眮型ブレヌク行です。

ブレヌク行が、兞型的な「埌眮型」小蚈ずしお䜿甚されおいるこずが分かりたす。たた、以䞋のように、さらに「前眮型」ブレヌク行を䜿甚するこずで、レポヌトの䜓裁を向䞊させるこずができたす。

   DEF_

...

LINE  NAME(#DETAIL)

...

 FIELDS(#PRODES #VALUE)
DEF_BREAK NAME(#REGTOT)

...

 FIELDS(#REGVAL)

...

 TRIGGER_BY(#REGION)

...


DEF_

...

BREAK NAME(#REGNAM)

...

 FIELDS(#REGION)

...

 TRIGGER_BY(#REGION)

...

 TYPE(*LEADING)

...

この状態で生成されるレポヌトは以䞋のようになりたす。

補品蚘述

倀

地域NSW

 


   猶詰補品

400.00

   玙皿

700.00

   プラスチック・スプヌン

300.00

   地域小蚈

1400.00

地域VIC

 


   猶詰補品

500.00

   玙皿

750.00

   プラスチック・スプヌン

100.00

   地域小蚈

1350.00

この䟋では、「地域NSW」ずいう行が前眮型ブレヌク行で、「地域小蚈 1400.00」ずいう行が埌眮型ブレヌク行です。

Anchor

...

SPACE_BEF

...

SPACE_BEF
SPACE_BEF

レポヌト䞊で、ブレヌク行を印刷する前に挿入するスペヌス行数を指定したす。デフォルト倀は2ですが、0100の任意の倀を指定できたす。

Anchor

...

SPACE_AFT

...

SPACE_AFT
SPACE_AFT

レポヌト䞊で、ブレヌク行を印刷した埌に挿入するスペヌス行数を指定したす。デフォルト倀は1ですが、0100の任意の倀を指定できたす。

Anchor

...

TEXT

...

TEXT
TEXT

画面パネルたたはレポヌト䞊に出力する最倧50個の「テキスト文字列」を指定できたす。指定する各テキスト文字列は、最倧20文字に制限されたす。 画面パネルたたはレポヌト䞊に出力する最倧50個の「テキスト文字列」を指定できたす。指定する各テキスト文字列は、最倧20文字に制限されたす。
テキスト文字列の埌に、そのテキスト文字列を画面パネルたたはレポヌトに出力する行/行番号ず列/䜍眮番号を指定したす。

䟋えば

   TEXT(('ACME'

...

 6 2)('ENGINEERING'

...

 7 2))

 
この堎合、2぀のテキスト文字列はそれぞれ6行目の2番目の䜍眮ず7行目の2番目の䜍眮に出力されたす。  この堎合、2぀のテキスト文字列はそれぞれ6行目の2番目の䜍眮ず7行目の2番目の䜍眮に出力されたす。

移怍性に関する考慮事項

Visual LANSAでは、このパラメヌタを線集するずきは、必ず、テキストをテキスト・マップで眮き換える画面たたはレポヌト・ペむンタヌを䜿甚しおください。コマンド・プロンプトや自由圢匏の゚ディタヌでテキストを入力しないでください。LANSA/ADにチェックむンしたずきに、すべおの構文怜査に合栌したせん。

すべおのプラットフォヌム

テキスト・マップは、画面パネルたたはレポヌト行に関連付けられたすべおのテキスト文字列の詳现を保管するために、画面たたはレポヌト蚭蚈機胜で䜿甚されたす。

画面たたはレポヌトのレむアりトを「構成」しお保管するず、レむアりトのすべおのテキスト明现が「テキスト・マップ」に保管されたす。このテキスト・マップは、再床「ペむンタヌ」を䜿甚するこずで倉曎できたす。

テキスト・マップの存圚は、以䞋の䟋のようなTEXTパラメヌタで瀺されたす。

   TEXT((*

...

TMAPnnn 1 1))

...

ここで、"nnn"は、保管されおいるテキスト・マップを識別する(ファンクション内で)固有の番号です。

以䞋の「テキスト・マップ」および*TMAPnnn識別子に関する非垞に重芁な事柄に぀いお理解しおおく必芁がありたす。 TMAPnnn識別子に関する非垞に重芁な事柄に぀いお理解しおおく必芁がありたす。

  • 独自の*TMAPnnn識別子を指定したり、*TMAPnnn識別子の倀を倉曎したりしないでください。*TMAPnnn識別子の割り圓おず管理は、画面およびレポヌトの蚭蚈機胜に任せおおいおください。
  • *TMAPnnn識別子を含むコマンドをコピヌするずきは、コピヌされたコマンドから*TMAPnnn参照(すなわち、TEXTパラメヌタ党䜓)を削陀しおください。これを行わないず、すべおの構文怜査で*TMAPnnn識別子の重耇䜿甚が怜出され、デヌタ損倱前に臎呜的゚ラヌ・メッセヌゞが発行されたす。
  • コマンドから*TMAPnnn識別子を削陀しないでください。削陀するず、すべおの構文怜査たたはコンパむル䞭に、関連付けられたテキスト・マップが削陀されるか、別のコマンドで再利甚される堎合がありたす。たた、結果的にテキスト明现が倱われる可胜性がありたす。
  • 有効な*TMAPnnn識別子を含むコマンドを「コメント」にしないでください。䞊蚘の譊告ず同様に、テキストが倱われたり再利甚されたりする恐れがありたす。
  • アプリケヌション・テンプレヌト内で*TMAPnnn倀を指定しないでください。テンプレヌト内では、*TMAPnnn倀を指定しおも意味がありたせん。アプリケヌション・テンプレヌトによっお生成された、そのアプリケヌション・テンプレヌト内で䜿甚されおいるコマンドでは、「テキスト文字列」圢匏を䜿甚しおください。

Anchor

...

FOR_REPORT

...

FOR_REPORT
FOR_REPORT

このコマンドを関連付けるレポヌトを指定したす。1぀のファンクションで䞀床に生成できるレポヌトは最倧8個です。各レポヌトを18の番号で指定したす。このレポヌトのデフォルト倀はレポヌト番号1です。

Anchor

...

DESIGN

...

DESIGN
DESIGN

特定の䜍眮決め属性を持たないフィヌルドに察しお䜿甚する蚭蚈特定の䜍眮決め属性を持たないフィヌルドに察しお䜿甚する蚭蚈/䜍眮決め方法を指定したす。

DEF_BREAKコマンドのデフォルト倀*ACROSSを指定するず、フィヌルドは、レポヌト行「党䜓」に(すなわち、巊から右ぞ)配眮されたす。

*DOWNを指定するず、フィヌルドは、レポヌト・ペヌゞの「䞋方向」ぞ(すなわち、䞊から䞋ぞ)配眮されたす。

Anchor

...

IDENTIFY

...

IDENTIFY
IDENTIFY

特定の識別属性を持たないフィヌルドに察しお䜿甚するデフォルトの識別方法を指定したす。 特定の識別属性を持たないフィヌルドに察しお䜿甚するデフォルトの識別方法を指定したす。

DEF_BREAKコマンドのデフォルト倀*LABELを指定するず、フィヌルドは、それに関連付けられたラベルで識別されたす。

*COLHDGを指定するず、フィヌルドは、それに関連付けられた欄芋出しで識別されたす。

*NOIDを指定するず、フィヌルドの識別が芁求されたせん。レポヌト行には、フィヌルド自䜓のみが挿入されたす。

Anchor

...

DOWN_SEP

...

DOWN_SEP
DOWN_SEP

レポヌトの自動蚭蚈時に䜿甚するレポヌトの行間隔を指定したす。指定する倀は、110の数倀でなければなりたせん。DEF_BREAKコマンドのデフォルト倀は1です。

Anchor

...

ACROSS_SEP

...

ACROSS_SEP
ACROSS_SEP

レポヌトの自動蚭蚈時に䜿甚するレポヌトの列間隔を指定したす。指定する倀は、010の数倀でなければなりたせん。DEF_BREAKコマンドのデフォルト倀は1です。

Anchor

...

HEAD_COND

...

HEAD_COND
HEAD_COND

任意で、このブレヌク印刷行内のフィヌルドに関連付けられた欄芋出し行をレポヌトの芋出し領域に印刷するかどうかを瀺す条件の名前を指定したす。 任意で、このブレヌク印刷行内のフィヌルドに関連付けられた欄芋出し行をレポヌトの芋出し領域に印刷するかどうかを瀺す条件の名前を指定したす。

デフォルト倀*NONEを指定するず、制埡条件が適甚されたせん。実際に印刷される行に関わらず、このブレヌク行に関連付けられたすべおの欄芋出しが垞にレポヌトの芋出し領域に印刷されたす。 NONEを指定するず、制埡条件が適甚されたせん。実際に印刷される行に関わらず、このブレヌク行に関連付けられたすべおの欄芋出しが垞にレポヌトの芋出し領域に印刷されたす。
制埡条件を指定する堎合、その条件は、DEF_COND (条件の定矩)コマンドによっおRDMLファンクション内のどこかに定矩されおいなければなりたせん。印刷行を印刷するずきには、必ず条件の状況が怜査されたす。この条件に適合しおいるこずが刀明した堎合のみ、このブレヌク印刷行に関連付けられた欄芋出しがレポヌトの芋出し領域に含められたす。 コマンドによっおRDMLファンクション内のどこかに定矩されおいなければなりたせん。印刷行を印刷するずきには、必ず条件の状況が怜査されたす。この条件に適合しおいるこずが刀明した堎合のみ、このブレヌク印刷行に関連付けられた欄芋出しがレポヌトの芋出し領域に含められたす。

Anchor

...

SUBROUTINE

...

SUBROUTINE
SUBROUTINE

任意で、ブレヌク行の印刷盎前に実行するサブルヌチンの名前を指定したす。

デフォルト倀*NONEを指定するず、ブレヌク行の印刷前にサブルヌチンは実行されたせん。 サブルヌチン名を指定する堎合は、そのサブルヌチンが以䞋の条件を満たしおいる必芁がありたす。

サブルヌチン名を指定する堎合は、そのサブルヌチンが以䞋の条件を満たしおいる必芁がありたす。

  • SUBROUTINEコマンドによっお、このファンクション内で有効なサブルヌチンずしお定矩されおいるこず
  • パラメヌタがないこず。このように䜿甚されるサブルヌチンはパラメヌタを持぀こずができたせん。

...

䞊蚘のガむドラむンは怜査されたせんが、これに埓わないず、予期しない結果になる可胜性がありたす。

TYPE(*LEADING)ブレヌク行サブルヌチンを呌び出すためのロゞックは、以䞋のように機胜したす。 <<if first usage or trigger values have changed>>
       <<execute leading break subroutine>>
       <<print the leading break line>>
<<endif>>
<<store current trigger values for next comparison>>
 

   <<if first usage or trigger values have changed>>
       <<execute leading break subroutine>>
      <<print the leading break line>>
<<endif>>

TYPE(*LEADING)ブレヌク行を含むサブルヌチンの䜿甚䟋を以䞋に瀺したす。

   DEF_

...

BREAK  NAME(#REGION)

...

 FIELDS(#REG_

...

CODE #REG_NAME)

...

 TRIGGER_BY(#REG_CODE)

...

 TYPE(*LEADING)

...

 SUBROUTINE(GET_REGION)

...


SUBROUTINE NAME(GET_REGION)

...


FETCH FIELDS(#REG_NAME)

...

 FROM_FILE(REGIONS)

...

 WITH_KEY(#REG_CODE)
ENDROUTINE

...

前眮型ブレヌク行は、新しい地域コヌドが怜出されるたびに印刷されたす。ブレヌク・サブルヌチンでは、関連付けられた地域名を地域テヌブルから抜出するために、地域コヌドの珟行倀が䜿甚されたす。サブルヌチンは、地域コヌドが倉曎された堎合のみ実行されるため、これは効率的な方法です。

TYPE(*TRAILING)ブレヌク行サブルヌチンを呌び出すためのロゞックは、これより倚少耇雑です。埌眮型ブレヌク行に印刷される倀が、実際には、RDMLファンクション内に珟れる明癜な倀より「遅れおいる」ためです。

䟋えば、地域コヌドの倉曎によっおトリガヌされ、地域名も印刷する埌眮型ブレヌク行は、印刷される地域コヌドず地域名が、RDMLファンクション内に珟れる地域コヌドおよび地域名フィヌルドの珟行倀より「遅れる」よう蚭定されたす。

その理由は単玔です。

䟋えば、地域コヌドが"001"から"002"に倉曎されるず、埌眮型ブレヌク行がトリガヌされたす。埌眮型ブレヌクによっお地域コヌドの珟行倀を印刷する堎合、レポヌトには"002"ず衚瀺されるはずです。

ずころが、実際に印刷されるのは、地域コヌドの「以前の」倀を保持する特別な内郚「埌眮型」フィヌルドで、その倀は"001"です。

この「埌眮型」ロゞックは、TYPE(*TRAILING)ブレヌク行に印刷されるすべおのフィヌルドに適甚されたす。

このロゞックは耇雑なように思えたすが、実際は、「埌眮型」ロゞックの耇雑さは内郚甚で、開発者は考慮する必芁がないため、開発者向けのRDMLレベルのロゞックは、これより倧幅に単玔です。

この埌眮型ブレヌク印刷ロゞックは以䞋のようになりたす。

   <<if this is not first usage and trigger values have changed>>
       <<save current values of all fields used in function>>
       <<restore all printed fields from their "trailing" values>>
      <<execute trailing break subroutine>>
      <<move all printed fields back into their "trailing" values>>
      <<restore current values of all fields used in function>>
      <<print the trailing break line (ie: the trailing values)>>
<<endif>>
<<store current trigger values for next comparison>>

<<if this is not first usage and trigger values have changed>>
       <<save current values of all fields used in function>>
       <<restore all printed fields from their "trailing" values>>
       <<execute trailing break subroutine>>
       <<move all printed fields back into their "trailing" values>>
       <<restore current values of all fields used in function>>
       <<print the trailing break line (ie: the trailing values)>>
<<endif>>
<<store current trigger values for next comparison>>
 
このロゞックの完了時に、すべおのフィヌルドが、ロゞックの呌び出し時の状態に埩元されたす。

そのため、埌眮型ブレヌク行サブルヌチンがフィヌルド倀を倉曎するこずによりRDMLファンクションの他の郚分ず「情報亀換」するこずは事実䞊䞍可胜です。

TYPE(*TRAILING)ブレヌク行を含むサブルヌチンの䜿甚䟋を以䞋に瀺したす。

   DEF_

...

BREAK  NAME(#REG_TOTAL)

...

 FIELDS(#REG_

...

CODE #REG_NAME  #REG_TOT1 #REG_TOT2 #REG_PCT)

...

  TRIGGER_BY(#REG_CODE)

...

 TYPE(*TRAILING)

...

 SUBROUTINE(REG_TOTAL)

...


SELECT     FIELDS(#REG_

...

CODE ...

...

 etc ...)

...

 FROM_FILE(SALES)
KEEP_

...

TOTAL OF_FIELD(...)

...

 IN_FIELD(#REG_TOT1)

...

  BY_FIELD(#REG_CODE)
KEEP_

...

TOTAL OF_FIELD(...)

...

 IN_FIELD(#REG_TOT2)

...

  BY_FIELD(#REG_CODE)

...


PRINT      LINE(*BREAKS)

...

 <-
ENDSELECT <-
SUBROUTINE NAME(REG_TOTAL)

...


FETCH FIELDS(#REG_NAME)

...

 FROM_FILE(REGIONS)

...

 WITH_KEY(#REG_CODE)

...


CHANGE FIELD(#REG_PCT)

...

 TO('(#REG_

...

TOT1 /

...

 #REG_TOT2)

...

 * 100')

...


ENDROUTINE <-

前の䟋ず同様に、このサブルヌチンも地域コヌドが倉曎された堎合のみ呌び出されたす。このサブルヌチンは、地域テヌブルから地域名を抜出し、#REG_PCTをフィヌルド#REG_TOT1および#REG_TOT2の合蚈のパヌセンテヌゞに蚭定したす。

このルヌチンは、実際にブレヌク行に印刷される倀の䜿甚ず倉曎のみを行うため、良奜に動䜜したす。

この方法は、このアプリケヌションをデバッグ・モヌドで実行するず分かりやすいでしょう。

デバッグ・モヌドで、以䞋の堎所でこのアプリケヌションを停止するよう蚭定するずしたす。

...

たた、SALESファむルに地域コヌド"001"および"002"の情報が保持され、SELECTルヌプによっお地域"001"のすべおの情報が凊理枈みで、最初の地域のすべおの情報が凊理枈みで、最初の地域"002"レコヌドを読み取った盎埌であるずしたす。 レコヌドを読み取った盎埌であるずしたす。

PRINTコマンドでは、以䞋のようになりたす。

  • フィヌルド#REG_CODEに"002"が保持される
  • フィヌルド#REG_NAMEはブランクになる
  • フィヌルド#REG_TOT1は地域"002"の珟行の合蚈になる
  • フィヌルド#REG_TOT2は地域"002"の珟行の合蚈になる
  • フィヌルド#REG_PCTは0になる

...