scaCollapse

概要:

scaCollapseは、GeneXusのForm上で様々な拡張Formエリアの作成を可能にするユーザーコントロールです。 例えば、アコーディオン形式のリストやfeedbackeエリアの作成が可能です。

対象環境:

Web

使用方法:

ユーザーコントロールは、web form上の様々なエレメントに対して使用することが可能です。grid、table、image、textblock、variable等のエレメントに使用可能です。
Master pageやweb panelにユーザーコントロールを使用するだけで、基本的なvisible propertyを使用してアコーデョオン形式の表示が可能になります。

 

Example:

Event 'Collapse-Simplifica-Logo'
     SimplificaLogo.Visible = False
EndEvent

 
単純に上記のように記述するだけで、その他の設定は不要です。
 
加えて、エレメントに対してどのように表示するかを選択することが可能です。"Effect” propertyやrun-time コードでの指定が可能です。
また、fadeとslideの指定が可能です。
 
Example:

Event 'Collapse-Simplifica-Logo'
     scaCollapse1.Effect = "slide"
     SimplificaLogo.Visible = False
Endevent

 
もしあるeventのみにある効果を使用したい場合は、Active propertyを使用します。Active Propertyをfalseにすると、コントロールに設定したデフォルトのeventが実行されます。Event内では、<controlName>.Active = true と指定することで、Actionを追加することが可能です。
 
Example:

Event 'Collapse-Simplifica-Logo'
     scaCollapse1.Active = true
     SimplificaLogo.Visible = False
     scaCollapse1.Active = false
EndEvent

 
あるボタンやリンクのeventが実行されるとform上のtipsやメッセージが制御されるような効果、例えばユーザーが必要な情報を入力した後に、質問が消える等の効果等の実現に、本ユーザーコントロールは有用です。
 
Example
 
コントロールをform上に設置して、XPZをインポートするといくつかの参考オブジェクトが取り込まれます。1つが単純なフラットレベルのエレメントでもう1つはgridに対してのものになります。

Legacy Methods

scaCollapseコントロールの全ての機能は、実際にはメソッドをCallせずに使用することが可能です。
既に古いバージョンで使用中のメソッドがバージョンアップに伴い動作しなくならないようにメソッドは装備されております。
古いメセッドが有効担っているかどうかは、プロパティで判断することができます。コントロールのプロパティで "Active"を"false"に変更することで、無効にすることができます。
広げられていたFormulaを折りたたむには、Collapseメソッドを使用します。
control.Collapse(<InternalName)
InterNameには、Collapsed化したいコントロールの内部名称を指定します。(例: Table1.InternalName)

Example:

Event 'Collapse-Expand'
     scaCollapse1.Collapse(SimplificaLogo.InternalName)
Endevent

Gridのエレメントには、CallapseInGridメソッドを使用する必要があります。(注意:eventはクライアントサイドで実施されます。)
control.CollapseInGrid(<InternalName>,<Row>)
"InternalName"は、コントロールのinternal nameを指定してください。 
"row"には、Grid内の列のポジションを指定します。

Example:
   scaCollapse1.CollapseInGrid("TABLE1", &i)

Gridを使用している場合、GeneXusからの戻り値を正しく取得できないため注意する必要があります。(Gridでは、列のIDではなくポインターが返却されます。)
Collapsed状態を調べるには通常を以下のように記載します。
control.Collapsed (<InternalName>)
Gridに使用している場合は、次のように記載してください。
control.CollapsedInGrid (<InternalName>, <Row>)
 
Example:

Event 'IsCollapsed'
    if scaCollapse1.Collapsed("SIMPLIFICALOGO")
        msg("Collapsed=true")
    else    
        msg("Collapsed=false")
    endif
EndEvent