Forguncy 8 オンラインヘルプ
Forguncyの使い方 / レポート / / 共通の関数 / プログラムフロー
このトピックで
    プログラムフロー
    このトピックで

    プログラムフロー関数は、条件に応じた値を返すなど制御フローを変更するために使用します。

    Choose

    リストから指定した位置にある値を返します。最初の引数をインデックスとして使用し、後続の引数の1つを返します。 たとえば、Choose(1,"a","b")は文字列 「a」を返します。

    構文

    Choose(index, Value1[, Value2,...[, ValueN]])

    引数

    • index:返される値の1から始まる位置です。
    • Value1ValueN:値を返すリストです。

    例:

    次の式を使用して、DataToDisplayパラメータ値に基づいて指定した文字列を返すことができます。DataToDisplayパラメータ値が「1」である場合、返される値は「Current Year」です。

     
    
    Choose(@DataToDisplay, "Current Year", "Actual-Prior Year")
    
    

    Partition

    指定された数値を含む、指定された間隔に基づいて計算された範囲を表す文字列(形式 x:y)を返します。

    構文

    Partition(number, start, end, interval)

    引数

    • number:範囲に対して評価する数値です。
    • start:数値の全体範囲の開始値です。0より小さい値は指定できません。
    • end:数値の全体的な範囲の最後の数値です。start以下の値をこのパラメーターに指定できません。
    • interval:1つの範囲と次の範囲の差である数値です。数値は1未満に設定できます。

    例:

    次の式を使用して、年齢フィールドの値に基づいて範囲を表す文字列が返されます。年齢が「33」の場合に変える値は「30: 39」です。

     
    
    Partition(年齢, 0, 100, 10)
    
    

    IIF

    式の評価結果によって、2つの値のうちのどちらか1つを返します。最初のパラメーターの結果のブール値(True/False)に応じて、2番目または3番目のパラメーターの値を返します。

    構文

    Choose(expression, trueReturn, falseReturn)

    引数

    • expression:評価する式です。
    • trueReturn:expressionがTrueの場合に返される値です。
    • falseReturn:expressionがFalseの場合に返される値です。

    例:

    次の式を使用して、SalesAmountフィールド値に基づいてテキストの色を返すことができます。

     
    
    {IIF(SalesAmount >= 1000, "Green", "Red")}
    
    

    Switch

    式のリストを評価し、最初に一致する値に対応する結果を返します。

    構文

    Switch(Expression1, Value1[, Expression2, Value2,...[, ExpressionN, ValueN]])

    引数

    • Expression1...ExpressionN:評価する式です。
    • Value1...ValueN:式に関連付けられた値です。

    例:

    次の式を使用して、ChannelKeyフィールドに基づいて販売チャネル名を返すことができます。

     
    
    {Switch(ChannelKey = 1, "Store", ChannelKey = 2, "Online", ChannelKey = 3, "Catalog", ChannelKey = 4, "Reseller")}
    
    

    Switch関数の使用例

    さまざまな期間を返すために使用する式です。ユーザーが選択したパラメータ値に応じて異なる日付が返されます。選択するパラメータの値と返す開始日は次の通りです。

    コードのコピー
    Switch(
    @period=0,Today()
    ,@period=1,DateAdd("d",1-weekday(Today(),2),Today())
    ,@period=2,DateValue(Year(Today()) + "-" + Month(Today()) + "-01")
    ,@period=3,DateValue(Year(Today()) + "-" + Switch( Month(Today())<4,1, Month(Today())<7, 4, Month(Today())<10, 7, Month(Today())>=10, 10) + "-01")
    ,@period=4,DateValue(Year(Today()) + "-" + Switch( Month(Today())<7,1, Month(Today())>=7, 7) + "-01")
    ,@period=5,DateValue(Year(Today()) + "-01-01")
    ).ToString("yyyy-MM-dd")

    IIF関数の使用例

    例1:

    レポートの外観の条件付き書式設定のために使用できます。TextBoxコントロールの[背景色]プロパティの式が「{IIF(金額 > 200000, "Green", "White")}」である場合、金額が200,000を超えると背景色が緑色で表示されるという動作を実現します。

    例2:

    IIF関数と一緒にIsNothing関数を使用し、パラメータが入力されたかどうかを判定できます。

    {IIF(IsNothing(@p1), "パラメータ値が入力されていません。", @p1)}

    パラメーターが入力されていない場合、レポートの内容に「パラメーター値が入力されていません」と表示されます。パラメータを入力すると、レポートの内容にパラメータ値の値が表示されます。

    詳細については、検査のIsNothing関数の使用例を参照してください。