イベントブロック

WorkWithPlus では、イベントブロックをすべてのテンプレート (Transaction テンプレートおよび Web パネルテンプレート) に挿入する機能を提供します。

これは、一部の [Event] または [Sub] 内の多数のオブジェクトにコードを繰り返し挿入する必要がある場合に有用です。

これを実行するには、対応するテンプレートの [Events & Subs] ノード内にノードを挿入する必要があります。

たとえば、[Create Data] という名前の Web パネルテンプレートに、作成された [Events & Subs] が 2 つあります:

[Sub 'Show Messages'] に関連付けられたプロパティは次のとおりです:

[Block Name]: ブロックの名前です。このプロパティは、インスタンス上で識別するために必要です。
[Type]: ブロックのタイプです。オプションは [Event] または [Sub] です。
[Position]: ブロックコードを、パターンによって作成されたコードの最初に挿入するか、最後に挿入するかを指定することができます。

コードブロックの [Position] を [Bottom] にした場合

コードブロックの [Position] を [Top] にした場合

[Event/Sub Name]: コードを配置するイベントまたはサブです。ユーザーイベント/サブ、または [Start]、[Refresh]、[Enter] などの一部の標準イベントを使用できます。ユーザーイベント/サブを使用する場合は、' ' で囲む必要があります。
[Code]: イベント/サブに追加するためのコードです。コードは定義されたイベント/サブへ転記されます。

コード内には次のタグを使用できます:

- ブロックが Web パネルテンプレートに追加されている場合:

  • <OBJ_NAME>: オブジェクト名 (Web パネル)
  • <OBJ_DESCRIPTION>: オブジェクトのデスクリプション (Web パネル)

- ブロックが Transaction テンプレートに追加されている場合 (Selection などの任意のオブジェクト):

  • <TRN_NAME>: インスタンスに関連付けられたトランザクションの名前
  • <TRN_DESCRIPTION>: インスタンスに関連付けられたトランザクションのデスクリプション
  • この例では <ATT_NAME> タグも <ATT_DESCRIPTION> タグも使用できますが、このノードの [Include] プロパティの値が [Once per matching attribute] である場合に限られます (後述の説明を参照)。
  • <PK_LIST>: トランザクションの主キーを構成するすべての項目属性でタグを置き換えます。各項目属性はコンマで区切られます。

たとえば、次のイベントブロックがある場合:

 

History トランザクションに対してインスタンスの更新を行います。History トランザクションは次のような構造です:

次のコードを追加します:

  • <PK_VAR_LIST>: トランザクションの主キーを構成する各項目属性の変数でタグを置き換えます。各変数はコンマで区切られます。

前述の例で <PK_LIST> の代わりに <PK_VAR_LIST> を使用すると、History トランザクションで次のような結果を得られます:

  • <PK_LIST_SERIALIZED>: トランザクションの主キーを構成するすべての項目属性でタグを置き換えます。各項目属性はパイプラインで区切られます。

 

History という名前のトランザクション (上記参照) に次のコードが追加されます:

  • <PK_VAR_LIST_SERIALIZED>:トランザクションの主キーを構成する各項目属性の変数でタグを置き換えます。各変数はパイプラインで区切られます。

前述の例で <PK_LIST_SERIALIZED> の代わりに <PK_VAR_LIST_SERIALIZED> を使用すると、History トランザクションで次のような結果を得られます:

- 次のタグは GridTab テンプレートでのみ使用できます:

<GRID_TRN_NAME>: View GridTab の関連するトランザクションの名前を返します。

<GRID_TRN_DESCRIPTION>: View GridTab の関連するトランザクションの説明を返します。

<GRID_TRN_PK_LIST>: View GridTab の関連するトランザクションの主キーを構成するすべての項目属性でタグを置き換えます。各項目属性はコンマで区切られます。

History トランザクション (上記参照) に関連する GridTab でのこのタグの使用例

   Procedure1(HistoryYear, HistoryMonth, HistoryDay)

<GRID_TRN_PK_LIST_SERIALIZED>: View GridTab の関連するトランザクションの主キーを構成するすべての項目属性でタグを置き換えます。各項目属性はパイプラインで区切られます。

GridTab にこのタグを使用するブロックコードがある場合は、次のように表示されます:

GridTab とブロックコードが含まれるトランザクションがあります (この場合、関連するトランザクションは History です。主キーは HistoryYear、HistoryMonth、HistoryDay です)。

 

このタグは次のように置き換えられます:

   &Description= HistoryYear.ToString().Trim() + !'|'+ HistoryMonth.ToString().Trim() + !'|'+ HistoryDay.ToString().Trim()

<GRID_TRN_PK_VAR_LIST>: View GridTab の関連するトランザクションの主キーを構成する各項目属性の変数でタグを置き換えます。各変数はコンマで区切られます。

<GRID_TRN_PK_VAR_LIST_SERIALIZED>: View GridTab の関連するトランザクションの主キーを構成する各項目属性の変数でタグを置き換えます。各変数はパイプラインで区切られます。

   この例は、前述の <GRID_TRN_PK_LIST_SERIALIZED> タグの場合と似ていますが、項目属性ではなく変数を使用します:

&Description=&HistoryYear.ToString().Trim() + !'|'+&HistoryMonth.ToString().Trim() + !'|'+&HistoryDay.ToString().Trim()

<GRID_TRN_NULLVALUE_PK_LIST>: View GridTab の関連するトランザクションの主キーを構成するすべての項目属性の null 値でタグを置き換えます。各 null 値はコンマで区切られます。

<GRID_TRN_NULLVALUE_PK_EXCEPT_MAIN_TRN_PK_LIST>: Main トランザクションの主キーを除く、View GridTab の関連するトランザクションの主キーを構成するすべての項目属性の null 値でタグを置き換えます。

<NULLVALUE_PK_LIST>: トランザクションの主キーを構成するすべての項目属性の null 値でタグを置き換えます。

イベントブロックは、Transaction、Selection、Export プロシージャー、ExportReport プロシージャー、LoadAudit プロシージャー、Prompt、View、View オブジェクトと WebPanel のタブに追加できます。

Transaction テンプレート内のオブジェクト (Transaction、Selection、Prompt など) にイベントブロックが追加されると、[Include] という名前の新しいプロパティが表示されます:

[Include] プロパティでは、指定されたイベントまたはサブルーチンに 1 回だけ、このブロックコードを含めるか、以下で定義される制限に当てはまる項目属性ごとに 1 回、このブロックコードを追加するかを指定します。

[Include] プロパティの値が [Once per matching attribute] の場合は、前述のとおり、<ATT_NAME> タグ、<ATT_DESCRIPTION> タグ、およびこのプロパティに依存しないタグをコードで使用することができます。

前述のとおり、このプロパティは、Transaction テンプレートのオブジェクト (Transaction、Selection、Prompt など) にブロックコードが含まれている場合のみ適用されます。このプロパティの値が [Once per matching attribute] の場合、次のプロパティが表示されます:

[Is Nullable]: ブロックコードに関連付ける項目属性を null 可にする必要があるか、null 可にする必要がないか、またはその特徴に制限を設定しないかを指定します。
[Is Foreign Key]: ブロックコードに関連付ける項目属性を外部キーにする必要があるか、外部キーにする必要がないか、またはその特徴に制限を設定しないかを指定します。
[Is Primary Key]: ブロックコードに関連付ける項目属性を主キーにする必要があるか、主キーにする必要がないか、またはその特徴に制限を設定しないかを指定します。
[Is Inferred]: ブロックコードに関連付ける項目属性を推論にする必要があるか、推論にする必要がないか、またはその特徴に制限を設定しないかを指定します。
[Is Formula]: ブロックコードに関連付ける項目属性を式にする必要があるか、式にする必要がないか、またはその特徴に制限を設定しないかを指定します。
[Is First Level]: ブロックコードに関連付ける項目属性がトランザクションの 1 番目のレベルに属する必要があるか、トランザクションの 1 番目のレベルに属する必要がないか、またはその特徴に制限を設定しないかを指定します。
[Is Visible]: ブロックコードに関連付ける項目属性をフォームで表示する必要があるか、フォームで表示する必要がないか、またはその特徴に制限を設定しないかを指定します。
[Regular Expression]: これは、どの項目属性にブロックコードが追加されるのかを定義するために、トランザクションの各項目属性内でチェックされる正規表現です。

[Include] プロパティが [Once per matching attribute] の場合は、この制限に当てはまる各項目属性にコードブロックが追加されます。

ブロックコード 'Show Messages' の最初の例では、下の図に示すように、コードに変数 &Messages および &Message が記述されています:

これらの変数は、このテンプレートに基づいて作成される Web パネルで定義されないように、Web フォームには含まれていません。これらの変数が自動的に定義されるように、[Variables] セクションが用意されています:

[Variables] (Web フォームには含まれていません)

このノードの目的は、一部のブロックコードで使用されている、フォームには表示されない変数を定義することであるため、WorkWithPlus によってこれが定義され、このテンプレートに基づく各オブジェクトを 1 つずつ定義する必要はありません。

[Variable] を挿入しようとすると、この変数が基づく項目属性、ドメイン、SDT、またはビジネスコンポーネントを選択するウィンドウが開きます。

既定では、基づく項目属性またはドメインと同じ名前が割り当てられますが、これを変更することができます。

下の画像に示すように、変数 &Message および &Messages は、対応するタイプを指定してここで定義します。

メッセージの定義:

WorkWithPlus for Web 14 では、イベントブロックと変数をレポートテンプレートに追加できます。

レポートテンプレートのイベントブロックと変数


Copyright © 2007-2015 DVelop Software Solutions - www.workwithplus.com