FAQ-146 レイヤ内容でカスタム条件を元にデータセットをフィルタするには?

最終更新: 2018/07/08

複数のワークブックやシートがあり、レイヤ内容 ダイアログでデータを追加したり削除する場合、左パネルで目的の列を見つけるのに時間がかかることがあります。組み込みの利用可能なデータドロップダウンリストを使用する方法のほかに、このリストにカスタム条件を追加して、より効果的にフィルタをかけることができます。

同じプロジェクト内のすべての列から、ショートネームがA (例: Col A )のというフィルタを、レイヤ内容 ダイアログの左パネルで使用したい場合を考えます。 カスタム条件を追加するには、

  1. コードビルダを開き、新しいCファイルを作成して以下の関数を入力します。
    BOOL MySelection(OriginObject& obj, int nType)
    {
    	switch ( nType )
    	{
    	case QUERYRESULTS_FILTER_ELEMENTTYPE__FOLDER:
    		return TRUE;
    	case QUERYRESULTS_FILTER_ELEMENTTYPE__PAGE:
    		{
    			WorksheetPage wksPage;
    			wksPage = (WorksheetPage)obj;
    			return wksPage.IsValid();
    		}
    	case QUERYRESULTS_FILTER_ELEMENTTYPE__LAYER:
    		{
    			Worksheet wks;
    			wks = (Worksheet)obj;
    			return wks.IsValid();
    		}
    	case QUERYRESULTS_FILTER_ELEMENTTYPE__COLUMN:
    		{
    			Column col;
    			col = (Column)obj;
    			if ( !obj )
    				return FALSE;
    			string strName;
    			col.GetName(strName);
    			return strName.Compare("A") == 0;
    		}
    	}
    	return FALSE;
    }
  2. このファイルをコンパイルして、ワークスペースをビルドします
  3. レイヤの内容 ダイアログの、利用可能なデータのドロップダウンリストにカスタム条件を追加するには、User FilesフォルダにあるOrigin.ini を、テキストエディタで開いて、このファイルの最後に以下のスクリプトを貼り付けます。保存してファイルを閉じます。
    [DatasetFilterFuncs]
    ShowColAOnly=MySelection|Column 
    User Defined=Oubtn.ini
  4. グラフ操作: レイヤ内容を選択し、レイヤ内容をクリックします。 を選択してダイアログを開き、左パネルにある利用可能なデータドロップダウンをクリックします。リストの最後にShowColAOnly という項目が追加されていることがわかります。
  5. ドロップダウンリストからShowColAOnlyを選択します。プロジェクト内の、ショートネームがA であるすべての列が左パネルに表示されます。


Note:コードビルダー内でシステムフォルダに作成したCファイルを追加することでOriginを立ち上げるとすぐに利用できるようになります。


Origin 2018bでは、ワークシートのタブを右クリックし、作図ダイアログから除外を選択し、作図セットアップレイヤ内容ダイアログで表示されるワークシートを制限できます。



キーワード: フィルタ, レイヤ内容, 列