フィルタを作成または置換し、フィルタのコンテンツの設定を開始します。
構文
ESS_FUNC_M EssSetFilter (
hCtx, AppName, DbName, FilterName, Active, Access
);
パラメータ | データ型 | 説明 |
---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
AppName |
ESS_STR_T |
アプリケーション名。 |
DbName |
ESS_STR_T |
データベース名。 |
FilterName |
ESS_STR_T |
フィルタ名。フィルタ名の制限を参照してください。 |
Active |
ESS_BOOL_T |
フィルタのアクティブ・フラグ。TRUEの場合はフィルタがアクティブに設定され、TRUEでない場合は非アクティブに設定されます。 |
Access |
ESS_ACCESS_T |
デフォルトのフィルタ・アクセス・レベル。 |
備考
フィルタが存在しない場合は、この呼出しによって最初にそのフィルタが作成されます。
この呼出しの後にEssSetFilterRowを続けて呼び出して、フィルタのすべての行を設定する必要があります。
既存のフィルタへの上書きを避けるため、EssCreateFilterを使用します。EssCreateFilterは特定のデータベースに一意な名前のフィルタのみを作成しますが、同じデータベース上の同一名の既存のフィルタには上書きしません。
戻り値
なし。
アクセス
この関数を使用するには、呼出し元が、指定したデータベースに対してデータベース・デザイン権限(ESS_PRIV_DBDESIGN)を持っている必要があります。
例
ESS_FUNC_M ESS_SetFilter (ESS_HCTX_T hCtx) { ESS_FUNC_M sts = ESS_STS_NOERR; ESS_STR_T AppName; ESS_STR_T DbName; ESS_STR_T FilterName; ESS_BOOL_T Active; ESS_ACCESS_T Access, AccessAry[3]; ESS_STR_T RowString[3]; ESS_USHORT_T ind; AppName = "Sample"; DbName = "Basic"; FilterName = "NewFilter"; Active = ESS_TRUE; /***** Set Filter *****/ sts = EssSetFilter(hCtx, AppName, DbName, FilterName, Active, Access); if(!sts) { RowString[0] = "@IDESCENDANTS(Scenario)"; RowString[1] = "@IDESCENDANTS(Product)"; RowString[2] = "Qtr1, @IDESCENDANTS(\"Colas\")"; AccessAry[0] = ESS_ACCESS_READ; AccessAry[1] = ESS_ACCESS_NONE; AccessAry[2] = ESS_ACCESS_WRITE; /***** Set Filter Rows *****/ for(ind = 0; ind < 3; ind++) { sts = EssSetFilterRow(hCtx, RowString[ind], AccessAry[ind]); if(sts) printf("Cannot set Filter row %s\r\n", RowString[ind]); } sts = EssSetFilterRow(hCtx, "",ESS_ACCESS_NONE); } return (sts); }
関連トピック